openfoammaofnepo |
March 13, 2016 18:30 |
Floating point exception from twoPhaseEulerFoam
Hello,
I am using twoPhaseEulerFoam to simulate a problem of particle laden flow. So in this case, particle is the dispersed phase, while air is the continuous phase. I built my case file from:
OpenFOAM/OpenFOAM-3.0.0/tutorials/multiphase/twoPhaseEulerFoam/RAS/fluidisedBed
This is closest to my computation case. As you may know, I need to inject the particle from an inlet. So I need to give the alpha.particles at that BC as an value, say 0.0001. Then I found that once I change this, the solver has the Floating point exception when it solves the momentum equations. It is like this:
Code:
PIMPLE: iteration 1
MULES: Solving for alpha.particles
MULES: Solving for alpha.particles
alpha.particles volume fraction = 4.17916379e-07 Min(alpha.particles) = 0 Max(alpha.particles) = 0.0001
Constructing momentum equations
--------------------------------------------------------------------------
mpirun noticed that process rank 1 with PID 31815 on node sand-2-63 exited on signal 8 (Floating point exception).
--------------------------------------------------------------------------
The error information is as follows:
Code:
[1] #0 Foam::error::printStack(Foam::Ostream&) in "/usr/local/Cluster-Apps/openfoam/3.0.0/OpenFOAM-3.0.0/platforms/linux64GccDPInt32Opt/lib/libOpenFOAM.so"
[1] #1 Foam::sigFpe::sigHandler(int) in "/usr/local/Cluster-Apps/openfoam/3.0.0/OpenFOAM-3.0.0/platforms/linux64GccDPInt32Opt/lib/libOpenFOAM.so"
[1] #2 ? in "/lib64/libc.so.6"
[1] #3 Foam::symGaussSeidelSmoother::smooth(Foam::word const&, Foam::Field<double>&, Foam::lduMatrix const&, Foam::Field<double> const&, Foam::FieldField<Foam::Field, double> const&, Foam::UPtrList<Foam::lduInterfaceField const> const&, unsigned char, int) in "/usr/local/Cluster-Apps/openfoam/3.0.0/OpenFOAM-3.0.0/platforms/linux64GccDPInt32Opt/lib/libOpenFOAM.so"
[1] #4 Foam::symGaussSeidelSmoother::smooth(Foam::Field<double>&, Foam::Field<double> const&, unsigned char, int) const in "/usr/local/Cluster-Apps/openfoam/3.0.0/OpenFOAM-3.0.0/platforms/linux64GccDPInt32Opt/lib/libOpenFOAM.so"
[1] #5 Foam::smoothSolver::solve(Foam::Field<double>&, Foam::Field<double> const&, unsigned char) const in "/usr/local/Cluster-Apps/openfoam/3.0.0/OpenFOAM-3.0.0/platforms/linux64GccDPInt32Opt/lib/libOpenFOAM.so"
[1] #6 Foam::fvMatrix<double>::solveSegregated(Foam::dictionary const&) in "/usr/local/Cluster-Apps/openfoam/3.0.0/OpenFOAM-3.0.0/platforms/linux64GccDPInt32Opt/lib/libfiniteVolume.so"
[1] #7 Foam::fvMatrix<double>::solve(Foam::dictionary const&) in "/usr/local/Cluster-Apps/openfoam/3.0.0/OpenFOAM-3.0.0/platforms/linux64GccDPInt32Opt/bin/twoPhaseEulerFoam"
[1] #8 Foam::fvMatrix<double>::solve() in "/usr/local/Cluster-Apps/openfoam/3.0.0/OpenFOAM-3.0.0/platforms/linux64GccDPInt32Opt/bin/twoPhaseEulerFoam"
[1] #9 ? in "/usr/local/Cluster-Apps/openfoam/3.0.0/OpenFOAM-3.0.0/platforms/linux64GccDPInt32Opt/bin/twoPhaseEulerFoam"
[1] #10 __libc_start_main in "/lib64/libc.so.6"
[1] #11 ? in "/usr/local/Cluster-Apps/openfoam/3.0.0/OpenFOAM-3.0.0/platforms/linux64GccDPInt32Opt/bin/twoPhaseEulerFoam"
[sand-2-63:31815:0] Caught signal 8 (Floating point exception)
==== backtrace ====
2 0x0000000000059e9c mxm_handle_error() /var/tmp/OFED_topdir/BUILD/mxm-3.4.3065/src/mxm/util/debug/debug.c:641
3 0x000000000005a00c mxm_error_signal_handler() /var/tmp/OFED_topdir/BUILD/mxm-3.4.3065/src/mxm/util/debug/debug.c:616
4 0x00000000000326a0 killpg() ??:0
5 0x0000000000032625 raise() ??:0
6 0x00000000000326a0 killpg() ??:0
7 0x00000000003cbb8d _ZN4Foam22symGaussSeidelSmoother6smoothERKNS_4wordERNS_5FieldIdEERKNS_9lduMatrixERKS5_RKNS_10FieldFieldIS4_dEERKNS_8UPtrListIKNS_17lduInterfaceFieldEEEhi() ??:0
8 0x00000000003cbfb8 _ZNK4Foam22symGaussSeidelSmoother6smoothERNS_5FieldIdEERKS2_hi() ??:0
9 0x00000000003c207a _ZNK4Foam12smoothSolver5solveERNS_5FieldIdEERKS2_h() ??:0
10 0x00000000009e128d _ZN4Foam8fvMatrixIdE15solveSegregatedERKNS_10dictionaryE() ??:0
11 0x00000000004916ec _ZN4Foam8fvMatrixIdE5solveERKNS_10dictionaryE() ??:0
12 0x0000000000491a1f _ZN4Foam8fvMatrixIdE5solveEv() ??:0
13 0x000000000047d6fb main() ??:0
14 0x000000000001ed5d __libc_start_main() ??:0
15 0x00000000004278c5 _start() ??:0
===================
If I change the inlet BC to "zeroGradient" (as a test!), the simulation is fine and can continuously run. This means that some quantity may be divided by zero when solving the momentum equations.
I did the same test in the tutorial mentioned above, but change the inlet BC of 0.0001 for alpha.particles. it is fine! So I do not know what happen to my case. Anyone has the same experience? Thank you so much.
|