|
[Sponsors] |
November 18, 2013, 12:14 |
pisoFoam floating point exception
|
#1 |
New Member
Philipp Reinhold
Join Date: Nov 2013
Posts: 8
Rep Power: 12 |
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? |
|
November 19, 2013, 01:52 |
|
#2 |
Senior Member
Join Date: Dec 2011
Posts: 111
Rep Power: 19 |
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.
|
|
November 19, 2013, 02:28 |
|
#3 |
Senior Member
Bernhard
Join Date: Sep 2009
Location: Delft
Posts: 790
Rep Power: 21 |
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.
|
|
November 19, 2013, 02:35 |
|
#4 |
Senior Member
Join Date: Dec 2011
Posts: 111
Rep Power: 19 |
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.
|
|
November 19, 2013, 04:45 |
|
#5 |
New Member
Philipp Reinhold
Join Date: Nov 2013
Posts: 8
Rep Power: 12 |
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. |
|
November 19, 2013, 05:22 |
|
#6 |
Senior Member
Bernhard
Join Date: Sep 2009
Location: Delft
Posts: 790
Rep Power: 21 |
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.
|
|
November 19, 2013, 05:28 |
|
#7 | |
Senior Member
Join Date: Dec 2011
Posts: 111
Rep Power: 19 |
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:
Not as a function of time, given that you have "washed away" any unphysical initial condition. Quote:
On that point we agree. |
||
November 19, 2013, 05:33 |
|
#8 |
Senior Member
Bernhard
Join Date: Sep 2009
Location: Delft
Posts: 790
Rep Power: 21 |
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
|
|
November 19, 2013, 06:45 |
|
#9 |
Senior Member
Join Date: Dec 2011
Posts: 111
Rep Power: 19 |
||
November 25, 2013, 09:37 |
|
#10 |
New Member
Philipp Reinhold
Join Date: Nov 2013
Posts: 8
Rep Power: 12 |
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 |
|
November 25, 2013, 09:48 |
|
#11 |
New Member
Philipp Reinhold
Join Date: Nov 2013
Posts: 8
Rep Power: 12 |
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. |
|
November 26, 2013, 03:55 |
|
#12 |
Senior Member
Join Date: Dec 2011
Posts: 111
Rep Power: 19 |
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? |
|
|
|
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 |