View Issue Details

IDProjectCategoryView StatusLast Update
0000135OpenFOAMBugpublic2011-02-11 09:52
Reporteralbertop Assigned Tohenry  
PrioritynormalSeveritymajorReproducibilityalways
Status closedResolutionno change required 
PlatformLinuxOSOpenSuseOS Version11.3
Summary0000135: twoPhaseEulerFoam crashes in parallel computations
DescriptionThe twoPhaseEulerFoam solver crashes unexpectedly in parallel runs, while it works properly on the same case in serial runs.
Steps To Reproduce1) Consider for example the tutorial case "bed2"

2) Decompose it with a simple decomposition like

numberOfSubdomains 2;

method simple;

simpleCoeffs
{
    n ( 1 2 1 );
    delta 0.001;
}

3) Execute it with: mpirun -np 2 twoPhaseEulerFoam -parallel

4) The case should crash almost immediately
Additional InformationSee the attachment for the error message.
TagsNo tags attached.

Activities

albertop

2011-02-10 17:31

reporter  

errorMessage (6,235 bytes)   
Time = 0.005

DILUPBiCG:  Solving for alpha, Initial residual = 0.000124544, Final residual = 1.32895e-12, No Iterations 3
Dispersed phase volume fraction = 0.275002  Min(alpha) = -1.32192e-164  Max(alpha) = 0.550004
DILUPBiCG:  Solving for alpha, Initial residual = 6.92205e-06, Final residual = 3.11521e-13, No Iterations 3
Dispersed phase volume fraction = 0.275002  Min(alpha) = -3.5475e-163  Max(alpha) = 0.550004
kinTheory: max(Theta) = 0.00925042
kinTheory: min(nua) = 1.57981e-12, max(nua) = 4.50843e-06
kinTheory: min(pa) = -2.51108e-165, max(pa) = 0.525263
GAMG:  Solving for p, Initial residual = 5.53676e-05, Final residual = 6.96784e-09, No Iterations 11
time step continuity errors : sum local = 2.30332e-09, global = 1.89963e-09, cumulative = 3.31577e-08
DILUPBiCG:  Solving for alpha, Initial residual = 3.81326e-06, Final residual = 5.02502e-14, No Iterations 3
Dispersed phase volume fraction = 0.275002  Min(alpha) = -3.36761e-163  Max(alpha) = 0.550004
DILUPBiCG:  Solving for alpha, Initial residual = 1.53614e-07, Final residual = 1.7633e-11, No Iterations 2
Dispersed phase volume fraction = 0.275002  Min(alpha) = -3.36997e-163  Max(alpha) = 0.550004
GAMG:  Solving for p, Initial residual = 8.55728e-06, Final residual = 8.31876e-09, No Iterations 10
time step continuity errors : sum local = 2.72079e-09, global = 2.18738e-09, cumulative = 3.5345e-08
DILUPBiCG:  Solving for epsilon, Initial residual = 0.00505445, Final residual = 3.58585e-06, No Iterations 2
DILUPBiCG:  Solving for k, Initial residual = 0.0827591, Final residual = 7.96478e-06, No Iterations 3
ExecutionTime = 0.65 s  ClockTime = 1 s

Courant Number mean: 0.0127499 max: 0.0513894
Max Ur Courant Number = 0.0605558
Calculating averages

Time = 0.0055

DILUPBiCG:  Solving for alpha, Initial residual = 0.000115659, Final residual = 1.09547e-12, No Iterations 3
Dispersed phase volume fraction = 0.275002  Min(alpha) = -6.89745e-166  Max(alpha) = 0.550005
DILUPBiCG:  Solving for alpha, Initial residual = 6.46692e-06, Final residual = 0.458666, No Iterations 1001
Dispersed phase volume fraction = 0.265139  Min(alpha) = -24.6668  Max(alpha) = 23.2063
kinTheory: max(Theta) = 0.000368331
kinTheory: min(nua) = 1.59948e-12, max(nua) = 0.04
kinTheory: min(pa) = -3.7888e-05, max(pa) = 191362
GAMG:  Solving for p, Initial residual = 1, Final residual = 6.29539e-09, No Iterations 35
time step continuity errors : sum local = 6.00828, global = -0.402339, cumulative = -0.402339
DILUPBiCG:  Solving for alpha, Initial residual = 0.329499, Final residual = 0.0648053, No Iterations 1001
Dispersed phase volume fraction = -2.18106  Min(alpha) = -21.8062  Max(alpha) = 17.8497
DILUPBiCG:  Solving for alpha, Initial residual = 0.499751, Final residual = 0.144707, No Iterations 1001
Dispersed phase volume fraction = -3.12574  Min(alpha) = -37.7223  Max(alpha) = 9.83229
[1] #0  Foam::error::printStack(Foam::Ostream&) in "/home/alberto/OpenFOAM/OpenFOAM-1.7.x/lib/linux64GccDPOpt/libOpenFOAM.so"
[1] #1  Foam::sigFpe::sigFpeHandler(int) in "/home/alberto/OpenFOAM/OpenFOAM-1.7.x/lib/linux64GccDPOpt/libOpenFOAM.so"
[1] #2   in "/lib64/libc.so.6"
[1] #3  Foam::GAMGSolver::scalingFactor(Foam::Field<double>&, Foam::Field<double> const&, Foam::Field<double> const&, Foam::Field<double> const&) const in "/home/alberto/OpenFOAM/OpenFOAM-1.7.x/lib/linux64GccDPOpt/libOpenFOAM.so"
[1] #4  Foam::GAMGSolver::scalingFactor(Foam::Field<double>&, Foam::lduMatrix const&, Foam::Field<double>&, Foam::FieldField<Foam::Field, double> const&, Foam::UPtrList<Foam::lduInterfaceField const> const&, Foam::Field<double> const&, unsigned char) const in "/home/alberto/OpenFOAM/OpenFOAM-1.7.x/lib/linux64GccDPOpt/libOpenFOAM.so"
[1] #5  Foam::GAMGSolver::Vcycle(Foam::PtrList<Foam::lduMatrix::smoother> const&, Foam::Field<double>&, Foam::Field<double> const&, Foam::Field<double>&, Foam::Field<double>&, Foam::Field<double>&, Foam::PtrList<Foam::Field<double> >&, Foam::PtrList<Foam::Field<double> >&, unsigned char) const in "/home/alberto/OpenFOAM/OpenFOAM-1.7.x/lib/linux64GccDPOpt/libOpenFOAM.so"
[1] #6  Foam::GAMGSolver::solve(Foam::Field<double>&, Foam::Field<double> const&, unsigned char) const in "/home/alberto/OpenFOAM/OpenFOAM-1.7.x/lib/linux64GccDPOpt/libOpenFOAM.so"
[1] #7  Foam::fvMatrix<double>::solve(Foam::dictionary const&) in "/home/alberto/OpenFOAM/OpenFOAM-1.7.x/lib/linux64GccDPOpt/libfiniteVolume.so"
[1] #8  
[1]  in "/home/alberto/OpenFOAM/OpenFOAM-1.7.x/applications/bin/linux64GccDPOpt/twoPhaseEulerFoam"
[1] #9  __libc_start_main in "/lib64/libc.so.6"
[1] #10  
[1]  at /usr/src/packages/BUILD/glibc-2.11.2/csu/../sysdeps/x86_64/elf/start.S:116
[geeko:08702] *** Process received signal ***
[geeko:08702] Signal: Floating point exception (8)
[geeko:08702] Signal code:  (-6)
[geeko:08702] Failing at address: 0x3e8000021fe
[geeko:08702] [ 0] /lib64/libc.so.6(+0x32a60) [0x7f655dc1ba60]
[geeko:08702] [ 1] /lib64/libc.so.6(gsignal+0x35) [0x7f655dc1b9e5]
[geeko:08702] [ 2] /lib64/libc.so.6(+0x32a60) [0x7f655dc1ba60]
[geeko:08702] [ 3] /home/alberto/OpenFOAM/OpenFOAM-1.7.x/lib/linux64GccDPOpt/libOpenFOAM.so(_ZNK4Foam10GAMGSolver13scalingFactorERNS_5FieldIdEERKS2_S5_S5_+0x7c) [0x7f655eac84fc]
[geeko:08702] [ 4] /home/alberto/OpenFOAM/OpenFOAM-1.7.x/lib/linux64GccDPOpt/libOpenFOAM.so(_ZNK4Foam10GAMGSolver13scalingFactorERNS_5FieldIdEERKNS_9lduMatrixES3_RKNS_10FieldFieldIS1_dEERKNS_8UPtrListIKNS_17lduInterfaceFieldEEERKS2_h+0xa6) [0x7f655eac88b6]
[geeko:08702] [ 5] /home/alberto/OpenFOAM/OpenFOAM-1.7.x/lib/linux64GccDPOpt/libOpenFOAM.so(_ZNK4Foam10GAMGSolver6VcycleERKNS_7PtrListINS_9lduMatrix8smootherEEERNS_5FieldIdEERKS8_S9_S9_S9_RNS1_IS8_EESD_h+0x10e0) [0x7f655eacb280]
[geeko:08702] [ 6] /home/alberto/OpenFOAM/OpenFOAM-1.7.x/lib/linux64GccDPOpt/libOpenFOAM.so(_ZNK4Foam10GAMGSolver5solveERNS_5FieldIdEERKS2_h+0x489) [0x7f655eacc269]
[geeko:08702] [ 7] /home/alberto/OpenFOAM/OpenFOAM-1.7.x/lib/linux64GccDPOpt/libfiniteVolume.so(_ZN4Foam8fvMatrixIdE5solveERKNS_10dictionaryE+0x13b) [0x7f65601d9b0b]
[geeko:08702] [ 8] twoPhaseEulerFoam() [0x438f6d]
[geeko:08702] [ 9] /lib64/libc.so.6(__libc_start_main+0xfd) [0x7f655dc07b7d]
[geeko:08702] [10] twoPhaseEulerFoam() [0x42b089]
[geeko:08702] *** End of error message ***
errorMessage (6,235 bytes)   

henry

2011-02-11 09:52

manager   ~0000240

The problem relates to

phic += fvc::interpolate(alpha)*phipp;

If phic is significantly larger than phi and second-order differencing is used then basing the time-step limit on phi in not sufficient and a smaller time-step should be used or lower-order differencing. Note that the behavior in serial and parallel may be different because the solver preconditioning in parallel is not as good as it is in serial and it is more important that the matrix is diagonally-dominant.

Issue History

Date Modified Username Field Change
2011-02-10 17:31 albertop New Issue
2011-02-10 17:31 albertop File Added: errorMessage
2011-02-11 09:52 henry Note Added: 0000240
2011-02-11 09:52 henry Status new => closed
2011-02-11 09:52 henry Assigned To => henry
2011-02-11 09:52 henry Resolution open => no change required