キーポイントについて

解析モデルを作成する場合、キーポイントを使用してメッシュ設定を行うと、モデルのパラメータスタディの設定やと特定のコントロールが可能になることがあります。キーポイントは、以下を特定するためのポイントです。

  • 形状に関して考慮が必要な事項
  • 材料を設定する境界の明確化
  • データ抽出の特定ポイント
  • メッシュ生成の考慮が必要な領域

 キーポイントは、モデルの各ポイントのxyz座標とijkノードの位置の両方を定義します。

  • X 座標をIノードへマップします。
  • Y 座標をJノードへマップします。
  • Z 座標をKノードへマップします。

キーポイント 有無の比較

モデルを作成する際に、キーポイントは必ずしも使用する必要はありません。規則的な間隔のグリッドを簡単に作成し、それにモデルジオメトリを適用するのが簡単な方法です。ただし、これにより、形状の寸法にわずかな誤差が生じる可能性があります。キーポイントを使用するメリットをPZTディスクとメッシュで説明します。

RegVsKeypoint.PNG
(左)均一なメッシュと(右)キーポイントを使用して生成されたモデル形状とメッシュ

左図は均一メッシュの場合です。PZTディスクの実際のサイズは黒い点線で表しています。解析モデルとして作成されるPZTディスク(赤いメッシュ)はメッシュサイズのため若干大きくなります。右画像の黒い点で示されているようにキーポイントを使用すると、ノードをPZTディスクの境界へ正確に設定することができるため、形状を正確に表現できます。メッシュとキーポイントが一致するように、キーポイント間のメッシュサイズはわずかに引き伸ばされるか縮みます。 

キーポイントの生成

キーポイントは、増分を定義することにより生成されます。

  • XYZ座標値(モデル内の物理的な位置)
  • IJK値(その位置でのノードの値)

PZTディスクの例を使用して説明します。

 

Keypoint_Grid.PNG
キーポイントの生成位置

この例では、次のコマンドを使用してキーポイントを定義します。

symb pzt_rad = 10.e-3          /* radius of pzt disc
symb pzt_thk = 4.e-3           /* thickness of pzt disc
symb water_size = 5.e-3        /* thickness of water layer around PZT
 
symb x1 = 0.                   /* x1 = 0.0 m, the origin
symb x2 = $x1 + $pzt_rad       /* x2 = 10.e-3 m
symb x3 = $x2 + $water_size    /* x3 = 15.e-3 m

symb y1 = 0.                   /* y1 = 0.0 m, the origin
symb y2 = $y1 + $water_size    /* y2 = 5.e-3 m
symb y3 = $y2 + $pzt_thk       /* y3 = 9.e-3 m
symb y4 = $y4 + $water_size    /* y4 = 12.e-3 m
 

各位置でノードインデックスを決定するには、キーポイントのXYZ座標と目的のメッシュサイズを知る必要があります。この情報を使用して、キーポイント間の距離を計算し、必要なメッシュサイズを満たすために整数の要素を設定します。これは、以下のように設定できます。

symb i1 = 1                                          /* first node at origin
symb i2 = $i1 + nint ( ( $x2 - $x1 )  / $box )       /*calculate node at x2. nint rounds to nearest integer and box is the desired element size
symb i3 = $i2 + nint ( ( $x3 - $x2 )  / $box )
symb indgrd = $i3                                    /*store the value of the last node number

symb j1 = 1                                          /* first node at origin
symb j2 = $j1 + nint ( ( $y2 - $y1 )  / $box )       /*calculate node at y2. nint rounds to nearest integer and box is the desired element size
symb j3 = $j1 + nint ( ( $y3 - $y2 )  / $box )
symb j4 = $j3 + nint ( ( $y4 - $y3 )  / $box )
symb jndgrd = $j4                                    /*store the value of the last node number
 

メッシュの生成

GRIDコマンドを使用してメッシュを生成します。

The model grid can be generated using the GRID primary command:

grid $indgrd $jndgrd

上記のコードでは、indgrd x jndgrdノードを含む2Dメッシュを作成します。

XYZ座標をIJKインデックスをリンクさせます

一旦メッシュが生成されたら、ノードのXYZ位置を設定する必要があります。これには、GEOMコマンドを使用します。

geom
     xcrd $x1 $x2 $i1 $i2
     xcrd $x2 $x3 $i2 $i3
     ycrd $y1 $y2 $j1 $j2
     ycrd $y2 $y3 $j2 $j3
     ycrd $y3 $y4 $j3 $j4

上記のコード行は、メッシュ内のノード範囲の開始座標と終了座標を設定しています。最初のサブコマンドを実行すると、位置$ x1のノード$ i1と位置$ x2のノード$ i2が割り当てられ、その間のノードは以下に示すように線形補間されます。

keypoints.PNG
GEOMを使用してIJKノードをXYZ座標にマッピングした図