|
[Sponsors] |
![]() |
![]() |
#21 |
Senior Member
Philipp
Join Date: Jun 2011
Location: Germany
Posts: 1,297
Rep Power: 27 ![]() |
My original question was about a discussion in this thread where fredo490 said that OpenFOAM doesn't have a coupled solver and thus can't handle arbitrarily large time steps. But Fluent can handle these time steps without using a coupled solver, so my question was why. Also why isn't there a solver like that in OpenFoam, or is there any way I can tune pimpleFoam for larger time steps?
Also, what I am wondering: PISO, Simple, Simplec, Simpler... they are all more or less the same as I understand them. Just different approximations or some extra loops. But how can that lead to such different behaviour?
__________________
The skeleton ran out of shampoo in the shower. |
|
![]() |
![]() |
![]() |
![]() |
#22 |
Senior Member
Olivier
Join Date: Jun 2009
Location: France, grenoble
Posts: 272
Rep Power: 18 ![]() |
Hello,
Just a bad trick, if you solution don't change to much over time - try a "compressible" solver instead of incompressible,, even if you don't have much compressible effect => may run faster - and try with Local Time Stepping (LTS), ex: rhoLTSPimpleFoam instead of pimpleFoam. in fvSolution - use "nOuterCorrectors 10" <- 10 or more with residualControl to the wanted tolerance. ... And always check if the solution is correct ... But you still can't get as high dT as in Fluent. regards, olivier |
|
![]() |
![]() |
![]() |
![]() |
#23 |
Senior Member
Anton Kidess
Join Date: May 2009
Location: Germany
Posts: 1,377
Rep Power: 30 ![]() |
Phillip, read Jasak's comments on transient SIMPLE here:
http://www.cfd-online.com/OpenFOAM_D...es/1/1807.html Then have a look at: http://openfoamwiki.net/index.php/Ma...ransientSimple Also read more theory on PISO and SIMPLE. It is not as simple as just adding or removing extra loops.
__________________
*On twitter @akidTwit *Spend as much time formulating your questions as you expect people to spend on their answer. |
|
![]() |
![]() |
![]() |
![]() |
#24 | |
Senior Member
Philipp
Join Date: Jun 2011
Location: Germany
Posts: 1,297
Rep Power: 27 ![]() |
Quote:
"Still another method of this general type is derived by neglecting ui' in the first correction step as in the SIMPLE method but following... it is known as the PISO algorithm" And in Versteeg, Malalasekera: "PISO involves one predictor step and two corrector steps and may be seen as an extension of SIMPLE, with a further corrector step to enhance it." That's why I was stating that all these methods base on more or less the same principle. I am curious why you think they are essentially different (or not "just you", but why they actually are).
__________________
The skeleton ran out of shampoo in the shower. |
||
![]() |
![]() |
![]() |
![]() |
#25 |
Senior Member
Anton Kidess
Join Date: May 2009
Location: Germany
Posts: 1,377
Rep Power: 30 ![]() |
Yes, I agree the methods are related, but I don't think that's a strong argument to assume very similar numerical behavior (side-note: similarly, you could argue first and second order time discretization should have the same properties because they only differ by a factor theta).
PISO involves explicit correction steps, which is why your time step ends up being limited. These explicit correction steps are not part of the SIMPLE method. Another side note - the differences between PISO and SIMPLE grow when looking at compressible flows, as now also the density is updated in a different manner. Issa brings this up in his 1986 paper on the development of PISO.
__________________
*On twitter @akidTwit *Spend as much time formulating your questions as you expect people to spend on their answer. |
|
![]() |
![]() |
![]() |
![]() |
#26 |
Senior Member
Philipp
Join Date: Jun 2011
Location: Germany
Posts: 1,297
Rep Power: 27 ![]() |
I still got more questions, I really appreciate your help here!
I am wondering why I get this behaviour in pimpleFoam: residuals.png You can see that after 24 iterations pimple residuals jump at the last iteration to pretty much the initial value. Why? I thought this must be from under relaxation, which isn't done in the last iteration. But I then set relaxation factors to Code:
relaxationFactors { fields { p 0.8; } equations { "(U)" 0.7; "(k)" 0.8; "(epsilon)" 0.8; "(omega)" 0.8; } } This is the log output: Code:
PIMPLE: iteration 23 DILUPBiCG: Solving for Ux, Initial residual = 1.679199e-06, Final residual = 5.2347394e-09, No Iterations 2 DILUPBiCG: Solving for Uy, Initial residual = 2.1944388e-05, Final residual = 1.8097067e-07, No Iterations 2 DILUPBiCG: Solving for Uz, Initial residual = 4.1885199e-05, Final residual = 1.8273755e-07, No Iterations 2 GAMG: Solving for p, Initial residual = 0.0034921225, Final residual = 0.00032813228, No Iterations 1 time step continuity errors : sum local = 1.3572061e-08, global = 1.4769898e-11, cumulative = 2.9324676e-09 GAMG: Solving for p, Initial residual = 0.0012103037, Final residual = 0.00011895051, No Iterations 3 time step continuity errors : sum local = 4.9195925e-09, global = 7.4839779e-11, cumulative = 3.0073074e-09 DILUPBiCG: Solving for epsilon, Initial residual = 1.0191608e-05, Final residual = 8.6961352e-08, No Iterations 2 DILUPBiCG: Solving for k, Initial residual = 1.9168529e-06, Final residual = 9.0455142e-09, No Iterations 5 PIMPLE: iteration 24 DILUPBiCG: Solving for Ux, Initial residual = 1.6236176e-06, Final residual = 5.5279907e-09, No Iterations 2 DILUPBiCG: Solving for Uy, Initial residual = 2.1084076e-05, Final residual = 1.7394592e-07, No Iterations 2 DILUPBiCG: Solving for Uz, Initial residual = 4.0269511e-05, Final residual = 1.4442665e-07, No Iterations 2 GAMG: Solving for p, Initial residual = 0.0033965334, Final residual = 0.00033571154, No Iterations 1 time step continuity errors : sum local = 1.3884555e-08, global = 4.8871526e-12, cumulative = 3.0121945e-09 GAMG: Solving for p, Initial residual = 0.0012140916, Final residual = 0.00010521305, No Iterations 4 time step continuity errors : sum local = 4.3514973e-09, global = 8.6495586e-11, cumulative = 3.0986901e-09 DILUPBiCG: Solving for epsilon, Initial residual = 9.9529664e-06, Final residual = 8.4810541e-08, No Iterations 2 DILUPBiCG: Solving for k, Initial residual = 1.8475951e-06, Final residual = 5.5701423e-09, No Iterations 4 PIMPLE: iteration 25 DILUPBiCG: Solving for Ux, Initial residual = 2.7349049e-06, Final residual = 2.3595166e-08, No Iterations 7 DILUPBiCG: Solving for Uy, Initial residual = 4.7743527e-05, Final residual = 3.7953704e-07, No Iterations 7 DILUPBiCG: Solving for Uz, Initial residual = 9.2807878e-05, Final residual = 6.4070125e-07, No Iterations 9 GAMG: Solving for p, Initial residual = 0.2261028, Final residual = 0.020367173, No Iterations 3 time step continuity errors : sum local = 1.0216869e-06, global = -2.317465e-08, cumulative = -2.007596e-08 GAMG: Solving for p, Initial residual = 0.065461729, Final residual = 0.0063586886, No Iterations 4 time step continuity errors : sum local = 2.6827385e-07, global = -4.9828708e-08, cumulative = -6.9904668e-08 DILUPBiCG: Solving for epsilon, Initial residual = 3.4064378e-05, Final residual = 3.3123049e-07, No Iterations 5 DILUPBiCG: Solving for k, Initial residual = 5.9163051e-06, Final residual = 3.2299708e-08, No Iterations 8 PIMPLE: not converged within 25 iterations
__________________
The skeleton ran out of shampoo in the shower. |
|
![]() |
![]() |
![]() |
![]() |
#27 |
Senior Member
Anton Kidess
Join Date: May 2009
Location: Germany
Posts: 1,377
Rep Power: 30 ![]() |
I don't really use the pimple solver, so I can only guess. To me it looks like while your solution seems to be ok with the relaxation, the final result in iteration 24 is still not a great initial guess for a solution without underrelaxation. Thus in iteration 25, where no relaxation is applied, things break down. Hope someone with more experience with pimple chimes in too.
__________________
*On twitter @akidTwit *Spend as much time formulating your questions as you expect people to spend on their answer. |
|
![]() |
![]() |
![]() |
![]() |
#28 |
Senior Member
M. Montero
Join Date: Mar 2009
Location: Madrid
Posts: 153
Rep Power: 17 ![]() |
Would it be possible to use OF3.1-ext for pimpleDyMFoam to achieve higher CFL? That is, an overal implicit approach.
I am trying to simulate a wind turbine with 3 blades. The mesh just at trailing edge is really small so the time step should be really low to match a CFL=1. For perfom 1 iteration per 1 degree of rotation, the max CFL is around 700 while the average is around 0.007. For CFL=1, the simulation time maybe could last 2 months... |
|
![]() |
![]() |
![]() |
![]() |
#29 |
Senior Member
M. Montero
Join Date: Mar 2009
Location: Madrid
Posts: 153
Rep Power: 17 ![]() |
What about transientSimpleDyMFoam solver?
What are the diferences wrt pimpleDyMFoam? Last edited by be_inspired; March 25, 2015 at 05:54. |
|
![]() |
![]() |
![]() |
![]() |
#30 |
Retired Super Moderator
Bruno Santos
Join Date: Mar 2009
Location: Lisbon, Portugal
Posts: 10,978
Blog Entries: 45
Rep Power: 128 ![]() ![]() ![]() ![]() ![]() ![]() |
Greetings be_inspired,
For some details about "transientSimpleFoam": http://openfoamwiki.net/index.php/Ma...ransientSimple As for using a CFL higher than 0.5 or 1:
Bruno
__________________
|
|
![]() |
![]() |
![]() |
|
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
Superlinear speedup in OpenFOAM 13 | msrinath80 | OpenFOAM Running, Solving & CFD | 18 | March 3, 2015 05:36 |
How to write k and epsilon before the abnormal end | xiuying | OpenFOAM Running, Solving & CFD | 8 | August 27, 2013 15:33 |
dynamic Mesh is faster than MRF???? | sharonyue | OpenFOAM Running, Solving & CFD | 14 | August 26, 2013 07:47 |
A simple problem about Adaptive Time steps | sakurabogoda | CFX | 9 | December 12, 2012 05:22 |
Could anybody help me see this error and give help | liugx212 | OpenFOAM Running, Solving & CFD | 3 | January 4, 2006 18:07 |