回転領域のある流れ場へのmapFields

887 views
Skip to first unread message

Hiro Akimoto

unread,
Jul 14, 2013, 11:06:22 PM7/14/13
to open...@googlegroups.com
いつも参考にさせてもらっています。秋元と申します。

現在、waveDyMFoamを使い、波の中で定速回転する物体の
2次元計算を行っています。
格子生成は、snappyHexMeshとextrudeMeshの組み合わせ、
回転物体は、AMIとsolidBodyMotionFunction rotatingMotionを
使っています。

waveDyMFoamによる計算は、問題なくできるようになったのですが、
回転パラメーターのシリーズ計算効率化のため、回転領域と物体の
ない状態をwaveFomで計算しておき、そこからmapFieldsを使って
waveDyMFoamのための初期流場を作りたいと考えています。

ところが、waveDyMFoamのcaseディレクトリで、
cp -r 0 10
mapFields -sourceTime 10 sourceCaseName
を実行すると、時刻10のディレクトリ内のファイルは、ヘッダーの
location "10" の部分が書き換えられただけで、マッピング結果が
書き込まれません。
エラーメッセージが出ないので、修正すべき点が分からず困っています。
何か方法に誤りがあるのでしょうか?
あるいは、回転領域がある場合のmapFieldsの使用例がありましたら
ご教示ください。

最後に、mapFieldsのメッセージを示します。
/*---------------------------------------------------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 2.2.0 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
Build : 2.2.0-5be49240882f
Exec : mapFields -sourceTime 10 ../waveFoam_T=2.0_h=0.10
Date : Jul 15 2013
Time : 11:34:14
Host : "****"
PID : 27745
Case : /home/***/waveDyMFoamTest
nProcs : 1
sigFpe : Enabling floating point exception trapping (FOAM_SIGFPE).
fileModificationChecking : Monitoring run-time modified files using
timeStampMaster
allowSystemOperations : Disallowing user-supplied system call operations

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

Source: ".." "waveFoam_T=2.0_h=0.10"
Target: "/home/*****" "waveDyMFoamTest"

Create databases as time

Source time: 10
Target time: 10
Create meshes

Source mesh size: 28160 Target mesh size: 37826


Mapping fields for time 10

interpolating alpha1
interpolating p_rgh
interpolating U

End

mapFieldsDictの中身
(試行錯誤していますが、ここに問題があれば、エラーメッセージがあるはず。)
patchMap
( front front1) ( front front2)
( back back1) (back back2);

cuttingPatches
(
bucket
);

大渕真志

unread,
Jul 15, 2013, 1:21:41 AM7/15/13
to OpenFOAM
こんにちは。
同一メッシュでマップする場合は、-consistentオプションが必要です。
マップ先(waveDyMFoam)のディレクトリ内で、以下の様に実行します。
mapFields "waves2Foam計算パス" -sourceTime 10 -consistent

尚、メッシュが異なる場合には、mapFieldsDict が必要です。


2013年7月15日 12:06 Hiro Akimoto <aki...@kaist.ac.kr>:

--
このメールは Google グループのグループ「OpenFOAM」の登録者に送られています。
このグループから退会し、メールの受信を停止するには、openfoam+u...@googlegroups.com にメールを送信します。
このグループに投稿するには、open...@googlegroups.com にメールを送信してください。
http://groups.google.com/group/openfoam からこのグループにアクセスしてください。
その他のオプションについては、https://groups.google.com/groups/opt_out にアクセスしてください。



Hiro Akimoto

unread,
Jul 15, 2013, 2:17:28 AM7/15/13
to open...@googlegroups.com
大渕様、

コメントありがとうございます。
現在解析している問題は、マップ元、マップ先でメッシュが異なるので、
inconsistentです。
マップ元は、waves2FoamのwaveFlumeチュートリアルそのまま。
マップ先は、計算領域中央に、物体を含む回転領域を追加し。
回転領域周辺の解像度は、snappyHexMeshにより細密化しています。

現在のmapFieldsDictは、
>> mapFieldsDictの中身
>> (試行錯誤していますが、ここに問題があれば、エラーメッセージがあるはず。)
>> patchMap
>> ( front front1) ( front front2)
>> ( back back1) (back back2);
>>
>> cuttingPatches
>> (
>> bucket
>> );

ここで、front, backは、2次元計算のempty patchです。
マップ先では、回転領域の内外で2つに分かれるので、
front1(回転部分), front2(外側の非回転部)のように名前を付けています。
bucketは、挿入される回転物体の表面です。
特にpatchMapの記述が、怪しいのですが、エラーメッセージが
出ないので、これ以前に問題があるのではないかと思っています。

 秋元

2013/7/15 大渕真志 <ohbu...@gmail.com>:
--
Hiromichi Akimoto, Dr. Eng., visiting foreign professor,
Division of Ocean Systems Engineering (OSE),
Korea Advanced Institute of Science & Technology (KAIST).
email: aki...@kaist.ac.kr, skype: hiro.akmt,
phone: +82-42-350-1599, fax: +82-42-350-1510, mobile: 010-7118-1967,
OSE bldg. (N27), KAIST, 291 Daehak-ro, Yuseong-gu, Daejeon 305-701,
Republic of Korea
http://triton.naoe.t.u-tokyo.ac.jp/akimoto/kaist/

大渕真志

unread,
Jul 15, 2013, 5:26:56 AM7/15/13
to OpenFOAM
失礼しました。inconsistentの場合でしたか。確認不足でした。
エラーメッセージが出ないということは、マップする対象がないということ、
つまり座標が合っていないということではありませんか?



2013年7月15日 15:17 Hiro Akimoto <aki...@kaist.ac.kr>:

Hiro Akimoto

unread,
Jul 15, 2013, 10:25:56 AM7/15/13
to open...@googlegroups.com
大渕様、

ご指摘ありがとうございます。
paraviewで、2ケースのメッシュを重ねて表示したところ、
まさにその通りでした。
2次元計算なのですが、本来計算をしないz方向の
厚み分ずれていたため、transformPointsで位置を
修正することで意図した通りのmapFieldsが行えました。
ありがとうございます。

後は、細かな事ですが、念のため書いておきます。
原因は、snappyHexMeshで3次元になってしまった格子を
extrudeMeshで2次元にする際に、レイヤー生成の
方向を勘違いしていた事が原因でした。
patchの正の法線方向(領域の外側)にしかextrudeできず、
負のthikness指定はエラーになるようなので、
このままでは、元の領域の外部にしかレイヤーを作れません。
このため、transformPointsで元の計算領域の位置に
メッシュを移動させて対応しました。
回転領域の有無は、関係ありませんでした。

 秋元

2013/7/15 大渕真志 <ohbu...@gmail.com>:
Reply all
Reply to author
Forward
0 new messages