周期境界について

849 views
Skip to first unread message

s_koga

unread,
Apr 5, 2012, 7:28:34 AM4/5/12
to OpenFOAM
現在大学で流体の数値計算をするためOpenFoamを使っています。
計算時間短縮のために周期境界を設定したいと思いました。

そこで、「周期境界の境界条件の設定」というディスカッションを参考に

incompressible/pisoFoam/les/pitzDailyDirectMappedチュートリアル

を見て周期境界を設定しましたが、エラーメッセージが出てしまい計算がすぐに止まってしまいました。
エラーメッセージは以下のようなものでした。

Cannot find patch none in region region0
Valid patches are
4
(
fixedWalls
centerline
inlet
outlet
)


From function directMappedPatchBase::samplePolyPatch()
in file directMapped/directMappedPolyPatch/directMappedPatchBase.C
at line 732.

原因と解決方法をご教授いただけないでしょうか。

ohbuchi

unread,
Apr 5, 2012, 4:30:57 PM4/5/12
to OpenFOAM
cyclicは基底型なのでboundaryファイルでもcyclicにしないとタイプが一致しません。
ユーザガイドをご覧下さい。恐らくboundaryファイルでpatchになっていると思います。

s_koga

unread,
Apr 6, 2012, 5:19:37 AM4/6/12
to OpenFOAM
ohbuchi様
返信ありがとうございます。

incompressible/pisoFoam/les/pitzDailyDirectMappedチュートリアル

のようにDirectMappedで定義することはできないのでしょうか?

> cyclicは基底型なのでboundaryファイルでもcyclicにしないとタイプが一致しません。
> ユーザガイドをご覧下さい。恐らくboundaryファイルでpatchになっていると思います。
>

ohbuchi

unread,
Apr 6, 2012, 6:13:20 AM4/6/12
to OpenFOAM
mappedとcyclicは別物です。mappedはoffsetで指定した
位置の値をコピーして適用するものです。

ohbuchi

unread,
Apr 6, 2012, 7:14:05 AM4/6/12
to OpenFOAM
もしかしたらOpenFOAM-2.1をお使いでしょうか?directMappedがmappedに変更になり
以前のチュートリアルは動作しなくなっています。

s_koga

unread,
Apr 7, 2012, 2:28:37 AM4/7/12
to open...@googlegroups.com
ohbuchi様
返信ありがとうございます。

OpenFOAMのバージョンは1.7です。なのでdirectMappedは動作すると思われます。

mappedについて詳しく聞きたいのですがよろしいですか?

type←タイプの指定
nFaces←適用面数
startFace←面番号
sampleMode←?チュートリアルでは「nearestPatchFace」となっていました
sampleRegion←?チュートリアルでは「region0」となっていました
samplePatch←?チュートリアルでは「none」となっていました
offset←この位置の値をコピーして適用

上記の?がついている部分というのが何を表しているのかできれば教えていただきたいです。

2012年4月6日金曜日 20時14分05秒 UTC+9 ohbuchi:

ohbuchi

unread,
Apr 7, 2012, 3:04:44 AM4/7/12
to OpenFOAM

Class
Foam::directMappedFixedValueFvPatchField



バージョン1.7でしたらmappedでなく、directMappedです。
下記の場所にソースがあります。
finiteVolume/fields/fvPatchField/derived/directMappedFixedValue
ヘッダファイルを見ると、説明が書いてあります。

Description
Recycles the value at a set of cells or patch faces back to *this.
Can not
sample internal faces (since volField not defined on faces).

mode = NEARESTCELL : sample nearest cell
mode = NEARESTPATCHFACE : sample nearest face on selected patch
mode = NEARESTFACE : sample nearest face on any patch. Note: does
not
warn if nearest actually is on internal face!

つまり、パッチやセル領域からサンプリングしてきて、境界値として利用する
ものです。
モードをnearestPatchFaceにする場合、指定したパッチ上の最も近いフェース
の値をサンプリングすることになります。
ということで、最初のエラーはパッチ名を指定すべきところをリージョン名
になっていたことが問題だった様ですね。

s_koga

unread,
Apr 8, 2012, 10:47:03 PM4/8/12
to open...@googlegroups.com
ohbuchi様
返信ありがとうございます。

なるほど。指定すべきところで指定すべきものではなかったということですか。
たびたび質問に答えていただきありがとうございます。

2012年4月7日土曜日 16時04分44秒 UTC+9 ohbuchi:
Reply all
Reply to author
Forward
0 new messages