|
[Sponsors] | |||||
PIMPLE and PISO Loops Corrector Dependent Results |
![]() |
|
|
LinkBack | Thread Tools | Search this Thread | Display Modes |
|
|
|
#1 |
|
New Member
Michael
Join Date: Mar 2024
Posts: 17
Rep Power: 3 ![]() |
Hello,
I am running twoPhaseEulerFoam simulations and am getting faster dispersed phase flow when I increase the number of nCorrectors and nOuterCorrectors. The speed values do not seem to be converging when I increase them to 20+. I am testing at a "damBreak" simulation and the speed of the dispersed phase increases with inner and outer correctors but slows down with smaller courant numbers. Does anyone have suggestions on the best way to resolve this issue and get converged results. Is it a discretization scheme issue, matrix solver issue, or something else? I have zero mesh-nonorthogonality and this is what my fvSolutions file looks like: /*--------------------------------*- C++ -*----------------------------------*\ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | Website: https://openfoam.org \\ / A nd | Version: 7 \\/ M anipulation | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class dictionary; location "system"; object fvSolution; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // solvers { "alpha.*" { nAlphaCorr 1; nAlphaSubCycles 2; smoothLimiter 0.1; implicitPhasePressure yes; solver smoothSolver; smoother symGaussSeidel; tolerance 1e-9; relTol 0; minIter 1; } p_rgh { solver GAMG; smoother DIC; tolerance 1e-8; relTol 0; } p_rghFinal { $p_rgh; relTol 0; } "U.*" { solver smoothSolver; smoother symGaussSeidel; tolerance 1e-5; relTol 0; minIter 1; } "(h|e).*" { solver smoothSolver; smoother symGaussSeidel; tolerance 1e-6; relTol 0; minIter 1; } "Theta.*" { solver smoothSolver; smoother symGaussSeidel; tolerance 1e-6; relTol 0; minIter 1; } "(k|epsilon).*" { solver smoothSolver; smoother symGaussSeidel; tolerance 1e-5; relTol 0; minIter 1; } } PIMPLE { nOuterCorrectors 1; nCorrectors 20; nNonOrthogonalCorrectors 0; } relaxationFactors { equations { ".*" 1; } } // ************************************************** *********************** // This is what my fvSchemes file looks like: /*--------------------------------*- C++ -*----------------------------------*\ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | Website: https://openfoam.org \\ / A nd | Version: 7 \\/ M anipulation | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class dictionary; location "system"; object fvSchemes; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // ddtSchemes { default Euler; } gradSchemes { default Gauss linear; } divSchemes { default none; "div\(phi,alpha.*\)" Gauss vanLeer; "div\(phir,alpha.*\)" Gauss vanLeer; "div\(alphaRhoPhi.*,U.*\)" Gauss vanLeer; "div\(phi.*,U.*\)" Gauss vanLeer; "div\(alphaRhoPhi.*,(h|e).*\)" Gauss limitedLinear 1; "div\(alphaRhoPhi.*,K.*\)" Gauss limitedLinear 1; "div\(alphaPhi.*,p\)" Gauss limitedLinear 1; div((((thermo:rho.particles*nut.particles)*dev2(T( grad(U.particles))))+(((thermo:rho.particles*lambd a.particles)*div(phi.particles))*I))) Gauss linear; div((((alpha.water*thermo:rho.water)*nuEff.water)* dev2(T(grad(U.water))))) Gauss linear; div((((alpha.particles*thermo:rho.particles)*nuEff .particles)*dev2(T(grad(U.particles))))) Gauss linear; } laplacianSchemes { default Gauss linear uncorrected; bounded Gauss linear uncorrected; } interpolationSchemes { default linear; } snGradSchemes { default uncorrected; bounded uncorrected; } // ************************************************** *********************** // Thank you! |
|
|
|
|
|
|
|
|
#2 |
|
New Member
Michael Häckel
Join Date: Nov 2025
Posts: 16
Rep Power: 2 ![]() |
If the result depends on the number of correctors then according to my understanding the tolerances are too loose.
I would especially decrease the tolerance for k|epsilon maybe also some others. |
|
|
|
|
|
|
|
|
#3 |
|
New Member
Michael
Join Date: Mar 2024
Posts: 17
Rep Power: 3 ![]() |
Thanks for the advice!
It seems if I decrease my drag (increase particle size) that I can achieve result independence of correctors when I increase my number of correctors to more than a couple. I am still having issues when I change my courant number I get different results. My dispersed phase moves faster with a larger courant number and if I decrease it, it moves slower. I have been testing courant numbers in the range of 0.2-0.01 and the results can be significantly different. This occurs when I am in corrector independence range and when I am not. I think the issue is with the semi-implicit treatment of drag (maybe?) Has anyone dealt with the drag issue in twoPhaseEulerFoam or any solver that is similar? Thanks! |
|
|
|
|
|
![]() |
| Thread Tools | Search this Thread |
| Display Modes | |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| How to use PIMPLE properly? | floquation | OpenFOAM Running, Solving & CFD | 27 | August 12, 2024 11:15 |
| sonicFoam using PISO or PIMPLE mode? | Oliver Meng | OpenFOAM | 0 | July 10, 2022 13:35 |
| Initial residuals of p increases within the piso loop of pimpleFoam | efsolat | OpenFOAM Running, Solving & CFD | 0 | December 20, 2021 04:25 |
| My results become inconsistent when using PIMPLE (nOuterCorrectors>1) instead of PISO | FloB | OpenFOAM Running, Solving & CFD | 5 | May 17, 2021 07:17 |
| INCOHERENT RESULTS USING PIMPLE (PISO MODE) solver | angatri_14 | OpenFOAM Running, Solving & CFD | 3 | July 16, 2020 06:52 |