CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > Software User Forums > OpenFOAM

Taking the absolute value of a volVectorField or a volTensorField

Register Blogs Community New Posts Updated Threads Search

Like Tree1Likes
  • 1 Post By kupiainen

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   September 16, 2005, 05:24
Default Hi, I wish to compute the abs
  #1
Member
 
Marco Kupiainen
Join Date: Mar 2009
Posts: 31
Rep Power: 17
kupiainen is on a distinguished road
Hi,
I wish to compute the absolute value of a volVectorField gp componentwise. I have tried to loop over all cells:
forAll(centres, celli)
{
if ( gp[celli].x() < 0.0 )
{
gp[celli].x() = -gp[celli].x();
}
if ( gp[celli].y() < 0.0 )
{
gp[celli].y() = -gp[celli].y();
}
if ( gp[celli].z() < 0.0 )
{
gp[celli].z() = -gp[celli].z();
}
}

but when I take min(gp) it shows negative values. How does this work? What should I do instead?
best regards
cdunn6754 likes this.
kupiainen is offline   Reply With Quote

Old   September 16, 2005, 07:22
Default Should be: volVectorField g
  #2
Senior Member
 
Hrvoje Jasak
Join Date: Mar 2009
Location: London, England
Posts: 1,905
Rep Power: 33
hjasak will become famous soon enough
Should be:

volVectorField gpCmptMag = cmptMag(gp);

but it is not instantiated because it's not really appropriate for geometric fields. How about:

vectorField gpCmptMag = cmptMag(gp.internalField());

This gives you the internal part of the field.

Hrv
__________________
Hrvoje Jasak
Providing commercial FOAM/OpenFOAM and CFD Consulting: http://wikki.co.uk
hjasak is offline   Reply With Quote

Old   March 19, 2019, 08:56
Default abs not working for me
  #3
New Member
 
Join Date: Apr 2018
Posts: 17
Rep Power: 7
dela is on a distinguished road
Quote:
Originally Posted by hjasak View Post
Should be:

volVectorField gpCmptMag = cmptMag(gp);

but it is not instantiated because it's not really appropriate for geometric fields. How about:

vectorField gpCmptMag = cmptMag(gp.internalField());

This gives you the internal part of the field.

Hrv
I know this is an old thread but I am doing a similar thing without success. I am trying to find the absolute value of velocity U. I have tried all I can to no avail. Please help
I did "volVectorField U1CmptMag = Foam::cmptMag(U1);"

thank you
dela is offline   Reply With Quote

Old   July 25, 2019, 13:00
Default
  #4
rsa
New Member
 
Reza
Join Date: Jun 2012
Posts: 27
Rep Power: 13
rsa is on a distinguished road
Quote:
Originally Posted by dela View Post
I know this is an old thread but I am doing a similar thing without success. I am trying to find the absolute value of velocity U. I have tried all I can to no avail. Please help
I did "volVectorField U1CmptMag = Foam::cmptMag(U1);"

thank you

Hi Dela,

I am not sure if you have solved your problem or not but just in case:

cmptMag is not overloaded for volVectorField as the error message informs. So to overcome this problem you can do as follows:
First, define a new volVEctorField in the createFields.H like this:
volVectorField cmptMagU = U;
Then in the C-file you can add the following loop:
forAll ( U, index )
{
cmptMagU [ index ] = cmptMag ( U [ index ] );
}

This should work but I advise you to be cautious about the boundary cells. I would advise to use this on internalField() and take care of the boundary separately.

BR
rsa is offline   Reply With Quote

Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
How to get the Diagonal elements of volTensorField su_junwei OpenFOAM Running, Solving & CFD 0 December 1, 2008 10:29
VolVectorField of complex numbers quba OpenFOAM 0 December 17, 2007 08:06
VolTensorField Gamma in laplacian haibinli OpenFOAM Running, Solving & CFD 0 May 17, 2007 01:45
To get the magnitude of volVectorField susana OpenFOAM Pre-Processing 5 November 16, 2006 06:53
VolTensorField evgenii OpenFOAM Pre-Processing 1 February 22, 2006 05:50


All times are GMT -4. The time now is 04:22.