フィーチャに向けた局所細分化
局所細分化は現在、 実験的な 機能です。細分化設定はスクリプトインターフェースから作成します。Coreform IGA ツールセットには、将来グラフィカルな設定ダイアログを追加する予定です。
1 説明
この例題では、小さな幾何学的特徴の周辺に向けて immersed Coreform IGA mesh を局所的に細分化します。前の 穴あき薄板 例題をそのまま引き継ぐため、先にそちらを完了してください。モデル、メッシュ、ジョブを再利用します。
この薄板の応力集中は穴の縁で生じるため、そこにメッシュ分解能を集中させるのが効果的です。背景メッシュ全体を細かくすれば解は改善しますが、応力がほぼ一様な遠方場まで含め、全域で要素数が増えてしまいます。
局所細分化では、背景メッシュを 穴の近傍だけ細分化します。Abaqus/CAE で穴の surface に名前を付け、その set を参照する refinement を mesh に追加します。メッシャーは、その surface と交差する背景セルを、指定した分解能に達するまでレベルごとに細分化します。
2 局所細分化の仕組み
構成要素の関係は次のとおりです。
- Abaqus/CAE で、対象形状の face を含む 名前付き Assembly Set を作成します。
- 次に1つの refinement を Part の Coreform IGA mesh に追加し、その set 名を region として指定します。
- Coreform IGA job が
<job>.cfファイルを書き出すと、set と refinement の両方が、そのファイルの geometry 定義へ出力されます。 - Coreform IGA の meshing step はそれらを読み取り、階層的な spline basis を構築します。
refinement は mesh 定義の一部であり、model database に保存されます。そのため、 .cf ファイルを再生成したり job を再実行したりしても保持され、model database を保存して開き直した後の .cae ファイルにも残ります。
その後の trimming、Abaqus solve、可視化は、均一メッシュの場合と同じ流れで動作します。
3 Abaqus/CAE で対象形状に名前を付ける
穴あき薄板例題の model database を開きます。adaptivity 固有のモデル操作は Assembly moduleだけです。穴の内側の円筒面を含む set を作成します。
- model tree で Assembly を展開し、次に Sets をダブルクリックします.
- 続いて Create Set ダイアログで、名前に
holeを入力し、 Continue をクリックします. - をクリックします。viewport で穴の内側の円筒面を選択し、 Done をクリックします.
をクリックします。同等の scripting-interface コマンドでは、穴を含みつつ薄板外周面までは含まない bounding box を使って穴面を選択します。
inst = mdb.models["PWH-Kt"].rootAssembly.instances["Plate-1"]
hole_faces = inst.faces.getByBoundingBox(
xMin=-1.1, xMax=1.1, # the hole has radius 1 at the origin;
yMin=-1.1, yMax=1.1, # the plate's outer faces extend to x = +/-5, y = +/-2.5
zMin=-1.0, zMax=1.0,
)
mdb.models["PWH-Kt"].rootAssembly.Set(faces=hole_faces, name="hole")この set は Part ではなく Assemblyに作成してください。Assembly set は修飾されない名前(hole)で出力されます。一方、Part-level set には instance 名が前置されるため、 sets=["hole"] では一致しません。
4 refinement の追加
refinement は、元の例題で作成した Coreform IGA mesh に追加します。 Plate-1 instance は dependent なので、その mesh は Plate Part上にあります。Abaqus/CAE の command line interface で次を実行します。
from coreform.mesh import CadEntitiesRegion
mesh = mdb.models["PWH-Kt"].parts["Plate"].customData.CoreformIGA.mesh
mesh.Refinement(
"hole_edge",
level=2,
region=CadEntitiesRegion(sets=["hole"], offset=0.1),
)
mesh.setValues(refinementBalance="two_to_one")"hole_edge"は refinement の名前です。任意に決められますが、同一 mesh 内で一意でなければなりません。model file では instance 名が前置された refinement label になります(Plate-1_hole_edge).level=2は2レベルまで細分化します。各レベルで element size は半分になるため、穴縁の面内 element size は0.3から0.075.sets=["hole"]は対象 region を指定します。指定した名前付き CAD surface に接する cell を細分化します。複数の set を指定することもできます。offset=0.1は対象範囲を広げます。surface が横切る cell だけでなく、surface からその距離以内の cell も細分化します。背景 cell の約3分の1程度にすると、単独の粗い cell が surface にかすめるのを避けつつ、細分化帯を形状に沿わせやすくなります。surface に直接接する cell だけの帯にする場合は0.0を指定します。refinementBalance="two_to_one"は 2:1 admissibility を強制します。region による細分化後、face を共有する隣接 element のレベル差が1を超えないよう必要な cell を追加細分化し、element size の遷移を滑らかにします。region の指定どおりの mesh をそのまま使う場合は"none"を指定します。
編集と削除も同様です。 mesh.setRefinementValues("hole_edge", level=3) は既存の refinement をその場で変更し、 mesh.refinementByName("hole_edge") は設定を読み戻し、 mesh.deleteRefinement("hole_edge") は refinement を削除します。
4.1 レベルごとの細分化範囲の調整
各 refinement は1つの region を持ち、その refinement 自身の level まで同じ region が適用されます。粗いレベルでは広く、最深レベルでは surface 近傍だけに絞りたい場合は、level ごとに refinement を1つずつ追加します。
mesh.Refinement("hole_L1", level=1, region=CadEntitiesRegion(sets=["hole"], offset=0.6))
mesh.Refinement("hole_L2", level=2, region=CadEntitiesRegion(sets=["hole"], offset=0.3))4.2 その他の region
対象形状に使いやすい名前付き surface がない場合は、純粋に幾何学的な2種類の region を利用できます。
from coreform.mesh import SphereRegion, BoxRegion
SphereRegion(center=(0.0, 0.0, 0.0), radius=1.5) # a ball
SphereRegion(center=(0.0, 0.0, 0.0), radius=1.5, inner_radius=0.8) # a spherical shell
BoxRegion(min_corner=(-1.1, -1.1, -1.0), max_corner=(1.1, 1.1, 1.0))5 メッシュ生成と解析
ジョブ Job-PWH-Kt を Coreform IGA for Abaqus Job Managerから実行します。元の例題と手順は同じです。job は refinement を .cf ファイルへ書き出し、meshing step が自動的に読み取ります。その後の interop、Abaqus solve、post-processing は均一メッシュの場合と同様に進みます。
meshing log には、各 Part の各 level で細分化された cell 数と、2:1 balancing により追加細分化された cell 数が報告されます。
6 期待される結果
細分化 mesh では、追加自由度が穴周辺の帯状領域に集中します。level-2 element が穴縁の応力勾配を解像しつつ、薄板の遠方場は粗い背景 mesh の分解能のまま維持されます。

元の例題の line probe に沿う最大主応力を均一メッシュの結果と比較してください。局所細分化では、全域を同じ細かさにした場合より大幅に少ない要素数で、穴縁のピークをより鋭く捉えられます。