pyemsol API リファレンス#
このページは、Pythonパッケージ pyemsol の利用者向け公開APIです。
Pythonから呼び出せる関数でも、eMotorSolutionやEMSOptimizerとの内部連携専用であれば
ここには掲載しません。
利用上の共通事項#
inputJsonには、組み込みPython型だけで構成したJSON互換のdict/list/str/bool/int/float/Noneを渡します。NumPy配列・NumPyスカラー・ タプルは、このAPIの入力として直接渡せません。同一プロセス内で同時に複数の解析を実行することはサポートしません。並列パラメータ サーベイには独立したプロセスを使用してください。
戻り値が
boolの更新APIでは結果を確認してください。反復解析は必ずfinalize()で、 外部ステップ解析はclose()またはwith文で終了します。入力データの詳細は III 入力設定 を参照してください。
APIの選び方#
1回だけ解析する:
run(input_json, run_directory)条件を更新して反復する:
initialize()→ 更新API →solve()→finalize()外部から時刻ごとに与える:
with CoupledSession(...)→step()の反復
一括解析と反復解析#
- run(inputJson, run_directory) dict#
入力を変更せずに1回解析します。
output.json相当の結果をdictとして返します。run()の前後にinitialize()、solve()、finalize()を組み合わせません。
- initialize(inputJson, run_directory) dict#
反復解析の内部状態を初期化し、設計領域がある場合は設計要素情報を返します。
initialize()が成功した後は、例外が発生した場合も含めてfinalize()をちょうど1回呼び出します。
- solve() dict#
初期化済みの現在条件で解析し、結果を返します。更新APIの後に反復実行できます。
- finalize() int#
反復解析を終了し、内部リソースを解放します。現在の正常終了時の戻り値は
0です。
design_space = pyemsol.initialize(input_json, str(model_dir))
try:
# 必要に応じて入力を更新する
output = pyemsol.solve()
finally:
pyemsol.finalize()
反復解析中の更新#
- update_Time_Function(inputJson) bool#
18_Time_Functionの既存TIME_IDを基準に時間関数を更新します。該当ブロックが ない場合はFalseを返します。
- update_properties_in_design_domain(inputJson) bool#
設計領域として初期化された材料の
16_Material_Propertiesを更新します。入力には 入力JSON全体、または16_1_3D_Element_Propertiesを含む辞書を渡せます。
外部 Mesh Morphing 連携#
外部のmesh morphingツールと連携する CoupledSession、静的体積メッシュ、座標payloadの
入出力仕様と制約は、 外部 Mesh Morphing 連携 にまとめています。
スキーマバージョン、座標系、対応モデルの制約を確認してから利用してください。
既存スクリプトとの互換API#
以下は既存コードを維持するためのモジュールレベルAPIです。新規コードでは
CoupledSession を使用してください。
prepare_step_calculation(inputJson, run_directory) -> dictstep_calculation() -> intstep_calculation(time, delta_time, inputs={}, deformation=None) -> dictdescribe_coupling_ports() -> dictdescribe_deformation() -> dictdescribe_deformation_mesh() -> dictclose() -> dict
情報#
- version() dict#
バージョン情報を返します。