Geometry Adaptiveサイズ関数(Skeleton Sizing)

この ジオメトリ適応サイジング関数。これは次の名称でも呼ばれます: スケルトンサイジング関数 (Quadros 2005、Quadros 2004、Quadros 2004(2))に基づき、モデルの幾何学的特性からメッシュサイジング関数を自動生成します。このサイジング方式は、非構造メッシュ方式で次の特性を持つメッシュを生成できるようなサイジング関数の作成を目的とします。

  • メッシュ全体で要素サイズが滑らかに変化すること。
  • メッシュ要素が形状を十分な精度で表現すること。
  • メッシュ要素が形状を必要以上に細かく分割しないこと。

ジオメトリ適応サイジング関数を使用して、サーフェス、ソリッド、アセンブリのサイジング情報を作成できます。

このサイジング関数は幾何学的特性を用いてメッシュサイズを決定します。次の量を計算または推定します。

  • 3D proximity(ボリューム厚さ方向)
  • 2D proximity(サーフェス厚さ方向)
  • 1D proximity(曲線長)
  • サーフェス曲率
  • 曲線の曲率

これらの特性を用いて、幾何エンティティ全体のサイジング関数が計算されます。相対的に複雑な領域では細かいメッシュサイズ、単純な領域では粗いメッシュサイズになります。たとえば一般に、サーフェス上の高曲率領域は低曲率領域より細かいメッシュサイズになります。

figure01.gif

図1:計算フレームワークの概要

figure02.gif

図2:GUI におけるスケルトンサイジング関数の例

スケルトンサイジングの挙動

スケルトンサイジングは、GUI(Meshing Control Panel)またはコマンドラインから、単一または複数のサーフェス/ボリュームに対して指定できます。エンティティへの指定方法によって、スケルトンサイジングの挙動は次のように変わります。

単一サーフェス/ボリューム ・サーフェス/ボリュームへ1つずつスケルトンサイジングを適用すると、各エンティティのサイジングは他のエンティティの影響を受けません。コマンドラインではエンティティごとに個別のコマンドを実行します。GUI ではサーフェスまたはボリュームを1つだけ指定してから「Apply Size」を選択します。

複数サーフェス ・複数のサーフェスへまとめてスケルトンサイジングを適用すると、あるサーフェスの幾何学的特徴が隣接サーフェスに影響する場合があります。

複数ボリューム(アセンブリサイジング) ・アセンブリモデルにスケルトンサイジングを適用すると、あるボリュームの幾何学的特徴を隣接ボリュームへ反映できます。複数ボリュームをまとめてスケルトンサイジングへ指定する前に、imprint と merge を実行してください。

コマンドライン構文

サーフェスへのスケルトンサイジング:

Surface <surface_id_range> Sizing Function Skeleton

{[scale <1 to 10 = 7>] [time_accuracy_level <1 to 3 = 2>]

[min_depth <3 to 8 = 5>] [max_depth <4 to 9 = 7>] [facet_extract_ang <1 to 30 = 10>]

[min_num_layers_2d < 1 to N = 1>] [min_num_layers_1d < 1 to N = 1>]

[max_span_ang_surf <5.0 to 75.0 = 45.0 degrees>]

[max_span_ang_curve <5.0 to 75.0 = 45.0 degrees>]

[min_size <float>] [max_size <float>] [max_gradient <float=1.5>]}

ボリュームへのスケルトンサイジング:

Volume <range> Sizing Function Skeleton

{[scale <1 to 10 = 7>] [time_accuracy_level <1 to 3 = 2>]

[min_depth <3 to 8 = 5>] [max_depth <4 to 9 = 7>] [facet_extract_ang <1 to 30 = 10>]

[min_num_layers_3d < 1 to N = 1>] [min_num_layers_2d < 1 to N = 1>]

[min_num_layers_1d < 1 to N = 1>]

[max_span_ang_surf <5.0 to 75.0 = 45.0 degrees>]

[max_span_ang_curve <5.0 to 75.0 = 45.0 degrees>]

[min_size <float>] [max_size <float>] [max_gradient <float=1.5>]}

各オプションを以下に説明します。

基本引数

  • max_size (デフォルト=auto):max_size はデフォルトで自動計算されます。モデル寸法に応じた任意の正の実数を指定して、要素の最大サイズを制御できます。スケルトンサイジング関数で大き過ぎる要素が生成される場合に、この引数で最大要素サイズを制限できます。
  • min_size(デフォルト=auto):min_size はデフォルトで自動計算されます。モデル寸法に応じた任意の正の実数を指定して、要素の最小サイズを設定できます。
  • max_gradient (1.0~3.0、デフォルト1.5):要素サイズの変化率をこのパラメータで制御します。max_gradient を大きくすると要素数は減りますが、サイズ変化が急になり、要素品質が低下する可能性があります。

スケーリングおよび精度引数:

  • scale (1~10、デフォルト7):要素の全体的な大きさをこの引数で制御します。scale を最大10.0まで大きくすると粗いメッシュになり、細かいメッシュにするには scale を小さくします(最小値1)。
  • time_accuracy_level (1~3、デフォルト2):スケルトンサイジング関数の内部パラメータを調整し、計算時間と精度レベルを制御します。小さいレベルから順に試すことを推奨します。レベル1が最短、レベル3が最長の計算時間を要しますが、レベル1の精度はレベル2および3より低くなります。

詳細引数

ラティス引数:

スケルトンサイジング関数は背景オクトリーグリッド上で生成・保存され、そのセルはモデルのグラフィックスファセットに基づいて細分化されます。背景グリッドの細分化レベルは、サイジング関数が形状特徴の幾何学的複雑さをどの程度捉えられるかに影響します。以下の2つの細分化パラメータには妥当なデフォルト値が設定されていますが、単純なモデルでは値を小さく、複雑なモデルでは値を大きくして上書きできます。

  • min_depth (デフォルト auto):min_depth は背景オクトリーグリッドの最大セル寸法を制御します。min_depth を大きくすると最大セル寸法は小さくなり、計算時間は増加します。デフォルトでは、入力モデルの幾何学的複雑さと下位エンティティに指定されたメッシュサイズから min_depth が計算されます。
  • max_depth (デフォルト auto):max_depth は背景オクトリーの最小セル寸法を制御します。非常に細かい形状特徴がある場合は max_depth を大きくすることを推奨します。最大値は9です。デフォルトでは、入力モデルの幾何学的複雑さと下位エンティティに指定されたメッシュサイズから max_depth が計算されます。
  • facet_extract_ang (デフォルト10度):facet_extract_ang は NURBS モデルのファセット表現を制御します。アダプティブサイジングの計算に用いるモデルのファセット近似精度を調整できます。曲率の大きい領域では許容角度を小さくすると形状近似が改善し、不規則に過密なメッシュの生成を抑えられます。ただし角度を大きくし過ぎると曲面上に不正なファセットが生じる場合があり、小さくし過ぎるとサイジング計算が大幅に遅くなる場合があります。

ソースエンティティ引数

  • min_num_layers_3d (1より大きい任意の値、デフォルト1):ボリュームの厚さ方向に、指定した最小数以上の層が存在するようにします。金型流動解析用メッシュの生成などで有用です。
  • min_num_layers_2d (1より大きい任意の値、デフォルト1):サーフェスの厚さ方向に、指定した最小数以上の層が存在するようにします。
  • min_num_layers_1d (任意の正の整数、デフォルト1):各曲線に指定した最小数以上の interval が含まれるようにします。
  • max_span_ang_curve (範囲5.0~75.0、デフォルト45.0):最大スパン角は、曲線の曲率領域におけるメッシュサイズを制御するパラメータです。曲線の曲率領域にあるメッシュエッジ両端節点の法線がなす角度として定義されます。曲率領域をより細かくメッシュ分割する場合は max_span_ang_curve を小さくします。
  • max_span_ang_surf (範囲5.0~75.0、デフォルト45.0度):最大スパン角は、サーフェスの曲率領域におけるメッシュサイズを制御するパラメータです。曲面領域のメッシュエッジ両端節点における法線がなす角度として定義されます。曲率領域をより細かくメッシュ分割する場合は max_span_ang_surf を小さくします。

注: これらの引数は基本引数より優先されます。たとえば time accuracy level 1 は内部的に min_depth = 4、max_depth = 6 を設定しますが、詳細オプションで min_depth = 4、max_depth = 7 を指定すると(微細形状を含むモデルに推奨)、詳細オプションが基本設定を上書きします。コマンドラインで time_accuracy_level による depth 設定を上書きするには、その後に min_depth と max_depth を指定します。

ユーザー指定サイジングソースの追加

スケルトンサイジング関数では、頂点、曲線、サーフェスなどの幾何エンティティにサイジングソースを手動で追加できます。これらのサイジングソースは、幾何エンティティ上のサイズと作用範囲(num_layers による影響領域)を制御します。以下のコマンドがサイジングソース追加の構文です。このコマンドは、上記のスケルトンサイジングコマンドを実行した後に使用してください。まずスケルトンサイジングコマンドが、近接度、サーフェス曲率、曲線長などの幾何学的要因に基づいてサイジングソースを自動生成します。その後、以下のコマンドで追加のサイジングソースを作成します。最後にメッシュ生成コマンドを実行すると、すべてのサイジングソースを用いてメッシュサイジング関数が計算されます。

Volume <vol_id_range> Sizing Function Skeleton add size_source {vertex|curve|surface} <id_range> size <double> num_layers <int>

他のサイジング制御との併用

スケルトンサイジング関数は、Cubit で利用可能な他のサイジング制御と併用すると、滑らかなサイジング関数を生成します。スケルトンサイジング関数は SOFT として動作します firmness level。スケルトンサイジング関数は、曲線に指定された interval count を常に尊重します。曲線およびサーフェスの interval size は、スケルトンサイジング関数を適用した後に指定した場合にのみ尊重されます。

figure03.gif

図3:他のサイジング制御と併用したスケルトンサイジング関数

制限事項

  • 現在、スケルトンサイジング関数は主として ACIS モデルでの使用を想定しています。STL、facet、MBG 形式などのファセットベースモデルにも使用できますが、結果は保証されません。Cubit 10.1 では、その他のジオメトリエンジンを用いたサイジング関数生成は保証もサポートもされません。
  • スケルトンサイジング関数は主として trimesh および tetmesh スキームで試験されています。一般に、構造または半構造メッシュ方式はスケルトンサイジング関数を活用するための自由度が十分ではありません。そのため、スケルトンサイジングは非構造メッシュ方式で使用することを推奨します。ただし、サーフェスの pave スキームと併用する場合は、max_gradient と scale を小さくすることを推奨します。
  • Cubit 10.1 でアセンブリのサイジング関数を生成する場合は、通常 time_accuracy_level 2 以上を推奨します。これにより、小さな形状特徴の幾何学的複雑さを捉えやすくなります。例:volume all sizing function skeleton time_accuracy_level 2