ユーザーメソッドの登録

メソッドの登録は、同じディレクトリに配置される次の2つの.xmlファイルに依存します:
  • StressToolMethodRegistration.xml
  • StressToolAttributeRegistration.xml

これらのファイルのデフォルトの場所は、installdir\hwdesktop\hm\scripts\EngineeringSolutions\aerospace\StressTool\WorkingDirectoryです。これらのファイルを任意の作業ディレクトリにコピーして、StressToolMethodRegistration.xmlを指すことができます。

属性の登録

登録された属性は、HyperMeshデータベースから照会されたモデル情報か、結果ファイルから照会された結果情報です。結果データタイプは結果ファイル内の名前と一致する必要があります。ほとんどの場合は、集約されたベクトルデータタイプまたはテンソルデータタイプが結果リーダーによって提供されます。メソッド登録の移植性を高めるために、要素の定式化に応じて変化する可能性のある直接的な未加工スカラー(例えば、cbarとcbushの力、または使用されているファイルフォーマットに応じて、あるいは同じソルバーの場合でも(*.xdb*.op2ではスペリングスカラーが異なります))ではなく、このような集約されたデータタイプを使用することが推奨されます。すべての結果属性パス(“value=”というキー)はHMDb.Resultsで始まります。HMDbは、照会される設計ポイントです。設計ポイントが複数の要素で構成されている場合は常に、このフレームワークによって設計ポイントの内容がループ処理されます。

属性は、完全修飾パスを使用して柔軟に定義できます。デフォルトでは、プロパティや材料に基づいた属性は、構造プロパティのプロパティエンティティから照会されます。使用可能なプロパティエンティティがない場合、クエリは要素のプロパティレベルで実行されます。構造プロパティの内容に関係なく、パスを通じて要素を照会したい場合は、その要素を含むようにパスを完全修飾できます。
  • HMDb.property.PCOMP_MID.MAT8_Xtでは、優先順位に基づいてプライの材料Xtの許容値が照会されます。
  • HMDb.element.property.PCOMP_MID.MAT8_Xtでは、どのプロパティが構造プロパティに割り当てられているのか(または割り当てられていないのか)に関係なく、常にローカル要素のプロパティが使用されます。
場合によっては、このフレームワークでは優先順位を解決できない場合があります(panel_metallicの板厚など)。
  • HMDb.element.thicknessでは、パネル(金属および複合材)内の要素板厚が取得されます。
  • HMDb.structuralproperty.thicknessでは、Panel_metallicのthickness属性を使用することが強制されます。

要素上で1つの属性が複数の値を持つことができる場合、評価ではクエリループ時に層ごとに管理を行います。

メソッドの登録

メソッドは、次の.xmlフォーマットで登録されます:
  • name
  • type
  • category
  • display name
  • path
入力パラメータとメソッド出力を指定するために、次の2つのタグが必要です:
InputArgList
AttributeRegistrationファイル内で名前によって定義された属性とメソッド入力の間のマッピングを定義します。パラメータのリストは、メソッド引数と同じ順序になっている必要があります。
属性にマップされたパラメータは自動的に照会されて、評価のためにメソッドに渡されます。これらの属性には、編集不可能なものと、HyperMeshデータベース内で編集可能なものがあります。場合によっては、メソッドで、HyperMesh内に既存のプレースホルダーがない他の入力が必要になります。
  • 材料の追加の許容値をソルバーデックで使用することはできません。
  • メソッド固有の座屈係数を通常のエンティティデータ名として使用することはできません。
プレースホルダーをメタデータとして動的に追加することで、データベースを拡張できます。パラメータはuserinput=”1”という形で宣言されます。この場合、entitytypeは、メタデータが付加される有効なHyperMeshエンティティタイプです。一般的なユースケースは次のとおりです:
  • 設計ポイントメソッド
  • 構造プロパティ
  • プロパティ
  • 材料
value=””によってデフォルト値を定義できます。浮動小数点値のみがサポートされています。
設計ポイントに構造プロパティが割り当てられている設計ポイントセットにメソッドが付加されるたびに、このツールによってデータベースが解析され、このようなメタデータがすでに存在しているかどうかが検索されます。存在していない場合は、デフォルト値を使用してメタデータが作成されます。モデルを保存すると、そのファイルを開いたときに、作成されたメタデータが取得されます。
メタデータは、外部スクリプトによって作成できます。メソッドの登録時にユーザー入力として設定されたパラメータにメタデータ名が一致するすると、そのメタデータが使用されます。
OutputArgList
メソッドは複数の結果を出力できます。可変数の出力はサポートされていません。各メソッド出力に表示名を割り当てることができます。この名前は、メソッドテーブル列のヘッダーになります。

ソート

メソッドの登録を使用して、ソートブロックを追加できます。これにより、設計ポイント内のそれぞれのエンティティについて、およびそれぞれの荷重ケースについて、メソッドが引き続き評価されます。メトリックとエンベロープタイプを使用して、集約が領域上で実行されます。この集約の結果として、メソッドによって出力されるテーブルには、集約された値のみが保持されるようになります。エンベロープタイプは、その領域に応じて空間的であっても荷重ケース上であっても、これらの両方であってもかまいません。
  • エンベロープのタイプは、Min| Max| AbsMin| AbsMaxです。
  • 値は、InputArgList/OutputArgList内のどの浮動小数点パラメータであってもかまいません。これは、比較メトリックとして使用されます。
  • 領域は、DDP |elementid |layerindex |loadcaseというキー間の累積リストであってもかまいません。
これらのキーのいずれかが欠落している時点で、この次元で集約が行われます。例として、以下の連続する呼び出しで構成される領域を挙げます:
  • DP|elementid|layerindex:各層上では、複数の荷重ケース(LC)にまたがるクリティカルなメトリックが保持されます。
  • DDP|elementid:要素ごとに1つの、複数の層およびLCにまたがるクリティカルなメトリック値が保持されます。
  • DDP|elementid|loadcase:LCごとの要素ごとに1つの値が保持されます。
  • DDP| loadcase:LCごとに複数の要素にまたがる(該当する場合は複数の層にまたがる)空間的集約が実行されます。
  • DDP:LC全体でクリティカルなメトリックが保持されます。
    • メソッドが要素 / 層ベースであった場合は、空間的集約が実行されます。
    • メソッドがDDPレベルのメソッドであった場合は(DDPあたり1つの値)、それはエンベロープです。
制約事項: ソートが完了すると、出力テーブルには、クリティカルなメトリックの値に対応するすべての値(入力 / 出力)が含まれた行全体が保持されます。列全体にわたってソートを実行することで、次元が失われ、その結果として、ソートされた次元での完全なコンター表示ができなくなる可能性があります。
  • 複数の荷重ケースにまたがるクリティカルな値がある場合は常に、エンベロープの荷重ケースについてのみコンターを表示できます。
  • 複数の層にまたがる結果が集約される場合は常に、要素レベルでのみコンターを表示できます。
  • (設計ポイント上の)複数の要素にまたがって集約が実行される場合は常に、テーブルには、DDP|elementid|loadcase|..inputs|..outputs| metricが含まれます(metricではクリティカルな値が使用されます)。その結果として、設計ポイントごとに1つの要素IDのみが保持されます。コンターメソッド機能は、ddpidをエンティティとして選択する機能を備えています。これにより、設計ポイント内のすべての要素上で一定値がコンター表示されます。

集約

評価後のソートに加えて、属性を評価のためにメソッドに送信する前に、それらの属性をソートできます。これにより、メソッドの評価においてある程度の柔軟性が得られます。たとえば、メソッドの入力パラメータを次のように宣言できます:

<Parameter name = "Composite Stress XX

perlayer="0"

sort=”min|max|minmax|sum|avg|absmin|absmax” (optional)

/>

メソッドを呼び出す前に、Sxxについてすべての層が照会され、minまたはmaxのみが保持されてメソッドに送信されます。minmaxの場合は、minとmaxの両方の値がベクトルとしてメソッドに送信されます。sortキーはオプションです。ソートが要求されない場合は、Sxxのすべての層の値が(ベクトルとして)同時にメソッドに送信されます。属性の集約タイプは次のとおりです(択一):
  • perlayer=”0|1”
  • perelement=”0|1”
  • perloadcase=”0|1”

これらのキーを組み合わせることはできず、一度に“0”に設定できるのはこのうちの1つのみです。したがって、複数の層および荷重ケースの両方に同時にまたがって属性を集約することはできません。これにより、“設計ポイントメソッド”レベルを作成することが可能になります。例えば、パネルのせん断座屈では、その要素間の最大せん断応力XYが考慮されます。この値は、算術評価のために送信されます。

制約事項: 現在は、メソッドの評価前に属性が集約されると、メソッドは集約された次元で結果をエクスポートしなくなります。層ごとに値を出力することを想定していない場合、いずれかの入力パラメータでperlayer=”0”を使用するのは有効なユースケースです。メソッドは要素ごとに安全マージンを出力します。この制限があるために、ユーザー定義のメソッドを使用して、複合材でABDマトリックスを評価して、層ごとに破壊を計算することはできません。First_ply_failureなどの内部メソッドでは、これを内部で管理します。

属性の集約とメソッドのソートを組み合わせることができます。場合によっては、いくつかの制限事項を考慮すると、レポートにエクスポートされたテーブル形式データから得られる結果の方が、コンターより役に立つことがあります。コンターツールでは、層と荷重ケースのフィルターと、プロットするデータタイプのセレクターが用意されています。コンター表示には、浮動小数点データタイプのみを使用できます。LCエンベロープの場合は(ソートによる)、すべての要素上で“クリティカルなサブケースID”を直接コンター表示することはできません(サブケースは現在は文字列です)。この選択された荷重ケースのクリティカルな値を持つ要素のみをコンター表示する荷重ケースセレクター内で情報を得ることができます。