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
2 帖子 1 发布者 1.8k 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • GarethG 离线
    GarethG 离线
    Gareth
    写于 最后由 编辑
    #1

    各位老师好,我最近在尝试定义一个新的边界条件,目的是在每个时间步对边界赋值之后,再根据速度方向判断入流/出流,对出流的区域设置zeroGradient。相当于inletOutlet边界,只是不使用字典设置的inletValue,而使用对边界面赋值的结果。

    下面是我参考inletOutlet边界文件修改的updateCoeffs()函数:

    template<class Type>
    void Foam::timeVaryingInletOutletFvPatchField<Type>::updateCoeffs()
    {
        if (this->updated())
        {
            return;
        }
       
        this->operator==(fieldMapper_.map());
    //***************注释掉该部分后编译成功**********************************//
    // 拷贝于‘inletOutlet’边界源文件,用于判断方向并对系数赋值
        const Field<scalar>& phip =
            this->patch().template lookupPatchField<surfaceScalarField, scalar>
            (
                phiName_
            );
        this->valueFraction() = 1.0 - pos0(phip);
    //**********************************************************************//
        fixedValueFvPatchField<Type>::updateCoeffs();
    }
    

    在编译时有如下的错误信息:

    // error 1
    /home/gareth/OpenFOAM/OpenFOAM-8/src/OpenFOAM/lnInclude/DimensionedField.H:83:40: 
    error: invalid use of incomplete type ‘class Foam::surfaceMesh’
             typedef typename GeoMesh::Mesh Mesh;
                                           ^~~~
    // 中间省略,基本上都是这两种错误.....
    // error 2
    /home/gareth/OpenFOAM/Custom-8/newBoundary/myCode/timeVaryingInletOutlet/timeVaryingInletOutletFvPatchField.C:321:26: 
    error: invalid initialization of reference of type ‘const Foam::Field<double>&’ from expression of type ‘const Patch {aka const Foam::fvsPatchField<double>}’
         const Field<scalar>& phip =
                              ^~~~
    

    感觉问题出在phip通量场的定义和方向判断部分,我将这部分代码注释掉之后,编译可以顺利完成(0 errors)。看起来这两种编译错误都是由phip部分造成的,但我弄不清楚为什么?

    麻烦各位老师帮忙解答下,谢谢!

    1 条回复 最后回复
  • GarethG 离线
    GarethG 离线
    Gareth
    写于 最后由 编辑
    #2

    我已经解决了这个编译错误,主要是自己粗心大意导致的:135: :136: 。
    在***FvPatchFields.C文件中增加了#include surfaceFields.H即能编译通过

    1 条回复 最后回复

  • 登录

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