转载自: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;

}

}

05-26 21:28