OpenFOAM在集群上并行运算报错



  • 同样一个算例,我在自己的电脑上运行时没有问题,当我加密网格以后(同时减少时间步长以满足CFL条件)把它挂到集群上去并行计算以后就出现了如下错误。
    OpenFOAM版本是5.0,用的求解器是rhoPImpleDyMFoam,用32个核求解。有人知道是什么原因吗?

    [17] #0  Foam::error::printStack(Foam::Ostream&)--------------------------------------------------------------------------
    An MPI process has executed an operation involving a call to the
    "fork()" system call to create a child process.  Open MPI is currently
    operating in a condition that could result in memory corruption or
    other system errors; your MPI job may hang, crash, or produce silent
    data corruption.  The use of fork() (or system() or other calls that
    create child processes) is strongly discouraged.  
    
    The process that invoked fork was:
    
      Local host:          c37 (PID 390101)
      MPI_COMM_WORLD rank: 17
    
    If you are *absolutely sure* that your application will successfully
    and correctly survive a call to fork(), you may disable this warning
    by setting the mpi_warn_on_fork MCA parameter to 0.
    --------------------------------------------------------------------------
     at ??:?
    [17] #1  Foam::sigFpe::sigHandler(int) at ??:?
    [17] #2  ? in "/usr/lib64/libc.so.6"
    [17] #3  Foam::divide(Foam::Field<double>&, Foam::UList<double> const&, Foam::UList<double> const&) at ??:?
    [17] #4  Foam::tmp<Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> > Foam::operator/<Foam::fvPatchField, Foam::volMesh>(Foam::tmp<Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> > const&, Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> const&) at ??:?
    [17] #5  Foam::CompressibleTurbulenceModel<Foam::fluidThermo>::nu() const at ??:?
    [17] #6  Foam::RASModel<Foam::EddyDiffusivity<Foam::ThermalDiffusivity<Foam::CompressibleTurbulenceModel<Foam::fluidThermo> > > >::nuEff() const at ??:?
    [17] #7  Foam::linearViscousStress<Foam::RASModel<Foam::EddyDiffusivity<Foam::ThermalDiffusivity<Foam::CompressibleTurbulenceModel<Foam::fluidThermo> > > > >::divDevRhoReff(Foam::GeometricField<Foam::Vector<double>, Foam::fvPatchField, Foam::volMesh>&) const at ??:?
    [17] #8  ? at ??:?
    [17] #9  __libc_start_main in "/usr/lib64/libc.so.6"
    [17] #10  ? at ??:?
    [c37:390101] *** Process received signal ***
    [c37:390101] Signal: Floating point exception (8)
    [c37:390101] Signal code:  (-6)
    [c37:390101] Failing at address: 0x3f90005f3d5
    [c37:390101] [ 0] /usr/lib64/libc.so.6(+0x35670)[0x7f73dcd2f670]
    [c37:390101] [ 1] /usr/lib64/libc.so.6(gsignal+0x37)[0x7f73dcd2f5f7]
    [c37:390101] [ 2] /usr/lib64/libc.so.6(+0x35670)[0x7f73dcd2f670]
    [c37:390101] [ 3] /home/wangb/OpenFOAM/OpenFOAM-5.0/platforms/linux64GccDPInt32Opt/lib/libOpenFOAM.so(_ZN4Foam6divideERNS_5FieldIdEERKNS_5UListIdEES6_+0x78)[0x7f73de103d48]
    [c37:390101] [ 4] /home/wangb/OpenFOAM/OpenFOAM-5.0/platforms/linux64GccDPInt32Opt/lib/libturbulenceModels.so(_ZN4FoamdvINS_12fvPatchFieldENS_7volMeshEEENS_3tmpINS_14GeometricFieldIdT_T0_EEEERKS8_RKS7_+0x1cf)[0x7f73e249deef]
    [c37:390101] [ 5] /home/wangb/OpenFOAM/OpenFOAM-5.0/platforms/linux64GccDPInt32Opt/lib/libcompressibleTurbulenceModels.so(_ZNK4Foam27CompressibleTurbulenceModelINS_11fluidThermoEE2nuEv+0x36)[0x7f73e20c7fa6]
    [c37:390101] [ 6] /home/wangb/OpenFOAM/OpenFOAM-5.0/platforms/linux64GccDPInt32Opt/lib/libcompressibleTurbulenceModels.so(_ZNK4Foam8RASModelINS_15EddyDiffusivityINS_18ThermalDiffusivityINS_27CompressibleTurbulenceModelINS_11fluidThermoEEEEEEEE5nuEffEv+0x53)[0x7f73e20ce303]
    [c37:390101] [ 7] /home/wangb/OpenFOAM/OpenFOAM-5.0/platforms/linux64GccDPInt32Opt/lib/libcompressibleTurbulenceModels.so(_ZNK4Foam19linearViscousStressINS_8RASModelINS_15EddyDiffusivityINS_18ThermalDiffusivityINS_27CompressibleTurbulenceModelINS_11fluidThermoEEEEEEEEEE13divDevRhoReffERNS_14GeometricFieldINS_6VectorIdEENS_12fvPatchFieldENS_7volMeshEEE+0x37)[0x7f73e20fd4c7]
    [c37:390101] [ 8] rhoPimpleDyMFoam[0x4265a6]
    [c37:390101] [ 9] /usr/lib64/libc.so.6(__libc_start_main+0xf5)[0x7f73dcd1bb15]
    [c37:390101] [10] rhoPimpleDyMFoam[0x42a315]
    [c37:390101] *** End of error message ***
    --------------------------------------------------------------------------
    mpirun noticed that process rank 17 with PID 390101 on node c37 exited on signal 8 (Floating point exception).
    
    


  • 计算发散了。。。。再减少时间步长试试



  • 李老师,我用的是可变时间步长,保证CFL数小于1,所以应该不是时间步长的问题,我注意到计算是计算到某一步之后rhoEqn的最小值突然变成0了,这可能是什么原因呢?

    rhoEqn max/min : 1.62584 0
    
    

Log in to reply
 

CFD中文网 2016 - 2020 | 京ICP备15017992号-2