openfoam学习笔记-5
学习笔记-5
添加你自己的求解器(矩阵)
有两种方法添加新的求解器,一种是硬链接(hard-linking),一种是通过动态链接库;接下来主要介绍hard-linking,具体方法如下:
拷贝相近的目标求解器:PBiCG
cp -r $FOAM_SRC/OpenFOAM/matrices/lduMatrix/solvers/PBiCG $FOAM_RUN/myPBiCG
替换PBiCG.H/.C中的PBiCG字段为myPBiCG,并重命名为myPBiCG.H/.C
sed s/PBiCG/myPBiCG/g <PBiCG.C >myPBiCG.C
sed s/PBiCG/myPBiCG/g <PBiCG.H >myPBiCG.H
rm PBiCG.*
这里使用了流编辑器sed,具体语法可参考博文 ;
需要特别注意的是在myPBiCG.C文件中需要将新求解器本身添加到被允许的对称矩阵/非对称矩阵求解器中,否则应用求解器则不能选择;
namespace Foam
{
defineTypeNameAndDebug(myPBiCG, 0);
lduMatrix::solver::addasymMatrixConstructorToTable<myPBiCG>
addmyPBiCGAsymMatrixConstructorToTable_;
}
拷贝icoFoam求解器
cp -r $FOAM_APP/solvers/incompressible/icoFoam \
$FOAM_RUN/myIcoFoam
cd $FOAM_RUN/myIcoFoam
修改Make/files文件
icoFoam.C
$(FOAM_RUN)/myPBiCG/myPBiCG.C
EXE = $(FOAM_USER_APPBIN)/myIcoFoam
编译新求解器
wclean
rm -r Make/linux*
wmake
本文总阅读量337次 ⤧ Next post 常见Linux命令 ⤧ Previous post openfoam学习笔记-4