在使用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. jquery.validate.unobtrusive的使用

    应用 一.引入 <script src="Scripts/jquery-1.7.1.min.js"></script> <script src=&qu ...

  2. Spring怎么管理事务?

    我们一般通过aop管理事务,就是把代码看成一个纵向有序的,然后通过aop管理事务,就好比增删改的时候需要开启一个事务,我们给他配置一个required,required就是有事务就执行事务,没有就给他 ...

  3. 记录下hbuilder vue项目打包APP 在IOS上点击延迟的问题

    做的项目打包成APP在IOS 上有延迟问题,在安卓下却不会,联想到之前 用IONIC时打包的APP也是 在IOS下有300毫秒延迟问题.所以 只能 认吧. 安装fastclick 插件: npm in ...

  4. 浅谈HTML5的新特性

    2014年10月29日,W3C宣布,经过接近8年的艰苦努力,HTML5标准规范终于制定完成. HTML5将会取代1999年制定的HTML 4.01.XHTML 1.0标准,使网络标准达到符合当代的网络 ...

  5. linux rwx 权限说明

    Linux的文件和目录的权限,有RWX三种. r(Read,读取):对文件而言,具有读取文件内容的权限:对目录来说,具有浏览目录的权限. w(Write,写入):对文件而言,具有新增,修改,删除文件内 ...

  6. MVC4 Model View Controller分离成独立项目

    适合人群:了解MVC项目的程序员 开发工具:vs2012 开发语言:C# 小项目或功能比较单一的项目可以直接新建一个MVC基本项目类型即可,但随着需求不断迭代,项目的功能模块越来越多,甚至有些模块可以 ...

  7. echarts路径图 绘制上海市52路公交车线路

    busLines = [{"coords":[[121.494687,31.253937],[121.494276,31.254031],[121.494226,31.254042 ...

  8. 自动化渗透测试工具(Cobalt Strike)3.1 最新破解版

    自动化渗透测试工具(Cobalt Strike)3.1 最新破解版[附使用教程] Cobalt Strike是一款专业的自动化渗透测试工具,它是图形化.可视化的,图形界面非常友好,一键傻瓜化使用MSF ...

  9. Go编程基础(介绍和安装)

    Michaelhbjian 2018.10.07 19:41 字数 892 阅读 317评论 0喜欢 0 Go(又称Golang[3])是Google开发的一种静态强类型.编译型.并发型,并具有垃圾回 ...

  10. JavaFX 学生登陆表格

    利用JavaFX实现一个学生登陆的界面,其中包括各种JavaFX组件的使用,利用焦点变动自动检测内容的合法性和监控文本输入以及页面的跳转,具体代码如下: /* * To change this lic ...