|April 26, 2012, 08:05||
PIMPLE algorithm -- Energy equation
Gilles De Neyer
Join Date: Nov 2011
Posts: 18Rep Power: 6
I had an attentive look at the rhoPimpleFoam algorithm and something is still unclear to me.
Why is the equation for h not solved in the PISO loop. I actually don't see a corrector for h however it's solved with the predicted velocity and not with the corrected one.
Is it the goal of the oCorr(0-->nOuterCorr) loop ? If yes, why are we always using nOuterCorr = 1 in the example cases ? Do you agree that this leads to a non corrected energy field ?
Thank you in advance,
|April 26, 2012, 10:57||
Join Date: Aug 2009
Location: Darmstadt, Germany
Posts: 174Rep Power: 8
as far as I understand, the hEqn isn't being solved using the predicted velocity, but using fluxes phi base on the final velocity from the last outer correction or from the last time step in the first pimple loop. If nOuterCorr = 1, velocity from the last time step is being used, always.
However, it is also not clear for me, why different scalar transport equations, like the h-equation in rhoPimpleFoam, are always being solved before the pressure correction, and not after it. It is not only the case in rhoPimpleFoam, but in all PIMPLE-based OF solvers I took a look at. For me it also looks like the results would be "wrong" for dynamic time stepping, but as I am not experienced in numerics, I'm almost sure, that my point of view is wrong, and not the OF implementation. But still I would like to know why.
|May 2, 2012, 08:32||
Gert Jan Auwerda
Join Date: Jan 2011
Posts: 3Rep Power: 6
I have been wondering the exact same thing.
It also works this way in other solvers (e.g. SIMPLE), not just the PIMPLE solvers. It means rho will be update for the new Temperature field in between the momentum equation and the pressure correction equation, but not any other coefficients.
If I write the equations in functions of old values (previous timestep), new values, and in-between values (*), I get this:
U* = T_old, rho_old, p_old, phi_old, Q_old
T_new = rho_old, phi_old, p_old, Q_old
rho* = T_new, p_old
p_corr, U_corr, phi_corr = rho*, U*, Q_old
It is not completely clear to me, why in the pEqn.H file, rho = thermo.rho() is called both before and after the pressure correction equation is solved. The call to thermo.rho() does not update your rho-field based on newest p or T (or h) values as far as I understand it, only a call to thermo.correct() will do this. And the value of rho() is not changed in pEqn.H (for SIMPLE routine).
|Thread||Thread Starter||Forum||Replies||Last Post|
|Solving the total energy equation||dohnie||OpenFOAM||21||June 13, 2014 00:44|
|error message||cuteapathy||CFX||14||March 20, 2012 07:45|
|How to discretize of energy equation ??||Asghari||FLUENT||0||October 12, 2006 08:09|
|question about energy equation||zhou||FLUENT||0||February 24, 2004 00:55|
|energy equation formulation||Pedro||Phoenics||1||July 5, 2001 12:17|