レベルセットデータから「有限要素メッシュ」を生成する

 

このドキュメンタリーでは、ノード変数として定義されたレベルセットデータを含むExodusファイルから「有限要素メッシュ」を生成する方法を説明します。  このプロセスは、アダプティブ・トポロジー・オプティマーション(‘ATO’)から生じるジオメトリデザインのためのメッシュ世代をサポートするために開発されました。  ATOからの出力形式は、この場合、最適化されたボリュームの結合「サーフェス」を表すレベルセットを定義するスケーラーノード変数を含む四面体のメッシュを含むExodusファイルです。  下のプロセスは、ゼロの値でレベルセットを評価することによって、最適化されたボリュームの結合「サーフェス」を抽出します。  これらの境界サーフェスは三角形分割として表現され、有限要素メッシュの生成に使用できます。  「有限要素メッシュ」を生成するための3つの方法は、単純な例のモデルを使用して説明されます。 

 

六面体要素メッシュ世代『Sculpt』を使用

 

このセクションでは、ATOデザインの彫刻された六面体要素メッシュを生成するプロセスを説明します。

 

1.      このプロセスはCubitのベータ機能を使用して、ベータコマンドの使用を活性化します。

 

set デヴ で

 

2.     ATOと呼ばれるExodusファイルを輸入する “small_bracket.exo” Cubitに入力し、Cubitを意味する輸入オプションを使用して、LSD(レベルセットデータ)と呼ばれるレベルセットノード変数を輸入します。

 

import mesh “small_bracket.exo” nodal_var LSD no_geom

 

3.      レベルセットデータから三角形分割の境界サーフェスを抽出します。  これが三角形を生み出しているので、我々は『創造三...』コマンドの変数を使用する。  私たちは利用する」isoオプションはコマンドを生成するためにコマンドを言います。 iso「サーフェス」は、ノード変数LSDによって定義されたレベルセットデータから。  具体的に説明します。 四面体要素 抽出する際に考慮する。  この場合、我々は使用する」tet 「すべて」とは、すべての意味 四面体要素 モデルで。  このコマンドが完了すると、Cubitで定義された2つの新しいブロックが存在します。  彼らは最高のIDを持つ2つのブロックになります。  これらのブロックの1つ(ブロックの2つのIDの最大)には、デザインの最適化された部分を表す三角形が含まれ、他のブロック(ブロックの2つのIDの最小)には、デザインの固定部分に三角形が含まれています。

 

create tri iso tet すべて nodal_var LSD

 

4.      引き出されたものを見る isoサーフェス三角形分割は、ステップ2で作成された2つの新しいブロック(ブロック3&4)を描く。 

 

draw block 3 4

 

5.      この時点で、我々は望むならば、新しい三角形分割を柔らかくすることができたが、彫刻プロセスが同じ効果をもたらすので、我々はここでそのステップを乗り越える。  スムージングは次のセクションで示されます。   現在、新しいブロックをSTLファイルに輸出し、その後『sculpt』アルゴリズムによって使用できる。  新しいブロックに三角形のみを指定します。  さらにメッシュを指定する。 free_meshオプションはコマンドに三角形がジオメトリが所有していないことを伝える。

 

export stl “small_bracket.stlトリ・イン・ブロック 3 4 メッシュ free_mesh

 

6.      Cubitとスタート Linux コマンド(コマンド)をリリースして「sculpt」を実行します。.

7.      コマンドからすぐにsierraモジュールを充電します(これは後で使用されます)。

 

モジュール load sierra

 

8.      ディレクトリから、あなたの新しい stl ファイルは「sculpt」プログラムを開始します。  sculptを実行するためのオプションの詳細については、sculptのドキュメンタリーをご覧ください。  ここでは、単純な「sculpt」のコマンドの例で、「彫刻」のセルサイズとプロセッサの数を指定します。  プロセッサの数は8、セルサイズは00007です。

 

sculpt ☆☆☆☆☆☆☆CS 0.1 --stl_file “small_bracket.stl”

 

9.      sculptが完了すると、結果的なメッシュが8つのプロセッサを使用してから8つのファイルに広がります。  この例では、ファイル名は “small_bracket.stl_results.e.8.0” のようになります。ファイル名末尾の番号は、そのファイルを生成したプロセッサを示します。  すべてのファイルを一つのファイルに組み込むには、「epuコマンドはSierraツールセットから。

 

epu 自動車 small_bracket.stl_results.e.8.0

 

10. Start Cubit up and load the メッシュ file created by sculpt. Cubit up and load the Mesh file created by sculpt. Cubit up and load the Mesh file created by sculpt. Cubit up and load the Mesh file created by sculpt. Cubit up and load the Mesh file created by sculpt. Sculpt.

 

import mesh “small_bracket.stl_results.e” no_geom

 

四面体要素 Mesh Generation by 「再メッシュ」 Mesh Based Geometry (MBG)

 

このセクションでは、生成プロセスを説明します。 tet メッシュはメッシングによってメッシュベースジオメトリ(MBG)が最適化された部分を表す。

 

1.      このプロセスはCubitのベータ機能を使用して、ベータコマンドの使用を活性化します。

 

set デヴ で

 

2.     ATOと呼ばれるExodusファイルを輸入する “small_bracket.exo” Cubitに入力し、Cubitを意味する輸入オプションを使用して、LSD(レベルセットデータ)と呼ばれるレベルセットノード変数を輸入します。

 

import mesh “small_bracket.exo” nodal_var LSD no_geom

 

3.      レベルセットデータから三角形分割の境界サーフェスを抽出します。  これが三角形を生み出しているので、我々は『創造三...』コマンドの変数を使用する。  私たちは利用する」isoオプションはコマンドを生成するためにコマンドを言います。 iso「サーフェス」は、ノード変数LSDによって定義されたレベルセットデータから。  具体的に説明します。 四面体要素 抽出する際に考慮する。  この場合、我々は使用する」tet 「すべて」とは、すべての意味 四面体要素 モデルで。  このコマンドが完了すると、Cubitで定義された2つの新しいブロックが存在します。  彼らは最高のIDを持つ2つのブロックになります。  これらのブロックの1つ(ブロックの2つのIDの最大)には、デザインの最適化された部分を表す三角形が含まれ、他のブロック(ブロックの2つのIDの最小)には、デザインの固定部分に三角形が含まれています。

 

create tri iso tet すべて nodal_var LSD

 

4.      引き出されたものを見る isoサーフェス三角形分割は、ステップ2で作成された2つの新しいブロック(ブロック3&4)を描く。 

 

draw block 3 4

 

5.      新しいブロックをExodusファイルにエクスポートして、オリジナルのファイルから切り離されます。 tet メッシュ

 

export mesh “small_bracket_iso.eブロック 3 4

 

6.      Cubitをリセットします。

 

reset

 

7.      新しいブロックを含む新しいファイルをアップロードします。

 

import mesh “small_bracket_iso.e” no_geom

 

8.      三角形分割の最適化部分を溶かす。  これがそのものになる。 三角形 ブロックで、より大きなID(私たちのケースでは4つ)を含む。  私たちは、まず三角形分割の未最適化部分におけるすべてのノードのノードの位置を固定し、その後、最適化部分における三角形をスムージングすることによってこれを行います。  スムージングの際には、「ターゲットフリーメッシュのオプションを使用してコマンドを指示し、順調な結果を元の三角形分割に戻して保存しようとする。 ボリューム  私たちは「反復」のオプションを使用して、スムーザーが行う「反復」の数を制限します。

 

node ブロックの3ポジションに固定

smooth tri in ブロック 4 ターゲットフリーメッシュ反復 5

 

9.      Create mesh based 三角形分割からジオメトリ  小型モデルでは、以下のコマンドですぐに実行することができます(最初のコマンドはサーフェスを作成し、2番目のコマンドは閉鎖されたボリュームを形成するためにそれらを組み合わせます)。  より大きなモデルでは、ファイルにメッシュを輸出し、Cubitを再設定し、その後メッシュを再輸入するのがより速いかもしれません。ジョムメッシュベースジオメトリが輸入に生成されるようにオプションです。  Cubitの現在の制限は、このパフォーマンスの違いを引き起こします。

 

create mesh ジョム 3 全員

create ボール サーフィン全員

 

10. 新しいボリュームにサイズとスキームを設定し、そのためにメッシュを生成します。

 

volume 全サイズ5

volume すべてのスキーム tetmesh

mesh volume all

 

四面体要素 Mesh Generation Using Level-set Triangulation  

 

このセクションでは、生成プロセスを説明します。 tet メッシュはレベルセット抽出から三角形分割を使用します。

 

1.      このプロセスはCubitのベータ機能を使用して、ベータコマンドの使用を活性化します。

 

set デヴ で

 

2.     ATOと呼ばれるExodusファイルを輸入する “small_bracket.exo” Cubitに入力し、Cubitを意味する輸入オプションを使用して、LSD(レベルセットデータ)と呼ばれるレベルセットノード変数を輸入します。

 

import mesh “small_bracket.exo” nodal_var LSD no_geom

 

3.      レベルセットデータから三角形分割の境界サーフェスを抽出します。  これが三角形を生み出しているので、我々は『創造三...』コマンドの変数を使用する。  私たちは利用する」isoオプションはコマンドを生成するためにコマンドを言います。 iso「サーフェス」は、ノード変数LSDによって定義されたレベルセットデータから。  具体的に説明します。 四面体要素 抽出する際に考慮する。  この場合、我々は使用する」tet 「すべて」とは、すべての意味 四面体要素 モデルで。  このコマンドが完了すると、Cubitで定義された2つの新しいブロックが存在します。  彼らは最高のIDを持つ2つのブロックになります。  これらのブロックの1つ(ブロックの2つのIDの最大)には、デザインの最適化された部分を表す三角形が含まれ、他のブロック(ブロックの2つのIDの最小)には、デザインの固定部分に三角形が含まれています。

 

create tri iso tet すべて nodal_var LSD

 

4.      引き出されたものを見る isoサーフェス三角形分割は、ステップ2で作成された2つの新しいブロック(ブロック3&4)を描く。 

 

draw block 3 4

 

5.      新しいブロックをExodusファイルにエクスポートして、オリジナルのファイルから切り離されます。 tet メッシュ

 

export mesh “small_bracket_iso.eブロック 3 4

 

6.      Cubitをリセットします。

 

reset

 

7.      新しいブロックを含む新しいファイルをアップロードします。

 

import mesh “small_bracket_iso.e” no_geom

 

8.      三角形分割の最適化部分を溶かす。  これがそのものになる。 三角形 ブロックで、より大きなID(私たちのケースでは4つ)を含む。  私たちは、まず三角形分割の未最適化部分におけるすべてのノードのノードの位置を固定し、その後、最適化部分における三角形をスムージングすることによってこれを行います。  スムージングの際には、「ターゲットフリーメッシュのオプションを使用してコマンドを指示し、順調な結果を元の三角形分割に戻して保存しようとする。 ボリューム  私たちは「反復」のオプションを使用して、スムーザーが行う「反復」の数を制限します。

 

node ブロックの3ポジションに固定

smooth tri in ブロック 4 ターゲットフリーメッシュ反復 5

 

9.      時には、最適化された地域と非最適化された地域の間でカーブのエッジを柔らかくしたいこともあります。  これを行うためには、まず、前段階で固定したノードポジションを「固定」します。   その後、最適化地域のすべてのエッジを含むグループと、非最適化地域のすべてのエッジを含むグループを作成します。  その後、我々はこれらの2つのグループを交差し、これらの2つの地域の間にあるエッジを得る。  その後、これらのエッジを解き放つことができます。  最後に、我々は再び最適化地域のサーフェスを緩和する。  もしかしたら、あなたも柔らかくしたいのかもしれません。 トリス 非最適化地域では、しかし、これはモデルで鋭い「フィーチャ」を失わないようにノードポジションを固定する上でより複雑化を必要とするでしょう。  この例では、特定のスムージングの順序を示しています。  他のアプローチを好むかもしれません。

 

node ブロック 3 ポジション無料

group “opt_edges« add エッジ in tri in ブロック 4

group “non_opt_edges「ブロック3」にエッジを追加する

group “int_edges■ インターセックス opt_edges with non_opt_edges

smooth 「エッジ」で int_edges 目標「フリーメッシュ」

node 「エッジ」で int_edges 固定ポジション

smooth tri in ブロック 4 ターゲットフリーメッシュ反復 5

 

10. ふさわしいサーフェス三角形メッシュを手に入れたら、 tet 内部にメッシュを作る。

 

tetmesh  tri すべて