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

pisoFoam floating point exception

Register Blogs Community New Posts Updated Threads Search

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   November 18, 2013, 12:14
Default pisoFoam floating point exception
  #1
New Member
 
Philipp Reinhold
Join Date: Nov 2013
Posts: 8
Rep Power: 12
philipp1 is on a distinguished road
hi everybody

i am both new in this forum and new in working with openFoam, so my question might have already been asked:
I am simulating a flow between a bearing seal with pisoFoam and it is more difficult than expected. The simulation starts normally but crashes after a few iterations and gets a floating point exception. The values e.g. courant number or residuals for every field seems to be very bad and i don't know how to set the boundary conditions more cleverly.
Here's what openfoam tells me:

Time = 2e-06

Courant Number mean: 0.535171 max: 95.0841
DILUPBiCG: Solving for Ux, Initial residual = 0.607909, Final residual = 9.45847e-06, No Iterations 16
DILUPBiCG: Solving for Uy, Initial residual = 0.609447, Final residual = 3.75473e-06, No Iterations 16
DILUPBiCG: Solving for Uz, Initial residual = 0.803986, Final residual = 7.22237e-06, No Iterations 18
DICPCG: Solving for p, Initial residual = 0.736272, Final residual = 0.035037, No Iterations 17
DICPCG: Solving for p, Initial residual = 0.56383, Final residual = 0.0270592, No Iterations 12
DICPCG: Solving for p, Initial residual = 0.447643, Final residual = 0.0183214, No Iterations 12
time step continuity errors : sum local = 0.0480735, global = 0.000117736, cumulative = -0.000244923
DICPCG: Solving for p, Initial residual = 0.657206, Final residual = 0.0294647, No Iterations 22
DICPCG: Solving for p, Initial residual = 0.647601, Final residual = 0.0271486, No Iterations 20
DICPCG: Solving for p, Initial residual = 0.442871, Final residual = 9.59629e-07, No Iterations 269
time step continuity errors : sum local = 1.14195e-05, global = -1.81854e-07, cumulative = -0.000245105
DILUPBiCG: Solving for k, Initial residual = 0.997715, Final residual = 0.000100161, No Iterations 1001
bounding k, min: -2.91556e+16 max: 9.18229e+16 average: 1.65263e+15
ExecutionTime = 10.62 s ClockTime = 11 s

Calculating averages

Time = 2.1e-06

Courant Number mean: 15.0944 max: 106193
DILUPBiCG: Solving for Ux, Initial residual = 0.989672, Final residual = 9.94377e-06, No Iterations 785
DILUPBiCG: Solving for Uy, Initial residual = 0.950586, Final residual = 8.02475e-06, No Iterations 748
DILUPBiCG: Solving for Uz, Initial residual = 0.958259, Final residual = 0.00246023, No Iterations 1001
DICPCG: Solving for p, Initial residual = 0.927001, Final residual = 0.03177, No Iterations 181
DICPCG: Solving for p, Initial residual = 0.0936563, Final residual = 0.00439542, No Iterations 70
DICPCG: Solving for p, Initial residual = 0.0510531, Final residual = 0.002174, No Iterations 150
time step continuity errors : sum local = 3.29805, global = 0.754715, cumulative = 0.75447
DICPCG: Solving for p, Initial residual = 0.515771, Final residual = 0.0156505, No Iterations 204
DICPCG: Solving for p, Initial residual = 0.841602, Final residual = 0.0363577, No Iterations 210
DICPCG: Solving for p, Initial residual = 0.91541, Final residual = 9.77158e-07, No Iterations 723
time step continuity errors : sum local = 0.133791, global = 0.00489355, cumulative = 0.759364
DILUPBiCG: Solving for k, Initial residual = 0.999203, Final residual = 8.12419, No Iterations 1001
bounding k, min: -1.35815e+21 max: 2.13407e+21 average: 3.61189e+17
ExecutionTime = 20.46 s ClockTime = 21 s

Calculating averages

Time = 2.2e-06

Courant Number mean: 1.19267e+06 max: 1.45138e+10
DILUPBiCG: Solving for Ux, Initial residual = 0.999996, Final residual = 133.098, No Iterations 1001
DILUPBiCG: Solving for Uy, Initial residual = 0.999994, Final residual = 161.388, No Iterations 1001
DILUPBiCG: Solving for Uz, Initial residual = 0.999991, Final residual = 1300.75, No Iterations 1001
DICPCG: Solving for p, Initial residual = 1, Final residual = 2.54022, No Iterations 1001
DICPCG: Solving for p, Initial residual = 0.832023, Final residual = 3.22341, No Iterations 1001
DICPCG: Solving for p, Initial residual = 0.893036, Final residual = 0.923995, No Iterations 1001
time step continuity errors : sum local = 3.33967e+17, global = -4.25056e+12, cumulative = -4.25056e+12
DICPCG: Solving for p, Initial residual = 0.999972, Final residual = 0.954452, No Iterations 1001
DICPCG: Solving for p, Initial residual = 0.68811, Final residual = 29.164, No Iterations 1001
DICPCG: Solving for p, Initial residual = 0.874848, Final residual = 2.3057, No Iterations 1001
time step continuity errors : sum local = 2.04048e+25, global = -5.37226e+20, cumulative = -5.37226e+20
#0 Foam::error:rintStack(Foam::Ostream&) in "/opt/openfoam221/platforms/linux64GccDPOpt/lib/libOpenFOAM.so"
#1 Foam::sigFpe::sigHandler(int) in "/opt/openfoam221/platforms/linux64GccDPOpt/lib/libOpenFOAM.so"
#2 in "/lib/x86_64-linux-gnu/libc.so.6"
#3 Foam:ILUPreconditioner::calcReciprocalD(Foam::Fi eld<double>&, Foam::lduMatrix const&) in "/opt/openfoam221/platforms/linux64GccDPOpt/lib/libOpenFOAM.so"
#4 Foam:ILUPreconditioner:ILUPreconditioner(Foam: :lduMatrix::solver const&, Foam::dictionary const&) in "/opt/openfoam221/platforms/linux64GccDPOpt/lib/libOpenFOAM.so"
#5 Foam::lduMatrix:reconditioner::addasymMatrixCons tructorToTable<Foam:ILUPreconditioner>::New(Foam ::lduMatrix::solver const&, Foam::dictionary const&) in "/opt/openfoam221/platforms/linux64GccDPOpt/lib/libOpenFOAM.so"
#6 Foam::lduMatrix:reconditioner::New(Foam::lduMatr ix::solver const&, Foam::dictionary const&) in "/opt/openfoam221/platforms/linux64GccDPOpt/lib/libOpenFOAM.so"
#7 Foam::PBiCG::solve(Foam::Field<double>&, Foam::Field<double> const&, unsigned char) const in "/opt/openfoam221/platforms/linux64GccDPOpt/lib/libOpenFOAM.so"
#8 Foam::fvMatrix<double>::solveSegregated(Foam::dict ionary const&) in "/opt/openfoam221/platforms/linux64GccDPOpt/lib/libfiniteVolume.so"
#9 Foam::fvMatrix<double>::solve(Foam::dictionary const&) in "/opt/openfoam221/platforms/linux64GccDPOpt/lib/libincompressibleRASModels.so"
#10 Foam::fvMatrix<double>::solve() in "/opt/openfoam221/platforms/linux64GccDPOpt/lib/libincompressibleRASModels.so"
#11 Foam::incompressible::LESModels:neEqEddy::correc t(Foam::tmp<Foam::GeometricField<Foam::Tensor<doub le>, Foam::fvPatchField, Foam::volMesh> > const&) in "/opt/openfoam221/platforms/linux64GccDPOpt/lib/libincompressibleLESModels.so"
#12 Foam::incompressible::LESModel::correct() in "/opt/openfoam221/platforms/linux64GccDPOpt/lib/libincompressibleLESModels.so"
#13
in "/opt/openfoam221/platforms/linux64GccDPOpt/bin/pisoFoam"
#14 __libc_start_main in "/lib/x86_64-linux-gnu/libc.so.6"
#15
in "/opt/openfoam221/platforms/linux64GccDPOpt/bin/pisoFoam"
Gleitkomma-Ausnahme (Speicherabzug geschrieben)

do you know what can be done here? what boundary condition could be responsible for this situation?
philipp1 is offline   Reply With Quote

Old   November 19, 2013, 01:52
Default
  #2
Senior Member
 
Join Date: Dec 2011
Posts: 111
Rep Power: 19
haakon will become famous soon enough
You should not worry too much about the residuals in a transient simulation, however, as you say yourself, your CFL (Courant) number is way too high. Since this is the gap between some bearing surfaces, I assume that the geometry is small with really small cells, have you tried to reduce the timestep? Try different values: one half, one fifth, 1/10, 1/100 etc. of what you are currently using and see if the solution stabilize.
haakon is offline   Reply With Quote

Old   November 19, 2013, 02:28
Default
  #3
Senior Member
 
Bernhard
Join Date: Sep 2009
Location: Delft
Posts: 790
Rep Power: 21
Bernhard is on a distinguished road
Quote:
Originally Posted by haakon View Post
You should not worry too much about the residuals in a transient simulation
What? In a transient simulation, within one timestep you want the initial residual for p to decrease, as this is the residual after a single pressure correction loop. For the other variables, you also want the initial residual to decrease to the final residual that you set in fvSolution, otherwise it is also not converged. This is clearly not the case for the timestep he shows here, i.e. the solution for that timestep is not converged. I agree that a too large timestep might be an issue here.
Bernhard is offline   Reply With Quote

Old   November 19, 2013, 02:35
Default
  #4
Senior Member
 
Join Date: Dec 2011
Posts: 111
Rep Power: 19
haakon will become famous soon enough
Sorry for my bad formulations, I totally agree with you of course. What I meant was that you should not expect initial residuals to decrease, neither should you expect the final residuals to decrease below your set tolerances. In this case some of the residuals are of course too high, that is because the soler has reached the maximum number of iterations allowed. But increasing this value will not make anything better, as it probably is the timestep that is is the problem here.
haakon is offline   Reply With Quote

Old   November 19, 2013, 04:45
Default
  #5
New Member
 
Philipp Reinhold
Join Date: Nov 2013
Posts: 8
Rep Power: 12
philipp1 is on a distinguished road
Thank you for your very fast reply, haakon and bernhard.
yes, you're right, i am working with a very small geometry. one part of it is only 10µm thick. so i might choose smaller time steps the next time i am working on my simulation. i already tried a very similar geometry, where this one part is 0.1mm thick, so i was confused, when the 10µm didn't work. but since the other boundary conditions are more or less the same, i'm very optimistic that you have made out the problem here.
philipp1 is offline   Reply With Quote

Old   November 19, 2013, 05:22
Default
  #6
Senior Member
 
Bernhard
Join Date: Sep 2009
Location: Delft
Posts: 790
Rep Power: 21
Bernhard is on a distinguished road
Quote:
Originally Posted by haakon View Post
What I meant was that you should not expect initial residuals to decrease, neither should you expect the final residuals to decrease below your set tolerances.
For pressure you DO expect your initial residual to decrease. This is the reason why we use a loop. Also I DO expect my final residuals to decrease below the set tolerance (either tolerance or relTol), philip probably set relTol tot 0.05 or something. Otherwise, what is the point of the whole fvSolution file? In case you reach the maximum amount of iterations, there is probably something wrong.
Bernhard is offline   Reply With Quote

Old   November 19, 2013, 05:28
Default
  #7
Senior Member
 
Join Date: Dec 2011
Posts: 111
Rep Power: 19
haakon will become famous soon enough
Sorry for messing this up so completely, but I think I still don't manage to express myself clearly (this is starting to become embarassing for me). I will try once more to rephrase myself and comment on your points:

Quote:
Originally Posted by Bernhard View Post
For pressure you DO expect your initial residual to decrease.
Not as a function of time, given that you have "washed away" any unphysical initial condition.

Quote:
Originally Posted by Bernhard View Post
Also I DO expect my final residuals to decrease below the set tolerance (either tolerance or relTol)
Again, if you plot one of your final resiuduals as a function of time, I guess they are pretty constant, slightly below the set tolerance (but not by more than the amount of residual decrease caused by one single iteration).

Quote:
Originally Posted by Bernhard View Post
In case you reach the maximum amount of iterations, there is probably something wrong.
On that point we agree.
haakon is offline   Reply With Quote

Old   November 19, 2013, 05:33
Default
  #8
Senior Member
 
Bernhard
Join Date: Sep 2009
Location: Delft
Posts: 790
Rep Power: 21
Bernhard is on a distinguished road
That is indeed what I meant with: "within one timestep" in my first post. And in the other cases the final residual does not really have a meaning, except to indicate that the matrix solver did it's job correctly. We probably mean the same thing
Bernhard is offline   Reply With Quote

Old   November 19, 2013, 06:45
Default
  #9
Senior Member
 
Join Date: Dec 2011
Posts: 111
Rep Power: 19
haakon will become famous soon enough
Quote:
Originally Posted by Bernhard View Post
That is indeed what I meant with: "within one timestep" in my first post.
And I apparently need to attend a course in basic English to learn reading...
haakon is offline   Reply With Quote

Old   November 25, 2013, 09:37
Default
  #10
New Member
 
Philipp Reinhold
Join Date: Nov 2013
Posts: 8
Rep Power: 12
philipp1 is on a distinguished road
hi again,

since my simulation didn't run, even with a deltaT of 1e-11, i assume, this case isn't so easy to solve. there are still only few iterations to be calculated and my maximum courant number than now 1.99834e+48.
so i have a general question about the courant number: is it true, that this number expresses the dependance of the velocity in one element of the geometry in relation to the time step`? so i could either put the time step smaller again or choose a coarser meshing.
could anyone from the experts here give me a short feedback, if my thoughts go in the right direction?

thank you
philipp1 is offline   Reply With Quote

Old   November 25, 2013, 09:48
Default
  #11
New Member
 
Philipp Reinhold
Join Date: Nov 2013
Posts: 8
Rep Power: 12
philipp1 is on a distinguished road
could there also be a storage problem`? the number of iterations seem to be the same everytime, so when i choose deltaT 1e-09, the abort time is 2.8e-08, when i choose 1e-10, it is 2.8e-09 and so on.
i can't explain this phenomenon, so it would be great if you helped me out here.
philipp1 is offline   Reply With Quote

Old   November 26, 2013, 03:55
Default
  #12
Senior Member
 
Join Date: Dec 2011
Posts: 111
Rep Power: 19
haakon will become famous soon enough
When you see that the number of iterations reach 1001 as in the example you posted, it means that the linear solver has reached the maximum allowed iterations (defaults to 1000 afaik). Basically, your simulation setup has some errors.

Have you double-checked all boundary conditions? Are you sure that inlet and outlet is specified the correct way? I see that the first variable to diverge is k, are the BC's for k correct?
haakon is offline   Reply With Quote

Reply


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
pisoFoam : error floating point Dbutant OpenFOAM Running, Solving & CFD 10 October 9, 2012 09:45
Ercoftac centrifugal pump case study bug, Openfoam 1.6-ext (Floating point exception) ArianeJasmin OpenFOAM Programming & Development 1 April 4, 2012 14:11
simpleFoam Floating point exception error -help sudhasran OpenFOAM Running, Solving & CFD 3 March 12, 2012 16:23
Pipe flow in settlingFoam floating point exception jochemvandenbosch OpenFOAM Running, Solving & CFD 4 February 16, 2012 03:24
block-structured mesh for t-junction Robert@cfd ANSYS Meshing & Geometry 20 November 11, 2011 04:59


All times are GMT -4. The time now is 10:57.