人体周りの解析。メッシュを切る

980 views
Skip to first unread message

ken kitazawa

unread,
Sep 25, 2013, 3:29:50 AM9/25/13
to open...@googlegroups.com
 大学4年のOpenfoam初心者です。
inlet、outlet、wallからなる空間に人体モデルをおき、simpleFoamで解析しようとしています。
境界条件の前にとりあえずメッシュをうまく切り、解析できれば良いのですが、複雑形状のためメッシュがうまく切れません。
snappyHexの設定で複雑形状はメッシュができるそうなのですが、設定の仕方がわかりません。
また、チュートリアルのmotorbikeの設定をコピーすればできると聞いたのですが、そちらもやり方がわかりません。
stlファイルにそもそも問題があるのかもしれませんが、どのように設定すればできるのでしょうか。

inlet.stl
outlet.stl
smallhuman.stl
wall.stl

ohbuchi

unread,
Sep 25, 2013, 7:11:31 PM9/25/13
to open...@googlegroups.com
OpenCAE勉強会に参加されてはどうでしょうか?
http://www.opencae.jp/wiki/OpenCAE-User-Group%28ja%29
或いはOpenCAE学会の講習会に参加するのも手っ取り早く使い方をマスターする近道だと思います。
http://www.opencae.jp/wiki/2013%E5%B9%B49%E6%9C%8828%E6%97%A5OpenFOAM%E8%87%A8%E6%99%82%E8%AC%9B%E7%BF%92%E4%BC%9A
あとは、OpenFOAM Wikiのページ
http://openfoamwiki.net/index.php/SnappyHexMesh
やsnappyWikiページ
https://sites.google.com/site/snappywiki/
を参考にして自習する方法もあります。

以上、ご参考まで。



2013年9月25日水曜日 16時29分50秒 UTC+9 ken kitazawa:

ken kitazawa

unread,
Sep 26, 2013, 4:15:31 AM9/26/13
to open...@googlegroups.com
回答ありがとうございます。講習会などにも行ってみようかと思います。

現段階でメッシュを作成してみたところ以下のエラーが出ました。

--> FOAM FATAL ERROR: 
while reading facet on line 2
    expected 'normal', 'outer loop' or 'endfacet' but found '-1 0 0'

    From function triSurface::readSTLASCII(const fileName& STLfileName)
    in file triSurface/interfaces/STL/readSTLASCII.L at line 360.

 --> FOAM FATAL IO ERROR: 
keyword startFace is undefined in dictionary "::inlet_inlet"

file: ::inlet_inlet from line 65 to line 65.

    From function dictionary::lookupEntry(const word&, bool, bool) const
    in file db/dictionary/dictionary.C at line 400.

ohbuchi

unread,
Sep 26, 2013, 4:42:50 PM9/26/13
to open...@googlegroups.com
エラーの内容はSTLファイルを読み込むときにファセットの定義が正しくない
ということの様です。STLファイルを除いて見ましたが最初のファセットで
-10 0という法線ベクトルを持つものはありませんでした。
smallhuman.stlがバイナリなのが原因ではないかと思います。
inlet_inletのエラーはsnappyHexMeshDictのパッチ定義に問題がある様な気がします。


2013年9月26日木曜日 17時15分31秒 UTC+9 ken kitazawa:
Message has been deleted
Message has been deleted

ken kitazawa

unread,
Sep 27, 2013, 12:34:39 AM9/27/13
to open...@googlegroups.com
返信ありがとうございます。
チュートリアルのmotorbikeのsanappyHexDictとの違いを見たところ、
geometryの欄にrefinementBoxが自分のものには定義されていませんでした。

motorbikeでは以下のように定義されていました
 
refinementBox
    {
        type searchableBox;
        min (-1.0 -0.7 0.0);
        max ( 8.0  0.7 2.5);
    }

refinementBoxは詳細メッシュ領域という解釈でいいのでしょうか。その領域の座標点の様なものはどのように定義すればよいのでしょう。

Sakuma

unread,
Sep 28, 2013, 2:53:27 AM9/28/13
to open...@googlegroups.com

OpenFOAM初心者のsakumaです。

 

こんな感じにメッシュを作り,適当な条件で計算をしてみました。

参考になりましたら使ってください。

私も初心者ですので,間違っておりましたらごめんなさいです。

 

(1)メッシュ

アップしてありましたsmallhuman.stlはバイナリであったため,blenderでアスキーファイルに変換して使っています。

 

human_body_model.tarを解凍して,端末でmesh_1.shを走らせて下さい。4並列でメッシュ作成を設定していますので,

お使いのPCのコア数等に合わせて頂ければ良いかと思います。約数分でメッシュイメージのようなメッシュが出来ると思います。

 

作成したモデルで計算するには,constant/polyMeshにあるboundaryを一部書き換える必要があります。

リファイン領域を指定した部分は,nFaces0になっているため,

変更したファイルは,case_set/case1/set/boundary_1に参考までに入れてあります。

 

(2)計算

メッシュが出来ましたら,端末でrun_1.shを走らせて下さい。

モデルに適当な境界条件を設定して計算しています。

4並列での計算設定をしていますので,お使いのPCのコア数等に合わせて頂ければ良いかと思います。

 

1時間半程度で計算は終わります。計算イメージのような結果が出ます。

contlinearが収束状態の結果です。計算が3000ステップまで行っています。

 

以上,ご参考まで。

 
 
 
cont.png
linear.png
メッシュイメージ.gif
計算イメージ.gif
human_body_model.tar.gz

ken kitazawa

unread,
Sep 30, 2013, 3:38:51 AM9/30/13
to open...@googlegroups.com
計算までして下さりありがとうございます。
さっそく端末でmesh_1.shを走らせてみようとしたのですが、許可がありませんと表示されてしまいました。
Linuxも初心者なんですが、どうすればいいのでしょうか。

ファイルを参考に自分でもやってみます。


2013年9月28日 15:53 Sakuma <sakura....@gmail.com>:

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

ken kitazawa

unread,
Sep 30, 2013, 3:49:09 AM9/30/13
to open...@googlegroups.com
自分で作ったboundaryには、inlet_inletとoutlet_outletというものが出てきてしまうのですが
原因はなんでしょうか?




2013年9月28日 15:53 Sakuma <sakura....@gmail.com>:

OpenFOAM初心者のsakumaです。

 
 
 

--
boundary

Sakuma

unread,
Sep 30, 2013, 11:00:59 AM9/30/13
to open...@googlegroups.com
sakumaです。
 
mesh_1.shですが,プロパティーを開き,アクセス権でプログラムとして実行可能をチェックすると
動きませんでしょうか?
 
私もlinuxは詳しくなくてすみません。
アクセス権変更.png

ken kitazawa

unread,
Oct 2, 2013, 1:02:40 AM10/2/13
to open...@googlegroups.com


度々すいません。./mesh_1.shで起動してみたのですが、エラーが出てしまいました。
Start mesh
blockMesh
surfaceFeatureExtract


--> FOAM FATAL ERROR: 
Wrong number of arguments, expected 2 found 0

Sakuma

unread,
Oct 2, 2013, 8:53:52 AM10/2/13
to open...@googlegroups.com
端末を開いて,sh mesh_1.shと打つと走りませんか?
こんなようになると思いますが。
 
Start mesh
blockMesh
surfaceFeatureExtract
decomposePar 4 blocks
Copy data
snappyHexMesh 4CPU
reconstructParMesh
checkMesh
renumberMesh
rename holder name
set data
End of mesh
自分の環境は,windows7の上にVirtual Boxを入れています。
ubuntu 12.04で,openfoamのバージョンは2.2.xです。

 

ken kitazawa

unread,
Oct 2, 2013, 10:50:51 PM10/2/13
to open...@googlegroups.com
sh mesh_1.shできどうしてみたところ
特徴線のところでエラーがでてしまいました。

Start mesh
blockMesh
surfaceFeatureExtract


--> FOAM FATAL ERROR: 
Wrong number of arguments, expected 2 found 0


FOAM exiting

ken kitazawa

unread,
Oct 3, 2013, 11:58:38 PM10/3/13
to open...@googlegroups.com
OpenFoamのバージョンが2.1なのが原因ですかね。

nakagawa

unread,
Oct 4, 2013, 12:17:05 AM10/4/13
to open...@googlegroups.com
中川です。

OpenFOAM2.1なのが原因です。

2.2から,surfaceFeatureExtract のオプションを system/surfaceFeatureExtractDict で与えるようになりました。

2.1で使うなら,2.2用ケースのsurfaceFeatureExtractDictを参考に,surfaceFeatureExtract コマンド実行時にオプションを設定してください。
2.2の例題mesh/snappyHexMesh/motorBike/と2.1の例題を比べると,書き方の違いがわかると思います。

もし,両バージョンを見られない環境であれば,勉強会@富山の資料を参考にしてください。
第11回の講習会のサンプルケースは,両バージョン用が用意してあります。比較してください。

それから,エラーの読み方についても説明します。
下記は,良く見るエラーメッセージです。ユーティリティー(コマンド)に与えた引数の数が間違っているといわれています。
コンピュータは,2個の値を教えられると予想していたのに,0個しか見つからなかった,という意味です。
こういう場合は,その直前に実行したコマンドのオプションの数が間違っている,使い方が間違っていることになります。

--> FOAM FATAL ERROR: 
Wrong number of arguments, expected 2 found 0

がんばってください。


2013年10月4日金曜日 12時58分38秒 UTC+9 ken kitazawa:
OpenFoamのバージョンが2.1なのが原因ですかね。

Sakuma

unread,
Oct 5, 2013, 7:40:21 AM10/5/13
to open...@googlegroups.com
sakumaです。
 
バージョン違いには気が付きませんでした。 まだまだ初心者の域を出られません。
中川先生,ご指摘をありがとうございました。
 
kitazawaさん,バージョンをアップされては如何でしょうか。個人的な意見ですが,OpenFOAM
は日々進化しています。このため,私はバグ等が修正されていると思われる最新版を使うように
しています。ただ,改悪になってはまる場合もありますので,注意が必要かと思います。
 
自分で環境を作ることが面倒な場合には,DEXCS2013 for OpenFOAMがあります。
これは,商用ソフトのようなパッケージになっており,OpenFOAMのバージョンも2.2.xに
なっています。非常に良く出来ており,私も適宜使っています。
 

 

ken kitazawa

unread,
Oct 8, 2013, 9:39:44 AM10/8/13
to open...@googlegroups.com
DEXCS2012は入っているのですが、2013にするにはインストールし直さなければならないのでしょうか?
いままでのデータが消えないようにインストールする方法はありますか?


2013年10月5日 20:40 Sakuma <sakura....@gmail.com>:

--

ken kitazawa

unread,
Oct 8, 2013, 9:42:08 AM10/8/13
to open...@googlegroups.com
ご指摘ありがとうございます。
surfaceFeatureExtract コマンド実行時にオプションをどこで設定すればいいのかわかりません。
参考サイトのようなものがあれば教えて頂きたいです。


2013年10月4日 13:17 nakagawa <snakag...@gmail.com>:

--
Reply all
Reply to author
Forward
0 new messages