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/)
-   -   Pressure won't converge using SimpleFoam (https://www.cfd-online.com/Forums/openfoam-solving/236749-pressure-wont-converge-using-simplefoam.html)

Richard97 June 14, 2021 07:02

Pressure won't converge using SimpleFoam
 
Hi All,

I'm running a case in simpleFoam and my pressure residuals won't converge. A similar case to this run a number of years ago had converged at this stage.

I have checked the mesh, and there are no issues with skewness or nonOrthogonality so I know the error doesn't lie there.

my fvScheme and fvSolution are as follows

fvSolution

solvers
{
p
{
solver GAMG;
tolerance 1e-6;
relTol 0.1;
smoother GaussSeidel;
nPreSweeps 0;
nPostSweeps 2;
cacheAgglomeration on;
agglomerator faceAreaPair;
nCellsInCoarsestLevel 10;
mergeLevels 1;
}

U
{
solver smoothSolver;
smoother GaussSeidel;
tolerance 1e-6;
relTol 0.1;
nSweeps 1;
}

k
{
solver smoothSolver;
smoother GaussSeidel;
tolerance 1e-6;
relTol 0.1;
nSweeps 1;
}

epsilon
{
solver smoothSolver;
smoother GaussSeidel;
tolerance 1e-6;
relTol 0.1;
nSweeps 1;
}
}

SIMPLE
{
nNonOrthogonalCorrectors 0;

residualControl
{
p 1e-3;
U 1e-4;
"(k|epsilon)" 1e-4;
}
}

relaxationFactors
{
fields
{
p 0.3;
}
equations
{
U 0.7;
k 0.7;
epsilon 0.7;
}
}

cache
{
grad(U);
}

fvScheme

ddtSchemes
{
default steadyState;
}

gradSchemes
{
default Gauss linear;
}

divSchemes
{
default none;
div(phi,U) bounded Gauss upwind;
div((nuEff*dev(T(grad(U))))) Gauss linear;
div(phi,epsilon) bounded Gauss upwind;
div(phi,k) bounded Gauss upwind;
div((nuEff*dev2(T(grad(U))))) Gauss linear;

}

laplacianSchemes
{
default Gauss linear limited corrected 0.333;
}

interpolationSchemes
{
default linear;
}

snGradSchemes
{
default limited corrected 0.333;
}

fluxRequired
{
default no;
p;
}

If anyone could advise, that would be greatly appreciated

Richard97 June 14, 2021 07:05

This is the most recent time step of the output


smoothSolver: Solving for Ux, Initial residual = 6.26867549999e-05, Final residual = 4.83802208018e-06, No Iterations 4
smoothSolver: Solving for Uy, Initial residual = 4.91362392681e-05, Final residual = 3.40070029735e-06, No Iterations 4
smoothSolver: Solving for Uz, Initial residual = 0.000164303461286, Final residual = 9.92105112991e-06, No Iterations 4
GAMG: Solving for p, Initial residual = 0.00202976194843, Final residual = 0.000165595182502, No Iterations 2
time step continuity errors : sum local = 8.95914605453e-09, global = 2.94382119613e-10, cumulative = -2.68013954291e-06
smoothSolver: Solving for epsilon, Initial residual = 0.000134760412047, Final residual = 7.63620479172e-06, No Iterations 2
smoothSolver: Solving for k, Initial residual = 0.000571158570201, Final residual = 3.84860947038e-05, No Iterations 4
ExecutionTime = 88904.63 s ClockTime = 90881 s

Tobermory June 15, 2021 07:13

Some suggestions:
- Check your boundary conditions. Are they identical to the previous set up? Has OF changed in its treatment of those boundary types since you last ran the case?
- do you get the same problem if you change the pressure solver from GAMG to PCG?
- How good is your mesh quality?

Maybe also look at the pressure field in paraview to see if there is a bump/discontinuity/irregularity in the pressure field - that might help you identify where the solution is stalling, and therefore help find the reason.

Good luck & let us know when you find the solution!

DevilX June 15, 2021 07:31

Hey Richard,

I think here lies the problem:

relaxationFactors
{
fields
{
p 0.3;
}
equations
{
U 0.7;
k 0.7;
epsilon 0.7;
}
}

At first, 0.3 in fields for p is low, try a higher one. Your residuals look good, so this hould help. Also put a factor in Equations for p in, like this:

relaxationFactors
{
fields
{
p 0.7;
}
equations
{
U 0.7;
k 0.7;
p 0.7;
epsilon 0.7;
}
}

geth03 June 24, 2022 08:28

Quote:

Originally Posted by DevilX (Post 806095)
Hey Richard,

I think here lies the problem:

relaxationFactors
{
fields
{
p 0.3;
}
equations
{
U 0.7;
k 0.7;
epsilon 0.7;
}
}

At first, 0.3 in fields for p is low, try a higher one. Your residuals look good, so this hould help. Also put a factor in Equations for p in, like this:

relaxationFactors
{
fields
{
p 0.7;
}
equations
{
U 0.7;
k 0.7;
p 0.7;
epsilon 0.7;
}
}

1. how do you know that p-field URF is too low? there is no general rule to that, but the industry standard is 0.3. the better value might be problem dependent, but how will you know that?

2. it is the first time i hear that p-Eqn should be underrelaxed. where did you get that one?

dlahaye June 24, 2022 11:17

For relaxation, see e.g. https://en.wikipedia.org/wiki/SIMPLE_algorithm and references cited.

geth03 July 4, 2022 05:17

Quote:

Originally Posted by dlahaye (Post 830417)
For relaxation, see e.g. https://en.wikipedia.org/wiki/SIMPLE_algorithm and references cited.

this is not a good reference when you consider how the simple algorithm is constructed in openfoam. the implementation is different from what the sources suggest.

URF for p-equation in OF will violate the mass conservation, so only the p-Field should be underrelaxed.

p_field_URF + U_eqn_URF = 1, this is a good rule.

@Richard97
stalling residuals are not telling if a solution is converging or not, i know that this behaviour is annoying. you should place samplePoints in your domain and track the iteration behaviour of those points. if they are not changing much, probably your problem is converged, considering your flow physics and numerics.

puneesh February 22, 2023 00:50

My p_rgh is not converging when using temperature
 
Hi all,
I am having a similar issue with pressure(p_rgh). I ran a simplefoam case without temperature, only for flow, and it converged. Then using that case I created buyoantboussinesqsimplefoam case for temperature but my p_rgh is not converging. My flow is incompressible.


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