条件数
適用対象:三角形または四辺形のサーフェスメッシュ、四面体または六面体のボリュームメッシュに適用されます。混合要素メッシュには適用されません。
概要:メッシュの Condition Number を最適化し、形状の良い要素を生成します。
構文:
Surface <surface_id_range> Smooth Scheme Condition Number [beta <double=2.0>] [cpu <double=10>]
関連コマンド:
解説:
Condition Number Smoother は、初期メッシュが反転していなければ Smoothing 後のメッシュも反転しないことを保証するため、Cubit で最も堅牢な Smoother として設計されています。その代わり、ほかの一部の Smoother より処理速度は遅くなります。
Condition Number は、要素が退化要素(非凸または反転要素)の集合からどれだけ離れているかを表します。Condition Number を最適化するとこの距離が大きくなり、要素の形状品質が向上します。Condition Number の最適化には、対象メッシュに負の Jacobian が存在しないことが必要です。メッシュに負の Jacobian があり、このコマンドを実行すると、Cubit は自動的に Untangle Smoother を呼び出し、負の Jacobian の除去を試みます。成功すると続いて Condition Number Smoothing を実行し、結果のメッシュには負の Jacobian が存在しないはずです。Untangle に失敗した場合、Condition Number Smoothing は実行されません。
このコマンドには "fixed/free" オプションはありません。境界 Node は常に固定されます。
上記コマンドは Smoothing Scheme を設定するだけです。実際にメッシュを Smooth するには、その後に "smooth surface <surface_id_range>" または "smooth volume <volume_id_range>" コマンドを実行する必要があります。
停止条件:目的関数が最小化されるか、ユーザーが指定した2つの停止条件のいずれかを満たすまで Smoothing を続けます。独自の停止条件を指定するには、上記コマンドのオプションパラメータ 'beta' と 'cpu' を使用します。各反復で beta とメッシュ内の最大 Condition Number を比較し、最大 Condition Number が beta より小さくなると反復を終了します。Cubit の Condition Number は1.0から無限大の範囲で、1.0が完全な形状の要素です。したがって最大 Condition Number が小さいほど、メッシュ形状品質は良好です。beta の既定値は2.0です。"cpu" 停止条件は、メッシュ最適化に費やす時間を分単位で指定し、既定値は10分です。キーボードの "control-C" でも最適化を停止できます。
Smoothing の進行状況を詳細に確認するには、Surface または Volume を Smooth する前に "set debug 91 on" コマンドを実行します。最初に Untangle が必要かどうか、および停止条件を満たしているかどうかの概要が表示されます。さらに、共役勾配法による数値最適化の各反復について、次の情報が出力されます。
Iteration=n, Evals=m, Fcn=value1, dfmax=value2, time=value3 ave_cond=value4, max_cond=value5, min_jsc=value6
n は反復回数、 m は各反復で実行された目的関数の評価回数、 value1 は目的関数値(通常は単調に減少します)、 value2 は勾配ノルム(必ずしも単調に減少しません)、 value3 は現在の反復までに費やした累積 CPU 時間(秒)です。目的関数の最小値は0ですが、完全なメッシュの場合にのみ達成されます。 ave_cond, max_cond、および min_jsc は、それぞれ平均 Condition Number、最大 Condition Number、および最小 scaled Jacobian です。 ave_cond は value1 と直接関係しているため、通常は単調に減少します。 value1.