CFD Online Discussion Forums

CFD Online Discussion Forums (http://www.cfd-online.com/Forums/)
-   OpenFOAM (http://www.cfd-online.com/Forums/openfoam/)
-   -   Continuity. Stop critertion of PISO and SIMPLE in OpenFOAM solvers. (http://www.cfd-online.com/Forums/openfoam/80245-continuity-stop-critertion-piso-simple-openfoam-solvers.html)

idrama September 20, 2010 16:12

Continuity. Stop critertion of PISO and SIMPLE in OpenFOAM solvers.
 
Hallo Foamers!

I have a question related to OpenFOAM solvers with SIMPLE or PISO loop. Why was as stop criterion the number of iteration used or implemented,respectively, and not a number of accuracy, e.g. 1e-10 (sum,global,cumulative)? Has this a specific reason?

Cheers!

niklas September 20, 2010 17:53

Quote:

Originally Posted by idrama (Post 275871)
Why was as stop criterion the number of iteration used or implemented,respectively, and not a number of accuracy, e.g. 1e-10 (sum,global,cumulative)?

Where?

Do you know you can add an option to the SIMPLE dictionary in system/fvSolution
convergence 1.0e-5;

idrama September 21, 2010 03:15

I did not know that! Honestly, I am a bit surprised. How can I set up such criterion? In guides and documents, I have nothing read about this, anywhere! Where I can find it?

niklas September 21, 2010 03:50

if you are using simpleFoam it is already there, so you just have to add it to the SIMPLE dictionary.

Code:

SIMPLE
{
    nNonOrthogonalCorrectors 1;
    convergence              1.0e-8;
}

a good place to start would be the source code of the application you are using (in this case simpleFoam)
where you will find initConvergenceCheck.H

Code:

// initialize values for convergence checks

    scalar eqnResidual = 1, maxResidual = 0;
    scalar convergenceCriterion = 0;

    simple.readIfPresent("convergence", convergenceCriterion);

so you see that convergence is set to 0 if you dont define it.

and then the convergenceCheck.H which is the last include of the iteration-loop

Code:

// check convergence

if (maxResidual < convergenceCriterion)
{
    Info<< "reached convergence criterion: " << convergenceCriterion << endl;
    runTime.writeAndEnd();
    Info<< "latestTime = " << runTime.timeName() << endl;
}


idrama September 21, 2010 04:26

Thank you for you posted. I will looking for it!


All times are GMT -4. The time now is 02:45.