OF继续计算时报错



  • 开学后将原本在家里跑得模拟关掉后打算回学校继续进行,结果发现在将controlDict文件中改为latestTime后再进行

    mpirun -np 6 simpleFoam -parallel
    

    时,of直接报错,这个问题应该怎么修改呢?
    报错代码如下所示:

    Create time
    
    Create mesh for time = 0
    
    [1] #0  Foam::error::printStack(Foam::Ostream&) at ??:?
    [1] #1  Foam::sigSegv::sigHandler(int) at ??:?
    [1] #2  ? in "/lib/x86_64-linux-gnu/libc.so.6"
    [1] #3  cfree in "/lib/x86_64-linux-gnu/libc.so.6"
    [1] #4  Foam::List<int>::setSize(int) at ??:?
    [1] #5  Foam::Istream& Foam::operator>><int>(Foam::Istream&, Foam::List<int>&) at ??:?
    [1] #6  Foam::Istream& Foam::operator>><Foam::face>(Foam::Istream&, Foam::List<Foam::face>&) at ??:?
    [1] #7  Foam::Istream& Foam::operator>><Foam::face, int>(Foam::Istream&, Foam::ListCompactIO<Foam::face, int>&) at ??:?
    [1] #8  Foam::CompactIOList<Foam::face, int>::readFromStream() at ??:?
    [1] #9  Foam::polyMesh::polyMesh(Foam::IOobject const&) at ??:?
    [1] #10  Foam::fvMesh::fvMesh(Foam::IOobject const&) at ??:?
    [1] #11  ? in "/home/kilig/OpenFOAM/OpenFOAM-8/platforms/linux64GccDPInt32Opt/bin/simpleFoam"
    [1] #12  __libc_start_main in "/lib/x86_64-linux-gnu/libc.so.6"
    [1] #13  ? in "/home/kilig/OpenFOAM/OpenFOAM-8/platforms/linux64GccDPInt32Opt/bin/simpleFoam"
    [kilig:04873] *** Process received signal ***
    [kilig:04873] Signal: Segmentation fault (11)
    [kilig:04873] Signal code:  (-6)
    [kilig:04873] Failing at address: 0x3e800001309
    [kilig:04873] [ 0] /lib/x86_64-linux-gnu/libc.so.6(+0x46210)[0x7f9fbfe60210]
    [kilig:04873] [ 1] /lib/x86_64-linux-gnu/libc.so.6(gsignal+0xcb)[0x7f9fbfe6018b]
    [kilig:04873] [ 2] /lib/x86_64-linux-gnu/libc.so.6(+0x46210)[0x7f9fbfe60210]
    [kilig:04873] [ 3] /lib/x86_64-linux-gnu/libc.so.6(cfree+0x20)[0x7f9fbfeb7870]
    [kilig:04873] [ 4] /home/kilig/OpenFOAM/OpenFOAM-8/platforms/linux64GccDPInt32Opt/lib/libmomentumTransportModels.so(_ZN4Foam4ListIiE7setSizeEi+0x101)[0x7f9fc3308ff1]
    [kilig:04873] [ 5] /home/kilig/OpenFOAM/OpenFOAM-8/platforms/linux64GccDPInt32Opt/lib/libmomentumTransportModels.so(_ZN4FoamrsIiEERNS_7IstreamES2_RNS_4ListIT_EE+0x258)[0x7f9fc3309d38]
    [kilig:04873] [ 6] /home/kilig/OpenFOAM/OpenFOAM-8/platforms/linux64GccDPInt32Opt/lib/libmeshTools.so(_ZN4FoamrsINS_4faceEEERNS_7IstreamES3_RNS_4ListIT_EE+0x4f3)[0x7f9fc1500453]
    [kilig:04873] [ 7] /home/kilig/OpenFOAM/OpenFOAM-8/platforms/linux64GccDPInt32Opt/lib/libsampling.so(_ZN4FoamrsINS_4faceEiEERNS_7IstreamES3_RNS_13ListCompactIOIT_T0_EE+0x32)[0x7f9fc0ea39a2]
    [kilig:04873] [ 8] /home/kilig/OpenFOAM/OpenFOAM-8/platforms/linux64GccDPInt32Opt/lib/libsampling.so(_ZN4Foam13CompactIOListINS_4faceEiE14readFromStreamEv+0x13a)[0x7f9fc0ea3c1a]
    [kilig:04873] [ 9] /home/kilig/OpenFOAM/OpenFOAM-8/platforms/linux64GccDPInt32Opt/lib/libOpenFOAM.so(_ZN4Foam8polyMeshC1ERKNS_8IOobjectE+0x11f4)[0x7f9fc09e8434]
    [kilig:04873] [10] /home/kilig/OpenFOAM/OpenFOAM-8/platforms/linux64GccDPInt32Opt/lib/libfiniteVolume.so(_ZN4Foam6fvMeshC2ERKNS_8IOobjectE+0x36)[0x7f9fc1f77316]
    [kilig:04873] [11] simpleFoam(+0x29a55)[0x564d734c4a55]
    [kilig:04873] [12] /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf3)[0x7f9fbfe410b3]
    [kilig:04873] [13] simpleFoam(+0x2bc7e)[0x564d734c6c7e]
    [kilig:04873] *** End of error message ***
    --------------------------------------------------------------------------
    Primary job  terminated normally, but 1 process returned
    a non-zero exit code. Per user-direction, the job has been aborted.
    --------------------------------------------------------------------------
    --------------------------------------------------------------------------
    mpirun noticed that process rank 1 with PID 0 on node kilig exited on signal 11 (Segmentation fault).
    
    

    还有:

    Create time
    
    Create mesh for time = 0
    
    [3] 
    [3] 
    [3] --> FOAM FATAL ERROR: 
    [3] Illegal cell label -553477012 in neighbour addressing for face 510476
    [3] 
    [3]     From function void Foam::polyMesh::initMesh()
    [3]     in file meshes/polyMesh/polyMeshInitMesh.C at line 64.
    [3] 
    FOAM parallel run exiting
    [3] 
    [0] 
    [0] 
    [0] --> FOAM FATAL ERROR: 
    [0] Illegal cell label -1610511309 in neighbour addressing for face 302568
    [0] 
    [0]     From function void Foam::polyMesh::initMesh()
    [0]     in file meshes/polyMesh/polyMeshInitMesh.C at line 64.
    [0] 
    FOAM parallel run exiting
    [0] 
    --------------------------------------------------------------------------
    MPI_ABORT was invoked on rank 3 in communicator MPI COMMUNICATOR 3 SPLIT FROM 0
    with errorcode 1.
    
    NOTE: invoking MPI_ABORT causes Open MPI to kill all MPI processes.
    You may or may not see output from other processes, depending on
    exactly when Open MPI kills them.
    --------------------------------------------------------------------------
    [kilig:04441] 1 more process has sent help message help-mpi-api.txt / mpi-abort
    [kilig:04441] Set MCA parameter "orte_base_help_aggregate" to 0 to see all help / error messages
    
    

  • 版主 副教授

    这种玄学问题,一般重启能解决。如果不能重启,重新登录、重新加载of环境之类的。

    或者试试,不要用latestTime。直接写最后的那个时间节点,就是latestTime对应的文件夹名


  • 管理员

    @冠竹OF继续计算时报错 中说:

    在家里跑得模拟关掉后

    估计是latestTime的结果写了一半,就关掉了。导致数据不全。我有时候遇到过。按照 @bestucan 说的方法可以试一试



  • @bestucan 您好,我尝试了重启电脑,重新加载OF环境,将controlDict中latestTime改成了startTime,

    application     simpleFoam;
    
    startFrom       startTime;
    
    startTime       3700;
    
    stopAt          endTime;
    
    endTime         40000;
    
    deltaT          1;
    
    writeControl    timeStep;
    
    writeInterval   100;
    
    purgeWrite      0;
    
    writeFormat     ascii;
    
    writePrecision  6;
    
    writeCompression off;
    
    timeFormat      general;
    
    timePrecision   6;
    
    runTimeModifiable true;
    
    functions
    {
        #includeFunc streamlines
    }
    functions
    
    {
    
    #includeFunc            residuals
    
    }
    

    但是这个问题还是存在,而且更玄学的是,我尝试用其他算例进行并行计算时也出现了同样的报错,似乎我无法使用OF去进行并行计算了
    很抱歉这样打扰您,但还是希望您能不吝赐教,感激不尽



  • 用学校的电脑重头开始算,然后续算看看。


  • 版主 副教授

    @冠竹 哦,对了,用的是多线程,那么,最保险的做法是,重新加载环境,重新decompose。
    如果是换机器了。先把各个process组成一个时间文件,再重新decompose。

    如果是of自带的并行算例AllRun也报错。
    那应该是系统更新,导致当初编译of依赖的系统库变了。

    最后的方法就是重新编译of了:136:



  • @bestucan 我去试试,感谢大佬::140:


Log in to reply
 


CFD中文网 | 东岳流体学术 | 东岳流体商业 | 吉ICP备20003622号-1