パートとインスタンス
パートとインスタンスの機能は、独立して作成されたサブストラクチャ(またはパート)を単一モデルに結合するために使用できます。
この機能は、有限要素モデルの作成により高い柔軟性を与えます。いくつかの単純な番号付け要件に従うことで、個別のサブストラクチャを定義できます。それらのサブストラクチャは、単純な平行移動および回転移動によって、より大きな最終モデルに簡単に結合できます。インスタンスの項で説明されているように、パートの明示的なインスタンス化が可能です。この機能は、解析のすべてのソリューションシーケンスで使用可能ですが、現在、最適化実行ではサポートされていません。OptiStruct-マルチボディダイナミクス(OS-MBD)および幾何学的非線形解析はサポートされていません。
利用目的
- 構造が、単純な移動によって相互結合される扱いやすいサブストラクチャに分けられるため、モデルの複雑性を少なくします。
- 構造全体を連鎖的に編集する必要なく、個々のパートモジュールを局所的に更新できます。
図 1. 複数のパート(サブストラクチャ)の組み合わせとして作成されたモデルを表す図 - 各サブストラクチャは、モジュラー環境で個別に開発し、後で単一の構造に組み立てることができます。これにより、プロジェクトに取り組むさまざまな部門が、いくつかの単純な番号付け要件に従いながら、個別のモジュールに集中することができます。
番号付け要件
このインプリメンテーションでは、節点および要素(剛体要素など)のための特定のIDコントロールは必要ありません。パートの番号付けと、これによるモデル内の他のさまざまなデータエントリへの影響の詳細については、ID解決のガイドラインをご参照ください。複数のパートを含むソルバーデックの場合は、必ず以下の単純な番号付け要件に従う必要があります。
- 節点および要素など、パート固有のエンティティには、パートに基づく局所番号付けによって番号を付ける必要があります。
- 特性、材料、荷重、および境界条件など、グローバルなエンティティは、グローバルな番号付けシステムで定義されます。
- 全体構造を構成する個々のパートは、番号付け要件(1)および(2)を満たす場合は、フォーマットを変更することなく組み合わせることができます。
パート
パートは、組み立て時に全体構造に結合される、独立したエンティティとして可視化できます(全体構造も1つのパートと見なされる)。
各パートは、特定の目的で使用される、有限要素モデル全体の1セクションとして定義できます。たとえば、自動車のドアは、モデリング時の時間の節約のために、パート、およびこのパートの複数のインスタンスとして定義できます(パートのインスタンス化の詳細については、インスタンスを参照)。
定義
パートは、全体構造ではBEGINバルクデータエントリとENDバルクデータエントリの間に含まれます(INCLUDEエントリを使用する場合もある)。INCLUDEエントリは、特定のパートのファイル名(filename.fem)を参照する文字列を受け入れます。パートは、別々のソルバーデックとして定義して、同じ作業ディレクトリに含むことができます。一組のBEGINおよびENDエントリ内で複数のINCLUDEエントリを使用することで、単一パートの複数セクションを追加できます(パートのインスタンス化の詳細については、インスタンスを参照)。また、パートを、同じパート名を使用する別個のBEGINおよびENDエントリに分割することもできます。
フォーマット
BEGINバルクデータエントリとENDバルクデータエントリは、全体構造におけるパートの定義の開始と終了を示します。パートは、INCLUDEバルクデータエントリを使用して全体構造に含まれる、別個のファイルとして定義されます(パートのソルバーデック全体は、INCLUDEエントリを使用する代わりにBEGINエントリとENDエントリの間に挿入することも可能)。
BEGIN, FEMODEL, name INCLUDE "filename.fem" END, FEMODEL, name
BEGINエントリの2つ目のフィールドはFEMODELに設定する必要があり、3つ目のフィールドにはパートの名前を含める必要があります。このパート名は、モデル内の任意の場所からパート内のローカルエントリへの、完全参照名を定義するのに使用されます。モデル内のすべてのパート名は一意である必要があります。パート名では、大文字と小文字は区別されず、先頭には文字を使用する必要があります。文字、数字、およびアンダースコアのみを使用できます。filename.femは、INCLUDEの標準要件に従います。つまり、ローカルファイルを参照するか、フルパスを含むことができます。BEGINとENDの間に、他のBEGINエントリまたはENDエントリを使用することはできません。すべてのバルクデータエントリは、BEGIN, FEMODELとEND, FEMODELとの間に配置する必要があります。フルモデルは、いくつかのパートから成ります。1つのパートが、グローバルとして指定されます。他のパートは、INSTNCEバルクデータエントリを使用して任意の場所に移動し、コネクター要素またはCONNECTバルクデータエントリを使用して相互に結合することができます。
ローカルエントリとグローバルエントリ
ローカルエントリは、その名前が示すとおり、特定のパート内で局所的に定義できるデータエントリです。
ローカルエントリは、現在は以下に限定されています(すべてのローカルエントリのリストについてはAppendixを参照)。
節点定義
GRIDバルクデータエントリ
剛体要素
RRODバルクデータエントリ
RBARバルクデータエントリ
RBE1バルクデータエントリ
RBE2バルクデータエントリ
要素
CHEXAバルクデータエントリ
CQUADバルクデータエントリ
CBUSHバルクデータエントリ
など
他のすべてのデータエントリはグローバルと見なされ、全体構造で定義する必要があります。それらは、別のパートのBEGIN - ENDエンティティ内にある場合でも、グローバルパート内にあるかのように解釈されます。一部のグローバルデータエントリは、完全参照名を使用してローカルデータエントリを参照できます(上記リストを参照)。
完全参照名
複数のパート内で定義されている一意でないローカルデータエントリには、同じID番号を使用できます。完全参照名には、ローカルデータエントリおよびそれに対応するパートの両方についての情報が含まれます。
このようなIDは、完全参照名を使用せずに全体構造でエントリによって参照することはできません。
数値参照 | 完全参照名 |
---|---|
ローカルエントリでの数値参照は、同じパート内の別のローカルエンティティ、またはグローバルエンティティを参照します。数値参照は、同じタイプで同じIDの別のエントリが現在のパート内に存在しない場合は、グローバルエントリのみを参照するために使用できます。 | どのパート内で定義されているローカルエントリでも参照します。 |
グローバルエントリでの数値参照は、グローバルパート内のエンティティのみを参照します。 | 完全参照名は、同じタイプで同じIDの別のエントリがモデル内に存在する場合に、エントリを参照するために使用できます。 |
フォーマット: 参照される非ローカルエントリのセットIDと等しい <number>が、参照エントリの対応するフィールド(1つまたは複数)に入力されます。 | フォーマット:これは、数値参照のフォーマットと似ています。相違点は、参照エントリの対応するフィールド(1つまたは複数)に<PartName.number>が入力されるということです。このPartNameは、BEGINエントリで指定されている、参照されるエントリを含むパートの名前です。 |
例: RBE2, 16, 9, 123, 10 これは、同じパート内にある節点9と10をRBE2エントリとして結合します(RBE2はローカルエントリ)。 CHEXA, 5, 9, … これは、MAT#,9エントリの位置に関係なく、グローバル材料9を参照します(現在は、すべての材料エントリはグローバルエントリ)。 |
例: RBE2, 16, door.9, 123, bpillar.1 これは、パート“door”およびパート“bpillar”にある節点9と10をそれぞれ結合します。 このRBE2エントリは、どのパートにも配置できます。 |
ID解決のガイドライン
- 各パートは、特定の一組のBEGINおよびENDバルクデータエントリに1度だけ含めることができます。単一パートの複数のコピーを含むことを、インスタンス化と呼びます(インスタンスを参照)。
- プロパティおよび材料へのすべての参照は、標準の方法で解決されます。これらのエンティティはグローバルであり、モデル内のどこかで一度だけ定義する必要があります。
- サブケース情報および入出力オプションのエントリも、同様に扱われます。これらのエントリは、グローバルパート内のエントリの数値IDのみを参照します(たとえば、SPC = 5はグローバルパート内のSPCADDの5、またはSPCの5を想定する)。SPC、MPC、SPCADD、およびMPCADDはローカルエントリであり、モデル内のどの位置のローカルエントリを完全参照することもできます。パート内のSPCADDエントリおよびMPCADDエントリは、サブケースセレクターによってアクティブ化できないため、使用可能ですが解析では使用されません。
- 完全参照名は、一部のデータエントリにおいて使用可能です(データエントリが完全参照名を受け入れるかどうかを確認するには、最新のOptiStructリファレンスガイドを参照)。すべてのエントリ、およびこれらのエントリ内のすべてのフィールドで完全参照名を使用できるわけではありません。
- この汎用シンタックスは、固定フォーマットと固定フォーマットのラージフィールド、フリーフォーマットとフリーフォーマットのラージフィールドの4つすべてのバルクフォーマットで使用可能です。完全参照名は通常は8文字よりも長いため、この目的のためにはフリーフォーマットのほうが有用です。
- 慣行として、完全参照名を使用するすべてのデータエントリは、グローバルパート内に置かれます。これは必須ではありません。
- 各データエントリのそれ自身のID(通常はカード名の後の2つ目のフィールド)を、完全参照名にすることはできません。
- 前に説明したとおり、ローカルエントリの場合、特定のパート内のそれら自身のIDを同じにすることはできません。一方で、類似するデータエントリが別のパートで定義されている場合は、それらのIDを自身のIDと同じにすることができます。そのような場合、それらは完全に独立したエンティティであり、それらのIDは、完全参照名を使用することで解決されます。セットIDにも同じルールが当てはまります。たとえば、SPCまたはMPCでは、異なるパートでSIDが同一の場合は、完全に独立したエンティティであることを表します。
- グローバルエントリへの参照は、それがグローバルパートまたはローカルパートのどちらから参照されているとしても、数値参照である必要があります。
- 完全参照名(使用可能な場合)は、パート名およびそのパート内のIDによって定義された、特定のインスタンスとして解釈されます。
- ローカルエントリに数値参照(完全参照名ではない)がある場合、OptiStructは、その参照を同じパート内のローカルエントリとします。パート内にその数値参照と同じIDのエントリ(必要なタイプのエントリ)がない場合、OptiStructは、グローバルパート内に一致するエントリがあるかを調べます。そのエントリがグローバルパート内にもない場合、必要なエントリ(同じIDのエントリ)が別のパート内で局所的に使用可能かどうかに関わらず、プログラムエラーとなります。例:このエントリはローカルパート“
grip
”内にあります:RBE2, 15, 5, 123, 7, 8 Grid points 1,3,5 are included in part “grip” Grid points 1,3,5,7,8 are included in local part “frame” Grid points 3,5,7 are included in global part “racquet”
上記の例では、RBE2要素上で、節点5は節点
grip.5
を、節点point 7
はracquet.8
を参照し、節点の結果はエラーとなります。 - OptiStructでは、一意なIDしか使用できない場合であっても、前記のカードの内容が同じなら、一部のグローバルデータエントリを繰り返し使用できます(たとえば、材料エントリおよびプロパティエントリ)。
論理セット
SETバルクデータエントリをグローバルパート内で使用することで、さまざまなパート内で定義されたSETを参照できます。グローバルパート内のこれらのSETエントリは、論理演算子(SETエントリ上のOPERATORフィールド)を使用する場合のみ、パート固有のSETデータへの完全参照名を含むことができます。
BEGIN, FEMODEL, A
SET, 29, ELEM, LIST
15 through 30
…
END, FEMODEL, A
BEGIN, FEMODEL, G
SET, 78, ELEM, OR
A.29
…
END, FEMODEL, G
この方法は、ローカルセットの完全参照名をサポートしていないエントリ(出力エントリなど)上で、グローバルパート内のローカルセットを参照するために使用できます。
BEGIN, FEMODEL, A
SET, 3, GRID, LIST
15 through 30
…
END, FEMODEL, A
- 正しくない例
-
BEGIN, FEMODEL, G DISPLACEMENT(H3D)=part.3 or DISPLACEMENT(H3D)=3 … END, FEMODEL, G
- 正しい例
-
BEGIN, FEMODEL, G DISPLACEMENT(H3D)=3 SET, 3, GRID, OR A.3 … END, FEMODEL, G
位置変更
位置変更には、相互に相対的なモデル内でのパートの位置決め、または全体構造内でのパートの位置決めが含まれています。
OptiStructのパートおよびインスタンスにおけるフルモデルは、パートの集合から成ります。これらのパートは、位置変更なし、または位置変更を可能にするエントリを使用すること(RELOCおよびINSTNCE)で位置を変更して全体構造に自動的に挿入できます。現在は、構造全体に含まれているパートの位置変更は、INSTNCEバルクデータエントリおよびRELOCバルクデータエントリを使用して行われます。位置変更には、パートの初期位置に対する平行移動および回転移動が含まれます。
INSTNCEバルクデータエントリ
フルモデルは、いくつかのパートから成ります。1つのパートがグローバルとして指定され、INSTNCEエントリの使用によって、含まれる残りのパートがそのグローバルパートに対して相対的に位置決めされます。INSTNCEエントリは、ある位置から別の位置への節点の位置変更またはマッピングを定義する、RELOCバルクデータエントリを参照します。
INSTNCEバルクデータエントリは、グローバルパート内でのみ指定できます。INSTNCEエントリは、グローバルパートを参照することはできません。各INSTNCEエントリは一意なパート名を参照する必要がありますが、すべてのパートをINSTNCEエントリの使用によって位置決めする必要はありません。INSTNCEエントリで指定されないパートは、位置変更なしでフルモデル内に含まれます。
INSTNCE, SID, name, NN
3つ目のフィールド“name”には、BEGIN、FEMODELによって定義されているパートの名前を指定します。また、名前エントリおよびNNは、RELOCバルクデータエントリのIDを参照します。RELOCバルクデータエントリは、最終モデルでのパートの実際の位置を定義します。詳細についてはOptiStructリファレンスガイドをご参照ください。
RELOCバルクデータエントリ
ある位置から別の位置への節点の位置変更またはマッピングを定義します。パートを相互に相対的に、または全体構造に対して位置変更するために、INSTNCEエントリと併せて使用できます。
RELOCエントリは、フルモデル内での節点の位置変更に使用されます。RELOCは、あるパートを別のパートに対して移動させるのではなく、各パートの単独移動を定義します。具体的には、2つのパート同士を結合してから1つのアセンブリとして位置変更する必要があるということを定義します。グローバルパートで指定でき、INSTNCEなど、パート固有のエントリによって参照されます。
RELOC, ID, type, GID# ...
3つ目のフィールド"type"には、位置変更のタイプ、MOVE、MATCH、ROTATE、またはMIRRORを指定します。指定したタイプに応じて、複数のRELOCエントリフォーマットがあります。詳細についてはOptiStructリファレンスガイドをご参照ください。
結合
パート組立工程の最終ステップは結合です。
- CONNECTバルクデータエントリを使用
- どのパート内の節点でも明示的に参照できる、剛体要素またはブッシュ要素などのコネクターを使用.コネクターには、標準IDまたは完全修飾IDの組み合わせを含むことができます。標準IDによる参照は、次のようになります。
- ローカルエントリでは:
- 同じパート内のそのIDを持つエントリ、またはグローバルパート内の同じIDを持つエントリ。
- グローバルエントリでは:
- グローバルパート内のそのIDを持つエントリ。
局所的エントリでの標準IDによる参照がどのように解決されるかの詳細については、ID解決のガイドラインの項のコメント11をご参照ください。Appendixに、パート内で定義可能なサポートされているローカルエントリのリストがあります。
- パートの結合にTIEまたはCONTACTエントリを使用
CONNECTバルクデータエントリ
2つのパート間の自由度を結合します。2つのエントリ形式を使用して、お互いからの指定された許容値の距離内で、両方のパートの節点についてすべての自由度を結合できます。
CONNECTは、INSTNCEエントリの使用によってすべてのパートがそれらの最終位置に移動された後に、2つのパート内の同じ位置(X、Y、およびZ)の節点を必ず結合にします。両方のパート内の同じ位置(指定された許容値の範囲内)に複数の節点が存在する場合、それらは結合されます。
CONNECTエントリは、指定された許容値(tol)の範囲内にあるすべての節点を検索することによって、2つのパート(name_aおよびname_b)間を結合するために使用できます。別形式には、指定された許容値(tol)の範囲内でパート“name_a”またはパート“name_b”のどちらかの周囲の節点を検索する対象となる、一連の節点の指定が含まれています。
CONNECT, name_a, name_b, tol
インスタンス
インスタンスは、パートの複数のコピーであり、あらゆる点でそのパート自体とまったく同一となります。
現時点では、OptiStructでのパートのインスタンス化は、パートのインクルードプロセスへの論理拡張機能として利用可能です。パートのインスタンス化の直接的な手法は、将来のリリースで利用可能になります。
パートのインスタンスの作成
既存パートのインスタンスをさらに作成するには、パートインクルードプロセスを繰り返します。
たとえば、パート“CrankShaft”のインスタンスをさらに作成するには、BEGINFEMODELステートメントおよびENDFEMODELステートメントを繰り返します。同じインクルードファイル一式(INCLUDEエントリを使用)を、複数のパート定義内で繰り返します。
BEGIN, FEMODEL, CrankShaft_1 include "CrankS_a.fem" include "CrankS_b.fem" END, FEMODEL, CrankShaft
BEGIN, FEMODEL, CrankShaft_2 include "CrankS_a.fem" include "CrankS_b.fem" END, FEMODEL, CrankShaft
Appendix
ローカルデータエントリ
現在OptiStructでローカルエントリとして定義可能なデータエントリのリストを以下に示します:
Miscellaneous
GRID、SPC、MPC、SET
要素
CAABSF、CBAR、CBUSH1D、CBUSH、CDUM1、CELAS1、CELAS2、CELAS3、CELAS4、CFAST、CGAP、CGAPG、CGASK12、CGASK16、CGASK6、CGASK8、CHEXA、CONM1、CONM2、CONROD、CONV、CPENTA、CPYRA、CQUAD4、CQUAD8、CROD、CSEAM、CSHEAR、CTETRA、CTRIA3、CTRIA6、CTRIAX6、CTUBE、CVISC、CWELD、PLOTEL
剛体要素
RBAR、RROD、RBE1、RBE2
完全参照が可能なエントリ
現在OptiStructで節点を完全参照できるデータエントリのリストを以下に示します:
- 節点に対して:
- ローカルエントリ
- CBUSH1D
- グローバルエントリ
- SPC
- 他のエンティティに対して:
- SPCADD、MPCADD(それぞれSPCおよびMPCの完全参照が可能)
すべてのグローバルエントリとローカルエントリの最新のリストについて、および他のエントリを完全参照できるエントリについては、リリースノートをご参照ください。パートでは解析エントリを使用できます。最適化固有のインスタンスエントリ(たとえばDVGRIDやDESVAR)は使用できません。