Pipeline Elements
基本となる構成要素はパイプライン要素です。任意のパイプライン要素は(空でもよい)パラメータ値の集合を受け取り、別のパラメータ値の集合を返します。各要素を順に呼び出すことで、完全なパラメータ集合が得られます。 パイプライン要素には 5 種類あります。ここに挙げたパイプライン要素の種類および組み込みの計算は網羅的ではありません。設定項目の全容は Pipelines API を参照してください。
- パラメータ辞書から入力パラメータを取得
- 計算を実行
- 後続の要素から利用可能な出力パラメータを返す
パイプラインをプログラムから組み立てて送信する方法については、Documentation タブの Pipelines → Overview を参照してください。
Naming conventions
Clear Naming
Use descriptive parameter names with units:
"Electrode capacity [A.h]" not "cap"Unit Consistency
Be explicit about unit conversions; use SI units internally
Built-in Calculations
Geometry & Capacity
Electrode geometry, mass, capacity, cyclable lithium, and microstructure
Thermal Properties
Heat capacity, Arrhenius temperature dependence, and thermal modeling
Piecewise Interpolants
Smooth piecewise functions for SOC and temperature-dependent parameters
パイプライン失敗への対処
パイプライン要素は順番に実行されます。ある要素が失敗すると、パイプラインはエラーを報告し、後続の要素は停止します。原因は要素にerror_code として記録されます。
失敗したパイプラインの再投入
最初に失敗した要素のerror_code が SUBMISSION_FAILED の場合、パイプラインを再投入できます。再投入はその要素をリセットし、パイプラインが停止した箇所から実行を再開します — 完了済みの要素は再実行されません。
- Studio
- REST API
パイプライン詳細ページを開きます。先頭の失敗が投入エラーの場合、ページ上部の失敗要素のアラートに Resubmit ボタンが表示されます。これをクリックすると、パイプラインをその場で再試行できます。
Data Fitting
パイプラインの抽象化は、データフィッティング — モデル予測を実験データと比較することで未知パラメータを推定する処理 — も支えます。DataFit 要素はパイプラインを最適化ループでラップします。
- 最適化器がパラメータ値を提案する
- パイプラインがその値でモデルを実行する
- 目的関数が予測とデータの一致度を評価する
- ベストフィットのパラメータが得られるまで繰り返す
Data Fitting (theory)
Cost functions, identifiability, regularization, and other theory.
Data Fitting (how-to)
Configure and submit data fits with
ionworks-schema + ionworks-api.パイプラインのエラー
パイプライン要素が失敗すると、Studio はその要素を Failed 状態で表示し、エラーメッセージと機械可読な エラーコード を併せて示します。パイプライン一覧でステータスチップにカーソルを合わせるとコードが表示され、失敗した要素を展開すると完全なメッセージを確認できます。 同じフィールドは、失敗したジョブやパイプライン要素の API レスポンスでも返されます:エラーコード
error_code フィールドを使うと、エラー文字列を解析することなく失敗の種類に応じて分岐できます:
Python で設定エラーをキャッチする
設定に問題のあるパイプラインを送信しても、送信時点では失敗しません — ジョブは受け付けられ、実行されて初めて問題の要素がerror_code = CONFIGURATION_ERROR で失敗します(上記の表を参照)。SDK の wait_for_completion でパイプラインの完了を待つと、この失敗は IonworksError として発生します。
"'Negative electrode loading [A.h.cm-2]' not found. Best matches are [...]")です。構造化された error_code はこの例外には含まれません。それを確認するには、例外メッセージを解析するのではなく、ジョブ上の失敗した要素のステータス(上記の JSON)を参照してください。
UCP プロトコルが記述どおりにシミュレーションできない場合 — 例えば、名前で参照したドライブサイクルが供給されていない、goto ターゲットが解決できない、終了条件の文字列がパースできない、初期 SOC が [0, 100] を外れている、未初期化の変数を参照する式があるなど — 失敗したパイプライン要素には CONFIGURATION_ERROR コードが付与され、そのメッセージが API 経由でそのまま表示されます。これにより、ユーザー側で修正可能なプロトコルの問題(プロトコル、ドライブサイクル、入力を修正して再実行してください)と、INTERNAL_ERROR として報告される予期しない内部エラーとを区別できます。