Skip to content
  • 最新
  • 版块
  • 东岳流体
  • 随机看[请狂点我]
皮肤
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • 默认(不使用皮肤)
  • 不使用皮肤
折叠
CFD中文网

CFD中文网

  1. CFD中文网
  2. OpenFOAM
  3. 内存和未知问题

内存和未知问题

已定时 已固定 已锁定 已移动 OpenFOAM
16 帖子 2 发布者 10.4k 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • 李东岳李 离线
    李东岳李 离线
    李东岳 管理员
    写于 最后由 编辑
    #4

    @hongjiewang 在 内存和未知问题 中说:

    polyMesh中的boundary并不会产生新的边界面

    这种问题非常有可能,只能多调节,snappyHexMesh有的时候就是生成不成功边界层:143:

    http://dyfluid.com/index.html
    需要帮助debug算例的看这个 https://cfd-china.com/topic/8018

    H 2 条回复 最后回复
  • H 离线
    H 离线
    hongjiewang
    在 中回复了 李东岳 最后由 编辑
    #5

    @李东岳 :136: 还是要多试试~我通过改一些参数 把porous这个边界加到polyMesh里面了,但是blockMesh里面的边界又都不在了~

    1 条回复 最后回复
  • H 离线
    H 离线
    hongjiewang
    在 中回复了 李东岳 最后由 编辑
    #6

    @李东岳 网格问题已经解决了~我推测是我在snappyHexMesh中将介质区域设置成了faceZone,而导致没有生成patch。
    在正确的网格下运行,结果还是出现了上面的内存问题。我的求解器是在一位前辈的基础上修改的,因此我向他请教了这个问题。但是我不太懂他所说的它本身的求解器是不支持的湍流模型是什么意思,即使我已经在头文件进行了相应的引用也是不支持的吗?并且在相同的算例设置下,我运行了另一个求解器(也是包含湍流模型的)发现是可以正常运行的。请问老师这种一读取到(或者读取结束)turbulence就报错,还有什么原因导致。

    附有邮件:
    Thank you for your email. Currently the solver does not support turbulence models, which is why I suspect that your solver fails whenever you call any turbulence library in your solver. Please let me know if this knowledge fixes your issue.
    Best,
    Francisco
    
    李东岳李 1 条回复 最后回复
  • 李东岳李 离线
    李东岳李 离线
    李东岳 管理员
    在 中回复了 hongjiewang 最后由 编辑
    #7

    @hongjiewang 应该是在求解器层面,比如动量方程上,没有添加湍流粘度。如果你要加的话,需要1)去求解器里面增加湍流粘度,2)去求解器里面封闭湍流粘度

    http://dyfluid.com/index.html
    需要帮助debug算例的看这个 https://cfd-china.com/topic/8018

    H 1 条回复 最后回复
  • H 离线
    H 离线
    hongjiewang
    在 中回复了 李东岳 最后由 编辑
    #8

    @李东岳 谢谢东岳老师~如果是老师所说的这个意思,湍流这部分之前我参考interCondensatingEvaporatingFoam这个求解器已经添加好了。运行算例会出现segmentation fault。
    我刚才验证了一下是不是我添加的turbulence不对,所以我把求解器里所有涉及到turbulence的都注释掉,编译成功之后进行跑算例。结果发现在读取到差不多行数的时候,还是会报segmentation fault。就比如之前是读取到turbulence之后报错,现在是读取完g之后报错。这样是不是可以排除turbulence添加的问题。
    基于上面的这个,我怀疑是单核导致,所以把核数增加到4,8,16分别运行还是会出现相同的错误。:136:

    Info<< "Construct interface from alpha1 distribution\n" << endl;  
    interfaceProperties interface
    (
        alpha1,
        U,
        thermo->transportPropertiesDict()
    );
        
    /*Info<< "Construct incompressible turbulence model\n" << endl;  
    autoPtr<incompressible::turbulenceModel> turbulence
    (
        incompressible::turbulenceModel::New(U, phi, thermo())
    );*/
    
    #include "readGravitationalAcceleration.H"
    #include "readhRef.H"
    
    1 条回复 最后回复
  • 李东岳李 离线
    李东岳李 离线
    李东岳 管理员
    写于 最后由 编辑
    #9

    @hongjiewang 单独运行层流没问题?

    http://dyfluid.com/index.html
    需要帮助debug算例的看这个 https://cfd-china.com/topic/8018

    H 1 条回复 最后回复
  • H 离线
    H 离线
    hongjiewang
    在 中回复了 李东岳 最后由 编辑
    #10

    @李东岳 单核也是会出现相同的错误的

    1 条回复 最后回复
  • H 离线
    H 离线
    hongjiewang
    写于 最后由 编辑
    #11

    我调整了一下顺序,看有什么不同的输出。在读取interface和g中间添加一些本来是在后面才会读取到的变量(当然保证了这些变量是不会受顺序影响的)。结果发现,中间的这些变量都可以正常读取,最后又是卡在了g这个变量。

    Info<< "Construct interface from alpha1 distribution\n" << endl;  
    interfaceProperties interface
    (
        alpha1,
        U,
        thermo->transportPropertiesDict()
    );
        
    /*Info<< "Construct incompressible turbulence model\n" << endl;  
    autoPtr<incompressible::turbulenceModel> turbulence
    (
        incompressible::turbulenceModel::New(U, phi, thermo())
    );*/
    Info<< "Turbulent Prandtl number\n" << endl; 
    dimensionedScalar Prt("Prt", dimless, thermo->transportPropertiesDict());
    
    Info<< "kappaEff\n" << endl; 
    volScalarField kappaEff
    (
        IOobject
        (
            "kappaEff",
            runTime.timeName(),
            mesh,
            IOobject::NO_READ,
            IOobject::NO_WRITE
        ),
        thermo->kappa()
    );
    
    Info<< "Need to store rho for ddt(rhoCp, U)\n" << endl;  
    volScalarField rhoCp
    (
        IOobject
        (
            "rhoCp",
            runTime.timeName(),
            mesh,
            IOobject::NO_READ,
            IOobject::NO_WRITE
        ),
        rho*thermo->Cp()
    );
    //rhoCp.oldTime();
    
    dimensionedScalar deltaX("deltaX", dimless, thermo->transportPropertiesDict());
    
    dimensionedScalar gamma("gamma", dimless, deltaX.value()*0.75);
    
    dimensionedScalar epsilon("epsilon", dimless, deltaX.value()*3.5);
    
    dimensionedScalar deltaTau("deltaTau", dimless, deltaX.value()*0.1);
    
        dimensionedScalar dimChange
        (
            dimensionedScalar("dimChange", dimLength, 1.0)
        );
    
    
        dimensionedScalar sigma
        (
            "sigma", dimMass/dimTime/dimTime, thermo->transportPropertiesDict()
        );
        
    Info<< "MULES compressed flux is registered in case scalarTransport FO needs it\n" << endl; 
    surfaceScalarField alphaPhi
    (
        IOobject
        (
            "alphaPhi",
            runTime.timeName(),
            mesh,
            IOobject::NO_READ,
            IOobject::NO_WRITE
        ),
        phi*fvc::interpolate(alpha1)
    );
    #include "readGravitationalAcceleration.H"
    #include "readhRef.H"
    #include "gh.H"
    

    错误显示:

    Construct interface from alpha1 distribution
    Turbulent Prandtl number
    kappaEff
    Need to store rho for ddt(rhoCp, U)
    MULES compressed flux is registered in case scalarTransport FO needs it
    Reading g
    Segmentation fault (core dumped)
    
    H 1 条回复 最后回复
  • H 离线
    H 离线
    hongjiewang
    在 中回复了 hongjiewang 最后由 编辑
    #12

    是否有老师可以提供帮助~一直卡在这里进行不下去~

    1 条回复 最后回复
  • 李东岳李 离线
    李东岳李 离线
    李东岳 管理员
    写于 最后由 编辑
    #13

    卡在这一行么?

    #include "gh.H"
    

    http://dyfluid.com/index.html
    需要帮助debug算例的看这个 https://cfd-china.com/topic/8018

    H 1 条回复 最后回复
  • H 离线
    H 离线
    hongjiewang
    在 中回复了 李东岳 最后由 编辑
    #14

    @李东岳
    原始createFields.H文件,运行时会卡在turbulence的读取,没有读完之后就显示内存错误;
    之后我把turbulence注释掉,结果卡在了g(g是原始文件里turbulence后一个的变量);
    然后我想着改变一下顺序看看有什么结果,把后面的一些变量放到了g变量的前面,同时也是注释掉turbulence的,修改之后中间的这些变量都可以正常读取,但是依旧卡在了g这个变量。
    错误都是Segmentation fault (core dumped)

    1 条回复 最后回复
  • 李东岳李 离线
    李东岳李 离线
    李东岳 管理员
    写于 最后由 编辑
    #15

    你用Info判断一下具体是卡在哪一行代码,看log的提示看不出来哪一行代码有问题:

    Info<< "AA" << nl;
    #include "gh.H"
    Info<< "BB" << nl;
    

    http://dyfluid.com/index.html
    需要帮助debug算例的看这个 https://cfd-china.com/topic/8018

    H 1 条回复 最后回复
  • H 离线
    H 离线
    hongjiewang
    在 中回复了 李东岳 最后由 编辑
    #16

    @李东岳
    老师,我把完整的createFields.H文件放在这个帖子上了,每一行都有Info输出。还是有一样的错误~
    https://cfd-china.com/topic/4467/读取变量-segmentation-fault

    1 条回复 最后回复

  • 登录

  • 登录或注册以进行搜索。
  • 第一个帖子
    最后一个帖子
0
  • 最新
  • 版块
  • 东岳流体
  • 随机看[请狂点我]