johndeas |
November 26, 2009 05:30 |
Crash at writeObject
Hi, I am running a code in parallel which is very similar to channeloodles in OpenFOAM-1.5
I got an error which seems to randomly appear when runTime.write() is called, so I modified my code to this:
Code:
Pout << "runTime.write()...";
runTime.write();
Pout << "ok" << endl;
I run it, and the output from the last timestep is:
Code:
Time = 19.07
[3] runTime.write()...ok
[6] runTime.write()...ok
Courant Number mean: 0.0313364 max: 0.183624
DILUPBiCG: Solving for Ux, Initial residual = 0.00023466, Final residual = 2.14691e-07, No Iterations 1
DILUPBiCG: Solving for Uy, Initial residual = 0.00435691, Final residual = 4.24854e-06, No Iterations 1
DILUPBiCG: Solving for Uz, Initial residual = 0.00543492, Final residual = 5.32209e-06, No Iterations 1
DICPCG: Solving for p, Initial residual = 0.0188885, Final residual = 0.000937706, No Iterations 14
time step continuity errors : sum local = 2.18991e-09, global = -6.12687e-17, cumulative = 1.79455e-14
DICPCG: Solving for p, Initial residual = 0.00205058, Final residual = 0.000100724, No Iterations 19
time step continuity errors : sum local = 2.40504e-10, global = 7.11493e-17, cumulative = 1.80167e-14
Uncorrected Ubar = 0.666 pressure gradient = 0.00115963
[4] runTime.write()...ok
[6] runTime.write()...ok
[1] #0 Foam::error::printStack(Foam::Ostream&) in "/home/vincent.kubicki/OpenFOAM/OpenFOAM-1.5/lib/linux64GccDPOpt/libOpenFOAM.so"
[1] #1 Foam::sigFpe::sigFpeHandler(int) in "/home/vincent.kubicki/OpenFOAM/OpenFOAM-1.5/lib/linux64GccDPOpt/libOpenFOAM.so"
[1] #2 __restore_rt at sigaction.c:0
[1] #3 main in "/home/vincent.kubicki/09-11/25-concurrentRuns/shared/precurFoam"
[1] #4 __libc_start_main in "/lib64/libc.so.6"
[1] #5 Foam::regIOobject::writeObject(Foam::IOstream::streamFormat, Foam::IOstream::versionNumber, Foam::IOstream::compressionType) const in "/home/vincent.kubicki/09-11/25-concurrentRuns/shared/precurFoam"
[chapo13:29535] *** Process received signal ***
[chapo13:29535] Signal: Floating point exception (8)
[chapo13:29535] Signal code: (-6)
[chapo13:29535] Failing at address: 0x27160000735f
[chapo13:29535] [ 0] /lib64/libc.so.6 [0x3a1f4301b0]
[chapo13:29535] [ 1] /lib64/libc.so.6(gsignal+0x35) [0x3a1f430155]
[chapo13:29535] [ 2] /lib64/libc.so.6 [0x3a1f4301b0]
[chapo13:29535] [ 3] precurFoam [0x4265a0]
[chapo13:29535] [ 4] /lib64/libc.so.6(__libc_start_main+0xf4) [0x3a1f41d8b4]
[chapo13:29535] [ 5] precurFoam(_ZNK4Foam11regIOobject11writeObjectENS_8IOstream12streamFormatENS1_13versionNumberENS1_15compressionTypeE+0xe1) [0x420cc9]
[chapo13:29535] *** End of error message ***
mpirun noticed that job rank 0 with PID 29534 on node chapo13 exited on signal 15 (Terminated).
7 additional processes aborted (not shown)
The error seems to be in the writeObject() method, but, it appears for a processor where
Code:
Pout << "runTime.write()...";
has not yet been called ...
A quick fix for me would be to be able to test if the timestep actually is one which will trigger fields writing, so I can embed it in:
Code:
if goingToWriteForAUTO_WRITE
{
runTime.write();
}
Any help greatly appreciated !
JD
|