メッシュスムージング
- Centroid Area Pull
- Equipotential
- Laplacian
- Smart Laplacian
- Condition Number
- Mean Ratio
- Winslow
- Untangle
- Edge Length
関連トピック
メッシュ生成後、ノード位置を変更したり、メッシュ自体を削除したりしてメッシュを修正する必要がある場合があります。CUBIT には、そのためのさまざまなメッシュスムージングアルゴリズムがあります。また、特定のノードまたはジオメトリエンティティ単位でノード位置を固定し、固定されていないノードだけにスムージングを適用することもできます。
CUBIT のメッシュスムージングはメッシュ生成と同様に動作し、まず Smooth Scheme を選択して設定し、その後 smooth コマンドで実際のスムージングを行う2段階の処理です。メッシングアルゴリズムと同様に複数のスムージングアルゴリズムがあり、複数種類のジオメトリエンティティに適用できるものと、特定の種類にだけ適用できるものがあります。ジオメトリエンティティ上のメッシュをスムージングするには、次の手順を実行します:
- 次のコマンドで対象オブジェクトの Smooth Scheme を設定します:
{Curve|Surface|Volume} <range> Smooth Scheme <scheme>
ここで <scheme> には、この節で説明する使用可能な Smooth Scheme を指定します。また、以下の Smooth Scheme 設定コマンドを使用して、各 Scheme 固有の情報も設定します。
- Smooth the object, using the command:
Smooth Curve <range>
Smooth Surface <range> [Global]
Smooth {Body|Volume|Group} <range>
エンティティのグループは、Group または Body を指定してまとめてスムージングできます。
Body を指定すると、その Body 内の Volume がスムージングされます。Group を指定した場合は、その Group 内の Volume Mesh のみがスムージングされ、Surface Mesh のスムージングは行われません。
Global Smoothing
複数の Surface をまとめてスムージングする場合、キーワード global を smooth コマンドに追加できます。例:
Smooth Surface <range> [Global]
隣接する2つの Surface のスムージングアルゴリズムが、どちらも境界ノードの移動を許可している場合、"global" キーワードを追加すると、2つの Surface が共有する Curve 付近でより高品質なメッシュになることがあります。
メッシュエンティティ群に対する局所スムージング
Hex や Tri などのメッシュエンティティは、エンティティをリストで指定することで、個別またはグループ単位でスムージングできます。
Smooth {Hex|Tet} <range>[Scheme {Equipotential|Laplacian|Random}]
Smooth {Face|Tri} <range>[Scheme {Laplacian|Centroid|Winslow}] [Target Surface <id>]
Smooth Edge <id_range> [Scheme Laplacian] [Target Surface <id>]
この Smooth Edge コマンドでは、Curve が所有する個々の Edge をスムージングできます。Target Curve を指定すると、メッシュ済み Curve 上の Edge を別の Curve へ移動できます。Target Curve または Target Surface は、ノードを所有する Curve や Surface である必要はありません。たとえば Curve A と Curve B があり、Curve A がメッシュされている場合、Target Smoothing によって Curve A のすべての Edge を Curve B 上へ移動できます。Edge Smoothing の Smooth Scheme オプションは、現在 Laplacian Scheme に限定されています。
この Smooth Face|Tri コマンドは、個々の Face または Triangle をスムージングするために使用します。Target オプションは、上記の Curve の Target オプションと同様です。Face または Tri は、所有 Surface とは異なる Surface に対してもスムージングできます。実際、Face や Tri はどの Surface にも接続されている必要がありません。このため、このオプションは次のスムージングに特に有用です: Free Mesh。Smooth Scheme を指定すると、Target Smoothing 中に Centroid Area Pull、Laplacian、Winslow などの緩和法ベースのサーフェススムーザーを使用できます。現在、最適化ベースのスムージングスキームでは使用できません。
Smooth Tolerance
スムージングアルゴリズムは、メッシュ要素の品質を改善するためにノードを移動します。多くは反復アルゴリズムで、所定の終了条件を満たすと停止します。特に Laplacian および Equipotential 系スムーザーでは、Smooth Tolerance を満たすか、最大反復回数に達した時点でスムージングを終了します。これらのスムーザーでは、ユーザーが Smooth Tolerance を設定できます:
[Set] Smooth Tolerance <tol>
値 <tol> は、ノード移動量が次の値未満になったときにスムーザーを停止するよう指定します: tol * local_minimum_edge_length.
tol のデフォルト値は 0.05 です。最大反復回数はユーザーが設定できます。Volume については、Smooth Tolerance と反復回数を次の方法でも設定できます:
(注:上記コマンドは、tolerance を使用するすべてのスムーザーに影響します。)
Volume Smooth Tolerance <tol>
Volume Smooth Iterations <iters>
(注:上記2つのコマンドは、Volume のスムーザーにのみ影響します。)
境界メッシュのスムージング
以下の Smooth Scheme で Free キーワードを使用すると、境界エンティティ上のノードはそのエンティティに沿って移動できます。このキーワードを指定しない場合、境界ノードは固定されたままです。
次のコマンドでノード位置を固定すると、暗黙的・明示的を問わず、どの Smoothing Scheme でもそのノードを移動しないようにできます:
{Curve|Surface|Volume} <range> Node Position {Fixed|Free}
Node <range> Position {Fixed|Free}
次のコマンドはノード位置を固定するものではなく、メッシュの接続関係を固定します。これにより、一部の Volume Scheme が境界メッシュを変更することを防ぎます:
{Curve|Surface|Volume} Mesh {Fixed|Free}
次の追加 Scheme は研究目的で提供されており、次のコマンドを実行した後にのみ使用できます: 'set developer on' コマンドです。