湍流模型接口
-
我在OF的不可压缩湍流框架内,根据kEpsilon.C和kEpsilon.H编译了一个湍流模型mykEpsilon。然后在求解器pisoFoam.C中计算了一个壁面距离myY,根据这个myY来修改mykEpsilon中epsilon的方程。
如果直接在mykEpsilon.C中直接加myY,这个湍流模型肯定不能编译通过,因为单独编译mykEpsilon的时候,程序是不知道myY是什么的。而在pisoFoam.C中,又仅靠一个指针turbulence联系湍流模型,仅有U和phi能进入湍流模型中计算。如何让求解过程中的myY信息能够实时地进入湍流模型呢? -
发现在kEpsilon里面加成员函数和数据成员,编译kEpsilon成功。但是在pisoFoam.C里面使用这个湍流的成员函数,编译无法通过。原因是pisoFoam编译时的turbulence指针指向的是ImcompressibleTurbulenceModel。这个ImcompressibleTurbulenceModel类是没有上述成员函数和数据成员的。于是在ImcompressibleTurbulenceModel类中加了成员函数和数据成员。考虑到kEpsilon可以继承ImcompressibleTurbulenceModel,所以kEpsilon可以直接用那些数据成员了,就不必再定义。重新编译后,成功了。哈哈哈哈哈哈哈哈哈哈哈哈~~~
-
不过目前还有个不足是,我不知道怎么把ImcompressibleTurbulenceModel编译到USER_LIBBIN里面去。。因为这个编译很复杂,Make/files:
incompressibleTurbulenceModel.C turbulentTransportModels/turbulentTransportModels.C turbulentTransportModels/RAS/qZeta/qZeta.C turbulentTransportModels/RAS/kkLOmega/kkLOmega.C turbulentTransportModels/RAS/LamBremhorstKE/LamBremhorstKE.C turbulentTransportModels/RAS/LienLeschziner/LienLeschziner.C turbulentTransportModels/RAS/ShihQuadraticKE/ShihQuadraticKE.C turbulentTransportModels/RAS/LienCubicKE/LienCubicKE.C BCs = turbulentTransportModels/RAS/derivedFvPatchFields turbulentTransportModels/derivedFvPatchFields/wallFunctions/alphatWallFunctions/alphatJayatillekeWallFunction/alphatJayatillekeWallFunctionFvPatchScalarField.C LIB = $(FOAM_LIBBIN)/libincompressibleTurbulenceModels
我不敢乱动,所以在原文件里改的。这样可能会污染源代码。。