CFD Online Discussion Forums

CFD Online Discussion Forums (http://www.cfd-online.com/Forums/)
-   OpenFOAM Running, Solving & CFD (http://www.cfd-online.com/Forums/openfoam-solving/)
-   -   Unable to get converged solution using SimpleFoam (http://www.cfd-online.com/Forums/openfoam-solving/113209-unable-get-converged-solution-using-simplefoam.html)

jr33 February 14, 2013 17:35

Unable to get converged solution using SimpleFoam
 
3 Attachment(s)
Dear Foamers

I am using following simpleFoam solver ( steady state incompressible laminar flow) : mySimpleFoam.tar.gz ( taken from one of the thread), If I run case_of2 example, output shows converged solution.

When I run same solver on my geometry (micro-scale) , I never see a converged solution message on console even though if I run it for long time. For this case, I noticed a large number for " time step continuation error" in the log file. Please find attached log_file, residual plot and fvscheme files. In para view, I see velocity data range in infinity.

I can run ( time dependent ) pisoFoam solver on my geometry, it works fine.

How to get converged solution?

log file looks like this:

Quote:

Create time

Create mesh for time = 0

Reading field p

Reading field U

Reading field C

Reading/calculating face flux field phi

Selecting incompressible transport model Newtonian
Selecting RAS turbulence model laminar

SIMPLE: convergence criteria
field p tolerance 1e-12
field U tolerance 1e-12
field C tolerance 1e-12
field T tolerance 1e-12
field "(k|epsilon|omega)" tolerance 1e-12


Starting time loop

Time = 1

smoothSolver: Solving for Ux, Initial residual = 0.991325, Final residual = 0.000574364, No Iterations 6
smoothSolver: Solving for Uy, Initial residual = 0.990776, Final residual = 0.000629279, No Iterations 6
smoothSolver: Solving for Uz, Initial residual = 1, Final residual = 0.00651658, No Iterations 6
smoothSolver: Solving for C, Initial residual = 1, Final residual = 0.00651644, No Iterations 6
GAMGPCG: Solving for p, Initial residual = 1, Final residual = 0.0370417, No Iterations 2
time step continuity errors : sum local = 3.29775e+06, global = -4175.02, cumulative = -4175.02
ExecutionTime = 0.69 s ClockTime = 1 s

Time = 2

smoothSolver: Solving for Ux, Initial residual = 0.606801, Final residual = 0.0018159, No Iterations 6
smoothSolver: Solving for Uy, Initial residual = 0.593997, Final residual = 0.00171948, No Iterations 6
smoothSolver: Solving for Uz, Initial residual = 0.470896, Final residual = 0.00182848, No Iterations 6
smoothSolver: Solving for C, Initial residual = 0.431325, Final residual = 0.00171857, No Iterations 6
GAMGPCG: Solving for p, Initial residual = 0.999989, Final residual = 0.0555931, No Iterations 3
time step continuity errors : sum local = 3.33152e+06, global = -504.3, cumulative = -4679.32
ExecutionTime = 1.02 s ClockTime = 1 s

Time = 3

smoothSolver: Solving for Ux, Initial residual = 0.399376, Final residual = 0.00112685, No Iterations 6
smoothSolver: Solving for Uy, Initial residual = 0.370886, Final residual = 0.00132803, No Iterations 6
smoothSolver: Solving for Uz, Initial residual = 0.427011, Final residual = 0.00391918, No Iterations 6
smoothSolver: Solving for C, Initial residual = 0.315567, Final residual = 0.00229577, No Iterations 6
GAMGPCG: Solving for p, Initial residual = 0.0266644, Final residual = 0.00241473, No Iterations 3
time step continuity errors : sum local = 2.67906e+06, global = -206.142, cumulative = -4885.46
ExecutionTime = 1.34 s ClockTime = 1 s

Time = 4

smoothSolver: Solving for Ux, Initial residual = 0.270695, Final residual = 0.00133643, No Iterations 6
smoothSolver: Solving for Uy, Initial residual = 0.28929, Final residual = 0.00196956, No Iterations 6
smoothSolver: Solving for Uz, Initial residual = 0.503112, Final residual = 0.000947335, No Iterations 9
smoothSolver: Solving for C, Initial residual = 0.225821, Final residual = 0.000216302, No Iterations 9
GAMGPCG: Solving for p, Initial residual = 0.0116013, Final residual = 0.000575014, No Iterations 3
time step continuity errors : sum local = 1.93363e+06, global = -19.2139, cumulative = -4904.68
ExecutionTime = 1.67 s ClockTime = 2 s


Time = 8026

smoothSolver: Solving for Ux, Initial residual = 0.0189528, Final residual = 4.9705e-05, No Iterations 9
smoothSolver: Solving for Uy, Initial residual = 0.01574, Final residual = 3.78383e-05, No Iterations 9
smoothSolver: Solving for Uz, Initial residual = 0.0155287, Final residual = 3.95947e-05, No Iterations 9
smoothSolver: Solving for C, Initial residual = 0.00179368, Final residual = 9.95282e-06, No Iterations 6
GAMGPCG: Solving for p, Initial residual = 0.0888095, Final residual = 0.00631107, No Iterations 2
time step continuity errors : sum local = 7.15596e+110, global = 9.51894e+108, cumulative = 1.79797e+110
ExecutionTime = 2625.31 s ClockTime = 2625 s

Time = 8027

smoothSolver: Solving for Ux, Initial residual = 0.0189746, Final residual = 4.9723e-05, No Iterations 9
smoothSolver: Solving for Uy, Initial residual = 0.0157005, Final residual = 3.76341e-05, No Iterations 9
smoothSolver: Solving for Uz, Initial residual = 0.0155749, Final residual = 3.96477e-05, No Iterations 9


jr33 February 14, 2013 17:41

fvSolution file attached
 
I also get following error at 8000 time step:

#0 Foam::error::printStack(Foam::Ostream&) in "/opt/openfoam211/platforms/linuxGccDPOpt/lib/libOpenFOAM.so"
#1 Foam::sigFpe::sigHandler(int) in "/opt/openfoam211/platforms/linuxGccDPOpt/lib/libOpenFOAM.so"
#2 Uninterpreted:
#3 Foam::PCG::solve(Foam::Field<double>&, Foam::Field<double> const&, unsigned char) const in "/opt/openfoam211/platforms/linuxGccDPOpt/lib/libOpenFOAM.so"
#4 Foam::fvMatrix<double>::solve(Foam::dictionary const&) in "/opt/openfoam211/platforms/linuxGccDPOpt/lib/libfiniteVolume.so"
#5
at mysimpleFoam.C:0
#6
in "/home/jay/OpenFOAM/jay-2.1.1/platforms/linuxGccDPOpt/bin/mysimpleFoam"
#7 __libc_start_main in "/lib/i386-linux-gnu/libc.so.6"
#8
in "/home/jay/OpenFOAM/jay-2.1.1/platforms/linuxGccDPOpt/bin/mysimpleFoam"


Quote:

fvSolution file:

solvers
{
p
{
solver GAMG;
tolerance 1e-12;
relTol 0.001;
minIter 5;
maxIter 100;
smoother GaussSeidel; // DIC; //DICGaussSeidel; //FDIC;
nPreSweeps 1;
nPostSweeps 3;
nFinestSweeps 3;
scaleCorrection true;
directSolveCoarsest false;
cacheAgglomeration on;
nCellsInCoarsestLevel 50; // 500
agglomerator faceAreaPair;
mergeLevels 1; // 3
}


U
{
solver smoothSolver;
smoother GaussSeidel;
tolerance 1e-12;
relTol 0.01;
nSweeps 3;
maxIter 100;
minIter 10;
}

C
{
solver smoothSolver;
smoother GaussSeidel;
tolerance 1e-12;
relTol 0.01;
nSweeps 3;
maxIter 100;
minIter 10;
}

T
{
solver smoothSolver;
smoother GaussSeidel;
tolerance 1e-12;
relTol 0.01;
nSweeps 3;
maxIter 100;
minIter 10;
}
}

SIMPLE
{
nNonOrthogonalCorrectors 0;

residualControl
{
p 1e-12;
U 1e-12;
C 1e-12;
T 1e-12;
"(k|epsilon|omega)" 1e-12;
}
}

relaxationFactors
{
p 0.3;
U 0.7;
C 0.3;
T 0.3;

}


// **************************

Quote:

fvSchemes file

ddtSchemes
{
default steadyState;
}

gradSchemes
{
default cellLimited Gauss linear 1;
grad(p) cellLimited Gauss linear 1;
grad(U) cellLimited Gauss linear 1;
}

divSchemes
{
default none;
div(phi,U) Gauss upwind;
div(phi,k) Gauss upwind;
div(phi,epsilon) Gauss upwind;
div(phi,R) Gauss upwind;
div(R) Gauss linear;
div(phi,nuTilda) Gauss upwind;

div((nuEff*dev(T(grad(U))))) Gauss linear;
div(phi,T) Gauss upwind;

div((nuEff*dev(C(grad(U))))) Gauss linear;
div(phi,C) Gauss upwind;
}

laplacianSchemes
{
default none;
laplacian(nuEff,U) Gauss linear corrected;
laplacian((1|A(U)),p) Gauss linear corrected;
laplacian(DkEff,k) Gauss linear corrected;
laplacian(DepsilonEff,epsilon) Gauss linear corrected;
laplacian(DREff,R) Gauss linear corrected;
laplacian(DnuTildaEff,nuTilda) Gauss linear corrected;

laplacian(DT,T) Gauss linear corrected;
laplacian(DT,C) Gauss linear corrected;

}

interpolationSchemes
{
default linear;
interpolate(U) linear;
}

snGradSchemes
{
default corrected;
}

fluxRequired
{
default no;
p ;
}


// ******************************

sfigato February 15, 2013 04:10

Hi Reno,

in order to get a convergence message it is enough to increase the convergence criteria in your fvSolution file (residual control).

Although your solution seems to be stable, the residual (initial??) is too high. Did you get good results from your computation?

What about the mesh?
Can you post your checkMesh file?

Regards
Marco

jr33 February 15, 2013 12:38

Thanks Marco, here is checkMesh file .......

Quote:

nProcs : 1
sigFpe : Enabling floating point exception trapping (FOAM_SIGFPE).
fileModificationChecking : Monitoring run-time modified files using timeStampMaster
allowSystemOperations : Disallowing user-supplied system call operations

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Create time

Create polyMesh for time = 0

Time = 0

Mesh stats
points: 18079
faces: 177642
internal faces: 163538
cells: 85295
boundary patches: 6
point zones: 0
face zones: 0
cell zones: 0

Overall number of cells of each type:
hexahedra: 0
prisms: 0
wedges: 0
pyramids: 0
tet wedges: 0
tetrahedra: 85295
polyhedra: 0

Checking topology...
Boundary definition OK.
Cell to face addressing OK.
Point usage OK.
Upper triangular ordering OK.
Face vertices OK.
Number of regions: 1 (OK).

Checking patch topology for multiply connected surfaces ...
Patch Faces Points Surface topology
inlet 108 68 ok (non-closed singly connected)
outlet1 76 50 ok (non-closed singly connected)
outlet2 96 61 ok (non-closed singly connected)
outlet3 96 61 ok (non-closed singly connected)
outlet4 80 53 ok (non-closed singly connected)
walls 13648 6881 ok (non-closed singly connected)

Checking geometry...
Overall domain bounding box (-2.64993e-06 -7.50942e-07 -5.62952e-06) (5.87453e-06 5.84166e-07 4.32026e-06)
Mesh (non-empty, non-wedge) directions (1 1 1)
Mesh (non-empty) directions (1 1 1)
Boundary openness (8.18345e-17 -2.59238e-17 -3.34998e-17) OK.
Max cell openness = 1.54844e-16 OK.
Max aspect ratio = 4.3452 OK.
Minumum face area = 4.03065e-17. Maximum face area = 8.01346e-14. Face area magnitudes OK.
Min volume = 1.09442e-25. Max volume = 6.5517e-21. Total volume = 1.42006e-17. Cell volumes OK.
Mesh non-orthogonality Max: 48.3461 average: 15.119
Non-orthogonality check OK.
Face pyramids OK.
Max skewness = 3.79094 OK.
Coupled point location match (average 0) OK.

Mesh OK.

End



jr33 February 15, 2013 14:03

Quote:

Originally Posted by sfigato (Post 407954)
Hi Reno,

in order to get a convergence message it is enough to increase the convergence criteria in your fvSolution file (residual control).

Although your solution seems to be stable, the residual (initial??) is too high. Did you get good results from your computation?

What about the mesh?
Can you post your checkMesh file?

Regards
Marco

How I can check good results from my computation, I can check flow in must equal to flow out: conservation check?

sfigato February 16, 2013 05:43

Hi Reno,

so..first you must check your results. Are they physical or not?
Your checkMesh looks good (may skewness is a little bit too high)!
As I said before..let the computation run fore more iteration and set the tolerance of all variable equal to zero!

Regards
Marco

P.S.: remeber to remove the residual control (unless your computation may stop too early)


All times are GMT -4. The time now is 12:02.