COMSOL Multiphysics®でインポートされたメッシュの編集と修復

2021年 2月 25日

インポートされたメッシュを修正することは, 特定のシナリオでは有用です. このブログでは, COMSOL Multiphysics® ソフトウェアでインポートされたサーフェスメッシュを編集, 修復, 接続する機能について説明します. 異なる操作の結果を比較し, いくつかの使用例を説明し, さらに詳しく知るために既存のチュートリアルやその他の関連リソースを紹介します.

サーフェスメッシュを読み込むためのフォーマットと手順

メッシュを編集するための操作の中には, サーフェスメッシュにしか対応していないものがあります. COMSOL Multiphysics®でジオメトリやメッシュのインポートに使用できるファイル形式はすべてサーフェスメッシュに対応していますが, 一般的には以下の3つの形式があります.

  1. STL
  2. 3MF
  3. PLY

これらのフォーマットの使用は, FEAシミュレーションに由来するものではないため, メッシュの品質はそれほど重要ではありませんでした. シミュレーションの観点から見た品質の悪さとは以下のようなものを指します.

  1. 三角形の角度が非常に大きい, または非常に小さい
  2. 三角形の大きさが極端に違う
  3. 穴や細いトゲなど, 不要な凹凸がある問題領域

インポートされたメッシュの品質が悪い場合, 修復や編集が必要になることが多く, また, 小さな凹凸を滑らかにするためにフェースの再メッシュも必要になります. この点については, 以下で詳しく説明します.

サーフェスメッシュの編集方法の違い

インポートされたサーフェスメッシュを編集するには, いくつかの操作方法があります.

エンティティ作成 エンティティを交差, 分割, 結合/削除 メッシュの作成と修正
節点の作成 平面との交差 フリー4辺形
エッジ作成 ラインとの交差 フリー3角形
フェース作成 ボール/ボックス/円筒での分割 フリー4面体
ドメイン作成 式による分割 アダプト
穴埋め エンティティの結合/削除 再微細化

ここでは, いくつかの使用例と, 操作のカテゴリの違いについて見てみましょう.

フェースのアダプトと再メッシュの比較

形状をまったく変えずにメッシュを微細化するには,再微細化操作を使用します. しかし, メッシュの小さな凹凸を滑らかにしたい場合は, アダプトフリー3角形といった操作を行います. これらの操作は, メッシュを粗くすることにも対応しています. サーフェスメッシュのアダプトと再メッシュの違いを説明するために, 次のような単位球の粗いフェースのメッシュを例に挙げてみましょう.

単位球を粗い三角形でメッシュ化した画像.

単位球の粗い三角形のメッシュ. 三角形の辺の大きさは約0.6m.

単位球の粗いメッシュ(上の画像を参照)を2つの異なるモデルにインポートして, アダプトフリー三角形の操作結果を並べて比較してみました. インポートされたメッシュの三角形のエッジサイズは約0.6mです. アダプトおよびフリー三角形操作のユーザーインターフェースでは, これらの操作の指針となる目標要素サイズ(ここでは0.05mに設定)を指定することができます.

フリー三角形メッシュ演算でメッシュ化された球体.
粗い三角形のオプションからアダプト操作で再メッシュした後の球体.

球体の粗いサーフェスメッシュをフリー三角形でサイズを 0.05 m に設定して再メッシュしたもの(左). 右の画像は, サイズ式を0.05 mに設定して, アダプト操作で単位球の粗いメッシュをアダプトした後の結果です. フェースの再メッシュは, アダプトメッシュよりも滑らかな結果をもたらします. ターゲットメッシュの要素サイズを元のメッシュよりも細かい値に設定しても, アダプトメッシュは元のメッシュにかなり近い形になっています.

サーフェスの再メッシュを行う際, フリー三角形演算では, 新しいフリー三角形メッシュを作成する前に, 背景に滑らかなジオメトリのフェースを作成します. その代わりにアダプト操作では, 新しい要素のメッシュの頂点を元のメッシュに配置することで, 元のメッシュの形状をより大きく維持することができます(これは上の画像で確認できます). 同じ選択範囲に複数のアダプト操作を加えると, 現在の操作の前にメッシュの記憶がないため, メッシュが滑らかになります.

インポートされた2つのメッシュを, 空の空間にエッジとフェースを作成して接続

頂点の作成, 辺の作成, フェースの作成の操作は, もともとインポートされたメッシュがなくても使用することができます. ここでは, インポートされた切断された2つのメッシュ間のギャップを埋めるために, この操作をどのように使用するかを説明します.

まず最初に頂点の作成を使って, 両方のメッシュに十分な頂点があることを確認します. エッジの作成を使って, メッシュ化されたエッジで頂点を接続します.

切断されたエッジが青く強調表示されている2つのメッシュ状のパイプ.
エッジの作成操作によって結合された切断されたエッジを持つ 2 つの青線で可視化したメッシュパイプ

インポートされた, 切断された2つのパイプのメッシュ. 断面が楕円形のもの(左のS字型パイプ)と, 断面が円形のもの(右のパイプ). 目的は, 左の画像で青く強調表示されているエッジを接続することです. これは, エッジの作成を使って2つのメッシュの頂点を接続することで行います. その結果, 右図のように青く強調表示されたエッジが得られます. 作成されたエッジは常にまっすぐなメッシュ状のエッジです.

フェースの作成を使用して, 各エッジループをメッシュ化されたフェースで埋めます. 作成されたフェースは常に可能な限り平面であるため, 曲面を求解するためにはメッシュの頂点やエッジを追加する必要があるかもしれません. フェースの作成操作は, ジオメトリで使用できるキャップフェース操作と同等です. 生成されたフェースを滑らかにして, 同じようなサイズの要素で構成された良質なメッシュを得るために, 前のセクションで説明したように, フェースをアダプトさせたり, 再メッシュしたりすることができます.

フェースの作成操作を使用して結合された 2 つの切断されたメッシュパイプ.
切断された2つのメッシュパイプをフリー三角形で結合し, 滑らかにした画像.

各エッジループの中には, フェース作成という操作でフェースが作成されます(左図で青く強調表示されているエッジ). 最後に, フリー三角形を使ってフェースの結合と再メッシュを行います(右図). 右図のように, 結合されたフェースを再メッシュすることで滑らかになり, 2つのパイプが最初からつながっていなかったことがわかりにくくなりました.

サーフェスメッシュの交差と分割

境界条件を設定するためには, メッシュを分割したり, 交差させたりする必要があります. ここでは, サーフェスメッシュの交差と分割の重要な違いを, 次のz = 1におけるサーフェスメッシュの交差と分割で見てみましょう.

z = 1で交差するプランを持つサーフェスメッシュは, 青く強調表示されている.

z = 1の位置に平面を配置したサーフェスメッシュを青く強調表示. 平面は青い部分の上端でサーフェスメッシュと交差.

平面との交差という操作は, サーフェスメッシュのみでサポートされています. つまり, 平面の位置で三角形が分割され, 必要に応じて新しいメッシュの頂点, エッジ, 三角形が導入されます. その結果, 下の左図のように, 交差したフェースが直線的なエッジで分割されます. また, 結果として得られたメッシュをクリーンアップするアルゴリズムもあり, 導入された可能性のある短いメッシュエッジや小さな要素が除去されます. この操作については, STLインポートチュートリアルシリーズで詳しく説明しています. 2Dでは, 線との交差と呼ばれる操作があります.

分割操作は, ボリュームメッシュやサーフェスメッシュなど, あらゆるタイプのメッシュでサポートされています. 以下のような様々な形状を使って, メッシュのドメインやフェースを分割することができます.

  • ボール
  • 球体
  • ユーザー定義の式

ここでいう分割とは, ある要素が形状の中に含まれているかどうかに基づいて, 新しいエンティティが形成されることを意味します. つまり, 右図のように, ドメイン内とフェース上のメッシュ要素数は変わらず,作成されたエッジは既存のメッシュエッジに従うことになります.

平面との交差操作を使用した後のメッシュ化された球体のクローズアップ画像で, 影響を受ける領域が青で強調表示されています.
ボックス操作によるパーティションを使用した後のメッシュされた球体のクローズアップ画像で, 影響を受ける領域が青で強調表示されています.

2つのイメージ平面との交差(左)とボックスとの分割(右)を行った後の結果を示す2つの画像. 左の画像では,結果として得られた上部境界(青で強調表示)の下端が直線になっています.平面と交差していた三角形の要素はすべて分割され, 必要に応じて新しいメッシュエッジと三角形が導入されています. 右の画像では, エッジは既存のメッシュ要素に沿って, 可能な限りz = 1に近づけられています.

分割操作 対 エッジ作成

上述したように, 分割操作でフェースを分割することができますが, エッジ作成操作を使用することもできます. 分割操作は, 特定の形状や論理式に限定されており, それぞれの設定も異なりますが, メッシュを素早く分割することができます. 一方, エッジの作成では, メッシュのエッジをそれぞれ手動で選択するため, より柔軟な操作が可能です. この操作は手動で行われるため, 通常はより少ない数のメッシュ要素を分割する際に使用されます. 辺の作成操作は, STLインポートチュートリアルシリーズで使用されています.

スパイクが青く強調表示され, ピンクの円がメッシュ要素のすべての頂点を含むボールによる分割操作を強調表示しているメッシュ化されたオブジェクト.
青で強調表示されたスパイクと, いくつかのメッシュ要素の頂点を含むボール操作による分割を強調表示するピンクの円が付いたメッシュオブジェクト.

ピンクのエッジで示したボールで分割操作は, メッシュの中でスパイクを形成しているフェース部分を分離するために使用されます. 左の画像では, すべての頂点がボールの内側にあるメッシュ要素を含むという条件で分割を行い, 右の画像では, 一部の頂点がボールの内側にあるメッシュ要素を含むという条件で分割を行っています. どちらの場合も, 新しいフェースのエッジ(青で強調表示)がギザギザになっています.

メッシュ化されたスパイクのクローズアップ画像で, 各メッシュのエッジが選択され, 青い線で強調されている.
エッジの作成操作を使用した後のメッシュオブジェクトのスパイクのクローズアップビュー. 下端の形状が均一.

エッジ作成では, どのメッシュエッジを新しいフェースを結合するエッジに変換するかをより細かく制御できます. ここでは, グラフィックスウィンドウの各メッシュエッジをクリックすると(左図), 短時間で処理が完了し, 選択したフェースのボトムエッジの形状がより均一になります(右図では青く強調表示されています).

よく使う操作の自動化

同じような種類のインポートされたメッシュを扱う場合, ある操作を他の操作よりも頻繁に使用したり, 新しいシミュレーションを設定するたびに特定の一連の操作を使用していることに気づくかもしれません. モデリングのワークフロー(またはその一部)を自動化する方法の一つとして, モデルメソッドアドインを設定する方法があります.

例えば, 多孔質構造のメッシュをインポートして作業する場合, メッシュの一部と他の部分をつなぐ細いブリッジが存在することがよくあります. このようなブリッジは, ジオメトリを作成する際やフェースを再メッシュする際に, ブリッジのフェースが自己交差しやすくなるという問題があります. そのため, ブリッジをメッシュから削除する必要がある場合もあります. 手っ取り早い方法は, ボール分割アドインを使用することです. このアドインは, 回転中心でボール操作を行う分割を作成します(下図の左の画像). 回転中心は, マウスで中クリックして境界に設定します. このアドインを使うと, 下の画像のように, 狭いブリッジを簡単に取り除くことができます.

多孔質構造体のサーフェスメッシュを赤で示し, 回転中心を小さなアイコンで設定した画像.
ボール分割操作を行ったメッシュ状の多孔質構造体を, 回転中心の周りにピンクの線で示したもの.

多孔質構造のサーフェスメッシュ. 画像中央の柱のような部分が, サーフェスのある部分から別の部分への狭いブリッジになっている. このようなブリッジがあると, ジオメトリの作成, フェースの再メッシュ, メッシュのアダプトなどの際に問題となります. ボール分割操作を使用して, フェースの一部を別の境界として分離します. ここでは, ブリッジに回転中心を設定し(左図), ボール分割アドインを使用して, 回転中心の位置に基づいてボール分割操作を配置することで, これを実現しています(右図).

孤立しているギャップの間にブリッジがあるメッシュ状のオブジェクトを青で可視化した画像.
中央に隙間のあるメッシュ状の物体の画像.

ブリッジは独立した境界として分離, 削除するために選択(左の青で強調表示). 右の画像は, 穴を埋めてメッシュを適合させた後のもの.

ボリュームメッシュ

上記の例では, サーフェスメッシュがあることを前提としています. 代わりにインポートされたボリュームメッシュを再メッシュする場合は, 三角形のサーフェスメッシュを維持したまま四面体要素を削除することができます. これには, エンティティの削除操作を使用し, ドメインを選択して, 隣接する低次元エンティティを削除するチェックボックスをクリアします.

エンティティの削除操作の設定ウィンドウのスクリーンショットで, ジオメトリックエンティティの選択セクションが展開されています.

このドメインは, フリー四面体操作を使用してドメインを四面体メッシュで埋める前に, ドメイン作成操作で後から復元できます.

シミュレーション結果からのメッシュ作成

ソフトウェア上でシミュレーション結果からメッシュを作成することもできます. これは, フィルターまたは分割データセットからサーフェスメッシュを作成することで可能です. 以前のブログで紹介したように, この手順は, トポロジ最適化の結果の検証スタディを設定するために使用できます. より一般的な目的については, 以前に録画したこのウェビナーで説明しています.

最後の考察

COMSOL Multiphysics®では, インポートしたメッシュを編集できる可能性がたくさんあります. このブログと, さらに学習するためのリンクは, あなたが遭遇するかもしれない多くの状況をカバーしています.

まだご覧になっていない方は, アプリケーションライブラリにある2部構成のチュートリアルシリーズをご覧ください. シリーズの最初のパートでは, STLメッシュに基づいてジオメトリオブジェクトを作成し, 後でブロックと交差させます. シリーズの2番目のパートでは, STLメッシュに基づいてジオメトリを作成することなく, 2つのサーフェスメッシュをインポートし, 直接四面体メッシュで埋めます. これらのチュートリアルでは, インポートされたサーフェスメッシュの修復と編集を紹介していますが, どのタイプのインポートされたサーフェスメッシュにも適用できます.

さらに詳しく

コメント (0)

コメントを残す
ログイン | 登録
Loading...
COMSOL ブログを探索