CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > Software User Forums > OpenFOAM > OpenFOAM Running, Solving & CFD

PIMPLE and PISO Loops Corrector Dependent Results

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

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   November 4, 2025, 17:21
Default PIMPLE and PISO Loops Corrector Dependent Results
  #1
New Member
 
Michael
Join Date: Mar 2024
Posts: 17
Rep Power: 3
GardenLake is on a distinguished road
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!
GardenLake is offline   Reply With Quote

Old   November 5, 2025, 17:59
Default
  #2
New Member
 
Michael Häckel
Join Date: Nov 2025
Posts: 16
Rep Power: 2
michael_h is on a distinguished road
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.
michael_h is offline   Reply With Quote

Old   November 6, 2025, 23:34
Default
  #3
New Member
 
Michael
Join Date: Mar 2024
Posts: 17
Rep Power: 3
GardenLake is on a distinguished road
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!
GardenLake is offline   Reply With Quote

Reply

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are On
Refbacks are On


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


All times are GMT -4. The time now is 14:26.