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 修改源文件
添加以下代码,及上述方程
 - fvScalarMatrix TEqn
- (
- fvm::ddt(T) + fvm::div(phi, T) - fvm::laplacian(DT, T)
- );
- 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 |