Skip to main content
June 1, 2026
Ionworks ソルバーがデフォルトとして IDAKLU を置き換え、失敗したパイプラインと最適化の構造化されたエラー詳細、Wasserstein の重み付けモードと MSMRFullCell の dQ/dU 出力

Ionworks ソルバー

新しい IonworksSolverionworkspipeline.Simulation 内のデフォルト ソルバーになった。これは pybamm.IDAKLUSolver のドロップイン代替であり、DAE の 構造的特性(求積、線形定数 / 線形可変、ブロック定数 / ブロック可変)を検出し、 構造が許す場合は厳密な解析解で代替し、解析不可能なモデルでは IDAKLU に フォールバックする。CasADi の CodeGenerator による実行時の C コード生成と Numba-JIT 積分カーネルにより、解析パスでのステップごとのコストが削減される。 区分的補間は smoothing=0 も受け付けるようになり、ハードなステップ関数を直接 モデル化できる。

失敗したパイプラインと最適化の構造化されたエラー詳細

パイプライン要素と最適化の失敗が、例外タイプと Sentry ディープリンクを伴う 構造化された error_detail を保持するようになった。2 つの新しいジョブエラー コード CONFIGURATION_ERRORSOLVER_ERROR が、ユーザーが修正可能な設定 ミスとソルバー側の失敗を区別する。パイプラインパッケージ内では、FuzzyDict / ParameterStore が裸の KeyError の代わりに新しい ParameterNotFoundError を 発生させ、ConfigurationError が無効な設定と実行時エラーを区別するため、 分類器が正しいコードを付与する。Studio では、失敗した最適化が View in Sentry ボタン(スーパー管理者のみ)を表示し、キャプチャされたイベントを直接開くように なった。例外メッセージ自体はシリアライズ前に取り除かれるため、ユーザーに見える 診断情報は安全に共有できる。

Wasserstein の重み付き点群モードと MSMRFullCell の dQ/dU 出力

iws.costs.Wasserstein / iwp.costs.Wasserstein がオプションの position_variableweight_variable フィールドを獲得した。両方が設定された 場合、コストは目的関数ごとに 2 つの重み付き点群を比較する 1 つの Wasserstein-1 距離を計算する。これは、Voltage [V] のピーク位置誤差をサンプルごとではなく |dQ/dV| の重みで測定すべきフルセル MSMR フィットで有用である。MSMRFullCellobjective variables に列挙された場合に Differential capacity [Ah/V] を 出力するようになり、これは Full voltage [V] / Full capacity [A.h] から導出され、 データの電圧グリッドに補間される。

パイプラインのドキュメントがスキーマ優先の Docs セクションへ移動

実行可能な「実際にどう動かすか」というパイプラインの内容が、Guide から Documentation タブ配下の新しいスキーマ優先の Pipelines セクションへ移動した。 すべてのコードサンプルは ionworks-schema + ionworks-api を使うよう書き直された。 Guide には理論(方程式、パラメータ表、直感)が残り、既存の「Pipelines」グループは Parameterization に改名された。日本語タブも新しいセクションを反映している。
修正
  • 既存の測定値からのプロジェクトスコープの ECM フィッティングが 422 を返さなく なった。フロントエンドは、測定値ごとの SOC 変更以降バックエンドが期待してきた ネストされた {measurements: [{id, initial_soc?}], ecm_options: {...}} ペイ ロードを送信するようになり、選択された各測定値の隣に測定値ごとの初期 SOC 入力を表示する。
改善
  • client.simulation.protocol(...)design_parameters をフラットな辞書として 再び受け付けるようになった。プロトコルテンプレートフローの導入時に誤って削除 されていた単一シミュレーションの便宜機能である。design_parametersdesign_parameters_doe の両方を与えた場合、または複数のシミュレーションに展開 される DOE を与えた場合は、追加の実行を黙って課金する代わりに明示的に例外を 発生させるようになった。
  • 大きな埋め込みドライブサイクル表を持つ BioLogic .mps プロトコル(例: YAML の ブロックスカラーとしてインライン化された約 96k 行の Urban Profile トレース)が、 /protocols/parse-to-template でエッジプロキシのタイムアウトを起こさなくなった。 変更後の YAML が低速な PyYAML パスで再解析されなくなった。
  • iws.direct_entries.DirectEntrypybamm.ParameterValues を直接受け付ける ようになった。呼び出し可能な値(濃度依存・温度依存の補間関数)は ParameterValues.to_json() によって自動的にシンボル JSON にシリアライズされ、 パイプライン内の DirectEntry.from_schema パスがそれらを pybamm シンボルに 逆シリアライズして戻すため、ローカルと API の消費パスが同じ挙動になる。
修正
  • ionworkspipeline.* 配下の子モジュールロガー(例: ionworkspipeline.data_fits.*)が set_logging_level によって管理される ようになった。従来パッケージロガーは親ではなく兄弟だったため、サブモジュールの レコードがそれを通り越して伝播していた。
改善
  • client.simple_pipeline.create(...)PipelineOptions(例: live_progress_updates=False)を受け付けるようになった。ワーカーは既にジョブ パラメータの pipeline_options を尊重していたが、これによりリクエストモデル、 サービス層、SDK クライアントが一貫してつながった。
修正
  • 送信される JSON ペイロードが、リクエストボディに datetime カラムを持つ pandas DataFrame を含む場合に TypeError を発生させなくなった。pd.Timestampisoformat() でシリアライズされ、pd.NaTnull になる。
修正
  • BioLogic .mps パーサーが、lim*_seq が内部のサブサイクルポインタ ≤ Ns+1 を格納する lfp_gr_cccv.mps のようなプロトコルでハングしなくなった。 前方ジャンプ(seq > Ns+1)のみが goto を発行し、後方または等しい値は通常の ステップ終了として扱われる。
改善
  • Ionworks スキルが gemini extensions install ~/ionworks-skills によって Gemini CLI 拡張機能としてインストールできるようになった。GEMINI.md コンテキスト ファイルが、すべての 8 つのスキルをセッションごとの受動的コンテキストとして 読み込む。Coding agents のドキュメントページが、Codex と Claude Code に加えて Gemini CLI、Cursor、GitHub Copilot のインストール経路をカバーするよう更新された。
  • 新しいハーフセル MSMR テンプレート(assets/half_cell_msmr_template.py)と、 parameterize スキルの discover_half_cell.pyinspect_half_cell_data.pyvalidate_half_cell_fit.py ヘルパー。リファレンスページはこのテンプレートを 必須とし、すべてのハーフセル OCP フィットが同じ正規の事前分布、マルチスタート、 Xj 法を使うよう、discover → inspect → scaffold → dry-run → submit → validate のワークフローを定めている。
修正
  • process-data スキルが、プラットフォームの実際の電流符号規約 (positive = discharge)を文書化し、バリデーターと set_positive_current_for_discharge 変換に合致させ、二重反転の罠を明示する ようになった。