cantera について
Canteraで均一な理想気体の着火計算を実行・検証するスキルです。燃焼モデルを扱う人向けに、温度変化率に基づく着火遅れを算出し、反応器の前提や数値精度、反応機構の適用限界を明示します。
主な機能
- 01定容・定圧計算
- 02温度勾配に基づく着火遅れ
- 034条件での数値精度確認
- 04保存則と熱力学の検査
- 05CSV履歴とJSONレポート
活用シーン
- 01指定した混合気の着火遅れ推定
- 02反応器制約による結果の比較
- 03着火遅れの数値的な解像度確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ k-dense-ai/ scientific-agent-skills --skill canteraインストール後、Claude Code で/canteraを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
assets/hydrogen-ignition.jsonreferences/interpretation.mdscripts/ignition_delay.py詳細
Cantera: 均一系着火計算
使用する場面
既知の反応機構、初期温度、圧力、モル組成を持つ、閉鎖系・断熱・均一系の理想気体反応器に使用します。同梱のヘルパーは定積および定圧の両ケースを実行し、厳密に定義された温度ベースの遅延時間を報告します。これは火炎ソルバーでも汎用の反応器ネットワーク構築ツールでもありません。
計算が正常に完了することは数値的な実行が成立したことを示すものであり、燃料、圧力、温度、希釈剤、または測定された着火指標に対する反応機構の妥当性を証明するものではありません。反応機構の選択、実験との比較、または未解決の着火や二段着火の解釈を行う場合は、references/interpretation.md をお読みください。
ワークフロー
- 反応機構とその検証済みの条件範囲を特定します。その出典、バージョン、引用、およびあらゆる変更を保持します。その相が
ideal-gasであること、およびすべての反応物、希釈剤、追跡対象種が存在することを確認します。インポートを含むカスタム YAML の場合は、生成された相スナップショットだけでなく、元の依存ファイルも保持します。カスタム Python の速度拡張は、再現のために元のコードと環境も必要です。 - 物理実験に基づいて定積または定圧を選択します。K、Pa、秒、モル量を明示的に指定します。
mole_amountsはモル分率に正規化されます。質量分率のマッピングではありません。レポートには正規化された初期組成が含まれます。 - assets/hydrogen-ignition.json をコピーし、その条件を変更します。付属の H2/O2/Ar ケースは、実行可能な数値例として Cantera 同梱の
h2o2.yamlを使用しています。これはすべての水素実験に推奨するものではありません。 - 温度上昇と昇温速度ピークの減少を観察するのに十分な長さの時間範囲を設定します。そのピークを特定するのに十分な細かさで出力間隔を選択します。着火を無視できる程度の加熱や数値ノイズと区別するために、最小温度上昇を設定します。
- ヘルパーを実行し、4 つの履歴すべてとレポートを確認します。遅延時間が大きく変化する場合、最大値が時間境界に近づく場合、または保存則が破れている場合は、再度調整します。温度および追跡対象種の履歴を実際の着火定義と比較します。
- 条件セット、反応機構のハッシュ、反応器の制約、遅延時間の定義、出力間隔、数値的な変更、および科学的な限界を、遅延時間とともに報告します。
テスト済みの例を実行する
コレクションのルートから:
uv run --no-project --python 3.12 --with cantera==3.2.0 --with numpy==2.5.3 \
python skills/cantera/scripts/ignition_delay.py \
skills/cantera/assets/hydrogen-ignition.json hydrogen-result
Python 3.12、Cantera 3.2.0、NumPy 2.5.3 でテスト済みです。外部ソルバーの実行ファイルや認証情報は必要ありません。ローカルの相対的な反応機構パスは、Cantera の組み込みデータ検索より前に、構成ファイルのディレクトリを基準に解決されます。実行ごとに新しい出力ディレクトリを使用してください。
1000 K、101325 Pa、H2:O2:Ar = 2:1:7 の定積の例では、記載された max(dT/dt) の定義を使用して約 0.313 ms となります。3 ms 時点の温度はおよそ 2920.67 K であり、別途行った UV 平衡計算と一致します。これらはパッケージの回帰値であり、実験的な検証データではありません。
正確な遅延とリファインメントの契約
遅延とは、一様な出力グリッド上における numpy.gradient(T, time, edge_order=2) の大域的最大値の時刻です。これは、最大温度上昇が minimum_temperature_rise_k に達し、かつ最大値が各境界から少なくとも 2 サンプルインデックス離れている場合にのみ報告されます。それ以外の場合、delay_s は null となり、その理由を説明するステータスが付きます。シミュレーションの地平線を超える遅延は外挿されません。
ヘルパーは明示的に Cantera 3.2 の clone=True を使用し、reactor.phase から変化するプロパティを読み取ります。元の Solution は初期状態を保持しており、これをリアクターの最終状態として読み取らないでください。ReactorNet.advance(t) は絶対時刻を要求し、advance の制限は設定されていないため、出力グリッドは一様なままです。
これは 4 つの独立した新しいリアクターを実行します:
| 実行 | 設定された条件からの変更 |
|---|---|
| baseline | 元の設定 |
| finer_output | 出力間隔を半分に、地平線とソルバー制御は同じ |
| tighter_solver | 両方のソルバー許容差を 10 で割る。最大内部タイムステップを半分に |
| longer_horizon | 地平線を 2 倍に、出力間隔は元のまま |
numerically_resolved は、すべての実行が遅延を生み出し、相対遅延変化が delay_relative_tolerance 以内であり、すべての保存チェックが合格することを要求します。離散グリッド上の一致は統計的な誤差範囲ではありません。出力間隔も報告してください。ベースラインのサンプルは 11 から 50000 の間でなければならず、リファインメントの余地を残します。実行時間はメカニズムのサイズ、剛性、および選択された地平線とともに増加します。積分の失敗は Cantera のエラーテキストを保持します。
出力とチェック
report.json: すべての入力設定、パッケージバージョン、コンフィギュレーションとメカニズムのハッシュ、正規化された開始組成、4 つの遅延推定値、数値変化、保存、およびメカニズムの熱力学的温度境界。baseline.csv、finer_output.csv、tighter_solver.csv、longer_horizon.csv: 時間、温度、圧力、体積、質量、全内部エネルギー、全エンタルピー、および要求された種のモル分率。mechanism.yaml: 読み込まれた相、種、および反応の Cantera によって書き出されたスナップショット。ヘルパーはwrite_yaml(precision=17)を要求し、ハッシュした正確な UTF-8 バイトを保存します。プラットフォームの改行変換は行いません。レポートはまた、特定された元のメカニズムファイルをハッシュします。インポートされたソース依存関係は別途ハッシュされません。スナップショットは読み込まれたモデルをキャプチャします。その生成されたヘッダーには日付が含まれるため、スナップショットハッシュは保存されたアーティファクトを識別し、それ以外の点で同一の再実行間で一致する必要はありません。
閉じたリアクターは質量と元素質量分率を保存します。定容の場合は全内部エネルギーをチェックし、定圧の場合は全エンタルピーをチェックします。エネルギー誤差は max(abs(initial_energy_J), 1 J) で除算されます。診断許容差は、質量相対ドリフト <1e-8、元素絶対ドリフト <1e-8、エネルギー換算ドリフト <1e-6、種の質量分率和誤差 <1e-8、および種の質量分率 >-1e-10 です。これらのチェックは数値的な問題を明らかにし、反応速度モデルの不確かさを測定するものではありません。
within_thermo_temperature_range を別途チェックしてください。これは保存された出力状態をチェックし、すべての内部積分状態をチェックするものではありません。数値的解決は、種の熱力学的フィッティングがその温度境界内に留まったことを意味するものではありません。ヘルパーは、これらの境界から圧力依存の反応速度の妥当性を評価することはできません。
スコープと上流の参照
このスイートは、リアクターの制約、保存則、独立した Cantera 平衡計算との最終状態の一致、 非着火条件、未解決の境界最大値、リファインメント、スナップショットの再生、および無効な組成・条件の 両方を対象としています。衝撃波管の熱損失、実在気体効果、表面、流動デバイス、火炎、多段階の 実験的着火定義は検証しません。これらのモデルは、必要な物理に基づいて構築し、それぞれ独自の チェックを用意してください。このヘルパーの結果をこれらのいずれかとして扱わないでください。
- リアクターモデルの方程式
- Python リアクター API
- 熱力学的特性と平衡
- 相のシリアライズ API
- カスタム拡張の登録
- Cantera 3.2 リリースノート
- 上流の着火例 は種の質量分率のピークを使用しますが、その遅延時間の定義はこのヘルパーの dT/dt ピークとは異なります。