OpenFOAM编程案例|16 颗粒跟踪
本案例演示利用OpenFOAM编程实现颗粒跟踪并绘制颗粒轨迹。 1 文件结构 利用下面的命令创建文件结构。 runfoamNewApp demo16 文件结构如下图所示。 2 程序源码 本案例只需要一个源文件demo16.C,其内...
本案例演示利用OpenFOAM编程实现颗粒跟踪并绘制颗粒轨迹。 1 文件结构 利用下面的命令创建文件结构。 runfoamNewApp demo16 文件结构如下图所示。 2 程序源码 本案例只需要一个源文件demo16.C,其内...
本案例演示利用OpenFOAM创建自定义插值格式。 1 文件结构 利用下面的命令创建文件结构: runfoamNewApp demo15cd demo15touch demo15.H 文件结构如下图所示。 修改...
本案例演示利用OpenFOAM中的基础代码实现SIMPLE算法。 1 SIMPLE算法 对于不可压缩NS方程,可以表示为: 式中有4个待求物理量:、、、。式中为运动压力(),为运动粘度。 方程求解有两个麻烦问题需要处理: 没有显式的压力求解...
本案例演示在OpenFOAM中利用编程创建网格。 1 创建程序框架 利用下面的命令创建程序框架。 runfoamNewApp demo11 文件结构如下图所示。 2 源代码 只需要处理demo11.C文件即可。 #in...
利用OpenFOAM开发一个求解波动方程的的求解器。 波动方程表达式为: 式中,c为波速,h为波高。 1 创建文件 利用foamNewApp快速创建文件结构。 runfoamNewApp demo13cd demo13t...
本案例演示利用OpenFOAM创建一个标量输运方程求解器。 本案例要求解的方程为: 没有瞬态项和源项。 1 文件框架 利用foamNewApp快速创建文件框架。 runfoamNewApp demo10 && ...
本案例演示编程实现一个在计算时进行数据处理的动态库程序。 1 创建文件结构 可以利用工具foamNewFunctionObject创建一个functionObjects工具。本案例演示创建一个在计算时获取某边界流量信息的functionOb...
本文描述在OpenFOAM中编程实现自定义边界类型。 OpenFOAM中可以利用codeStream、codeFixedValue实现自定义边界上物理场分布。这些方式操作起来简单,但是功能也较为单一。若想要实现更加复杂的边界条件类型,可以通...
本文演示在OpenFOAM中自定义库的基本过程。 有时候为了数据封装的需要,可以将特殊的代码先编译成库,然后在其他的代码中对库加以调用。本案例演示此过程。 1 文件准备 这里将库文件、功能文件以及测试文件分开。所有的文件都放置在run文件夹...
本案例演示自定义类并利用自定义的类操纵OpenFOAM数据。 类是面向对象编程的基础结构,利用类可以很方便地实现代码复用和封装。本案例通过两个类的定义来演示C++中类的定义与调用过程。 1 文件结构 和前面的案例一样,我们先创建基础的文件结...
本案例演示利用OpenFOAM进行并行计算的基础方法。 CFD计算自然离不开并行计算,在对大规模问题进行计算时,OpenFOAM也可以使用并行模式。然而利用并行模式进行计算时,可能需要修改一些程序代码,尤其是在需要获取全场信息时。本文以一个...
Open FOAM是Open Source Field Operation and Manipulation的英文缩写,从其名字就可以看出,其是一个用来操纵和处理场数据的开源程序库。CFD中也包含大量的物理场,如压力场、速度场、组分场等,这...
本文描述利用fvMesh类获取网格信息的一些基本用法。 OpenFOAM应用过程中需要频繁地与网格进行交互,比如获取网格面信息,获得网格中心坐标等。利用fvMesh类中的相应成员函数很容易实现这类需求。 fvMesh类是一个极为复杂的类,其...
本文演示利用OpenFOAM中的argList类为创建的程序构造命令参数。 从提供的argc和argv参数中提取命令参数和选项。如下面的命令执行方式: program -listFiles (*.txt) 命令中,program为命令的名称...
在OpenFOAM应用过程中,需要频繁的读写文件,如在计算之前需要读写各种字典文件以及边界条件数据,以及在计算过程中需要实时将计算结果数据写出到文件中。本案例演示编写程序读取指定文件中的相应内容以及将数据写入到文件的想要位置。 OpenFO...
OpenFOAM本质上是一个C++类库,其包含了从底层数值算法到高层应用求解器的所有细节代码。用户可以在此类库的基础上开发自己专有的CFD程序。然而OpenFOAM代码是一个极其庞大的代码库,想要灵活运用其基础代码也不是一件容易的事情,尤其...
本案例演示利用OpenFOAM中的Foam::Info函数输出信息,以及在Linux系统中配置OpenFOAM编译环境。 1 文件准备 启动终端,采用下面的命令创建文件: cd $FOAM_RUNmkdir demo0touch demo0...
周末休息。简单聊聊OpenFOAM编程。 这里只是谈谈个人的一些感受,毕竟好久没有再真正意义上的编过OpenFOAM程序了,近些年主要用商业软件去了,OpenFOAM的程序代码几乎都快要忘记光了。 不过话说回来,如果想要深入了解CFD的工作...
OpenFOAM中预编译了大量适用于各种应用场景的求解器,但有时可能希望向现有求解器中添加一些内容,或者基于新的研究开发新的求解器。本案例将演示如何将温度的标量输运方程添加到icoFoam求解器。 通过利用OpenFOAM的现有功能及其独特...
本案例演示在OpenFOAM中编写工具程序的基本过程。案例实现一个小功能,用于输出最大的网格变化率。 1 程序框架 OpenFOAM提供了foamNewApp帮助我们快速地创建程序框架。 执行下面的命令: cd $FOAM_RUN/Demo...