CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums

Comments

Register Blogs Members List Search Today's Posts Mark Forums Read

  1. Old Comment

    All about the PIMPLE algorithm - Part II

    hi,

    Quote:
    I have a simple question about Pimple algorithm. I'm using pimple for my solver in combustion, but I don't know why still pressure doesn't converge after long time simulation.

    The residual is still same as Piso for pressure.

    I'm using GAMG solver for pressure with tolerance 1e-9 for pressure.3 iterations for inner part and 50 iterations for outer iteration and normally pressure reached 10e-9 in 10-12 iterations.

    The discretization method is limitedlinear 1, and BCs is zerGrad for pressure in inlet and totalPressure in outlet. for velocity fixedValue in inlet and inletOutlet for outlet.

    Could you please tell me why still I have oscillation in pressure residual between 0.1 to 0.001 without convergence?
    some thoughts

    1) maybe you should refine your mesh and doing the simulation again
    2) depending of which OpenFOAM you are currently using you could try out a PCG or ICCG solver to calculate your pressure
    3) if checkMesh shows some errors it could also help to add one or two nonorthogonal corrector steps in fvSolution to improve the quality of your results
    permalink
    Posted August 24, 2017 at 06:48 by fimbull fimbull is offline
  2. Old Comment
    rezaeimahdi's Avatar

    All about the PIMPLE algorithm - Part II

    Hello all,

    I have a simple question about Pimple algorithm. I'm using pimple for my solver in combustion, but I don't know why still pressure doesn't converge after long time simulation.

    The residual is still same as Piso for pressure.

    I'm using GAMG solver for pressure with tolerance 1e-9 for pressure.3 iterations for inner part and 50 iterations for outer iteration and normally pressure reached 10e-9 in 10-12 iterations.

    The discretization method is limitedlinear 1, and BCs is zerGrad for pressure in inlet and totalPressure in outlet. for velocity fixedValue in inlet and inletOutlet for outlet.

    Could you please tell me why still I have oscillation in pressure residual between 0.1 to 0.001 without convergence?
    permalink
    Posted July 19, 2017 at 02:07 by rezaeimahdi rezaeimahdi is offline
  3. Old Comment

    All about the PIMPLE algorithm - Part II

    I would say yes, with rigid body FSI, updating of the mesh in every outer loop is a must for dynamic simulations. Both the interFoam solver and sixDoF solvers should be required to converge before moving on to the next time step. This usually takes about 6 - 10 iterations even for the most dynamic cases with a reasonably good adaptive relaxation technique.

    Quote:
    Originally Posted by j91 View Comment
    Hi,

    When using PIMPLE in a dynamic mesh solver such as interDyMFoam, the solver seems to execute mesh.update() in every PIMPLE iteration. Is this usually necessary or do you happen to know if it's appropriate to modify this and only update the mesh once per timestep? It's quite computationally intensive to update it in every outer loop.

    EDIT: My mistake, the reason for the remeshing in every outer loop correction was due to accidentally mixing together some settings for sixDoF and prescribed motion solvers. The question might still be relevant for other cases, but in my case PIMPLE is running smoothly again.

    Thank you for the guide, it was a useful read.

    Thanks,
    Jonathan
    permalink
    Posted March 7, 2017 at 04:38 by haze_1986 haze_1986 is offline
  4. Old Comment

    All about the PIMPLE algorithm - Part II

    Hi,

    When using PIMPLE in a dynamic mesh solver such as interDyMFoam, the solver seems to execute mesh.update() in every PIMPLE iteration. Is this usually necessary or do you happen to know if it's appropriate to modify this and only update the mesh once per timestep? It's quite computationally intensive to update it in every outer loop.

    EDIT: My mistake, the reason for the remeshing in every outer loop correction was due to accidentally mixing together some settings for sixDoF and prescribed motion solvers. The question might still be relevant for other cases, but in my case PIMPLE is running smoothly again.

    Thank you for the guide, it was a useful read.

    Thanks,
    Jonathan
    permalink
    Posted March 5, 2017 at 21:50 by j91 j91 is offline
    Updated March 6, 2017 at 00:26 by j91
  5. Old Comment
    Tobi's Avatar

    All about the PIMPLE algorithm - Part II

    Dear Emjay,

    first check out the section about the PIMPLE algo in my book.
    permalink
    Posted October 22, 2016 at 18:12 by Tobi Tobi is offline
  6. Old Comment

    All about the PIMPLE algorithm - Part II

    Hi Tobi,

    are there any advantages using a PIMPLE in a transient simulation when the Courant Number is below 1?

    My thoughts are that when the Co-Number is below 1 the nOuterCorrectors could set 1 and don't waste any computational resources.
    But i don't know if there are any advantages to increase nCorrectors when the solver is working in PISO mode.

    And by the way, in that case that the solver is running in pimple mode with a Courant number greater than 1,
    are there any artifacts like wiggles/overshoots when calculating with a passive scalar?


    Best wishes,
    emjay
    permalink
    Posted October 22, 2016 at 09:59 by emjay emjay is offline
    Updated October 22, 2016 at 14:30 by emjay
  7. Old Comment

    All about the PIMPLE algorithm - Part II

    Than you so much for your very useful explanation of PimpleFOAM
    permalink
    Posted February 6, 2016 at 20:23 by aghsin aghsin is offline
  8. Old Comment
    Tobi's Avatar

    All about the PIMPLE algorithm - Part II

    Hi Gary,

    ohh... my fault. I read some old comment and replayed.
    You can Print out the residuals using gnuplot - search the forum to get a script. I think also in the foamwiki you can find something.

    To your values... relTol should be 0. You can play with the other value. At least start your simulation and check if your solver realize the convergence criterions!
    permalink
    Posted December 18, 2015 at 08:58 by Tobi Tobi is offline
  9. Old Comment

    All about the PIMPLE algorithm - Part II

    Thanks Tobi

    how can I print out the residual at the end of each pimple loop for U T or P?

    Regards,
    Gary
    permalink
    Posted December 18, 2015 at 08:35 by Gary Gary is offline
  10. Old Comment
    permalink
    Posted December 18, 2015 at 08:11 by Tobi Tobi is offline
  11. Old Comment

    All about the PIMPLE algorithm - Part II

    residualControl does not work

    Hi Tobi,

    I found the your tips of using PIMPLE very useful.

    I don't know why somehow the residualControl does work for my case.

    I deliberately set very big values see below and set nOuterCorrectors = 30. I have expected the PIMPLE loop will exit without reaching the maximum (30), but in fact at each time level the PIMPLE loop exits only after reaching the maximum.

    could you think of any thing possibly wrong in my fvSolution file?

    residualControl
    {
    "T.*|U.*"
    {
    tolerance 1;
    relTol 1;
    }

    "p_rgh.*|alpha.liquid.*"
    {
    tolerance 1;
    relTol 1;
    }
    }

    Many thanks

    Gary
    permalink
    Posted December 18, 2015 at 07:40 by Gary Gary is offline
  12. Old Comment

    All about the PIMPLE algorithm - Part II

    excellent and wonderful explanation on PIMPLE! what you post here reaaaally made my day. thanks so much Tobi.

    but one question: in the equations subDict in relaxationFactors Dict, the relaxed equation is UEqn but why it gives "U|k|epsilon" and "(U|k|epsilon)Final" ? is this related to the turbulence modeling? how should i organize my equations subDict if i use the zeroEquation turbulent model? ( my UEquation: turbulence->divR(U) )

    BTW, i've got several questions about the shallowWaterFoam implemented with the PIMPLE algo post here. http://www.cfd-online.com/Forums/ope...t-h-relax.html
    do you mind taking a look?

    best regards,

    karelke
    permalink
    Posted November 20, 2015 at 01:11 by cfdopenfoam cfdopenfoam is offline
    Updated November 21, 2015 at 07:14 by cfdopenfoam
  13. Old Comment
    Tobi's Avatar

    All about the PIMPLE algorithm - Part II

    If you set lower values you will be less accurate within one time step. This depend on your problem. Imagine a sine wave and you want to approximate it. The first necessary thing is that you should be accurate enough in time to resolve the curvature. If you divide the timestep in a way that you have four time steps within one period (2pi) then you can imagine that you will not get all the informations of the problem. Furthermore consider that the residual control only work if you are using outer loop to leave the outer loop for the next time steps. Most people do not consider that. In the case of the sine wave, the more accurate you want, means that the calculated values should be at the sine curvature itself, the lower the residuals should be. Its not so easy to answer as you already mentioned. Also I have not the time to make a general investigation to that.

    Thanks for the feedback to my website.
    permalink
    Posted November 10, 2015 at 04:55 by Tobi Tobi is offline
  14. Old Comment

    All about the PIMPLE algorithm - Part II

    Hi Tobi,

    I was talking about the residual control in the PIMPLE-Algorithm. Regarding my question I was not clear. I wanted to know how you decide what values to set in residual control. But I assume it is not so easy to answer. What I will do now is run a few simulations and test different values. So I can see how it changes the result in my case.
    Thank you for your literature suggestion. I'll read this section as soon as I have access to this book again. By the way, you have an interesting website.

    Best regards,

    Kate
    permalink
    Posted November 10, 2015 at 04:23 by KateEisenhower KateEisenhower is offline
  15. Old Comment
    Tobi's Avatar

    All about the PIMPLE algorithm - Part II

    About what residual control are you talking? In SIMPLE or PIMPLE algorithm?

    Normally it is depending on your problem and the amount of cells you have and so furth. I can not give you any literature nor links. Maybe you will find something in Ferziger Perić. Literature no. [1] here: http://www.holzmann-cfd.de/index.php/en/literature

    I know that there is a section about error estimation and stuff like that which will actual belong to the residuals.
    permalink
    Posted November 9, 2015 at 04:23 by Tobi Tobi is offline
  16. Old Comment

    All about the PIMPLE algorithm - Part II

    Dear Tobi,

    thank you for this reply. Can you give any hints how the residual control values depend on the problem, or can you recommend some literature or links on this topic?
    Indeed I am doing a simpleFoam simulation on a wing profile. Since I'm particulary interested in high AoA, I want to do a transient simulation too.

    Best regards,

    Kate
    permalink
    Posted November 9, 2015 at 03:50 by KateEisenhower KateEisenhower is offline
  17. Old Comment
    Tobi's Avatar

    All about the PIMPLE algorithm - Part II

    Dear Kate,

    for the residual control I put values from 1e-4 to 1e-8 depending on my problem. But do not mix up that residualControl with those used within the SIMPLE algorithm. In PIMPLE we use it to abort one timestep iteration and go on in time, however using SIMPLE its the residuals to stop the whole simulation. If you are doing a steady-state simulation I assume that you are using a SIMPLE solver and therefor your explanation is correct. Always check out the values you are interested. Sometimes it could happen that the pressure / velocity has reached a low level residual but the value you are interested is still not converged.

    In your case you are doing everything well. Also you could implement some code that will check out the drag and lift coeffs. If the difference from two enclosed timesteps are less than some limit you can stop the simulation.

    Kind regards,
    Tobi
    permalink
    Posted November 9, 2015 at 03:34 by Tobi Tobi is offline
  18. Old Comment

    All about the PIMPLE algorithm - Part II

    Hi Tobi,

    many thanks for this very helpful blog entry! I have one question though: How do you decide what value you put as tolerance in residual control?
    When running a steady-state simulation I treat it this way: I am montitoring the residuals and when they are not decreasing any more on a already low level I look at the drag coefficient C_W for example and when this value is not changing anymore I am stopping the simulation and consider it as converged.

    Best regards,

    Kate
    permalink
    Posted November 5, 2015 at 11:46 by KateEisenhower KateEisenhower is offline
  19. Old Comment

    All about the PIMPLE algorithm - Part II

    Hi Tobi;

    If i relax U, i do not need storePrevIter(). Calling UEqn.relax(). {Directly working over the matrix}
    If i relax p, i need storePrevIter(). Calling p.relax(). {will relax with the variable stored in p.storepreviousIter()}.
    [http://www.cfd-online.com/Forums/openfoam-solving/59183-relaxation-factors-transient-solvers.html]

    I work with interFoam and pitzDaily is new to me. Though i change the relaxation from 0{constant result expected} to 1{dependent only over the present time computation} for U, I get the same magnitude for 'U'. I run the simulation for 1 sec just to check. Am i running the sim for very less time or am i doing wrong?

    NOTE: I am using nOuterCorrections =1. Though I think this shall not effect the behavior or values computed.

    -Saideep
    permalink
    Posted August 20, 2015 at 07:05 by Saideep Saideep is offline
  20. Old Comment
    Tobi's Avatar

    All about the PIMPLE algorithm - Part II

    Dear Saideep,

    I am sorry but I can not tell you whats wrong in your case. Unfortunatelly I have no time for checking the stuff about storePrevIter() but I made a test with 2.3.1 and figured out that the pimple algorithm is more stable now (as far as I could find out in the few minutes).
    permalink
    Posted August 18, 2015 at 08:16 by Tobi Tobi is offline

All times are GMT -4. The time now is 18:07.