CFD Online Discussion Forums

CFD Online Discussion Forums (
-   OpenFOAM (
-   -   fvc::ddtPhiCorr(rUA, U, phi) (

ata January 23, 2011 09:42

fvc::ddtPhiCorr(rUA, U, phi)
Hi FOAMers
can any one tell me fvc::ddtPhiCorr(rUA, U, phi) in icoFoam code is for what?
best regards

santiagomarquezd January 24, 2011 13:05

Hi, take a look of:



ata January 24, 2011 23:02

fvc::ddtPhiCorr(rUA, U, phi)
Thank you very much

timaji August 19, 2011 22:29
the term Phi in UEqn and PEqn is not exactly the same:
In the UEqn: corrected flux from the previous iteration or timestep,
In the PEqn: mass flux without the pressure contribution.

The term ddtPhiCorr checks for the dimensional units of U and phi to decide what operation has to be performed, and if phi is defined in terms of mass, a division of phi by rho is performed.

This represents a problem in the case of zero density. Such a case cannot happen in single-phase flows, however it might happen in multiphase flows. For example, let's consider a momentum equation in the form

ddt(alpha*rho*U) + div(alpha*rho*U*U) = ...

where alpha is the phase fraction. The equation is then represented in the code as

fvm::ddt(alphaRho, U) + fvm::div(alphaf*phi, U) == ...

being phi = rho_f * (U_f \cdot S). In such a case, if my understanding is correct, one should compute

surfaceScalarField phi =
fvc::interpolate(rho)*(fvc::interpolate(U) & mesh.Sf())
+ fvc::ddtPhiCorr(rUA, rhoAlpha, U, phi)

At this point, since alpha can be zero, ddtPhiCorr will cause a division by zero.

This does not represent a problem in the incompressible case, since the equation can be divided by rho, which leads phi to be a volumetric flux, and ddtPhiCorr would be ddtPhiCorr(rUA, alpha, U, phi). However, if one wants to deal with the compressible case, keeping equations in conservative form, the problem appears.

alberto August 21, 2011 03:54

The problem is known and was reported (I guess you read it since you pasted it :P):

timaji September 10, 2011 12:47


Originally Posted by alberto (Post 320870)
The problem is known and was reported (I guess you read it since you pasted it :P):

Yes alberto
I referenced to the link you've mentiond in the title of my post!!!

hawkeye321 February 7, 2013 23:10

I have modified SIMPLEFOAM for unsteady flows bu adding ddt(U) to the U matrix. Do I also have to add fvc::ddtPhiCorr in PEqu.H to calculate fluxes? How ignoring this term will affect my results?

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