fixedFluxPressure边界条件【转载】
转载自:http://blog.sina.com.cn/s/blog_e256415d0102vikh.html
fixedFluxPressure是OpenFOAM较新的一个边界条件,表示边界处压力通量为固定值。在OpenFOAM-2.2.2中,还同时保留了buoyantPressure与fixedFluxPressure两个边界条件,而较新的版本中已经只能使用fixedFluxPressure条件。在CFD论坛中,有详细的描述,(第5,6楼)
http://www.cfd-online.com/Forums/openfoam-solving/82581-i-need-explanations-about-fixedfluxpressure.html
我大致总结一下:buoyantPressure设置压力梯度使其适用于浮力流,由于壁面边界通量差值趋于0,因此边界条件近似zeroGradient,buoyantPressure从物理意义上更符合 Archimedes' principle描述的壁面边界;而fixedFluxPressure则是调整压力梯度使得边界通量与速度边界条件指定的保持一致,收敛性更好。此外,fixedFluxPressure边界条件不限于壁面,也可以用于入口与出口,在interFoam中的渠道流案例中,出口设置为fixedFluxPressure。
此外,值得注意的是interFoam中的waterChannel范例,计算输出的log文件中会输出各个面的质量通量,如下所示。如果总和不为0,就表示质量通量不守恒,需要检查一下边界条件和初值条件是否设置正确。
faceSource inletFlux output:
sum(inlet) for rho*phi = -8.43073
faceSource outletFlux output:
sum(outlet) for rho*phi = 8.43846
faceSource atmosphereFlux output:
sum(atmosphere) for rho*phi = 0.00525326
这些输出是在system/controlDict文件中增加如下代码实现的:
functions
{
inletFlux
{
type faceSource;
functionObjectLibs ("libfieldFunctionObjects.so");
outputControl timeStep;
log true;
// Output field values as well
valueOutput false;
source patch;
sourceName inlet;
operation sum;
fields
(
rho*phi
);
}
outletFlux
{
$inletFlux;
sourceName outlet;
}
atmosphereFlux
{
$inletFlux;
sourceName atmosphere;
}
}