Skip to main content
June 22, 2026
拡散のみのフィット向け GITTModel、pybamm のみのユーザー向けの ionworks-model ダウンロード、ルーティングされたすべてのリソース向けのアプリ URL ヘルパー、そして厳格なスキーマ - 設定契約の始まり

GITTModel — ファーストクラスの拡散のみモデル

GITTModelHalfCellGITTModelionworkspipeline の ファーストクラスモデル(ionworks_schema 側にも対応するクラス)と なった。GITT フィットは圧倒的に SPMe ではなくこの軽量モデルを 使用する: 電極ごとの x 平均粒子拡散、単一のまとめられたオーム抵抗、 固定された OCP、そして Butler-Volmer 動力学、電解質ダイナミクス、 熱効果は一切なし。これまではこのモデルは案件ごとのリポジトリに ほぼ同一のローカルコピーとして存在しており、API ルートからは 実行できなかった。組み込みモデルとして出荷することでサーバー側の GITT フィットがアンロックされ、新しいハーフセル GITT フィット テンプレートを支えるようになる。

素の pybamm 向けに ionworks 定義モデルをダウンロード

ionworks-schema / ionworks-api のみを持ち、ライセンス付きの ionworkspipeline パッケージを持たないユーザーが、ionworks 定義の モデル(ECMLumpedSPMR、MSMR モデル、GITTModel)を素の pybamm でロードして実行できる形式で取得できるようになった。 新しい POST /discovery/ionworks_models/serialize エンドポイントが (ライセンスが存在する)サーバー側でモデルをビルドし、ロード可能な シリアライゼーションを返し、Python SDK 経由で公開される。

ルーティングされたすべてのリソース向けのアプリ URL ヘルパー

SDK の client.urls が単一の .measurement() メソッドから、 完全な Web アプリリンクビルダー一式 — projectmodelparameterized_modeloptimizationpipelinestudysimulationcell_specificationcell_instance など — に 成長し、呼び出し側が ID から app.ionworks.com URL を手作業で 組み立てる必要がなくなった。ヘルパーは環境を認識し、クライアントが 構成されている API 環境に応じて正しいホストを導出する。

より厳格で明確なパイプライン設定

ionworkspipeline におけるユーザー起因のエラーのほとんどが、 裸の ValueError / KeyError ではなく UserConfigurationErrorValueError のサブクラス)を発生させる ようになり、設定ミス — 誤ったフィールド型、範囲外の値、欠落した キー — は内部エラーとしてオンコールにページングするのではなく、 ユーザーへの明確な Configuration error にルーティングされる。 これと並行して、進行中のスキーマ契約強化の取り組みが境界での オプティマイザ設定の検証を開始した: ネイティブオプティマイザに SciPy 専用のキーを渡すこと(例: DifferentialEvolution(popsize=5, maxiter=10))が、 これまでのように黙って飲み込まれるのではなく、送信時にハード エラーになるようになった。
改善
  • 単一の計算構造 — 各目的を計算する変数にマッピングする dict[str, list[str] | None] — が、目的および変数レベルの コストスコープの真実のソースとなり、コストごとの objective_names リストを置き換えた。これにより、重み付き Wasserstein(位置シフト型 dQ/dV)と変数ごとの SSE が、 各コストが消費すべき変数に明示的にスコープされた状態で、 1 つの目的にわたって 1 つの MultiCost を共有できる。 ElectrodeBalancing には dQdU model axis オプションが 追加され、モデル自身のフルウィンドウ電圧軸で dQ/dV を出力する ため、重み付き Wasserstein がデータグリッド上ではなく電圧 でピークを揃えられる。
  • 厳格なオプティマイザオプション検証: 不明な algorithm_options キー(およびメソッド/オプションの不一致)は送信時に拒否され、 AskTellOptimizer は不明なコンストラクタ kwargs を実行時に アクション可能なメッセージで拒否する — 以前の挙動では黙って 無視されていた。型付きオプションラッパー(CMAESOptionsPSOOptionsDEOptionsXNESOptionsBayesianOptimizationOptionsSOBEROptionsTuRBOOptions) は引き続きオプションを渡す推奨手段である。
  • コストおよび設計空間にわたるフェイラーセンチネルが単一の FAILURE_PENALTY 定数に統一され、フィッティングと設計最適化の パスが乖離することがなくなり、ペナルティ値はサロゲート GP フィットに対してより条件が良くなった。
修正
  • ECM のクーロンカウント容量基準がセグメントごとに計算される ようになった。マルチ測定フィットでは以前は連結されたセグメント 境界をまたいで累積積分が蓄積され、容量推定値がほぼセグメント ごとのスループットの合計まで膨らみ、容量サニティチェック警告が 誤って発生していた。
  • シンボリックな境界(例: pybamm.Scalar の min と pybamm.Parameter の max)を持つ geometrysimulation_kwargs 経由で渡された場合、シミュレーションが ビルドされる前に pybamm オブジェクトに戻すデシリアライズが 行われるようになり、生の JSON のままソルバーに到達して 詰まらせることがなくなった。
  • parse_model は、カスタムモデルに対してシリアライズされた geometryvar_ptsspatial_methodssubmesh_types を 尊重し、pybamm が model.options からジオメトリを再構築する のを許す代わりに、インスタンスごとのデフォルトとしてアタッチ するようになった。
改善
  • client.model.download / serialize(上記で導入)は、 素の pybamm でロード可能な形式で ionworks 定義モデルを返す。
  • client.urls(上記で導入)は、ルーティングされたすべての リソースに対して環境認識型のリンクを構築するようになった。