首页/文章/ 详情

基于groovyBC的OpenFOAM特殊边界设置

1年前浏览3332

groovyBC为第三方编写的OpenFOAM附加库,该库中提供了一种新型边界条件groovyBC,可用于设置特殊类型的非均匀边界条件。2.0版本后的groovyBC已整合至swak4Foam软件包中。

    1.安装方法:

           对早期的OpenFOAM1.5-1.7,可依据groovyBC软件发布页(http://openfoamwiki.net/index.php/Contrib/groovyBC) 内的说明步骤单独安装groovyBC。对OpenFOAM2.0-2.4,可通过安装swak4Foam(https://openfoamwiki.net/index.php/Contrib/swak4Foam)的方式安装。鉴于swak4Foam只支持到OpenFOAM2.4,对于更新版本的OpenFOAM,可以尝试按以下步骤安装:

    1. mkdir -p $FOAM_RUN   // $FOAM_RUN环境变量代表文件夹“~/OpenFOAM/用户名-版本号/run”
      cd "$FOAM_RUN/../"    //前往$FOAM_RUN的上级目录

    2. hg clone http://hg.code.sf.net/p/openfoam-extend/swak4Foam swak4Foam   //hg clone为Mercurial命令,表示从该网址下载文件
      cd swak4Foam && hg update develop  //升级至最新开发版本

    3. cd swak4Foam
      ./Allwmake        //开始编译

    2.使用说明

           在使用groovyBC前,需要在控制字典文件controlDict末尾添加行:
    libs ( "libgroovyBC.so" );   以调用groovyBC相关的动态库文件。
    可将求解变量的边界条件(boundaryField)类型设置为特殊的goovyBC类型,该类型下包含的主要参数为

    参数说明
    valueExpression                                                        字符串,用于设置第一类边界条件的表达式
    value未定义valueExpression时使用,已定义valueExpression的情况下作为初始条件首次计算使用
    gradientExpression字符串,用于设置第二类边界条件的表达式
    fractionExpression取值为1,使用第一类边界条件;取值为2,使用第二类边界条件
    variables定义valueExpression及gradientExpression表达式中使用的变量,以缩短字符串
    timelines设置随时间变化的非稳态边界条件

           valueExpression和gradientExpression字符串中常用的函数对象包括:

    参数说明
    pow,log,exp,sqr,sqrt,sin,cos,tan常用数学函数
    mag返回标量的绝对值及向量的模,mag(Sf())可返回边界单元的面积
    pos返回边界单元的中心坐标
    pts返回边界单元的顶点坐标
    normal返回边界单元的单位法向量
    deltaT返回计算时间步长
    rand生成(0,1)之间的随机数
    time返回当前计算时间

    3.运行实例

           下面来看一个基于groovyBC实现的脉冲后台阶流动算例(pulsedPitzDaily)该算例是在Tutorials中的pitzDaily算例基础上,采用groovyBC设置随时间脉动并按抛物线分布的速度入口。速度场U的inlet入口边界条件设置如下:

    inlet           
      {
        type            groovyBC;
        variables "yp=pts().y;minY=min(yp);maxY=max(yp);para=-(maxY-pos().y)*(pos().y-minY)/(0.25*pow(maxY-minY,2))*normal();";
        valueExpression "10*(1+0.5*sin(500*time()))*para";
        value           uniform (10 0 0);
      }

           下图中展示了算例运行过程中速度场随时间的变化,可以看出入口的速度大小是随时间脉动并按抛物线分布的。

    来源:多相流在线
    OpenFOAM多相流控制
    著作权归作者所有,欢迎分享,未经许可,不得转载
    首次发布时间:2023-06-22
    最近编辑:1年前
    积鼎科技
    联系我们13162025768
    获赞 134粉丝 119文章 320课程 0
    点赞
    收藏
    未登录
    还没有评论
    课程
    培训
    服务
    行家
    VIP会员 学习计划 福利任务
    下载APP
    联系我们
    帮助与反馈