CFD Online Discussion Forums

CFD Online Discussion Forums (http://www.cfd-online.com/Forums/)
-   OpenFOAM Programming & Development (http://www.cfd-online.com/Forums/openfoam-programming-development/)
-   -   Reading forces from previous time step within solver (http://www.cfd-online.com/Forums/openfoam-programming-development/73677-reading-forces-previous-time-step-within-solver.html)

SD@TUB March 14, 2010 07:58

Reading forces from previous time step within solver
 
Hello FOAMers,

what would be the best way of reading forces from previous time step within solver code? I'm calculating some cases with OF 1.6 via simpleFoam.
I noticed the function objects where pressure and viscous forces/moments are integrated over given walls (using "libforces.so"). In forces.C the
data of interest accessed by:
Code:

...
fm.first().first() (pressure forces) or fm.first().second() (viscous forces)
fm.second().first() (moment of pressure forces) or fm.second().second() (moment of viscous forces)
...
return fm;
...
fm.write();

Now i tried to catch the values within solver code. I added my own header in simpleFoam.C where i calculate some additional stuff. Within this header i want to initialize variables with the summarized forces (under consideration of the listed headers in forces.C), but it doesn't work. I did something like:
Code:

scalar Fp = fm.first().first();
scalar Fv = fm.first().second();

According to the OF programmers guide, field data from previous time step are associated with geometricField<type>. In my understanding this isn't applicable for calculated forces, because they applied to pressure and shear stress on walls.
I'm not familiar with the code conventions of OF and new to object oriented programming in C++! Any advice is much appreciated...


/Stefan

federicabi May 25, 2016 03:00

Quote:

Originally Posted by SD@TUB (Post 249887)
Hello FOAMers,

what would be the best way of reading forces from previous time step within solver code? I'm calculating some cases with OF 1.6 via simpleFoam.
I noticed the function objects where pressure and viscous forces/moments are integrated over given walls (using "libforces.so"). In forces.C the
data of interest accessed by:
Code:

...
fm.first().first() (pressure forces) or fm.first().second() (viscous forces)
fm.second().first() (moment of pressure forces) or fm.second().second() (moment of viscous forces)
...
return fm;
...
fm.write();

Now i tried to catch the values within solver code. I added my own header in simpleFoam.C where i calculate some additional stuff. Within this header i want to initialize variables with the summarized forces (under consideration of the listed headers in forces.C), but it doesn't work. I did something like:
Code:

scalar Fp = fm.first().first();
scalar Fv = fm.first().second();

According to the OF programmers guide, field data from previous time step are associated with geometricField<type>. In my understanding this isn't applicable for calculated forces, because they applied to pressure and shear stress on walls.
I'm not familiar with the code conventions of OF and new to object oriented programming in C++! Any advice is much appreciated...


/Stefan

Hi!
I know that this is an old post but I'm very interested in it. Have you found a solution to that problem? I need to customize a restraint library inserting pressure and viscous forces calculated in the previous time step.
Do you have any suggestion?

Best regards

Federica


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