看到官方的求解器,根本摸不清楚边界条件和有限体积是如何交互的。有人能解释一下这和我上述思路的差别和联系吗?
粗略看了下,这个求解器完全没用openfoam的思路来,采用的他自己的思路,就像你说的,他在开发这个求解器的时候,可能是有其他的代码(比如同组的Fortran)转过来的。并且完全是面向过程的思想。
如果你要用OpenFOAM求解的思路,还是看OpenFOAM的求解器比较好他这个就是把求解的过程自己实现了,然而没有使用OpenFOAM自带的方法。
他的main函数已经写的很清楚了:
int main(int argc, char *argv[])
{
#include "setRootCase.H"
#include "createTime.H"
#include "createMesh.H"
#include "setInputValues.H"
#include "createFields.H"
#include "readFluxScheme.H"
/// Time step loop
/// Posts the non-blocking send/recv of fields
long int iter = 0;
while( runTime.loop() ) {
/// 构造通量
#include "constructFaceFlux.H"
/// 有限体积离散
#include "sumFlux.H"
/// 边界通量修正
#include "boundaryFlux.H"
Info << "Iteration = " << ++iter << " ";
/// 矩阵计算
#include "stateUpdateLTS.H"
Info << " Max residue = " << rhoResidMax << endl;
/// 输出结果
runTime.write();
}
return 0;
}