swak4Foam 如何用于名字形如 alpha.water 的场?

swak4Foam 的 groovyBC 边界条件提供了一种很灵活的用表达式定义边界条件的方法。但是,从 OpenFOAM-2.3 开始,两相流求解器如 interFoamtwoPhaseEulerFoam 开始采用类似于 alpha.water 的场,这种场名默认情况下 groovyBC 是无法正确识别的,因为 . 在 swak4Foam 表达式中有特殊的作用。
所幸的是,开发人员也早就意识到这个问题了,并给出了解决方案,那就是用 aliases。这个东西真是不知道就很难,知道了就很简单,下面举一个我实际用过的例子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
solid_inlet_left
{
type groovyBC;
valueExpression "-inVel*normal()"
value uniform (0 0 0);
variables (
"A=sum(area());"
"outFlow{outlet_left}=sum(Uparticles&normal()*area()*alphaparticles);"
"myFlow=outFlow/alphaparticles;"
"inVel=myFlow/A;"
);
aliases {
Uparticles U.particles;
alphaparticles alpha.particles;
}
}

我想我应该不用再解释什么。

主要参考这个网页