*[[表面メッシュから切断面の削除(ParaView)]] [#pa317e8f]

表面メッシュから切断面のような特徴線で囲まれた面を取り除く方法を紹介します。

ここではフリーの可視化ソフトウェアである[[ParaView:http://www.paraview.org/]]を使用します。

**表面メッシュの読み込み [#mc560f71]

ここで使用する表面メッシュは血管壁の一部からなる"capping_surf.vtp"です。(このページの一番下からダウンロードできます。)

このメッシュは、流体解析用に入口と出口が存在していますが、ここでは、この入口・出口を削除します。

それでは、表面メッシュを読み込みます。ParaViewを起動します。ツールバーから

File >> Open...

と進み、"capping_surf.vtp"を指定して読み込みますと、下図のようなメッシュが読み込まれます。

#ref(capping_surf.png,center,nowrap,50%,capping_surf);

以降で、"inlet"、"outlet"と表示されている面を取り除きます。

**法線ベクトルの計算 [#t6c24723]

"inlet"、"outlet"を削除するためには、切断面とそうでない面を切り分ける必要があります。このためには、ParaViewの法線ベクトルを計算するフィルター"Generate Surface Normals"を使用します。

このフィルターはオプションで、隣接する面の間の法線ベクトルを計算し、ある一定角度より大きい場合は、隣接する面の間のエッジを特徴線として検出し、それを共有する面を切り分けることができます。

ツールバーから

Filters >> Alphabetical >> Generate Surface Normals

と進み、デフォルトのまま"Apply"します。見た目には分かりませんが、面が切り分けられています。

デフォルトの設定では、特徴線の検出角度は30°となっていますが、この角度は、使用するデータによって調整する必要があるかもしれません。

#ref(surface_normals.png,center,nowrap,60%,surface_normals);
#ref(surface_normals.png,center,nowrap,50%,surface_normals);

**面の接続性 [#f371650d]

次に、切断した面を接続性を見ることによって、つながった面に番号をふり分けます。これには、"Connectivity"フィルターを使用します。

ツールバーから

Filters >> Alphabetical >> Connectivity

へと進み、"Apply"します。表示する色付けを、"RegionId"にすると、つながった面が分かれたことを確認できます。

#ref(connectivity.png,center,nowrap,60%,connectivity);
#ref(connectivity.png,center,nowrap,50%,connectivity);

**入口・出口の削除 [#fceeb6b8]

入口・出口を切り分けられましたので、壁面だけを残します。これには、"Threshold"フィルターを使用します。

ツールバーから

Filters >> Alphabetical >> Threshold

と進み、下のように、"RegionId"を"0"番だけを残すように設定し、"Apply"します。

#ref(threshold.png,center,nowrap,60%,threshold);
#ref(threshold.png,center,nowrap,50%,threshold);

これで、入口・出口が取り除かれ、壁面だけにすることができました。

**ダウンロード [#uf5cec30]
データファイル:
#ref(capping_surf.zip)

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS