在使用OpenFOAM求解的时候我们经常需要设置非均匀的边界,比如我们在计算层流的时候,很多时候需要入口为充分发展的入口边界,下面我们就以入口处为充分发展的层流速度分布为总结OpenFOAM当中设定不均匀边界条件的方法

OpenFOAM当中对非均匀边界条件设置大致有以下几种方法:

方法一:直接用非均匀场的方式将边界上对应的值写入算例目录下0文件夹下的文件当中,详细操作见算例:《OpenFOAM——90度T型管》,链接:http://blog.sina.com.cn/s/blog_14d64daa10102xh4r.html

方法二:使用codedFixedValue边界

codedFixedValue

基本格式为:

边界名称

{

type            codedFixedValue;

value           uniform 0;

name            rampedFixedValue;   // name of generated BC

code

#{

operator==(min(10, 0.1*this->db().time().value()));

#};

//codeInclude

//#{

//    #include "fvCFD.H"

//#};

//codeOptions

//#{

//    -I$(LIB_SRC)/finiteVolume/lnInclude

//#};

}

对于入口处为充分发展的层流速度分布可如下设置边界条件:

也可以写为下面的形式

首先在0文件夹下设定入口

在system目录下新建一个名为codeDict的文件

然后在codeDict当中实现非均匀边界

方法三:编译新的边界条件

翻译整理自:https://pingpong.chalmers.se/public/courseId/7056/lang-en/publicPage.do?item=3209036

进入任意目录,在终端中输入:

foamNewBC -f -v parabolicVelocity

编译目录下的文件如下:

具体用途可参加苏老师《运用OpenFOAM编译器wmake编译自己的程序》,链接:http://blog.sina.com.cn/s/blog_5fdfa7e60100dciw.html

简单说一下这些文件的用途:

parabolicVelocityFvPatchVectorField.H包含了编译所需要的头文件,新边界的构造函数

parabolicVelocityFvPatchVectorField.C主要包含了编译边界的构造函数的实现,以及新的边界条件实现的相关函数

Make文件夹下文件的用途

files文件主要用于指定编译的文件以及编译完成的库保存的路径

options文件主要用于指定编译所需要链接的库以及编译所包含头文件所在的路径

这里我们只需要修改parabolicVelocityFvPatchVectorField.H和parabolicVelocityFvPatchVectorField.C两个文件

我们修改parabolicVelocityFvPatchVectorField.H文件

首先我们删除parabolicVelocityFvPatchVectorField.H文件下原来的私有成员(这里我们直接将其注释掉)

然后添加我们自己的私有成员

删除掉成员函数autoMap和rmap函数(这里我们直接将其注释掉)

完成以上操作保存parabolicVelocityFvPatchVectorField.H,转入parabolicVelocityFvPatchVectorField.C文件的修改,主要是对构造函数的实现、updateCoeffs()函数的实现和write()函数实现

与前面的parabolicVelocityFvPatchVectorField.H当中构造函数相对应的实现

updateCoeffs()函数的实现

write()函数实现

进入parabolicVelocity目录下

然后在终端中输入:

wmake libso

我们进入算例目录下,找到controlDict文件,在其末尾添加libs ("libparabolicVelocity.so");

进入算例目录下的0文件夹,将U文件当中的入口边界设置如下

然后回到算例目录,在终端中输入

pyFoamPlotRunner.py simpleFoam

求解完成

和前面通过直接用非均匀场的方式将边界上对应的值写入算例目录下0文件夹下的文件当中的计算结果一致

相关文件下载:https://pan.1dqxMfO 密码:q7os

方法四:使用swak4foam

具体可参加下面的链接:

http://suo.im/2B1Rl7

http://suo.im/p1XDp

OpenFOAM——设置非均匀边界方法总结的更多相关文章

  1. OpenFOAM——设置自定义非均匀场区域

    在使用OpenFOAM进行计算的时候,我们需要对计算域设置非均匀场,比如最典型的溃坝算例,在开始计算以前,我们需要首先设定某一区域的水的体积分数为1,就是下面这样的: 有可能我们在计算传热问题的时候, ...

  2. CSharpGL(36)通用的非托管数组排序方法

    CSharpGL(36)通用的非托管数组排序方法 如果OpenGL要渲染半透明物体,一个方法是根据顶点到窗口的距离排序,按照从远到近的顺序依次渲染.所以本篇介绍对 UnmanagedArray< ...

  3. Keil MDK下如何设置非零初始化变量

    一些工控产品,当系统复位后(非上电复位),可能要求保持住复位前RAM中的数据,用来快速恢复现场,或者不至于因瞬间复位而重启现场设备.而keil mdk在默认情况下,任何形式的复位都会将RAM区的非初始 ...

  4. Keil MDK下如何设置非零初始化变量(转)

    源:Keil MDK下如何设置非零初始化变量 一些工控产品,当系统复位后(非上电复位),可能要求保持住复位前RAM中的数据,用来快速恢复现场,或者不至于因瞬间复位而重启现场设备.而keil mdk在默 ...

  5. Keil MDK下如何设置非零初始化变量(复位后变量值不丢失)

    一些工控产品,当系统复位后(非上电复位),可能要求保持住复位前RAM中的数据,用来快速恢复现场,或者不至于因瞬间复位而重启现场设备.而keil mdk在默认情况下,任何形式的复位都会将RAM区的非初始 ...

  6. 详解PHP设置定时任务的实现方法

    详解PHP设置定时任务的实现方法 一.总结 一句话总结: 1.ignore_user_abort(true)是什么意思? 无论客户端是否关闭浏览器,下面的代码都将得到执行 2.set_time_lim ...

  7. 非均匀B样条离散点的加密与平滑

    非均匀B样条离散点的加密与平滑 离散点的预处理是点云网格化很关键的一步,主要就是离散点的平滑.孔洞修补:本文是基于非均匀B样条基函数进行离散点云的加密和平滑的,一下为初步实现结果. 算法步骤: 1.数 ...

  8. ecshop后台增加|添加商店设置选项和使用方法详解

    有时候我们想在Ecshop后台做个设置.radio.checkbox 等等来控制页面的显示,看看Ecshop的设计,用到了shop_config这个商店设置功能 Ecshop后台增加|添加商店设置选项 ...

  9. 类的继承和多态性-编写Java应用程序,定义Animal类,此类中有动物的属性:名称 name,腿的数量legs,统计动物的数量 count;方法:设置动物腿数量的方法 void setLegs(),获得腿数量的方法 getLegs(),设置动物名称的方法 setKind(),获得动物名称的方法 getKind(),获得动物数量的方法 getCount()。定义Fish类,是Animal类的子类,

    编写Java应用程序,定义Animal类,此类中有动物的属性:名称 name,腿的数量legs,统计动物的数量 count;方法:设置动物腿数量的方法 void setLegs(),获得腿数量的方法 ...

随机推荐

  1. windows如果在IE中用超链接打开谷歌页面

    Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\openChrome] @="URL:openChrome Protocol& ...

  2. Beego 学习笔记10:Easyui使用

    EasyUI使用 1>     下载EasyUI.下载地址:http://www.jeasyui.com/download/index.php 根据自己使用的是jquery还是Angular进行 ...

  3. 22、vue实现随机四位数验证码

    效果图: 1.新建生成验证码的组件Sidentify.vue(代码如下): <template> <div class="s-canvas"> <ca ...

  4. 通过windowmanager在camera界面上显示内容

    Window与WindowManager机制https://www.jastrelax.com/android/2018-03-08-android-window/ [Android开发艺术探索阅读笔 ...

  5. jsp 获取后端配置文件.properties的某个配置内容

    如后端有个叫做config.properties的配置文件: sys.img=st_sp jsp中引用的方式是: <%@ page language="java" impor ...

  6. 解决kettle在两个mysql之间迁移数据时乱码的问题 和 相关报错 及参数调整, 速度优化

    1. 乱码问题 编辑目标数据库的链接: 配置编码参数即可. 2. 报错 No operations allowed after statement closed. 需要调整wait_timeout:  ...

  7. MySQL--mysqldmp命令参数set-gtid-purged

    在MySQL 5.7版本中使用mysqldump导出数据时,如果未显式指定set-gtid-purged参数,会报下面错误: Warning: A partial dump from a server ...

  8. Win10下免安装版MySQL5.7的安装和配置

    1.MySQL5.7解压 2.新建配置文件my.ini放在D:\Free\mysql-5.7.26-winx64目录下 [mysql] # 设置mysql客户端默认字符集 default-charac ...

  9. 详解Linux操作系统的iptables原理及配置

    linux网络防火墙 netfilter :内核中的框架,过滤框架,网络过滤器! iptables  :实现数据过滤.net.mangle等规则生成的工具 防火墙:硬件.软件.规则(匹配规则.处理办法 ...

  10. GitLab企业级代码管理仓库

    原文:https://www.cnblogs.com/wsnbba/p/10171052.html   使用GitHub或者码云等公共代码仓库 使用GitLab私有仓库 GitLab是什么? 是一个用 ...