OpenFOAM中能量方程的疑问
-
各位老师好!
我采用compressibleInterFoam二次开发计算了一个可压缩空化问题,目前对里面的能量方程有一点疑问。能量方程代码如下:
fvScalarMatrix TEqn ( fvm::ddt(rho, T) + fvm::div(rhoPhi, T) - fvm::laplacian(mixture.alphaEff(turbulence->mut()), T) + ( fvc::div(fvc::absolute(phi, U), p) + fvc::ddt(rho, K) + fvc::div(rhoPhi, K) ) *( alpha1/mixture.thermo1().Cv() + alpha2/mixture.thermo2().Cv() ) );
根据东岳老师的能量方程教程(链接:http://www.dyfluid.com/docs/energy.html ) 公式(7)和公式(21),可以得到alpha_eff 的单位应该是 kg/(ms),但通过查看of源代码可以发现alpha_eff 单位竟然可以是 kg/(ms) 还可以是 J/m/s/K。
代码链接:https://cpp.openfoam.org/v3/a02698.html#a9648c27c51ad3b583ca3c44c7ac0d868
https://cpp.openfoam.org/v3/a00123.html#a20f8bad2335b8c29d97af5ac7d324746问题一:我感觉alpha_eff 单位应该是 kg/(ms),怎么又多出来一个呢?
问题二:通过查阅文献,发现混合热扩散系数alpha_eff 需要通过导热率k,定容比热容Cv来计算(在本例中为水和水蒸气的导热率),在of中如何计算导热率k呢?
麻烦各位老师指点一下,同时请问有什么资料可以推荐参考呢?我去学习一下
-
@小考拉 继续补充,对于第二个问题,目前导热系数的确可以通过普朗特数的公式计算得到,但前提是我设置的case里面保证了thermophysicalProperties中的transport里面选择const
具体的介绍,可以参考:https://cfd.direct/openfoam/user-guide/v6-thermophysical/
-
在compressibleInterFoam中没找到你写的这一行代码,我的OpenFOAM-7/8是下面的:
fvScalarMatrix TEqn ( fvm::ddt(rho, T) + fvm::div(rhoPhi, T) - fvm::Sp(contErr, T) - fvm::laplacian(turbulence.alphaEff(), T) + ( fvc::div(fvc::absolute(phi, U), p)()() // - contErr/rho*p + (fvc::ddt(rho, K) + fvc::div(rhoPhi, K))()() - contErr*K ) *( alpha1()/mixture.thermo1().Cv()() + alpha2()/mixture.thermo2().Cv()() ) == fvOptions(rho, T) );
我看了下compressibleMultiphaseInterFoam倒是发现了类似的:
fvScalarMatrix TEqn ( fvm::ddt(rho, T) + fvm::div(mixture.rhoPhi(), T) - fvm::laplacian(mixture.alphaEff(turbulence->mut()), T) + ( fvc::div(fvc::absolute(phi, U), p) + fvc::ddt(rho, K) + fvc::div(mixture.rhoPhi(), K) )*mixture.rCv() );
里面有
mixture.alphaEff(turbulence->mut())
,这个单位在multiphaseMixtureThermo
里面定义了://- Effective thermal diffusivity of mixture [W/m/K] virtual tmp<volScalarField> alphaEff ( const volScalarField& alphat ) const;
[W/m/K]。看起来注释错了,应该是kg/(ms)