お世話になっています。
nagoと申します。
rhoReactingBuoyantFoamに壁面での水蒸気凝縮を組み込もうとしています。
が、初期からつまづいています。
境界値と第1セル値の温度差や圧力差から凝縮量を計算しようとしています。
境界の値をp.boundaryFieldで取得して、次元設定した変数P_wallに代入しようとしていますが、うまくいきません。
コンパイルは通るのですが、計算すると次元の違いでエラーが出ます。
※ 各境界ファイスに対して値を取得して、以降で化学種ソース項を計算しようとしています。
ループ部についてはpenguin様のプログラミングメモを参考にしました。
追加したコードは以下です。
≪変数次元設定箇所≫
dimensionedScalar P_wall("P_wall", dimensionSet(1,-1,-2,0,0,0,0), scalar());
≪境界値取得箇所≫
forAll(mesh.boundary(), bid)
{
const fvPatch &patch = mesh.boundary()[bid];
forAll(patch, pfid)
{
P_wall = p.boundaryField()[bid][pfid]; ←エラー発生箇所
:
:
}
}
≪計算でのエラーメッセージ≫
--> FOAM FATAL ERROR:
Different dimensions for =
dimensions : [1 -1 -2 0 0 0 0] = [0 0 0 0 0 0 0]
From function dimensionSet::operator=(const dimensionSet&) const
in file dimensionSet/dimensionSet.C at line 171.
当方、プログラミング経験がほとんどなく、進め方もよくわかっていない状態です。
基本的なことが理解できていないので、稚拙な質問をしていたらすみません。
p.boundaryFieldでは単位の取得ができないのでしょうか?
そもそもの考え方が間違っている?
というか、エラーの内容も上記の解釈であっているのでしょうか。。。
何かご教授願えればと思います。
よろしくお願い致します。