自定义求解器在单核下运行无误在mpirun下报错



  • 平台:openfoam5.0
    并行环境:超算平台MPIINTEL
    问题描述:新的求解器在单核下运行不报错,并行环境报错为

    Fatal error in MPI_Recv: Message truncated, error stack:
    MPI_Recv(224).....................: MPI_Recv(buf=0x7fff3fd36bb4, count=4, MPI_BYTE, src=10, tag=1, MPI_COMM_WORLD, status=0x7fff3fd36610) failed
    MPIDI_CH3U_Receive_data_found(131): Message from rank 10 and tag 1 truncated; 24 bytes received but buffer size is 4
    
    

    测试:(1)纯欧拉-欧拉求解器并行运行无错误
    (2)DPMFoam并行无错误
    初步判定为自定义的拉格朗日入射模型无法并行:
    主要为在kinematicCloud中添加了自定义入射模型:
    (1) 每个时间步开始在kinematicCloud使外用new操作添加入射模型:
    kinematicCloud.updateatomizers
    (
    i,
    SOI,
    nParticle,
    position,
    U0,
    diameter,
    rhoLiq,
    duration,
    parceltoinject
    );
    (2) 入射模型
    (3) 在kinematicCloud内部使用使用ptrList自带的clear函数清除入射模型,该函数调用了delete 操作删除添加的入射模型。

    另外超算平台使用的是intelmpi没法用mpirunDebug

    mpirunDebug  -np 24 HybridFoam –parallel
    

    出现错误Unsupported WM_MPLIB setting : INTELMPI。
    有什么解决办法吗?



  • 问题找到了,原因是类一旦被实例化后,其内存大小是不能更改的,现在采用LinkList代替List,没有问题


Log in to reply
 

京ICP备15017992号-2