我现在使用 reactingTwoPhaseEulerFoam,所获取的速度分别为 U.gas 和 U.liquid,我想获取一个综合的速度,请问下各位大神,如何操作?
所使用的 OpenFOAM 的版本是 v1912。
我现在使用 reactingTwoPhaseEulerFoam,所获取的速度分别为 U.gas 和 U.liquid,我想获取一个综合的速度,请问下各位大神,如何操作?
所使用的 OpenFOAM 的版本是 v1912。
获取综合速度,要看综合速度如何定义。一般情况下,可以把多相流综合速度定义为
因此,针对你说的 reactingTwoPhaseEulerFoam,就需要设定一个变量存储综合速度,在该求解器的源代码 applications/reactingEulerFoam/reactingTwoPhaseEulerFoam/createFieldRefs.H
末尾添加
volVectorField U
(
IOobject
(
"U",
runTime.timeName(),
mesh,
IOobject::READ_IF_PRESENT,
IOobject::AUTO_WRITE
),
U1
);
然后,在主程序源代码上添加
U = (U1 * rho1 * alpha1 + U2 * rho2 * alpha2 )/(rho1*alpha1 + rho2*alpha2);
runTime.write(); // 原来有的
一般说来,不会直接在源代码上进行改动,而将 reactingTwoPhaseEulerFoam 整个 copy 到用户目录下后,进行上述修改源码的操作,并对 Make/files
修改为编译到自己的用户目录下
EXE = $(FOAM_USER_APPBIN)/reactingTwoPhaseEulerFoam.user
为了避免混淆,可以在执行文件的名称后面加个用户名。然后使用 wmake 进行编译就可以了。