Sudden jump in Courant number

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

 March 28, 2013, 11:22 Sudden jump in Courant number #1 Member   Nick Gutschow Join Date: Jan 2013 Posts: 36 Rep Power: 13 Hello Community, I was just performing a run based on setting a max courant # and then allowing delta-t to be thus determined. It was running fine for a good long while with a pretty much constant delta-t, then suddenly my Courant number jumped driving my time step to a tiny number. I am not sure why this happened or what could be the cause. Following is my error out put preceded by a few ok steps: Time = 977.071 Courant Number mean: 0.00467519 max: 0.999885 deltaT = 0.0270118 DILUPBiCG: Solving for T, Initial residual = 1, Final residual = 7.59256e-07, No Iterations 60 DILUPBiCG: Solving for x, Initial residual = 1, Final residual = 9.43605e-07, No Iterations 59 DICPCG: Solving for p_rgh, Initial residual = 0.0870639, Final residual = 0.000865217, No Iterations 52 time step continuity errors : sum local = 7.40233e-08, global = -8.48412e-11, cumulative = 7.71956e-08 DICPCG: Solving for p_rgh, Initial residual = 3.82801e-08, Final residual = 7.92509e-09, No Iterations 3 time step continuity errors : sum local = 5.85675e-07, global = -1.05916e-10, cumulative = 7.70897e-08 DILUPBiCG: Solving for epsilon, Initial residual = 0.996153, Final residual = 9.64634e-07, No Iterations 122 bounding epsilon, min: 9.50694e-16 max: 0.155945 average: 3.60892e-05 DILUPBiCG: Solving for k, Initial residual = 0.999998, Final residual = 8.72572e-07, No Iterations 134 bounding k, min: 9.67714e-16 max: 87344.6 average: 2451.87 ExecutionTime = 254059 s ClockTime = 254375 s Time = 977.098 Courant Number mean: 0.00468953 max: 0.99971 deltaT = 0.0270118 DILUPBiCG: Solving for T, Initial residual = 1, Final residual = 9.17066e-07, No Iterations 84 DILUPBiCG: Solving for x, Initial residual = 1, Final residual = 9.71196e-07, No Iterations 84 DICPCG: Solving for p_rgh, Initial residual = 1.31788e-05, Final residual = 1.1828e-07, No Iterations 55 time step continuity errors : sum local = 4.93554e-07, global = -2.26352e-10, cumulative = 7.68634e-08 DICPCG: Solving for p_rgh, Initial residual = 4.57708e-12, Final residual = 4.57708e-12, No Iterations 0 time step continuity errors : sum local = 2.05612e-05, global = -2.5084e-10, cumulative = 7.66125e-08 DILUPBiCG: Solving for epsilon, Initial residual = 0.00235085, Final residual = 7.90941e-07, No Iterations 76 bounding epsilon, min: 9.50694e-16 max: 2.13945e+08 average: 3.22189e+06 DILUPBiCG: Solving for k, Initial residual = 0.999299, Final residual = 7.18042e-07, No Iterations 86 bounding k, min: 3.55202e-23 max: 82597.7 average: 3430.49 ExecutionTime = 254076 s ClockTime = 254392 s Time = 977.125 Courant Number mean: 0.00472292 max: 0.999479 deltaT = 0.0270118 DILUPBiCG: Solving for T, Initial residual = 1, Final residual = 8.45779e-07, No Iterations 105 DILUPBiCG: Solving for x, Initial residual = 1, Final residual = 9.52527e-07, No Iterations 103 DICPCG: Solving for p_rgh, Initial residual = 0.997841, Final residual = 0.00916657, No Iterations 8 time step continuity errors : sum local = 1.90696e+07, global = 3.26638e-06, cumulative = 3.343e-06 DICPCG: Solving for p_rgh, Initial residual = 0.883009, Final residual = 9.12281e-09, No Iterations 388 time step continuity errors : sum local = 0.298708, global = -5.86849e-05, cumulative = -5.53419e-05 DILUPBiCG: Solving for epsilon, Initial residual = 0.99113, Final residual = 9.38871e-07, No Iterations 25 DILUPBiCG: Solving for k, Initial residual = 0.960113, Final residual = 5.47515e-07, No Iterations 269 bounding k, min: -3.68163e+10 max: 3.4845e+12 average: 1.53007e+09 ExecutionTime = 254106 s ClockTime = 254422 s Time = 977.153 Courant Number mean: 1.2938e+07 max: 4.73466e+10 deltaT = 5.70512e-13 DILUPBiCG: Solving for T, Initial residual = 1, Final residual = 7.2289e-07, No Iterations 273 DILUPBiCG: Solving for x, Initial residual = 1, Final residual = 8.32674e-07, No Iterations 272 DICPCG: Solving for p_rgh, Initial residual = 0.999999, Final residual = 0.00923768, No Iterations 31 time step continuity errors : sum local = 1.23449e-06, global = 5.51295e-13, cumulative = -5.53419e-05 DICPCG: Solving for p_rgh, Initial residual = 1.15602e-05, Final residual = 9.96864e-09, No Iterations 99 time step continuity errors : sum local = 2.37025e-08, global = -1.14165e-09, cumulative = -5.5343e-05 DILUPBiCG: Solving for epsilon, Initial residual = 5.36065e-05, Final residual = 4.28421e-07, No Iterations 1 bounding epsilon, min: -7.54892e+13 max: 2.02045e+24 average: 8.54127e+19 DILUPBiCG: Solving for k, Initial residual = 0.880602, Final residual = 8.68728e-07, No Iterations 603 bounding k, min: 2.87618e-25 max: 7.62765e+18 average: 2.37075e+15 ExecutionTime = 254159 s ClockTime = 254475 s --> FOAM Warning : From function Time:: operator++() in file db/Time/Time.C at line 1010 Increased the timePrecision from 6 to 7 to distinguish between timeNames at time 977.153 Time = 977.1525 Courant Number mean: 0.00042597 max: 3.14068 deltaT = 1.81652e-13 DILUPBiCG: Solving for T, Initial residual = 1, Final residual = 6.74016e-08, No Iterations 8 DILUPBiCG: Solving for x, Initial residual = 1, Final residual = 5.32963e-07, No Iterations 7 DICPCG: Solving for p_rgh, Initial residual = 0.00958667, Final residual = 8.30907e-05, No Iterations 7 time step continuity errors : sum local = 1.14926e-05, global = -4.44635e-10, cumulative = -5.53435e-05 DICPCG: Solving for p_rgh, Initial residual = 8.03935e-24, Final residual = 8.03935e-24, No Iterations 0 time step continuity errors : sum local = 7.61105e-05, global = -4.48859e-10, cumulative = -5.53439e-05 DILUPBiCG: Solving for epsilon, Initial residual = 0.0010099, Final residual = 2.57968e-22, No Iterations 1 DILUPBiCG: Solving for k, Initial residual = 1, Final residual = 9.25828e-07, No Iterations 7 bounding k, min: -2.84558e-18 max: 3.01788e+23 average: 3.81473e+19 ExecutionTime = 254162 s ClockTime = 254478 s --> FOAM Warning : From function Time:: operator++() in file db/Time/Time.C at line 1010 Increased the timePrecision from 7 to 9 to distinguish between timeNames at time 977.153 Time = 977.152504 Courant Number mean: 0.000329669 max: 2.45201 deltaT = 7.40829e-14 DILUPBiCG: Solving for T, Initial residual = 1, Final residual = 8.80591e-07, No Iterations 96 DILUPBiCG: Solving for x, Initial residual = 1, Final residual = 8.49176e-07, No Iterations 95 DICPCG: Solving for p_rgh, Initial residual = 1, Final residual = 0.00866437, No Iterations 9 time step continuity errors : sum local = 4.63765e+21, global = -3.90034e+07, cumulative = -3.90034e+07 DICPCG: Solving for p_rgh, Initial residual = 0.997029, Final residual = 9.81474e-09, No Iterations 407 time step continuity errors : sum local = 4.58984e+13, global = -1.78796e+07, cumulative = -5.6883e+07 DILUPBiCG: Solving for epsilon, Initial residual = 1, Final residual = 9.21145e-07, No Iterations 206 DILUPBiCG: Solving for k, Initial residual = 5.84859e-07, Final residual = 5.84859e-07, No Iterations 0 ExecutionTime = 254189 s ClockTime = 254505 s --> FOAM Warning : From function Time:: operator++() in file db/Time/Time.C at line 1010 Increased the timePrecision from 9 to 10 to distinguish between timeNames at time 977.153 Time = 977.1525042 Courant Number mean: 4.02526e+20 max: 1.99715e+23 deltaT = 3.70944e-37 DILUPBiCG: Solving for T, Initial residual = 4.90703e-05, Final residual = 4.39301e-08, No Iterations 1 DILUPBiCG: Solving for x, Initial residual = 3.88924e-05, Final residual = 8.27524e-08, No Iterations 1 DICPCG: Solving for p_rgh, Initial residual = 1, Final residual = 0.00973372, No Iterations 21 time step continuity errors : sum local = 4.35008e-07, global = -5.11292e-13, cumulative = -5.6883e+07 DICPCG: Solving for p_rgh, Initial residual = 0.0809365, Final residual = 9.56111e-09, No Iterations 333 time step continuity errors : sum local = 8.18481e-13, global = -1.16131e-16, cumulative = -5.6883e+07 DILUPBiCG: Solving for epsilon, Initial residual = 0.945702, Final residual = 2.34968e-17, No Iterations 1 bounding epsilon, min: -6.64614e+35 max: 1.52246e+54 average: 2.8385e+50 DILUPBiCG: Solving for k, Initial residual = 2.37712e-28, Final residual = 2.37712e-28, No Iterations 0 ExecutionTime = 254198 s ClockTime = 254514 s --> FOAM Warning : From function Time:: operator++() in file db/Time/Time.C at line 1010 Increased the timePrecision from 10 to 11 to distinguish between timeNames at time 977.153 Time = 977.15250422 Courant Number mean: 0.00200131 max: 0.823054 deltaT = 4.16013e-37 DILUPBiCG: Solving for T, Initial residual = 5.30557e-05, Final residual = 5.04839e-08, No Iterations 1 DILUPBiCG: Solving for x, Initial residual = 4.2115e-05, Final residual = 9.67646e-08, No Iterations 1 DICPCG: Solving for p_rgh, Initial residual = 0.355969, Final residual = 0.00336029, No Iterations 16 time step continuity errors : sum local = 2.68041e-07, global = 6.26921e-13, cumulative = -5.6883e+07 DICPCG: Solving for p_rgh, Initial residual = 0.0759212, Final residual = 9.82876e-09, No Iterations 326 time step continuity errors : sum local = 5.56005e-13, global = -6.32615e-16, cumulative = -5.6883e+07 DILUPBiCG: Solving for epsilon, Initial residual = 0.0511151, Final residual = 9.49615e-19, No Iterations 1 bounding epsilon, min: -1.03846e+34 max: 1.44295e+54 average: 2.32382e+50 DILUPBiCG: Solving for k, Initial residual = 0.000570516, Final residual = 4.39112e-08, No Iterations 1 bounding k, min: -0.00268504 max: 9.82703e+43 average: 1.74739e+39 ExecutionTime = 254207 s ClockTime = 254523 s --> FOAM Warning : From function Time:perator++() in file db/Time/Time.C at line 1010 Increased the timePrecision from 11 to 12 to distinguish between timeNames at time 977.153 Time = 977.152504221 Courant Number mean: 0.00222505 max: 0.86487 deltaT = 4.64114e-37 DILUPBiCG: Solving for T, Initial residual = 1, Final residual = 1.32235e-10, No Iterations 3 DILUPBiCG: Solving for x, Initial residual = 1, Final residual = 3.66992e-13, No Iterations 3 DICPCG: Solving for p_rgh, Initial residual = 0.455152, Final residual = 43.9478, No Iterations 1001 time step continuity errors : sum local = 0.00381397, global = 4.75669e-06, cumulative = -5.6883e+07 DICPCG: Solving for p_rgh, Initial residual = 5.88404e-26, Final residual = 5.88404e-26, No Iterations 0 time step continuity errors : sum local = 0.00383906, global = 4.75692e-06, cumulative = -5.6883e+07 DILUPBiCG: Solving for epsilon, Initial residual = 1, Final residual = 0.102869, No Iterations 1001 bounding epsilon, min: -3.05115e+72 max: 1.48777e+73 average: 1.88875e+68 DILUPBiCG: Solving for k, Initial residual = 1, Final residual = 8240.31, No Iterations 1001 bounding k, min: -4.57565e+84 max: 4.58323e+84 average: 2.52077e+80 ExecutionTime = 254312 s ClockTime = 254629 s --> FOAM Warning : From function Time:perator++() in file db/Time/Time.C at line 1010 Increased the timePrecision from 12 to 13 to distinguish between timeNames at time 977.153 Time = 977.1525042206 Courant Number mean: 0.0221161 max: 9.68442 deltaT = 4.79238e-38 #0 Foam::error:rintStack(Foam::Ostream&) in "/opt/openfoam211/platforms/linux64GccDPOpt/lib/libOpenFOAM.so" #1 Foam::sigFpe::sigHandler(int) in "/opt/openfoam211/platforms/linux64GccDPOpt/lib/libOpenFOAM.so" #2 in "/lib/x86_64-linux-gnu/libc.so.6" #3 Foam:ILUPreconditioner::calcReciprocalD(Foam::Fi eld&, Foam::lduMatrix const&) in "/opt/openfoam211/platforms/linux64GccDPOpt/lib/libOpenFOAM.so" #4 Foam:ILUPreconditioner:ILUPreconditioner(Foam: :lduMatrix::solver const&, Foam::dictionary const&) in "/opt/openfoam211/platforms/linux64GccDPOpt/lib/libOpenFOAM.so" #5 Foam::lduMatrix:reconditioner::addasymMatrixCons tructorToTable::New(Foam ::lduMatrix::solver const&, Foam::dictionary const&) in "/opt/openfoam211/platforms/linux64GccDPOpt/lib/libOpenFOAM.so" #6 Foam::lduMatrix:reconditioner::New(Foam::lduMatr ix::solver const&, Foam::dictionary const&) in "/opt/openfoam211/platforms/linux64GccDPOpt/lib/libOpenFOAM.so" #7 Foam::PBiCG::solve(Foam::Field&, Foam::Field const&, unsigned char) const in "/opt/openfoam211/platforms/linux64GccDPOpt/lib/libOpenFOAM.so" #8 Foam::fvMatrix::solve(Foam::dictionary const&) in "/opt/openfoam211/platforms/linux64GccDPOpt/lib/libfiniteVolume.so" #9 at buoyantBoussinesqPimpleFoamMF_comb.C:0 #10 in "/home/ng/OpenFOAM/ng-2.1.1/platforms/linux64GccDPOpt/bin/buoyantBoussinesqPimpleFoamMF_comb" #11 __libc_start_main in "/lib/x86_64-linux-gnu/libc.so.6" #12 in "/home/ng/OpenFOAM/ng-2.1.1/platforms/linux64GccDPOpt/bin/buoyantBoussinesqPimpleFoamMF_comb" Floating point exception (core dumped) Any insight is appreciated. Best, NG

 March 28, 2013, 12:31 #2 Member   ri Join Date: Oct 2012 Posts: 34 Rep Power: 13 Hello, From what I can see your bounding k is very large even in the 1st time step you have posted. You should probably provide more information on what you are trying to solve as it will make it easier for people to assist you. Back to the problem, you could try modifying your fvschemes/solutions, reducing tolerances etc. regards, ris

April 5, 2013, 08:49
#3
Member

Nick Gutschow
Join Date: Jan 2013
Posts: 36
Rep Power: 13
Ris,

Thanks you for your reply. I apologize that it has taken me a while to respond. Another project required my attention and then it has taken me a while to reproduce the problem as you can see that run was a pretty long one in clock time. Unfortunately on my first run I wasn't outputting a log file so I went back and re-ran it doing so. Anyway, let me give you some more info.

Background: I am running a modified version of buoyantBoussinesqPimpleFoam that basically has a person-like object in the center of a cubic domain that is "breathing" out slowly hot CO2 rich air. This air rises due to buoyancy, cools along the ceiling somewhere, and then falls (once it cools enough the CO2 makes it negatively buoyant), typically coming down along the walls. I have included a picture of the run some 800 seconds in showing the profile of the person and the CO2 plume created.

You are absolutely right, at around 865 seconds into the run, for some reason I start to get the message:

bounding k, min:# max:# average:#

Initially and for some time the max listed here is quite low, something like 0.033. But then, later on at around 944 seconds, I get a bounding epsilon as well as follows:

bounding epsilon, min:# max:# average:#

bounding k, min:# max:# average:#

The bounding k is still around 0.033 max and the new bounding epsilon is around 0.156 max. This bounding epsilon doesn't appear every time step, but now it appears off and on for the rest of the run.

Finally, around 949.9 seconds, the max bounding k value suddenly begins to rapidly increase, and and the max bounding epsilon with it, and by around 949.95 seconds the whole run has "exploded". This is due in part to the fact that I am using dynamic time stepping based on a max Courant # of 1, so as k and epsilon rapidly grow, so does the Courant # and thus my time step approaches 0.

So, any ideas why my k and epsilon may be behaving like this?

At present, I am running this thing again (I started at around 864 seconds to save time) and writing at a much tighter interval (every 2 seconds not every 50) and my hope is that this will at least give me a sense of where in the domain I am having these high values of k and epsilon, which hopefully will offer hint about what to do.

-NG
Attached Images
 mov.0020.jpg (18.5 KB, 73 views)

 April 5, 2013, 10:50 #4 Member   Nick Gutschow Join Date: Jan 2013 Posts: 36 Rep Power: 13 A further concern: In my rerun now I have progressed my "bounding k" times but now see no such issue. This makes me worry the way I started at time 846 s as if it were 0 s was wrong (in terms of boundary conditions in particular). For more detail on what I mean, see my other recent post: http://www.cfd-online.com/Forums/ope...tml#post418575 -NG

 April 6, 2013, 06:46 #5 Member   ri Join Date: Oct 2012 Posts: 34 Rep Power: 13 Hello NG, Have you tried setting the timestep manually? I have had issues in the past using adjustable time stepping. Also what output does checkMesh give you? regards, ris,

 April 6, 2013, 07:31 #6 Member   Nick Gutschow Join Date: Jan 2013 Posts: 36 Rep Power: 13 Well, I suppose I could just set my time step to the stable one I had before, but what does it mean that my k and epsilon are blowing up like that? Won't that give me a huge Courant number? Also, I have been able to isolate the spike in k as being at my "outflow" surfaces. So, as you see in the picture above, I have an "inflow" surface pumping hot CO2 air into the room (for spatial descriptive purposes think of this like a mouth). If we rotate the slice above 90 degrees I have two surfaces on either side of the pictured pillar that are set at a constant gauge pressure of 0, thus making them outflow surfaces (for spatial descriptive purposes think of these as ears to the mouth). So for the "bounding k, max: 0.33" at least, these seem concentrated in the few cells directly adjacent to the "ears". Last edited by NJG; April 6, 2013 at 08:17.

 April 6, 2013, 21:45 #7 Member   Nick Gutschow Join Date: Jan 2013 Posts: 36 Rep Power: 13 I am now running in k-omega. We'll see if that helps.

 May 15, 2014, 13:52 k, epsilon and their wall functions #8 Senior Member   Srivathsan N Join Date: Jan 2013 Location: India Posts: 101 Rep Power: 13 Dear Nick, This thread is a year old but I need to revive it. I am facing a problem similar to yours. I fail to understand how the wall function for k epsilon etc are implemented and what initial values are to be given to them. As a result my solver is diverging very early into my simulation (about 7 to 8 time steps, with epsilon starting off the blow up). Were you able to get past this? Can you throw some light on this issue? Thanks in advance. __________________ Regards, Srivaths