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. rhoSimpleFoam算例初始值及边界问题

rhoSimpleFoam算例初始值及边界问题

已定时 已固定 已锁定 已移动 OpenFOAM
5 帖子 1 发布者 4.6k 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • R 离线
    R 离线
    RebelYoung
    写于2020年7月12日 03:07 最后由 编辑
    #1

    报错:

    --> FOAM FATAL IO ERROR: 
    Cannot find patchField entry for far
    

    系统信息:win10,VMware Ubantu20.04,openFoam 7
    网格:pointwise 三维C-H网格
    边界:inlet,outlet,far(右侧外边界),wing,sym
    OF刚上手,想计算个机翼。
    我拷贝二维的naca0012算例 $FOAM_TUTORIALS/compressive/aerofoilNACA0012,根据近期学习,我的理解是只要把常规二维算例中frontAndback的empty边界条件(对应我算例的far和sym)改为相应的patch和symmetry即可。
    其中我发现的一个问题是,tutorial算例/0的初始值文件(贴出U,其他类似)设置方式为:

    FoamFile
    {
        version     2.0;
        format      ascii;
        class       volVectorField;
        object      U;
    }
    // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
    
    Uinlet          (250 0 0);
    
    dimensions      [0 1 -1 0 0 0 0];
    
    internalField   uniform $Uinlet;
    
    boundaryField
    {
        freestream
        {
            type            freestreamVelocity;
            freestreamValue uniform $Uinlet;
            value           uniform $Uinlet;
        }
    
        wall
        {
            type            noSlip;
        }
    
        #includeEtc "caseDicts/setConstraintTypes"
    }
    
    

    区别于常规的结构:

    boundaryField
    {
        名称1
        {
            type            类型;
        }
       名称2
        {
            type            类型;
        }
    }
    
    

    看了半天,我的理解是patch类型边界就是freestream类型,由于机翼或翼型计算外流,上下前后自由流条件相同,就不用常规写法,一个个写了。

    于是,我检查了/0下文件,所有文件都是这个结构写的,我就没啥改动,直接运行了。。。
    结果出现报错:

    --> FOAM FATAL IO ERROR: 
    Cannot find patchField entry for far
    
    file: /mnt/hgfs/openfoam/sharerun/testwing/0012noswpc9/0/p.boundaryField from line 27 to line 74.
    
        From function void Foam::GeometricField<Type, PatchField, GeoMesh>::Boundary::readField(const Foam::DimensionedField<TypeR, GeoMesh>&, const Foam::dictionary&) [with Type = double; PatchField = Foam::fvPatchField; GeoMesh = Foam::volMesh]
        in file /home/rebel/OpenFOAM/OpenFOAM-7/src/OpenFOAM/lnInclude/GeometricBoundaryField.C at line 188.
    
    FOAM exiting
    
    
    [1]+  退出 1                rhoSimpleFoam > log.rhoSimpleFoam
    

    Google了半天,发现一般这种error都是缺分号造成的。。
    可是我p文件就是没改动的那种啊。。。

    FoamFile
    {
        version     2.0;
        format      ascii;
        class       volScalarField;
        object      p;
    }
    // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
    
    pOut            1e5;
    
    dimensions      [1 -1 -2 0 0 0 0];
    
    internalField   uniform $pOut;
    
    boundaryField
    {
        freestream
        {
            type            freestreamPressure;
            freestreamValue uniform $pOut;
        }
    
        wall
        {
            type            zeroGradient;
        }
    
        #includeEtc "caseDicts/setConstraintTypes"
    }
    
    

    我又把tutorials naca0012 跑了一遍,真的没问题啊!

    无奈之下,来论坛提问,请大佬们指点一下。万分感谢!!!

    1 条回复 最后回复
  • R 离线
    R 离线
    RebelYoung
    写于2020年7月12日 03:16 最后由 编辑
    #2

    @东岳 老师,help me.

    1 条回复 最后回复
  • R 离线
    R 离线
    RebelYoung
    写于2020年7月12日 03:21 最后由 编辑
    #3

    突然反应,可能是那种方式对sym不可用,我赶紧去试试

    R 1 条回复 最后回复 2020年7月12日 03:32
  • R 离线
    R 离线
    RebelYoung
    在 2020年7月12日 03:32 中回复了 RebelYoung 最后由 编辑
    #4

    @RebelYoung 还是不行。。。。相同报错

    1 条回复 最后回复
  • R 离线
    R 离线
    RebelYoung
    写于2020年7月12日 07:27 最后由 编辑
    #5

    我好像发现什么了,这个结构是一样的,不过tutorial case里obj生成polyMesh中,有分组。。。

    (
        aerofoil
        {
            type            wall;
            inGroups        List<word> 1(wall);
            nFaces          120;
            startFace       31760;
        }
        inlet
        {
            type            patch;
            inGroups        List<word> 1(freestream);
            nFaces          200;
            startFace       31880;
        }
        outlet
        {
            type            patch;
            inGroups        List<word> 1(freestream);
            nFaces          160;
            startFace       32080;
        }
        back
        {
            type            empty;
            inGroups        List<word> 1(empty);
            nFaces          16000;
            startFace       32240;
        }
        front
        {
            type            empty;
            inGroups        List<word> 1(empty);
            nFaces          16000;
            startFace       48240;
        }
    )
    

    所以,/0下文件头上freestream不是类型名,是边界(组)名。。。
    感觉这个地方有误导性,导致我以为文件结构不同。。。
    建议改个组名!

    1 条回复 最后回复
2020年7月12日 03:07

1/5

2020年7月12日 03:07

2020年7月12日 07:27
  • 登录

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