CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   OpenFOAM Programming & Development (https://www.cfd-online.com/Forums/openfoam-programming-development/)
-   -   Difference between pEqn.flux and fvc::snGrad(p) (https://www.cfd-online.com/Forums/openfoam-programming-development/147593-difference-between-peqn-flux-fvc-sngrad-p.html)

ganeshv January 24, 2015 22:17

Difference between pEqn.flux and fvc::snGrad(p)
 
If I had a pEqn defined as follows

fvScalarMatrix pEqn
(
fvm::laplacian(p)
);


Could some one tell me the difference between pEqn.flux() and fvc::snGrad(p) * mesh.magSf()

Here are some of the other threads I've seen in this regard.

http://www.cfd-online.com/Forums/ope...rix-faceh.html

http://www.cfd-online.com/Forums/ope...ux-method.html

I know about faceH, the simple/piso algorithm. However, if what I understand about them is right, there should be no difference between pEqn.flux() and fvc::snGrad(p) * mesh.magSf(). And yet there is. Why? Dr. Jasak says faceH is computed the way it is for consistency purposes. Could some one throw more light on this matter please.

ganesh

sharonyue January 19, 2022 05:13

For this simple case, it equals exactly to

fvc::snGrad(p) * mesh.magSf() * fvc::interpolate(rAU)

You just need to multiply 1/A.

I think the reason is that eqn.flux() is more effective, since it only needs to use the information of lduMatrix. When implicit advection plays a role, it is more effective.


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