可以使用命令foamNewBC -help进行查看
江北区汝远网络技术工作室 首页 联系我们 业务合作 成功案例 产品介绍 企业文化 公司简介 人才招聘 新闻资讯
  • 首页
  • 联系我们
  • 业务合作
  • 成功案例
  • 产品介绍
  • 企业文化
  • 公司简介
  • 人才招聘
  • 新闻资讯
  • 可以使用命令foamNewBC -help进行查看
    发布日期:2024-06-25 10:03    点击次数:139

    可以使用命令foamNewBC -help进行查看

    本文描述在OpenFOAM中编程实现自定义边界类型。

    OpenFOAM中可以利用codeStream、codeFixedValue实现自定义边界上物理场分布。这些方式操作起来简单,但是功能也较为单一。若想要实现更加复杂的边界条件类型,可以通过编程创建新的边界类型。

    OpenFOAM中所有的边界条件定义均位于文件夹$FOAM_SRC/finiteVolume/fields/fvPatchFields中,用户可以利用文件夹中的边界类型为模板,开发自己的边界条件类型。

    以一个沿y方向速度成抛物线分布的边界为例,描述在OpenFOAM中新建一个边界条件的基本流程。在充分发展的管道流动中,轴向速度沿径向分布为:

    这里为平均速度;为径向方向坐标,为管道半径,为圆心坐标。

    1 文件准备

    打开Linux终端或Windows WSL,通过下面的命令准备文件。

    runfoamNewBC -f -v parabolicVelocitycd parabolicVelocity

    这里利用程序foamNewBC快速构造一个边界条件定义框架。关于foamNewBC的用法,可以使用命令foamNewBC -help进行查看,如下图所示。

    图片

    上面的命令中, 保定白沟新城羽芷服装店-f表示创建一个fixedValue型边界;-v表示创建一个矢量边界。

    此时在当前路径下创建了一个名为parabolicVelocity的文件夹, 上海坚明办公用品有限公司其内文件结构如下图所示。

    图片

    文件夹parabolicVelocity中包含了一个Make文件夹与parabolicVelocityFvPatchVectorField.C及parabolicVelocityFvPatchVectorField.H文件。这里不需要改动Make文件夹中的任何内容。

    2 修改头文件

    在头文件parabolicVelocityFvPatchVectorField.H中指定成员变量及构造函数。

    删除多余的成员变量,海伦市和南服务器有限公司添加新的成员变量
    // 指定最大速度值scalar maxvalue_;// 指定流动方向vector n_;// 指定y坐标方向vector y_;

    如下图所示。

    图片

    注释掉虚函数autoMap与rmap的定义

    图片

    3 修改源文件

    在源文件parabolicVelocityFvPatchVectorField.C中定义功能实现产品介绍。

    注释或删掉t()函数在第一个构造函数中添加参数初始化程序代码
    新闻资讯 0.55) 0px 2px 10px;">// 默认初始化Foam::parabolicVelocityFvPatchVectorField::    parabolicVelocityFvPatchVectorField(        const fvPatch &p,        const DimensionedField<vector, volMesh> &iF)    : fixedValueFvPatchVectorField(p, iF),      maxvalue_(0),      n_(1, 0, 0),      y_(0, 1, 0){}
    修改第二个构造函数
    Foam::parabolicVelocityFvPatchVectorField::parabolicVelocityFvPatchVectorField(    const fvPatch& p,    const DimensionedField<vector, volMesh>& iF,    const dictionary& dict):    fixedValueFvPatchVectorField(p, iF),    maxvalue_(readScalar(dict.lookup("maxvalue"))),    n_(dict.lookup("n")),    y_(dict.lookup("y")){    Info << "Using the parabolicVelocity boundary condition" << endl;    if (mag(n_) < SMALL 
    

    上一篇:温暖冬日:醇香羊肉汤,滋补营养好味道
    下一篇:乌鲁木齐高薪职位热招,诚邀英才共创未来