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

rhoInf value, postProcess

Register Blogs Community New Posts Updated Threads Search

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   October 7, 2018, 16:06
Default rhoInf value, postProcess
  #1
New Member
 
Join Date: Jul 2018
Posts: 9
Rep Power: 8
ms123 is on a distinguished road
Hello FOAMers,

I'm new in OF and I'm a little confused about the value of "rhoInf". I'm using the interDyMFoam solver (which means that my fluids are incompressible) and I want to calculate the forces and the moments on a patch of my simulation model. In the "system" file I've already copied the "forcesIncompressible" file. Now, in order to run
Code:
interDyMFOAM -postProcess -func forcesIncompressible
I have to define a "rhoInf" in the "forcesIncompressible" file. I have a two phase model and my transportPoperties file looks like this:
Code:
phases (water air);

water // oil ISOVG150

{ transportModel  Newtonian;

nu             nu  [0 2 -1 0 0 0 0] 2.280290891e-05;
rho            rho [1 -3 0 0 0 0 0] 811.3; }

air

{ transportModel Newtonian;

nu             nu    [0 2 -1 0 0 0 0] 213.5e-07 ;
rho            rho   [1 -3 0 0 0 0 0] 0.9859;   }

sigma          sigma [1 0 -2 0 0 0 0] 0.02843192;
I've read many discussions but nowhere was it clearly explained. I've tried to set as rhoInf the density of my oil, but the results aren't physically right.
Is there someone who could help me?
ms123 is offline   Reply With Quote

Old   October 8, 2018, 11:29
Default
  #2
Super Moderator
 
Tobi's Avatar
 
Tobias Holzmann
Join Date: Oct 2010
Location: Bad Wörishofen
Posts: 2,711
Blog Entries: 6
Rep Power: 52
Tobi has a spectacular aura aboutTobi has a spectacular aura aboutTobi has a spectacular aura about
Send a message via ICQ to Tobi Send a message via Skype™ to Tobi
Hi, as far as I know, the force calculation can only be used for single phase flows. You should be able to use the functionality for your case too but I am not sure if the result will be fine (if the object is in both fluids, I would expect that the result is wrong). However, the keyword rhoInf is used for incompressible calculations because the functionObject does not know the density. Thus, the keyword has to be used to tell the application which value has to be used for the calculation, cf. https://cpp.openfoam.org/v6/forces_8C_source.html

Code:
     if (directForceDensity_)
     {
         // Optional entry for fDName
         fDName_ = dict.lookupOrDefault<word>("fD", "fD");
     }
     else
     {
         // Optional entries U and p
         pName_ = dict.lookupOrDefault<word>("p", "p");
         UName_ = dict.lookupOrDefault<word>("U", "U");
         rhoName_ = dict.lookupOrDefault<word>("rho", "rho");
 
         // Reference density needed for incompressible calculations
         if (rhoName_ == "rhoInf")
         {
             dict.lookup("rhoInf") >> rhoRef_;
         }
 
         // Reference pressure, 0 by default
         pRef_ = dict.lookupOrDefault<scalar>("pRef", 0.0);
     }
As you already said:
Quote:
I have to define a "rhoInf" in the "forcesIncompressible" file.
, you have to add the rhoInf keyword to the forcesIncompressible file. However,
Quote:
I've tried to set as rhoInf the density of my oil, but the results aren't physically right.
tells me that you already did it with wrong results. So either you did something wrong or the lib cannot be used for your purpose.
__________________
Keep foaming,
Tobias Holzmann
Tobi is offline   Reply With Quote

Old   November 1, 2018, 02:12
Default
  #3
Member
 
Dongxu Wang
Join Date: Sep 2018
Location: China
Posts: 33
Rep Power: 8
wdx_cfd is on a distinguished road
Quote:
Originally Posted by Tobi View Post
Hi, as far as I know, the force calculation can only be used for single phase flows. You should be able to use the functionality for your case too but I am not sure if the result will be fine (if the object is in both fluids, I would expect that the result is wrong). However, the keyword rhoInf is used for incompressible calculations because the functionObject does not know the density. Thus, the keyword has to be used to tell the application which value has to be used for the calculation, cf. https://cpp.openfoam.org/v6/forces_8C_source.html

Code:
     if (directForceDensity_)
     {
         // Optional entry for fDName
         fDName_ = dict.lookupOrDefault<word>("fD", "fD");
     }
     else
     {
         // Optional entries U and p
         pName_ = dict.lookupOrDefault<word>("p", "p");
         UName_ = dict.lookupOrDefault<word>("U", "U");
         rhoName_ = dict.lookupOrDefault<word>("rho", "rho");
 
         // Reference density needed for incompressible calculations
         if (rhoName_ == "rhoInf")
         {
             dict.lookup("rhoInf") >> rhoRef_;
         }
 
         // Reference pressure, 0 by default
         pRef_ = dict.lookupOrDefault<scalar>("pRef", 0.0);
     }
As you already said:

, you have to add the rhoInf keyword to the forcesIncompressible file. However,

tells me that you already did it with wrong results. So either you did something wrong or the lib cannot be used for your purpose.
Hi Tobi,

I have a similar problem.

I also used interDyMFoam to simulate the wave-sturcture interaction. I wanted to calculate the total force of the structure in my numerical wave tank and I adopted this force functions in my controlDict:

forceOFcaisson
{
type forces;
libs ("libforces.so");

writeControl timeStep;
writeInterval 1;

rho rhoInf; // Incompressible solver
rhoInf 1000;
log off;

patches (caisson);
CofR (0 0 0);
}

The structure (patch) is fixed and named with "caisson", and the simulation is three-demensional so the structure is a little complicated. The pressure obtained by function "Probes" agrees good with that obtained by sensors in the experiment. The shape of the two curves of the total force (vertical and horizontal) seems good. However, the value seems not right. We believe that the kinematic pressure is greater than it should be.

My question is:

Is there a way to obtain the total force of a complicated structure (patch) when using interFoam?

Thank you very much!

D.X. Wang
wdx_cfd 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
postProcess Utility: icoFoam -noFunctionObjects Why?How? TeresaT OpenFOAM Post-Processing 8 July 26, 2023 03:41
rhoInf in dynamicMeshDict dictionary for wingMotion tutorial jiadongw OpenFOAM Running, Solving & CFD 7 March 14, 2021 12:46
forceCoeffs and rhoInf dependency Horus OpenFOAM 3 August 9, 2018 04:55
[ddtExtended] Extended objectFunction for postProcess application Tobi OpenFOAM Community Contributions 2 January 21, 2018 15:25
postProcess functionality in openFOAM 4 bullmut OpenFOAM Post-Processing 23 July 21, 2017 10:11


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