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/)
-   -   programming & icoFoam (https://www.cfd-online.com/Forums/openfoam-programming-development/119064-programming-icofoam.html)

sasanghomi June 9, 2013 06:02

programming & icoFoam
 
Hi foamers ,
what is the relation between non-orthogonality in the grid and number of solving P.Equ ???
please take a look at this part of icoFoam :

PHP Code:

for (int nonOrth=0nonOrth<=nNonOrthCorrnonOrth++)
            {
                
fvScalarMatrix pEqn
                
(
                    
fvm::laplacian(rUAp) == fvc::div(phi)
                );

                
pEqn.setReference(pRefCellpRefValue);
                
pEqn.solve();

                if (
nonOrth == nNonOrthCorr)
                {
                    
phi -= pEqn.flux();
                }
            } 

why the number of solving P.Equ should be equal nNonOrthogonalCorrectors ??
I think in PISO algorithm the number of solving pressure equation should be equal nCorrectors. I think nNonOrthogonalCorrectors is related to quality of grid generation.
what is the relation between grid's quality and number of solving pressure equation??
Can anyone clarify this issue for me ?

Thanks and best regards,
Sasan.

wyldckat June 9, 2013 15:27

Hi Sasan,

Does this answer your questions: http://openfoamwiki.net/index.php/IcoFoam ?

Best regards,
Bruno

sasanghomi June 9, 2013 16:51

Hi Bruno,
Thanks for your reply.
I want to know that why the quantity of solving pressure equation is equal to quantity of nNonOrthogonalCorrectors ?

Thanks and best regards,
Sasan.

wyldckat June 9, 2013 17:33

Hi Sasan,

I'm not sure I understand you correctly... are you asking about the following code?
Code:

if (nonOrth == nNonOrthCorr)
{
    phi -= pEqn.flux();
}

edit: or is it about:
Code:

for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++)
Best regards,
Bruno

sasanghomi June 10, 2013 02:31

Hi Bruno,

I am asking about :

Code:

for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++)
Thanks and best regards,
Sasan.

wyldckat June 10, 2013 07:24

Hi Sasan,

Well, as the wiki page explains:
Quote:

Originally Posted by http://openfoamwiki.net/index.php/IcoFoam
// iteratively correct for non-orthogonality. The non-orthogonal part of the Laplacian is calculated from the most recent
// solution for pressure, using a deferred-correction approach.

Any explanation beyond this (that I could find) is on this thesis:
Quote:

Originally Posted by http://openfoamwiki.net/index.php/IcoFoam

... which I don't have time to read and study :(.

Best regards,
Bruno

sharonyue August 25, 2013 23:55

Hi ,

http://www.cfd-online.com/Forums/ope...tml#post447985
I think this will make it clear.
It is related to quality of grid generation and the non-orthogonal correction in the diffusion term, you can dig it in page.83 of Jasak's thesis.


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