Coreform IGA for Abaqus
Coreform公式ドキュメントを基にした日本語版です。技術仕様・対応状況の最終的な基準は公式英語版です。

Meshの操作

Mesh recordは、1つのAbaqus partまたはindependent assembly instanceに対するCoreform IGA discretizationを定義します。有効なownerごとに永続化されるMeshは最大1つです。

1 Mesh ownerを選択

partとそのすべてのassembly instanceは1つのownership familyを構成します。そのfamilyのdependency stateに応じてMeshを保存します。

Part-familyの状態 Mesh owner
partにinstanceがない part
すべてのinstanceがdependent part。そこに保存したMeshがdependent instanceを支配します。
すべてのinstanceがindependent Meshが必要な各independent instance

同じfamily内でpart-owned Meshとinstance-owned Meshを共存させることはできません。dependent instanceはMeshを直接所有できず、independent instanceはpartに保存されたMeshを使用できません。

2 Mesh typeを選択

ImmersedRectilinearMesh は、ownerのgeometryに合わせてtrimされたrectilinear background discretizationを作成します。sizing strategyはelement size、total interval count、axisごとのinterval countのいずれか1つだけを選びます。完全なcoordinate frameを指定することも、Coreformにownerから自動導出させることもできます。

BodyFitMesh はbody-fitting intentを記録し、rectilinear sizing、layout、padding、frame controlは受け付けません。

3 immersed Meshを作成してowner依存値を解決

from abaqus import mdb
import coreform.abaqus

coreform.abaqus.init_iga_mdb()

model = mdb.models["Beam"]
part = model.parts["Beam"]
meshes = part.customData.CoreformIGA

mesh = meshes.ImmersedRectilinearMesh(
    degree=2,
    continuity=1,
    elementSize=(0.5, 0.5, 0.5),
    elementLayout=("node_centered",) * 3,
    smallCellVolumeRatio=0.2,
)

mesh.setValues(
    degree=3,
    continuity=2,
    elementSize=(0.25, 0.25, 0.25),
)

resolved = mesh.resolveForOwner()
print(resolved.frame.origin)
print(resolved.frame.basis)
print(resolved.extents)
print(resolved.padding)

toSpec() では、自動frameおよびpadding fieldは None. resolveForOwner() は、保存済みMeshを変更せずに、owner依存値を実体化したportable specificationを返します。

4 Meshの置換または削除

同じownerに2つ目のMeshを作成しようとすると、通常は ValidationErrorが発生します。置換を意図している場合は overwrite=True を使用します。既存recordを変更する前にcandidate全体がvalidationされます。

replacement = meshes.BodyFitMesh(
    degree=2,
    continuity=1,
    overwrite=True,
)

meshes.deleteMesh()

正確なconstructor、sizing/frame group、record attribute、namespace operationについては、 Abaqus Meshリファレンス および portable Meshリファレンス を参照してください。