表面メッシュからプリズムメッシュの作成(vmtk)

オープンソースの血管モデリング・ツールvmtk(ver 1.2)を使用して、表面の三角形メッシュからプリズムメッシュを作成し、管内をテトラメッシュで埋めます。

表面メッシュ

使用する表面メッシュは、以下のような血管の一部のメッシュです。(メッシュデータは、このページの一番下のvessel_surf_without_capping.zipにあります。)流体計算用の境界条件として、inletとoutletの位置は絵のように仮定します。

vessel_surf_without_capping

vmtkで境界層メッシュを作成する場合は、入口、出口は閉じていない表面メッシュを使用します。

vmtkのコマンド実行

以下、vmtkはインストールされているものと仮定します。

vmtkを起動し、PypePadのコマンド編集欄に以下のコマンドを打ち込みます。

vmtksurfacereader -ifile vessel_surf_without_capping.vtp --pipe vmtkcenterlines -endpoints 1 -seedselector openprofiles --pipe vmtkdistancetocenterlines -useradius 1 --pipe vmtkmeshgenerator -elementsizemode edgelengtharray -edgelengtharray DistanceToCenterlines -edgelengthfactor 0.3 -boundarylayer 1 -thicknessfactor 0.1 -sublayers 4 -sublayerratio 0.5 -boundarylayeroncaps 0 -ofile result.vtu

command

メニューバーから

Run > Run all

をクリックしてコマンドを実行します。

境界番号の指定

コマンドが実行されますと、メッセ―ウィンドウに

Cappint surface.

のメッセージがでて、ビューアが立ち上がります。ビューアを見ますと、血管の入口、出口にそれそれ"1"と"0"が表示されているのが分かります。

viewer_for_boundary_id.

vmtkでは、基本的に、ビューアの左下にある指示にしたがって進みます。ここでは、下のようにして、入口に"1"と出口に"2"を指定します。

① 表面メッシュの絵に問題がないようでしたら、キーボードから"q"をたたきます。

② "Please input list of inlet profile ids:_"と出ますので入口の番号として、"1"を記入して、Enterします。

③ "Please input list of outlet profile ids(leave empty for all all available profiles):_"とでますので、"0"を記入して、Enterします。

テトラメッシュ

境界番号を指定すると、入口、出口がキャッピングされ、プリズム層の最も内側と出入口からなる閉じた領域が生成されます。さらに、TetGenがこの閉じた領域にテトラメッシュを埋めます。 結果のメッシュは、result.vtuファイルに出力されます。

この結果ファイルは、ParaViewで表示することができます。プリズム層のあるテトラメッシュが作成されたことがわかります。境界番号のつき方がやや変ですが、、

tetra_prism

ダウンロード

データファイル:


添付ファイル: filevessel_surf_without_capping.zip 281件 [詳細] filetetra_prism.png 424件 [詳細] fileviewer_for_boundary_id.png 420件 [詳細] filecommand.png 413件 [詳細] filevessel_surf_without_capping.png 414件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2014-07-09 (水) 12:38:27 (1252d)