メッシュ作成方法に関する質問

556 views
Skip to first unread message

shin

unread,
Sep 4, 2009, 2:16:48 PM9/4/09
to OpenFOAM
OpenFOAM初心者の山田と申します。
今回,メッシュ作成方法に関しての質問にお答えして頂きたく思い,投稿させて頂きました。


現在,日本建築学会から出版されている
「市街地風風環境予測のための流体数値解析ガイドブック」に記載されてあるベンチマークテストを
自身でOpenFOAMを使い解析を行うことで
OpenFOAMの知識を蓄積していこうと考えています。

と意気込んでみたのはいいが,
メッシュ作成のところでさっそくつまづいている次第であります。


以下のURLの一枚目の右側にある

http://wwwsoc.nii.ac.jp/jscfd/cfds15/papers/C06/C06-1.pdf

Fig.2 Computational domain and grid arrangementのような
対象建物周りから離れるにつれてメッシュが粗くなる形状を作成したいのですが,


blockMeshやsnappyHexMeshを使う方法は,メッシュ分割は等間隔にしか切れないようなので,意図するメッシュ形状を作成できないの
では?
また,Salomeを使う方法やenGridを使う方法は,非構造格子を自動的に作成することに特化したソフトのようなので,意図する直行格子のメッ
シュ形状を作成できないのでは?


といった疑問が湧いており,
一体,どの方法からアプローチしたら良いのか分からないという状態です。



そこで質問なのですが,
上記のURLにあるようなメッシュ形状を作成しようとした場合,
①blockMeshやsnappyHexMeshを使う方法
②Salomeを使う方法
③enGridを使う方法
の三つのうちどの方法をとれば,メッシュ形状作成が可能となるのでしょうか?

Giro

unread,
Sep 5, 2009, 11:05:32 AM9/5/09
to OpenFOAM
> ①blockMeshやsnappyHexMeshを使う方法
> ②Salomeを使う方法
> ③enGridを使う方法
> の三つのうちどの方法をとれば,メッシュ形状作成が可能となるのでしょうか?

Giroです。
ご指定のURLに見られる格子は、
直交格子で、一部にメッシュを寄せている ようですので
①blockMeshで作成するのが、もっとも簡単でしょう。
注)snappyHexMeshは少し意味合いが違いますので
 まずは、blockMeshで経験を積まれる方がよろしいかと。
また、②でもできます。が、blockMeshの方がはるかに使い易いでしょう。
③ではできません。

このご時勢ではありますが、CFDの基本は
やはりメッシュ作成に汗をかく事だと考えます。
びっくりするような近道はなく、地道に経験を積まれる事が
結局はご自身のためになろうかと考えます。
(どういう所が大事なのか?を感覚として理解するための
一定の経験を積むという事は、とても重要だと考えています。)

私がCFDに手を染めたころ、メッシュはFortranでプログラムを書いて作成していました。
(ラムインテークのメッシュ作成なんてな事をやったりしてました)
今でも、状況によってはそうする事があるくらいです。
blockMeshは、Fortran等の言語を駆使する事無く 一定のメッシュを作成できますので
使いこなせば、それなりにいろいろなメッシュが作成可能となる事でしょう。
もっとも、非常に複雑な形状を解く となると、
さすがに市販のメッシュ作成ソフトをお勧めします。

OpenFOAMで用意されている、各種サンプルファイルのblockMeshを参考としながら、
いろいろとがんばってみてください。

shin

unread,
Sep 5, 2009, 2:38:42 PM9/5/09
to OpenFOAM
> ①blockMeshで作成するのが、もっとも簡単でしょう。
> 注)snappyHexMeshは少し意味合いが違いますので
>  まずは、blockMeshで経験を積まれる方がよろしいかと。

> このご時勢ではありますが、CFDの基本は
> やはりメッシュ作成に汗をかく事だと考えます。
> びっくりするような近道はなく、地道に経験を積まれる事が
> 結局はご自身のためになろうかと考えます。


Giro様

メッシュ作成に関するご教授と
大変身に染みるお言葉
ありがとうございます。

早く成果をあげなくてはという焦りから、
目先の成果に捕らわれすぎて
メッシュ作成というCFDの大事な基本を軽く見ておりました。

上記でのアドバイスにあるように
まずは、各種サンプルファイルのblockMeshを参考として
blockMeshDictの設定方法を理解するところから、
じっくり腰を据えて
メッシュ作成の知識を深めていこうと思います。
> > の三つのうちどの方法をとれば,メッシュ形状作成が可能となるのでしょうか?- 引用テキストを表示しない -
>
> - 引用テキストを表示 -

IMANO Masashi

unread,
Sep 6, 2009, 12:12:08 AM9/6/09
to open...@googlegroups.com

shinさん

今野です.

> > > 以下のURLの一枚目の右側にある
> >
> > >http://wwwsoc.nii.ac.jp/jscfd/cfds15/papers/C06/C06-1.pdf
> >
> > > Fig.2 Computational domain and grid arrangementのような
> > > 対象建物周りから離れるにつれてメッシュが粗くなる形状を作成したいのですが,

このGoogleグループのファイルのページ

http://groups.google.co.jp/group/openfoam/files

にあるチュートリアルケース

transientAirconditionedOffice-YYYYMMDD.tar.gz

に付随する直方体状の格子を作成するスクリプトmakeStructuredGridMesh.py
では,任意間隔の格子を作成できます

このスクリプトは格子座標として{x,y,z}.datを読みますので,こちらをベン
チマークの文献におけるメッシュ図を参考にExcel or スクリプト等で作成し
てください.

なお,境界面のtypeはご自分が望むように出力されるように,
makeStructuredGridMesh.pyを書き変えてください.

boundaryFile.write( "x_\n{\n\t type symmetryPlane;\n\t nFaces "+repr(nfaces)+";\n\t startFace "+repr(startFace)+";\n}\n\n" )

boundaryFile.write( "x_\n{\n\t type wall;\n\t nFaces "+repr(nfaces)+";\n\t startFace "+repr(startFace)+";\n}\n\n" )


上記のベンチマークでは,さらに建物をくり抜く必要がありますが,それは
setSetとsubsetMeshのユーティリティを組み合わせて行なうことができます.

上記のチュートリアルでも,makeMeshスクリプトでメッシュを作成する際に
エアコン(AC)部をくり抜くことを行なっているので参考にしてください.

それでは.

shin

unread,
Sep 7, 2009, 3:20:54 AM9/7/09
to OpenFOAM
今野様

初心者の私にでも理解できる
非常に丁寧なアドバイスありがとうございます。

早速、おっしゃられた方法でアプローチしてみようと思います。

それでは、失礼致します。
Reply all
Reply to author
Forward
0 new messages