とある用途のため、OpenFOAM(+swak4foam)で、ダクト内流れが間欠的に流れの向きが変わる計算をしているが、なかなかうまくいかない。現状の、境界条件は以下の通り。
0/U
inlet
{
type pressureInletVelocity;
value uniform (1 0 0);
}
outlet
{
type pressureInletVelocity;
value uniform (1 0 0);
}
0/p
inlet
{
type groovyBC;
variables "p0=0.5;"; // =(0.5*U0*U0)/4
valueExpression "p0*(1+sin(pi*time()/50))";
value uniform 0;
}
outlet
{
type groovyBC;
variables "p0=0.5;"; // =(0.5*U0*U0)/4
valueExpression "p0*(1-2*sin(pi*time()/50))";
value uniform 0;
}
圧力境界条件は、下の図のようになる。周期的に入口・出口の圧力差が逆転するのだが、流れは減速と加速を繰り返すものの、逆流というところまでいかない。
圧力差によって加速した流体(の慣性力)に対して、次の周期の逆転した圧力差では、流速を0に近づけるのが精一杯ということだろう。
逆転させるには、圧力の時間関数を工夫する必要がありそう。
こんな感じ圧力差ではどうだろう。