OpenFoam——自定义求解器

打印 上一主题 下一主题

主题 870|帖子 870|积分 2620

1、求解器

1.1 复制源码

本案例以icoFoam为例,复制【openFOAM/OpenFOAM-9/applications/solvers/incompressible/icoFoam】文件夹至run文件夹下(我的是【openFOAM/mtl-9/run/solvers/incompressible】)
1.2 修改名称

将文件夹重新命名为【myIconFoam】
修改该目录下的文件名称,为了便于分辨是自己的求解器,在源代码里输出一些内容

1.3 修改files

修改【Make/files】
注意:这里路径要改为【$(FOAM_USER_APPBIN)】,与之前【FOAM_USER_APPBIN】区别

1.4 编译

输入【wmake】

编译成功之后开始使用
2、使用

复制一份cavity案例
blockMesh划分网格
myIcoFoam求解

3、进阶

本案例修改icoFoam求解器,添加温度项。

\[\frac{\partial T}{\partial t} + \bigtriangledown \cdot (UT)-{\bigtriangledown }^2(D_{T}T)=0\]
3.1 修改源文件

添加以下代码,及上述方程
  1. fvScalarMatrix TEqn
  2. (
  3.     fvm::ddt(T) + fvm::div(phi, T) - fvm::laplacian(DT, T)
  4. );
  5. TEqn.solve();
复制代码
3.2 修改场文件

新增以下有关温度项的代码

[code]IOdictionary myProperties // 新增一个myProperties项(    IOobject    (        "myProperties",        runTime.system(), // 存储在system文件夹下        mesh,        IOobject::MUST_READ_IF_MODIFIED,        IOobject::NO_WRITE    ));dimensionedScalar DT // 定义一个变量DT,从myProperties中获取(    "DT",    myProperties.lookup("DT"));Info

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

泉缘泉

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表