CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   OpenFOAM (https://www.cfd-online.com/Forums/openfoam/)
-   -   Crash at writeObject (https://www.cfd-online.com/Forums/openfoam/70501-crash-writeobject.html)

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

l_r_mcglashan November 26, 2009 06:12

I had a lot of issues recently with parallel computing. I can't help with your problem specifically, but it appears that your processors are out of sync with each other. Have you tried putting a reduce() operation before runTime.write() to ensure that all the processors have caught up to each other before writing to file?

You could also write the fields individually, U.write(), p.write(), and see if it's a specific field that is causing you problems.


All times are GMT -4. The time now is 07:47.