Tやalphaをそのまま使っても良い(もっと賢い方法がある)かも知れませんが、
2年前に、似てるものを入れた場合は、「次元を合わせること等が面倒」くさ
かったため、
参考になれるかは知れませんが、下記のようにしCellことに計算したことがあり
ます。
ご参考まで。。
qは湿度です。
for (q, celli)
{
scalar etemp=6.1078*pow(10,(7.5*T[celli]/(237.3+T[celli])));
if (T[celli])
{
etemp=6.1078*pow(10,(9.5*T[celli]/(265.3+T[celli])));
}
scalar qtemp=0.622*etemp/(1012.5-0.378*etmep);
if(qtemp[celli]=>qtemp)
{
q[celli]=qtemp;
返事が遅くなってすみませんでした。
他の方法もあるかも知れませんが、したいことがCellごとに条件をかけることな
ので、
(個人的には)このような方法しかないんじゃないかと思います。
そして、for(mesh.cells(),celli) のところですが、
mesh.cell()で大丈夫かはやってみなかったため、わかりませんが、
少なくともforAll です。(Typeのミスだと思いますが。。)
http://www.cfd-online.com/Forums/openfoam/78236-conditional-operation-geometric-field.html
http://www.cfd-online.com/Forums/openfoam-programming-development/79677-if-else-condition-over-whole-mesh.html
--
===========================================
Se-min JEONG, Ph.D, Assistant Professor
Department of Environment Systems,
Graduate School of Frontier Sciences,
University of Tokyo, 5-1-5 Kashiwa-no-ha,
Kashiwa 277-8563, Japan
Tel: +81-80-5537-5405
===========================================