再メッシング
Mesh Generation は、Mesh 生成、Mesh 削除、Remesh を繰り返す反復的な処理になることがよくあります。Volume を Remesh する場合、remesh コマンドを使用すると Mesh 削除工程を明示的に行わずに済みます。また、解析後に局所的に変形した Triangle や Tetrahedron の集合だけを置換することもできます。このため Remeshing を Optimization Loop の一部として利用できます。
Hexahedra を Remesh するには次のコマンドを使用します:
Remesh Volume <range>
Tetrahedra を Remesh するには次のコマンドを使用します:
Remesh {Volume|Block|Tet} <range> [FIXED|free]
または、Quality Criteria に基づいて一定範囲の Tet / Tri を Remesh するには:
Remesh Tet <id_range> | [quality <tet_metric> [less than|greater than] <value> ...] [inflate <value>][size <value>][FIXED|free][preview]
Remesh Tri <id_range> | [quality <tri_metric> [less than|greater than] <value> ...] [inflate <value>][preview]
Swept Volume Mesh の Remeshing
remesh コマンドは Sweep Scheme 使用時にも有用です。Sweep Scheme を Volume に適用すると、Sweeping Scheme を持つ Volume の Target Surface Mesh を削除してから Volume を Remesh します。次の例のように Sweep Smooth Option を切り替える場合に便利です。この段階で低品質 Element が生成されていることが分かった場合、次の操作を行えます:volume 1 scheme sweep
mesh volume 1
この時点で、Volume は `sweep smooth winslow` オプションを使用して Remesh されます。volume 1 sweep smooth winslow
remesh volume 1
Tetrahedron の Remeshing
Tetrahedron に使用する場合、 Remesh コマンドは、Tetrahedron、Volume、Block のリストで指定された既存 Mesh を削除した後、新しい Tetrahedral Mesh を生成します。Tetrahedron のリストを Remesh する場合、可能な限り小さい Tet 集合を置換するため、Volume、Surface、Curve の一部だけが Remesh されることがよくあります。この集合には入力した Tetrahedron が必ず含まれ、必要に応じて追加の Tet も含まれます。
各 Tetrahedron は1つの Volume または Block にのみ属しますが、Tetrahedron のリスト自体は複数の Volume / Block にまたがることができます。複数 Block を指定した場合、各 Block は個別に処理されます。
デフォルトの FIXED オプションは、Remesh 対象 Tetrahedron リスト内で Geometry Surface / Curve 上にある Triangle や Edge が Remesh 操作の影響を受けないようにします。これに対して、 free オプションを使用すると、Curve / Surface 上の Edge と Triangle を削除して Remesh できます。次の FIXED オプションは Boundary Mesh Configuration を固定して維持する必要がある場合に使用します。指定しない場合、free オプションによって Remesh Region 内の Curve / Surface の一部も Remesh されます。
この Remesh コマンドを使用すると、低品質と判定された Mesh 内の一部の Tetrahedron だけを選択的に削除して Remesh できます。解析後に変形した Mesh の品質を、Mesh 全体を再生成せず改善する場合に有効です。
この quality オプションは Model 全体から該当 Tetrahedron を識別し、その Tetrahedron のみに Remesh 操作を適用します。Tetrahedron 用の標準 Quality Metric はいずれも次の値として使用できます: <tet_metric>。使用できるものは次のとおりです: Aspect Ratio Bet, Aspect Ratio Gam, Element Volume, Condition No., Jacobian, Scaled Jacobian, Shape, Relative Size, Shape And Size, Distortion, Allmetrics, Algebraic and Traditional。 Metric Specification は次と組み合わせて使用します: less than or greater than Specification と Threshold Value を組み合わせます。たとえば次の Syntax は、Scaled Jacobian が 0.2 未満のすべての Tetrahedron を Remesh します。
remesh tet quality Scaled Jacobian less than 0.2 inflate 1 free
この inflate オプションを使用すると、次の条件で選択された Tet 集合を拡張できます: quality Metric Criteria で選択された集合を対象とします。 <value> の後に続く入力は inflate オプションは、低品質 Tet の周囲から Remesh Region に含める Tet Layer 数です。通常は 1 で Tet Mesher がより高品質な Element を生成するための十分な領域を確保できます。2 以上では Mesh のより広い部分を Remesh します。0 は Tet Mesher が Element Quality を改善するための領域を十分確保できないことが多いため、通常は推奨されません。 inflate オプションは remesh コマンドとは独立して使用することもできます。詳細は Inflate コマンドについては以下で説明します。
このコマンドでは複数の Quality Criteria を指定できます。たとえば次のコマンドは Aspect Ratio と Scaled Jacobian の両方を Remeshing Criteria として使用します。Command Syntax には任意数の Quality Criteria を含められます:
remesh tet quality Scaled Jacobian less than 0.2 quality Aspect Ratio Bet greater than 4 inflate 1 free
この preview オプションは、次の条件で選択された Tetrahedron を表示します: quality Criteria と inflate オプションによる選択結果を、実際に Remesh を実行せず確認できます。
Tet Remeshing では Sizing Function を使用できます。詳細は Mesh Adaptivity and Sizing Functions and Exodus II ベースの Field Function に詳細があります。
この size Parameter で Remesh 時に生成される Tet Size を制御できます。
Tet 集合の Inflate
Tet 集合を Remesh する場合、周囲の Tet を追加して対象集合を拡張できると有用です。これにより Mesher が高品質 Element を配置する自由度が増し、同時に Mesher が処理できる有効な形状を確保できます。Inflate コマンドは指定した Tetrahedron 集合から開始し、ユーザー指定の Layer 数と Manifold Criteria に基づいて集合を拡張します。結果は現在の Group に追加するか、新しい Group として作成できます。コマンドの Syntax と Argument は次のとおりです:
Inflate {group <id>|tet <ids>} {manifold|layer <value>}[{add|create <"name">}] [draw]
group<id>|tet<range>: このコマンドへの入力には Group Name、Group ID、または Tet の範囲を指定できます。Group には少なくとも1つの Tet が必要です。Tet は連続している必要はありません。
manifold:このオプションは、Tet の Boundary または Skin が1つの Edge または Node で接する箇所に Tet を追加します。これにより、Tetrahedron 集合の Boundary を完全で有効な Manifold として定義できます。Manifold Boundary 定義を必要とする Tetrahedral Mesh Generator にとって重要です。次の両方を layer and manifold は同じコマンド内で併用できます。
layer <value>: このオプションは、次で指定した Layer 数だけ Tet を追加します: value を集合に追加します。Layer は、既存集合の Skin に少なくとも1つの Node で接続するすべての Tet として定義されます。このオプション単独では有効な Manifold 定義を保証しません。次の両方を layer and manifold を同じコマンド内で使用して Manifold 定義を確保します。
add|create<"name">: この add オプションは Inflated Region 内の Tet を Input Group に追加します。このオプションを使用するには Input Group の指定が必要です。 create オプションは新しい Group を作成し、Input を含むすべての Tet を次で指定する新しい Group に追加します: <"name">。どちらも指定されない場合、 add nor create が指定されると、新しい Default Group "inflated_tets" が作成されます。同名の Group が既に存在する場合は、その Group に追加されます。
draw: この draw オプションは Input Tet 集合と Inflated Tet の両方を Graphics Window に表示します。Input Tet は緑、Inflated Tet は赤で表示されます。
例:
単純な Tet Mesh を生成します。ID 1~10 の Tet に対して 1 Layer の Buffer を定義し、Manifold Boundary を維持するようにします。結果は新しい Group "inflated_tets" という Group に格納され、Graphics Window に表示されます。
brick x 10
vol 1 scheme tetmesh
mesh vol 1
inflate tet 1 to 10 layer 1 draw
Volume 1 内で Quality Metric(Scaled Jacobian)が 0.2 未満のすべての Tet を含む `bad_tets` Group を作成し、その Group を1 Layer 分拡張して Remesh します。
group 'bad_tets' equals qual vol 1 scaled high 0.2
inflate bad_tets layer 1 add
remesh tet in bad_tets
Triangle の Remeshing
Triangle の Remeshing は Tet の Remeshing と多くの点で同様で、Triangle リストで指定された既存 Mesh を削除した後、新しい Triangle Mesh を生成します。Triangle リストを Remesh する場合、可能な限り小さい集合を置換するため、多くの場合 Surface の一部だけが Remesh されます。この集合には入力 Triangle が必ず含まれ、必要に応じて追加要素も含まれます。Triangle と Tet の Remeshing の主な違いは次のとおりです:
- Triangle Remeshing は次をサポートしません: free オプションです。そのため Triangle に Geometry Curve 上の Mesh Edge が含まれる場合、その Edge は Remesh 操作の影響を受けません。
- Triangle Remeshing では次を使用します: trimesh scheme to do the remeshing, whereas tet remeshing with the free オプションは次の Scheme を使用します: triadvance.
- A size Parameter で Remesh 時に生成される Triangle Size を制御できます。