pycalphad について
TDBデータベースを使い、pycalphadで相平衡を計算するスキルです。合金の熱力学モデリング向けに、相分率と組成を出力し、物質収支とサンプリング密度への感度を検査します。
主な機能
- 01TDBに基づく平衡計算
- 02相分率と組成の出力
- 03物質収支の検査
- 04高密度サンプリングとの比較
- 05CSV結果とJSONレポート
活用シーン
- 01指定温度での平衡相の推定
- 02安定相組成の比較
- 03合金計算のサンプリング感度確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ k-dense-ai/ scientific-agent-skills --skill pycalphadインストール後、Claude Code で/pycalphadを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
assets/equilibrium.jsonideal-cu-ni.tdbreferences/model-and-validation.mdscripts/equilibrate.py詳細
pycalphad: TDB 平衡計算
使用する場面
固定されたバルク元素モル組成、指定された圧力、および有限個の温度リストにおける平衡相分率と相組成を求める場合に使用します。同梱のヘルパーは実際の pycalphad 平衡計算を実行し、物質収支を確認し、より高いサンプリング密度で再計算し、各安定組成セットを個別にエクスポートします。
平衡は、選択されたデータベース、成分、相、および条件によって制約されます。析出速度、残留する準安定微細組織、またはデータベースに存在しない相の特性を予測するものではありません。数値的な検証が成功しても、データベースの実験的な精度が確立されるわけではありません。
ワークフロー
- TDB の出典、ライセンス、評価/論文、有効な温度/圧力および組成範囲、ならびに必要な元素を特定します。実際の合金にはユーザーのデータベースを使用してください。同梱の assets/ideal-cu-ni.tdb は独自に作成した仮想的な教材用モデルであり、評価済みの Cu-Ni データベースではありません。
- データベースの元素と相を検査します。関連する相を意識的に選択し、除外した相を記録してください。除外によって計算が準安定な制約付き結果になる可能性があるためです。副格子モデルで必要な場合は
VAを含めてください。空孔は独立したバルクモル分率ではありません。TDB 内の結合された秩序/無秩序の定義はそのまま保持しますが、秩序モデルがすでに無秩序の寄与を含んでいる場合、両方の相を別個の候補として選択しないでください。ヘルパーはそのようなフィルタリングされた候補リストを拒否します。 - assets/equilibrium.json をコピーします。ちょうど N-1 個の元素モル分率と、1 つの従属する非空孔元素を指定します。従属分率は
1 - sum(独立分率)です。分率は暗黙に正規化されません。K と Pa を設定します。このヘルパーを使用する前に、重量パーセントまたは質量分率を変換してください。 - 評価で判明している場合はデータベースの温度区間を宣言し、不明な場合は
database_temperature_range_kを null に設定します。これはユーザーが提供する根拠であり、すべての TDB 関数から自動的に推定される範囲ではありません。宣言された区間外のリクエストは失敗します。圧力と組成の妥当性は別途確認してください。 - 計算を実行します。有限のギブズエネルギー、合計が 1 になる相分率、再構成されたバルク組成、および
pdens(相構成サンプリング密度)を 2 倍にした場合の安定性を確認します。転移付近では、温度とサンプリング密度をさらに細かくします。 - 相分率はそのモル基準とともに、相組成、データベースハッシュ、条件、除外した相、および数値的または評価上の制限事項を添えて提示します。
解析的な例、基準変換、ネイティブの Model/Workspace/property/plot コントラクト、混和ギャップの扱い、および収束限界については、references/model-and-validation.md をお読みください。
テスト済みの例を実行する
コレクションのルートから:
uv run --no-project --python 3.12 --with pycalphad==0.11.2 --with numpy==2.5.3 \
python skills/pycalphad/scripts/equilibrate.py \
skills/pycalphad/assets/ideal-cu-ni.tdb \
skills/pycalphad/assets/equilibrium.json equilibrium-result
Python 3.12、pycalphad 0.11.2、NumPy 2.5.3 でテスト済みです。新しい出力ディレクトリを使用してください。すべての熱力学計算はローカルで実行され、スクリプトは TDB をアップロードしません。
提供された仮想モデルについて、X(Ni)=0.5 および 101325 Pa の場合:
| 温度 | 平衡結果 |
|---|---|
| 900 K | FCC_A1 のみ |
| 1100 K | 0.5 FCC_A1 + 0.5 LIQUID、X(Ni) はそれぞれ約 0.527307 および 0.472693 |
| 1300 K | LIQUID のみ |
このスイートは、解析的な共通接線組成、非中心のてこ則のケース、ギブズエネルギー、物質収支、両方の単相限界、および実際の同一相混和ギャップの頂点を検証します。これらは計算ワークフローを検証するものであり、実際の Cu-Ni 冶金を検証するものではありません。
出力と受け入れ
report.json: 設定とバージョン、TDB/設定の SHA-256、除外されたデータベースのフェーズ、 要求された組成、ソルバーが課した組成、再構成されたバルク組成、温度ごとの ベースライン/精緻化結果、およびチェック。実験的な妥当性はヘルパーでは評価されません。phase-equilibria.csv: 温度およびサンプリング実行ごとの安定頂点ごとに 1 行、 フェーズ名、モル分率、元素モル分率を含みます。そのギブズエネルギー列は 系全体のモルギブズエネルギーであり、各頂点に対して繰り返されます。 個々のフェーズのエネルギーではありません。
未使用の pycalphad 頂点は名前が空白で値が NaN です。それらは省略されます。名前付きの 頂点に無効な値があると失敗します。同じフェーズ名を持つ複数の頂点は、混和ギャップが 1 つのフェーズの 2 つの組成セットを含む可能性があるため、保持されます。 頂点インデックスは、温度をまたいで同じ物理的フェーズを継続的に追跡するものではありません。
安定版 0.11.2 では、pycalphad は独立モル分率を [1e-10, 1-1e-10] にクリップします。
各結果は solver_bulk_mole_fractions と、要求されたバルクからの最大絶対差を
composition_condition_adjustment_absolute_error に記録します。質量バランスのチェックは
依然として要求された組成と比較します。そのため、より厳しい許容差ではエンドポイントで
失敗する可能性があります。クリップされた多成分計算から、正確な純成分または
超微量の結果を主張しないでください。
all_checks_passed は、各実行のフェーズ合計とバルク組成の残差が
mass_balance_tolerance 以内であり、フェーズ合計が phase_fraction_tolerance 以内で
安定しており、pdens が倍になったときに系のギブズエネルギーが
gibbs_energy_tolerance_j_per_mol 以内で安定していることを要求します。
この比較は、大域的最小値や、同一フェーズの混和ギャップ内での個々の組成セットの
移動を保証するものではありません。それらのエクスポートされた組成も確認してください。
失敗したチェックは、収束として言い換えられるのではなく、レポートに表示されたままになります。
境界と上流の契約
ヘルパーは、元素モル分率、1 つの組成、1 つの圧力、および最大 1000 の明示的な正の温度を 扱います。選択されたフェーズは pycalphad のフェーズ互換性ルールを通じて検証されます。 互換性のない、または自動的にフィルタリングされた秩序/無秩序フェーズセットは、 明示的なエラーを生成します。要求されたフェーズを暗黙的に削除することはありません。
荷電種の制約、外部から課された化学ポテンシャル、カスタムモデル、 活量参照状態の変更、およびデータベースの最適化には追加のモデリングが必要であり、 このヘルパーのテスト済みスコープ外です。教育用資産を、実際の材料選択や 熱処理の決定に外挿しないでください。
上流の latest ドキュメントは現在、0.11.3 開発ビルドを説明しています。
バンドルされたヘルパーとリファレンスのネイティブ例は、2026-10-01 に安定版 0.11.2 に対して
実行されました。リリースのソースは、インストールされた wheel と照合されました。
リモートの熱力学計算やデータベース取得 API は使用されません。Database は
ローカルパス、ファイルライクオブジェクト、または TDB テキストをロードします。
URL はサポートされたダウンロードショートカットではありません。