非ニュートン流体の計算

昨日の勉強会での宿題を調べてみた。

昔、やったんだけどなぁ・・・ということだったんですが、実は、OpenFOAMの 1.5 以前には、そのものズバリのチュートリアルケース(nonNewtonianIcoFoam/offsetCylinder)が同梱されていたのでした。それを見れば一目瞭然です。

constantの下、transportProperties が、通常、

transportModel  Newtonian;

nu              nu [ 0 2 -1 0 0 0 0 ] 1e-05; 

CrossPowerLawCoeffs
{
    nu0             nu0 [ 0 2 -1 0 0 0 0 ] 1e-06;
    nuInf           nuInf [ 0 2 -1 0 0 0 0 ] 1e-06;
    m               m [ 0 0 1 0 0 0 0 ] 1;
    n               n [ 0 0 0 0 0 0 0 ] 1;
}

となっており、nu の値で粘性係数(この場合は動粘性係数)を指定していたのに対して、

transportModel  CrossPowerLaw;

nu              nu [0 2 -1 0 0 0 0] 1;

CrossPowerLawCoeffs
{
    nu0             nu0 [0 2 -1 0 0 0 0] 0.01;
    nuInf           nuInf [0 2 -1 0 0 0 0] 10;
    m               m [0 0 1 0 0 0 0] 0.4;
    n               n [0 0 0 0 0 0 0] 3;
}

として、この場合は、(CrossPowerLaw)を使って、その係数は、no0, nuInf などの値を指定・・・というだけのことでした。

ちなみにこの場合(CrossPowerLaw)粘性係数の値は以下のように計算されているようです (/src/transportModels/incompressivele/viscosityModels/CrossPowerLaw)

    return (nu0_ - nuInf_)/(scalar(1) + pow(m_*strainRate(), n_)) + nuInf_;

上記ソースの在所あたり(/src/transportModels/incompressivele/viscosityModels/)を見れば、他のモデル(BirdCarreau, HerschelBulkley など)も使えることもわかるし、独自のモデルを作るのもさほど難しくはなさそう・・・と判ります。

Share

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください