CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   OpenFOAM Running, Solving & CFD (https://www.cfd-online.com/Forums/openfoam-solving/)
-   -   Too much iterations for k, epsilon with Pointwise mesh (https://www.cfd-online.com/Forums/openfoam-solving/160273-too-much-iterations-k-epsilon-pointwise-mesh.html)

tigger October 5, 2015 03:51

Too much iterations for k, epsilon with Pointwise mesh
 
2 Attachment(s)
Hello, Foamers

I'm trying to solve flow past a floating square box.
The solver is interFoam(Multiphase water, air).
The domain, suface mesh, volume mesh are generated by Pointwise and I set boundary conditions as below :
Inlet, oulet, atmosphere : patch
bottom, midplane, side : symmetry
box : wall

Volume mesh is composed of tetrahedron mesh.
Mesh quality checked by checkMesh utility was fine with some skew cells.

The problem is that Iterations for alpha.water and k, epsilon is 1000 and they blow up later...
I already faced this situation when the mesh was structured mesh.. I thought unstructured mesh will be a solution for this situation but... nothing changed
Here is terminal output
Code:

Time = 0.000119976

smoothSolver:  Solving for alpha.water, Initial residual = 2.10029456432146e-06, Final residual = 0.0004465071153368, No Iterations 1000
Phase-1 volume fraction = 0.626758885470715  Min(alpha1) = 0  Max(alpha1) = 2.51427683470041
MULES: Correcting alpha.water
MULES: Correcting alpha.water
MULES: Correcting alpha.water
Phase-1 volume fraction = 0.626758885470664  Min(alpha1) = 0  Max(alpha1) = 2.5111203422983
GAMG:  Solving for p_rgh, Initial residual = 1, Final residual = 0.000412756523842382, No Iterations 4
GAMG:  Solving for p_rgh, Initial residual = 0.101705754512192, Final residual = 0.000100928301496662, No Iterations 4
time step continuity errors : sum local = 3.65937145748082e-07, global = 1.53699517734662e-08, cumulative = 1.53784861589855e-08
GAMG:  Solving for p_rgh, Initial residual = 0.0312962317006745, Final residual = 1.39933880273081e-05, No Iterations 5
GAMG:  Solving for p_rgh, Initial residual = 0.00996448307785306, Final residual = 7.62790351177124e-06, No Iterations 5
time step continuity errors : sum local = 3.52922607711308e-08, global = 7.58057755027101e-10, cumulative = 1.61365439140126e-08
GAMG:  Solving for p_rgh, Initial residual = 0.00468422248968285, Final residual = 4.66016854885601e-06, No Iterations 5
GAMG:  Solving for p_rgh, Initial residual = 0.00252317454590901, Final residual = 3.49969247968792e-08, No Iterations 12
time step continuity errors : sum local = 1.63507334863481e-10, global = 2.95406036297376e-12, cumulative = 1.61394979743756e-08
smoothSolver:  Solving for epsilon, Initial residual = 0.0633688257280632, Final residual = 0.0632861832323256, No Iterations 1000
smoothSolver:  Solving for k, Initial residual = 0.999999985453537, Final residual = 1.00589685637645, No Iterations 1000
ExecutionTime = 314.36 s  ClockTime = 325 s

I guess this is because of initial condition or improper numerical scheme and numerical solver.. so, I attached my fvSolution, fvScheme, controlDict in system folder and 0.org folder..
Have anyone experienced this too much iteration problem? If so, how can I solve this problem? :confused:

Best regards,
tigger

RodriguezFatz October 8, 2015 09:17

This is quite unusual... the linear solver doesn't converge at all.
Did you try to run a different solver for k and epsilon?

Code:

    "(U|k|epsilon|omega|UFinal|kFinal|epsilonFinal|omegaFinal)"   
    {
        solver          PBiCG;
        preconditioner  DILU;
        tolerance        1e-12;
        relTol          1.0e-2;
        maxIter        100;
    };

Edit: maybe you should also use that for alpha, because that doesn't converge either.

RodriguezFatz October 8, 2015 09:22

Just additionally, this is probably not the reason for your problems but you should always start a case with the uncorrected laplacian scheme, which is numerically more stable.
Code:

laplacianSchemes
{
    default        Gauss linear uncorrected;
}


JNSN October 8, 2015 10:07

There is no reason why an unstructured tet mesh should work better than a structured mesh. I would never prever a tet mesh for free surface flows. Can you plot some screenshots of your mesh and from your initialized solution (especially alpha field)?

tigger October 9, 2015 12:58

Quote:

Originally Posted by RodriguezFatz (Post 567159)
Just additionally, this is probably not the reason for your problems but you should always start a case with the uncorrected laplacian scheme, which is numerically more stable.
Code:

laplacianSchemes
{
    default        Gauss linear uncorrected;
}


Thanks for your kind comment. I'll try other solver that you recommended and then update the result. Thank you!

tigger October 9, 2015 13:00

Quote:

Originally Posted by JNSN (Post 567168)
There is no reason why an unstructured tet mesh should work better than a structured mesh. I would never prever a tet mesh for free surface flows. Can you plot some screenshots of your mesh and from your initialized solution (especially alpha field)?

Thank you JNSN! I'll update screenshot of mesh later.

tigger October 10, 2015 09:47

Thanks! Philipp
 
1 Attachment(s)
Quote:

Originally Posted by RodriguezFatz (Post 567157)
This is quite unusual... the linear solver doesn't converge at all.
Did you try to run a different solver for k and epsilon?

Code:

    "(U|k|epsilon|omega|UFinal|kFinal|epsilonFinal|omegaFinal)"   
    {
        solver          PBiCG;
        preconditioner  DILU;
        tolerance        1e-12;
        relTol          1.0e-2;
        maxIter        100;
    };

Edit: maybe you should also use that for alpha, because that doesn't converge either.


I tried to use PBiCG solver you suggested
Now the K, epsilon iterations become stable

Code:

DILUPBiCG:  Solving for alpha.water, Initial residual = 9.41257114753943e-07, Final residual = 6.69250718355886e-11, No Iterations 1
Phase-1 volume fraction = 0.626760378142215  Min(alpha1) = -1.16185071173307e-06  Max(alpha1) = 1.00150910236442
Applying the previous iteration compression flux
MULES: Correcting alpha.water
MULES: Correcting alpha.water
MULES: Correcting alpha.water
MULES: Correcting alpha.water
Phase-1 volume fraction = 0.626760378142315  Min(alpha1) = -1.16185071173307e-06  Max(alpha1) = 1.00150901821138
GAMG:  Solving for p_rgh, Initial residual = 0.000268113771479435, Final residual = 1.31199231523444e-07, No Iterations 5
GAMG:  Solving for p_rgh, Initial residual = 8.9469043939113e-05, Final residual = 8.44752800100194e-08, No Iterations 5
time step continuity errors : sum local = 1.15163397615092e-11, global = -1.29175373620592e-12, cumulative = -1.64869290559949e-06
GAMG:  Solving for p_rgh, Initial residual = 4.07512657567795e-05, Final residual = 3.94730642661602e-08, No Iterations 6
GAMG:  Solving for p_rgh, Initial residual = 3.7833103278026e-05, Final residual = 3.70998267918502e-08, No Iterations 5
time step continuity errors : sum local = 5.07003233184369e-12, global = 7.53555301266291e-13, cumulative = -1.64869215204419e-06
GAMG:  Solving for p_rgh, Initial residual = 1.44866320494826e-05, Final residual = 3.79502063541261e-08, No Iterations 4
GAMG:  Solving for p_rgh, Initial residual = 1.19072340126574e-05, Final residual = 4.81493222880152e-08, No Iterations 3
time step continuity errors : sum local = 6.55465097078055e-12, global = -4.41939941264471e-13, cumulative = -1.64869259398413e-06
DILUPBiCG:  Solving for epsilon, Initial residual = 0.000317455367614486, Final residual = 3.20877793792615e-07, No Iterations 2
DILUPBiCG:  Solving for k, Initial residual = 8.09326775207824e-09, Final residual = 8.09326775207824e-09, No Iterations 0
ExecutionTime = 12857.71 s  ClockTime = 13028 s

However, the calculation just blow up after some iterations.. sad..
You can see the residuals in attached picture.
I have to find solutions for this situation..
Anyway, Thanks again!

tigger October 10, 2015 09:51

Here is the picture
 
Quote:

Originally Posted by JNSN (Post 567168)
There is no reason why an unstructured tet mesh should work better than a structured mesh. I would never prever a tet mesh for free surface flows. Can you plot some screenshots of your mesh and from your initialized solution (especially alpha field)?

Jan,

I attached alpha field screenshot. I'm not sure this picture is that you wanted to see...
Well, by the way, I had same trouble(too many iterations for k, epsilon..) when I used Hex mesh(Structured grid)...

Thanks!

RodriguezFatz October 12, 2015 07:14

You need to post the log output of the blowup (and some iterations before)...

JNSN October 12, 2015 07:17

Jason, I can't see the screenshots. Can you upload again?

tigger October 12, 2015 07:53

1 Attachment(s)
Quote:

Originally Posted by RodriguezFatz (Post 567700)
You need to post the log output of the blowup (and some iterations before)...

Sorry, Here is log output as a txt file
Actually, I stopped the calculation because the residual is getting weird..

Thanks,
tigger

tigger October 12, 2015 07:54

1 Attachment(s)
Quote:

Originally Posted by JNSN (Post 567701)
Jason, I can't see the screenshots. Can you upload again?

Oops, I forgot to attach screenshot
Here it is

Thanks,
tigger

JNSN October 12, 2015 07:56

ok, can you do one more with mesh grid on?

RodriguezFatz October 12, 2015 08:04

Can you post the fvSchemes and fvSolution that you used for to get that log output?

tigger October 12, 2015 08:22

2 Attachment(s)
Quote:

Originally Posted by RodriguezFatz (Post 567712)
Can you post the fvSchemes and fvSolution that you used for to get that log output?

Here it is;)

tigger October 12, 2015 08:25

2 Attachment(s)
Quote:

Originally Posted by JNSN (Post 567709)
ok, can you do one more with mesh grid on?

Here are they!

RodriguezFatz October 12, 2015 08:34

Several things:
1) You did not change the laplacian scheme to uncorrected.
2) You should use numerically safe settings for the other schemes as well, such as "Gauss upwind" instead of linearUpwind and vanLeer. If they work, you can start to introduce better schemes, one by one.
3) Using p_rghFinal with relTol 0 is a waste of time, I guess. I would commend out that "p_rghFinal" block.
4) This is a PIMPLE based solver, right? You use "nOuterCorrectors 1" which basically means, that you don't run PIMPLE but PISO. But PISO needs a Courant number of less than 1, which is already violated in the 3rd or 4th time step. Thus, you need to reduce the time step or increase the numer of outer (PIMPLE-)iterations per time step. If you do the second, you should set turbOnFinalIterOnly to "no" and also use some safer relaxation factors for the pressure (such as p 0.3) for the beginning. Try to set nOuterCorrectors 15 or so and see if that runs stable.

tigger October 12, 2015 08:51

Quote:

Originally Posted by RodriguezFatz (Post 567722)
Several things:
1) You did not change the laplacian scheme to uncorrected.
2) You should use numerically safe settings for the other schemes as well, such as "Gauss upwind" instead of linearUpwind and vanLeer. If they work, you can start to introduce better schemes, one by one.
3) Using p_rghFinal with relTol 0 is a waste of time, I guess. I would commend out that "p_rghFinal" block.
4) This is a PIMPLE based solver, right? You use "nOuterCorrectors 1" which basically means, that you don't run PIMPLE but PISO. But PISO needs a Courant number of less than 1, which is already violated in the 3rd or 4th time step. Thus, you need to reduce the time step or increase the numer of outer (PIMPLE-)iterations per time step. If you do the second, you should set turbOnFinalIterOnly to "no" and also use some safer relaxation factors for the pressure (such as p 0.3) for the beginning. Try to set nOuterCorrectors 15 or so and see if that runs stable.

1), 2) OK, I'll try to use laplacian scheme to uncorrected! and Gauss upwind scheme
3) relTol 0 on p_rghFinal will be removed!
4) I'm using 'interFoam'solver and this solver may be based on PIMPLE algorithm.. I missed that the 'nOuterCorrector 1' means calculation is running PISO algorithm.. Thanks for your kind advice :D

Those 4 advice will be adopted to my case and I'll update results!

tigger October 13, 2015 04:37

3 Attachment(s)
Well,:rolleyes:

every advices applied to new case!
1) uncorrected laplacian scheme,
2) Gauss upwind scheme for all fvSchemes
3) relTol 0 was removed
4) nOuterCorrectors 15, turbOnFinalIterOnly no

Now, I can see that bounding k is getting bigger and bigger
Finally, the calculation blow up and openfoam do Iteration 1000 suddenly in final pimple iteration (Iteration 15)...

Here is my log file and fvSolution & fvSchemes...

* When I run simulation with turbOnFinalIterOnly yes the volume fraction went above 1.. Can someone explain how turbOnFinalIterOnly affect the pimple iteration or recommend some paper to study?

RodriguezFatz October 13, 2015 04:50

Jason, I don't know the solver you use and also don't know what it solves for ;)
But: Is there any differential equation for "alpha" that is solved? Like a transport equation? You need to set an under-relaxation factor for PIMPLE for all the values (such as k, epsilon, p, alpha), otherwise this will probably be very unstable. Please try that. For debugging: You can have a look at the residuals "before" and "after" setting the new under-relaxation factor in the log file. If they change, you set the right value.


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