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/)
-   -   Sudden jump in Courant number (http://www.cfd-online.com/Forums/openfoam-solving/115340-sudden-jump-courant-number.html)

NJG March 28, 2013 12:22

Sudden jump in Courant number
 
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::operator++()
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::operator++()
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::printStack(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::DILUPreconditioner::calcReciprocalD(Foam::Fi eld<double>&, Foam::lduMatrix const&) in "/opt/openfoam211/platforms/linux64GccDPOpt/lib/libOpenFOAM.so"
#4 Foam::DILUPreconditioner::DILUPreconditioner(Foam: :lduMatrix::solver const&, Foam::dictionary const&) in "/opt/openfoam211/platforms/linux64GccDPOpt/lib/libOpenFOAM.so"
#5 Foam::lduMatrix::preconditioner::addasymMatrixCons tructorToTable<Foam::DILUPreconditioner>::New(Foam ::lduMatrix::solver const&, Foam::dictionary const&) in "/opt/openfoam211/platforms/linux64GccDPOpt/lib/libOpenFOAM.so"
#6 Foam::lduMatrix::preconditioner::New(Foam::lduMatr ix::solver const&, Foam::dictionary const&) in "/opt/openfoam211/platforms/linux64GccDPOpt/lib/libOpenFOAM.so"
#7 Foam::PBiCG::solve(Foam::Field<double>&, Foam::Field<double> const&, unsigned char) const in "/opt/openfoam211/platforms/linux64GccDPOpt/lib/libOpenFOAM.so"
#8 Foam::fvMatrix<double>::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

ris March 28, 2013 13:31

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

NJG April 5, 2013 08:49

1 Attachment(s)
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.

Thanks for your consideration.

-NG

NJG April 5, 2013 10:50

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

ris April 6, 2013 06:46

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,

NJG April 6, 2013 07:31

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".

NJG April 6, 2013 21:45

I am now running in k-omega. We'll see if that helps.

Sherlock_1812 May 15, 2014 13:52

k, epsilon and their wall functions
 
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.


All times are GMT -4. The time now is 03:55.