CFD Online Discussion Forums (http://www.cfd-online.com/Forums/)
-   OpenFOAM Pre-Processing (http://www.cfd-online.com/Forums/openfoam-pre-processing/)
-   -   Convergence crtieria (http://www.cfd-online.com/Forums/openfoam-pre-processing/62141-convergence-crtieria.html)

 lam April 3, 2007 12:31

Hi I am trying to test SIMP

Hi

I am trying to test SIMPLEFOAM with a Bird-Carreau law and I have a very trivial question: I noticed that, when running the non linear computation, I have to specify the number of iterations a priori, (their number is being suggested by the proogramme itself).

Is it possible to run the programme in such a way that the computation interrupts automatically as soon as convergence is reached ? (comvergence criterium).

Thank you in davance,

Lam

 lam April 4, 2007 05:07

Oh, THANKS a lot Mark, for rep

Oh, THANKS a lot Mark, for replying me!

I am going give a go right now!

Cheers,

Lam

 olesen April 5, 2007 04:40

I guess I wasn't explicit enou

I guess I wasn't explicit enough. You can either solve the equation and ignore the return value:

OR solve the equation and use the return value:

eqnResidual = solve(UEqn() == -fvc::grad(p)).initialResidual();

but not both.

It is also essential to capture the mass residual. ie. replace

pEqn.solve();

with
if (nonOrth == 0)
{
eqnResidual = pEqn().solve().initialResidual();
maxResidual = max(eqnResidual, maxResidual);
}
else
{
pEqn().solve();
}

The residuals from the turbulence equation are not directly accessible, but this might change in OpenFOAM 1.4

 olesen April 5, 2007 06:46

It looks mostly reasonable exc

It looks mostly reasonable except you don't need this line twice.

eqnResidual = solve(UEqn() == -fvc::grad(p)).initialResidual();

 lam April 5, 2007 09:20

Hi again Mark, I had remove

Hi again Mark,

I had removed the line which is not needed as you said. And of course, I did the Allmake to update the simpleFoam.C file.
I made a computation, but the result has not changed.
You can take a look at my fvSolution file:

***********************

solvers
{

p ICCG 1e-03 0.01;
U BICCG 1e-03 0.1;
k BICCG 1e-03 0.1;
epsilon BICCG 1e-03 0.1;
R BICCG 1e-03 0.1;
nuTilda BICCG 1e-03 0.1;

}

***********************

I just want a 1e-03 solver tolerance.
But the computation still stopps at the endtime (=4000 itrations). I just have a solution wich seems to not menage to reach the convergence.

Can you give some advice to get it right?

Lam

 olesen April 5, 2007 09:50

I don't wish to be impolite, b

I don't wish to be impolite, but re-check the original suggestion:
...
if (simple.found("convergence"))
{
...
}

Check "readSIMPLEControls.H" file to see what is being read there and its relation to the following if (simple.found(..)) conditional.

Again, I really don't wish to be impolite, but I really don't have enough time to help much more than I already did. Sorry but you need to do this alone (or keep some basic commercial support).

/mark

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