XiFoam 指定した座標の物理量を書き換える方法

99 views
Skip to first unread message

akita mituru

unread,
Aug 8, 2019, 4:34:56 AM8/8/19
to OpenFOAM
openfoam 初心者です。

現在、XiFoamを用いて燃焼解析を行っているのですが、そこで例えば、
層流燃焼速度と圧力がある値を超えたら未燃割合を半分にするというようにプログラムを改良したいと考えたいます。
そこで、
b.boundaryField()[patchI][faceI] = scalar(0.5)*b.boundaryField()[patchI][faceI]

と書くとエラーになってしまいます。
error: assignment of read-only location

どのようにすればよろしいのでしょうか?

Inaba

unread,
Aug 18, 2019, 7:14:52 PM8/18/19
to OpenFOAM
akita様


こんにちは。
稲葉と申します。

バージョンにも依存しますが、最近のバージョンではboundaryField()関数はconstで値を返します。
内容を書き換える場合にはboundaryFieldRef()を使うと良いかと思います。

例:
b.boundaryFieldRef()[patchI][faceI]= scalar(0.5)*b.boundaryField()[patchI][faceI];
// もしくは
// b.boundaryFieldRef()[patchI][faceI] *= 0.5;
参考:https://cpp.openfoam.org/v7/classFoam_1_1GeometricField.html

以上です。
ご参考になれば幸いです。

稲葉
Reply all
Reply to author
Forward
0 new messages