fvCFD.H:有限体积库相关的所有头文件的集合,这些头文件的功能在对应文件的Description
都有描述,现整理分析如下;
#ifndef fvCFD_H // if not define,避免重复定义
#define fvCFD_H // 开始定义该头文件
#include "parRun.H" //用于初始化参数,指导并行运算
#include "Time.H" //时间类
#include "fvMesh.H" //进行有限体积离散所需的网格数据
#include "fvc.H" //计算显式导数的函数名称空间(explicit)
#include "fvMatrices.H" //fvMatrix类,用于求解标量场矩阵
#include "fvm.H" //计算隐式导数的函数名称空间(implicit)
#include "linear.H" //中心差分格式(线性插值)
#include "uniformDimensionedFields.H" //量纲
#include "calculatedFvPatchFields.H"
#include "extrapolatedCalculatedFvPatchFields.H"
#include "fixedValueFvPatchFields.H"
#include "zeroGradientFvPatchFields.H"
#include "fixedFluxPressureFvPatchScalarField.H"
#include "constrainHbyA.H"//更正通量边界条件,使之满足一定条件,如:动量守恒
#include "constrainPressure.H"//更正压力边界条件,使之满足一定条件,如:通量守恒
#include "adjustPhi.H" //对于没有压力边界的情况,调整通量平衡以遵守连续性。如果域已关闭,则返回该域。
#include "findRefCell.H" //查找与给定单元格最近(在索引中)但不在循环、对称或处理器补丁上的引用单元。
#include "IOMRFZoneList.H"//具有IO功能的MRF区域列表。MRF区域由字典条目列表指定
#include "constants.H" //常数字典,如`pi`、e等
#include "OSspecific.H" //OpenFOAM使用的特定于POSIX兼容操作系统的功能,需要在其他系统上进行替换或模拟
#include "argList.H" //从提供的`argc`和`argv`中提取命令参数及选项,用于创建算例根目录
#include "timeSelector.H" //时间选择器,用于选择时间的scalarRange列表。
#ifndef namespaceFoam
#define namespaceFoam
using namespace Foam; //根据需要定义函数名称空间为 `Foam`
#endif
#endif //#endif:#if, #ifdef, #ifndef这些条件命令的结束标志,配套使用
补充说明:
- MRF区域字典条目列表:
\verbatim
zone1
{
cellZone rotor1;
active yes;
...
}
zone2
{
2.fvPatchField
,边界条件的派生,是记录定义在网格体中心(cell center)的变量(比如U)在计算域边界上的值。fvsPatchField
是记录定义在网格面中心(face center of cell)的变量比如phi,在计算域边界上的值。`这部分查阅到的资料比较少,有清楚的大牛希望可以留言给个解答,在此先行谢过。
3.这一部分的fvMesh.H
、fvc.H
、 fvm.H
三个文件决定了有限容积的稀疏矩阵类定义的一般形式,具体可参考OpenFOAM中的神奇方程定义方式的背后