大気の気圧高度分布の作成について

216 views
Skip to first unread message

endu

unread,
Nov 16, 2011, 6:19:57 AM11/16/11
to open...@googlegroups.com

初めて質問させていただきます、enduと申します。

OpenFoam初心者です。

大学の研究で大気重力波の伝搬のシミュレーションを行おうと思っているのですが、
なかなかうまくいきません。

初めに、大気の気圧高度分布を作成するのが1stステップと言われて、頑張っているのですが、
作成できずにいます。

気温が一様で、流体の運動量方程式で高度ともに指数関数的に減少する気圧の高度分布を作成したいのですが、
なにかアドバイスいただけないでしょうか。

お願いします。


ohbuchi

unread,
Nov 18, 2011, 7:03:13 AM11/18/11
to OpenFOAM
OpenFOAMの問題ではなく、流体力学の問題ですね。
教科書で、静止流体力学の記述のあるものを探してみて下さい。
dp/dz=-ρg, p=ρRT
を連立して解けば圧力分布を求められます。温度が一定で、gも一定なら
変数分離法で簡単に積分できる筈です。
ネットで検索しても、多くの情報が見つけられると思います。
OpenFOAMでは求めた圧力分布を境界条件として指定する必要があるので
その方法について質問すれば、回答が得られると思います。

endu

unread,
Nov 18, 2011, 7:25:01 AM11/18/11
to OpenFOAM
ご回答ありがとうございます。

さっそく、ohbuchiさんのおっしゃるとおりに実行してみたいと思います。

また、求めた圧力分布について新しく質問してみます。

本当にありがとうございました。

遠藤貴士

unread,
Nov 21, 2011, 11:34:01 PM11/21/11
to OpenFOAM
先日質問させていただきましたが、ちょっと困ったことがあったのでまた質問させていただきます。

ohbuchi様がおっしゃったようにdp/dz=-ρg,  p=ρRTの式を用いて気圧の高度分布を作成しようと試みたのですが、プログラムの書き方などが分からず、挫折してしまいました。
そこで今回、私は圧縮性のrhoPimpleFoamを使用しているのでなんとかこのソルバで気圧の高度分布を作成できないかと思いまして質問させていただきました。

実際にはソルバの式に

rho*g = -fvc::grad(p)

のような式があるので気圧の高度分布が作成できるのではないかと考えたのですが、うまくいきませんでした。

ソルバの運動量方程式は以下のようになります。

// Solve the Momentum equation

tmp<fvVectorMatrix> UEqn
(
    fvm::ddt(rho, U)
  + fvm::div(phi, U)
  + turbulence->divDevRhoReff(U)
==rho*g
);

UEqn().relax();

volScalarField rAU(1.0/UEqn().A());

if (pimple.momentumPredictor())
{
    solve(UEqn() == -fvc::grad(p));
}
else
{
    U = rAU*(UEqn().H() - fvc::grad(p));
    U.correctBoundaryConditions();
}


「==rho*gの部分は新しく付け足しています。」


最終的には、手計算で求めた気圧分布と比較して本当にOpenFoamで作成した値が合致しているのかどうか検証したいと考えています。

実際にこのソルバで気圧の高度分布の作成は可能なのでしょうか?

皆様のお考えお聞かせください。

よろしくおねがいします。
endu
Reply all
Reply to author
Forward
0 new messages