mcpField
H
HEA-Bench

HEA-Bench

ローカル
github.com/dfieser科学・教育13 週間前に更新

HEA-Bench について

HEA-Benchは、高エントロピー合金、酸化物、セラミックスの記述子、相予測ルール、実験データ、設計ツールを提供します。材料研究や組成スクリーニング向けで、根拠を追跡できる閉形式計算をPython、ブラウザー、デスクトップアプリ、MCPから利用できます。

主な機能

  1. 01合金・酸化物の記述子計算
  2. 02経験的な相予測ルール
  3. 03Miedema混合エンタルピーの分解
  4. 04実験データと物性予測
  5. 05組成検索と実験計画
  6. 06ベンチマークとカバレッジ調査

活用シーン

  1. 01候補合金の熱力学記述子を計算
  2. 02酸化物の相形成傾向をスクリーニング
  3. 03物性条件で候補組成を検索
  4. 04実験を計画し予測を評価

MCP 対応

HEA-BenchのMCPサーバーは、計算、データセット、予測、設計、ベンチマーク機能を24個の決定的なツールとして公開します。MCPクライアント向けの応答には、単位または不確実性の情報と引用キーが含まれます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"dfieser-hea-bench": {
"command": "uvx",
"args": [
"hea-bench"
]
}
}
}
起動コマンドuvx hea-bench

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypihea-bench2.9.0

ツール

24

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
formulastringはい元素数表記による化学式です。例:等原子合金は 'CoCrFeMnNi'、スケーリングした合金は 'Al0.3CoCrFeNi'。数値の合計は 1 である必要はなく、モル分率に正規化されます。

詳細

HEA-Bench:高エントロピー合金および酸化物の標準記述子を、計算過程とともに提示します。

hea-bench

Paper DOI PyPI Python CI License: MIT

あらゆる組成から、標準的な高エントロピー合金 (HEA)および高エントロピー酸化物(HEO)の熱力学的・幾何学的 記述子と、古典的な経験的相予測ルールを計算するための、 オープンで解釈可能なツールです。各記述子は、厳選した元素特性テーブルに基づく透明性の高い閉形式の式であり、 一次文献と照合して検証されています。フィッティング済みの予測(硬度、相予測セット)には 較正済みの不確実性が付与され、学習データとは異なる合金にフラグを付けます。

今すぐお試しください: https://dfieser.github.io/hea-bench/。インストール不要で、すべてブラウザー内で実行できます。また、ライブラリのすべての機能を利用できます。合金、酸化物、セラミックスの特性・相予測付き計算ツール、実験データセット、合金検索と実験計画、そしてベンチマークを備えています。

ブラウザー計算ツールに表示された等モルのCantor合金CoCrFeMnNi。左側に組成、右側に計算された記述子が表示されています。

ブラウザーアプリが出力する、等モルのCantor合金CoCrFeMnNi。 Pythonライブラリ、デスクトップアプリ、このページは同じ桁数を出力し、 パリティテストスイートによってその状態が保たれています。

AI コーディングエージェントを使ってこれを統合しますか? API、 正確な戻り値の型と単位、各タスクを最速で実行する方法、避けるべき 誤りをまとめた、機械処理向けガイドの AGENTS.mdをご覧ください。

計算される内容

あらゆる組成について、以下を報告します。

  • 主要な記述子: 混合エントロピー ΔSmix、原子サイズ ミスマッチ δ、平均融点 Tm、Miedema 混合 エンタルピー ΔHmix、価電子濃度 VEC、 Yang–Zhang Ω、Pauling 電気陰性度ミスマッチ Δχ、Mansoori 過剰 エントロピー SE、ΔGss、ΔGmax、King Φ、Ye φ。
  • 相予測ルール: Yeh エントロピー、Zhang δ、Guo–Liu VEC、 Yang–Zhang Ω、King Φ、Ye φ、Senkov–Miracle κ、Tsai の σ相ウィンドウ、Sheikh の延性。
  • Miedema 生成エンタルピー: 化合物/固溶体/ アモルファスについて、化学的、弾性的、構造的、トポロジー的な項に分解します。
  • 独自の元素とペア値: 表にない元素またはペアエンタルピーを含む組成について、 あらゆる記述子やルールを計算します。
  • 高エントロピー酸化物(hea_bench.oxides + アプリの Oxides モード): Shannon イオン半径に基づく岩塩型、ペロブスカイト型、蛍石型、パイロクロア型の形成能 記述子を、電荷バランスに基づく酸化状態の自動割り当てとともに計算します。各 サブ格子の配置エントロピー、カチオンサイズの無秩序度、Goldschmidt の t/八面体 μ/Bartel の τ、 蛍石型の半径分散ルール、パイロクロア型の半径比ウィンドウが含まれます。

元素のカバー範囲:合金では55元素(Ag Al Au Be Bi Ca Ce Co Cr Cu Dy Er Fe Ga Gd Ge Hf Ho In Ir La Li Lu Mg Mn Mo Nb Nd Ni Os Pb Pd Pr Pt Re Rh Ru Sb Sc Si Sm Sn Sr Ta Tb Th Ti Tm U V W Y Yb Zn Zr。実験的に活性な希土類 HEA の全範囲に加え、 核、はんだ、HE-BMG の領域をカバーします)。Miedema ペアテーブルは 75元素をカバー(1485ペア中1484ペア。唯一の Th-U の欠落は報告され、 ゼロとして扱われません)。酸化物モジュールの Shannon テーブルは94元素をカバーします。

数値の算出方法

この計算プロセスには、適合モデルは一切ありません。各記述子は 整備されたテーブルに基づく閉形式の式であり、レポートには各入力値とともに その文献出典が記載されます。

flowchart LR
    A["Composition<br/>CoCrFeMnNi"] --> B["Curated element tables<br/>55 elements, 1484 Miedema pairs"]
    B --> C["Closed-form descriptors<br/>ΔS, δ, VEC, ΔH, Ω, Φ, φ, Λ, γ, κ"]
    C --> D["Empirical phase rules<br/>Yeh, Zhang, Guo-Liu, Yang-Zhang, King, Ye"]
    C --> E["Report<br/>per-value provenance, content-hashed result ID"]
    D --> E

すべての機能を備えた4つの実行方法

部分場所最適な用途
ウェブアプリhttps://dfieser.github.io/hea-bench/インストール不要で、誰でも使えます
デスクトップアプリポータブルな .exe 1つ、ダウンロード(インストール不要)。エンジンを内蔵した同じアプリを専用ウィンドウで実行でき、オフラインでも動作しますローカルで使いたい Windows ユーザー
Python ライブラリ + CLIpip install "hea-bench[all]"スクリプトやノートブック
AI エージェント向け MCP サーバーpip install "hea-bench[mcp]" を実行後、hea-bench-mcp24個のツールとして、Claude、Cursor、その他の MCP クライアントから利用できます

4つすべてにあらゆる機能が含まれているため、用途に合ったものを選んでも 機能が失われることはありません。これはプロジェクトの恒常的なルールであり、CI が適用しています。 tests/test_feature_parity.py は、公開機能にライブラリ関数、MCP ツール、 または動作するアプリ画面が欠けていると失敗します。ヘッドレス ブラウザーはビルド済みサイトのすべてのタブを使用し、ビルド済みデスクトップ exe は リリースに添付される前に同じ手順でテストされ、新規インストールした wheel は すべての MCP ツールに応答します。pip install hea-bench だけの場合、依存関係はなく、適合モデルと MCP サーバー以外のすべての機能を利用できます。 [all] エクストラを追加すると、それらのために scikit-learn と MCP SDK が追加されます。

4つすべてで単一の計算コアを共有しています。ブラウザー/デスクトップ用の コア(web/hea-calculator-core.js)は Python ライブラリを純粋な JavaScript に移植したもので、tests/test_web_parity.py により、 1484個すべての二元ペアと標準的な多元素フィクスチャで両者が一致することが保証されています。また、 tests/test_web_oxides_parity.py は酸化物モジュールについて、警告メッセージまで 完全に同一であることを確認します。アプリの Dataset、Design、 Benchmark タブと予測パネルは、変更されていない Python パッケージ自体をページ内で 実行し(Pyodide、web/hea-engine-worker.js)、tests/test_web_engine.py は CPython が返す内容と完全に同じ結果が返ることを確認します。

クイックスタート(Python)

pip install hea-bench
import hea_bench as hb

cantor = {"Co": 0.2, "Cr": 0.2, "Fe": 0.2, "Mn": 0.2, "Ni": 0.2}

hb.smix(cantor)               # 13.381 J/(mol·K)  = R · ln 5
hb.delta(cantor)              # 3.164 % atomic-size mismatch
hb.vec(cantor)                # 8.0 valence electrons
hb.mixing_enthalpy(cantor)    # -4.16 kJ/mol  (Miedema)
hb.omega(cantor)              # 5.79  (Yang–Zhang)
hb.delta_chi(cantor)          # 0.138 Pauling electronegativity mismatch
hb.s_excess(cantor)           # 0.318 J/(mol·K)  (Mansoori excess entropy)
hb.delta_g_max(cantor)        # -8.00 kJ/mol  (most-negative Miedema pair)
hb.phi_king(cantor)           # 3.533 (King 2016 proxy)
hb.phi_ye(cantor)             # 34.82 (Ye 2015 proxy)

# Apply the canonical rules
from hea_bench.rules import guo_vec, king_phi, yang_omega, ye_phi, zhang_delta
zhang_delta.predict(cantor)          # 'single-phase'
yang_omega.predict(cantor)           # 'single-phase'
guo_vec.predict(cantor)              # 'FCC'
king_phi.predict(cantor)             # 'solid_solution'
ye_phi.predict(cantor)               # 'solid_solution'

これらのカントール合金の値は、標準的な健全性チェックとしてテストスイートに固定されています。ルールは単純な経験的な代替指標であり、予測ではなく高速なスクリーニングを目的としているため、出力はそのように扱ってください。

記述子バックエンド(任意の相互運用)

記述子は、プラグイン可能なバックエンドを通じて計算することもできます。デフォルト(native)は、このパッケージ独自の標準ライブラリ実装です。pip install "hea-bench[interop]" を実行すると、同じインターフェースでインストール済みの HEACalculator(GPLv3。ユーザーが任意でインストール)を利用できるため、その数値を基準に標準化されたワークフローであれば、ここで提供される後続機能をすべて使いながら、その数値を維持できます。

from hea_bench.descriptors.backend import get_backend
get_backend("heacalculator").compute(cantor)   # same names, their reference data
hea-bench describe Al0.3CoCrFeNi --backend native

2つのバックエンドでは異なる参照データが同梱されているため(特に半径の規約が異なります)、同じ名前の値が異なっても正当です。記述子ごとの実測比較については、docs/backend-agreement.md を参照してください。実装構造が異なる量は、意図的に相互に対応付けていません。また、ベンチマークで公開されているベースラインは、変更せずにネイティブバックエンドを使用しています。

クイックスタート(酸化物)

from hea_bench import oxides

# Rost 2015 "J14" entropy-stabilized rock salt
j14 = oxides.describe_rock_salt({"Mg": 1, "Co": 1, "Ni": 1, "Cu": 1, "Zn": 1})
j14["descriptors"]["s_config"]       # 13.382 J/(mol·K) = R·ln 5
j14["oxidation_states"]              # all 2+ by charge balance

# Jiang 2018 single-phase high-entropy perovskite
pvk = oxides.describe_perovskite({"Sr": 1}, {"Zr": 1, "Sn": 1, "Ti": 1, "Hf": 1, "Mn": 1})
pvk["descriptors"]["goldschmidt_t"]  # 0.979, inside the 0.92–1.04 window
pvk["verdicts"]["bartel"]            # 'perovskite' (τ = 3.72 < 4.18)

各 describe_* レポートには、解決された酸化状態、実際に使用したShannon半径、すべての記述子、ウィンドウとともに示される形成可能性の判定、および警告が含まれています。フッ化物蛍石型とパイロクロアのスクリーニング、酸化状態の上書きを含む詳しい手順は、examples/02_oxides_walkthrough.py を参照してください。

クイックスタート(セラミックス、実験的)

hea_bench.ceramics は、岩塩型炭化物と窒化物、およびAlB2型二ホウ化物に対応するよう計算機を拡張します。組成のみを対象とし、それによって可能になることを誠実に示します。

from hea_bench import ceramics

hec = ceramics.describe_rock_salt_carbide({"Ti": 1, "Zr": 1, "Hf": 1, "Nb": 1, "Ta": 1})
hec["vec_per_formula_unit"]        # 8.4, with annotated literature reference points
hec["entropy"]                     # all normalization conventions, labelled

レポートには、公開されているすべての正規化規約での金属サブ格子のエントロピー(論文では予告なく規約が切り替わります)、判定ではなく注釈付きの参照点を示すVEC(文献では単一のウィンドウではなく参照点が示されています)、および未対応の項目に関する明示的な注記が含まれています。未対応の項目には、サイズ不整合記述子(この分野ではDFTによる二元系単位胞の結合長から算出されるため、引用表を採用するには実際に精査が必要です)と、エントロピー形成能またはDEEDがあります。これらはDFTアンサンブルの量であり、このパッケージでは再現できず、再現を主張するものでもありません。背景情報、引用文献、および候補となるセラミックスデータセットのライセンス監査については、docs/ceramics.md を参照してください。

クイックスタート(AI エージェント、MCP)

LLM エージェントは記述子の値を幻覚することがありますが、このサーバーはそれらの値を根拠に基づいたものにします。 hea_bench.mcp_server は、パッケージのすべての機能を Model Context Protocol 経由で、24 個の 決定論的なツールとして公開します。計算機能:parse_composition、バッチ処理の alloy_descriptors(Miedema のエンタルピーを含む)と alloy_rules(どちらもカスタム元素とペア値を指定可能)、omega_sensitivity、 oxide_report、ceramic_report、element_data、element_coverage。データセット機能:コーパスをローカルで構築するために一度実行する corpus_build、corpus_query、corpus_describe、corpus_export、measured_properties。予測機能:区間付きの predict_properties と予測セット付きの predict_phase_set(どちらも適用領域フラグを含みます)、および check_applicability。設計機能: パレット、ステップ、候補数に上限を設けた design_search と、キャンペーンファイルまたはインラインキャンペーンに対応する campaign_suggest。ベンチマーク機能: benchmark_summary、benchmark_run、benchmark_folds、benchmark_score、coverage_study。そして about です。各応答には単位または不確実性のフィールド、パラメータ化が関わる場合は引用キー、ライブラリのバージョンが含まれるため、エージェントの推論トレースには単なる浮動小数点数ではなく、監査可能な根拠が残ります。about() は実行環境で利用可能な機能を報告し、利用できないオプションの追加機能については、必要なインストール方法を明記したわかりやすいメッセージを返します。

pip install "hea-bench[mcp]"

任意の MCP クライアント(Claude Desktop、Cursor など)に登録できます。たとえば、claude_desktop_config.json では次のようにします。

{ "mcpServers": { "hea-bench": { "command": "hea-bench-mcp" } } }

omega_sensitivity ツールは特に注目に値します。ペアごとの Miedema 寄与と、支配元素のペアエンタルピーを公開済みの複数のコンパイルデータのばらつきの範囲内で変化させた場合に Ω がどの程度変動するかを報告します。そのためエージェントは、数値だけでなく、その数値をどの程度信頼できるかも確認できます。

クイックスタート(ブラウザー、インストール不要)

アプリはすべてクライアント側で動作します。タブは次のとおりです。

  • 計算機。 すべての記述子、9 つの相則すべて、Miedema の分解、ペアテーブルに対する Ω の頑健性、密度、コスト、区間付きの硬度、相予測セット、適用領域フラグを確認できます。酸化物とセラミックス(炭化物、窒化物、二ホウ化物)は、同じタブ内のモードとして利用できます。
  • データセット。 すべての出典名と論文名が付いた統合実験コーパス、フィルターと CSV ダウンロードに加え、測定済みの硬度および密度データを利用できます。
  • 設計。 特性制限、規則フィルター、パレートフロントを使った組成検索と、独自の測定データに基づく実験計画を行えます。
  • ベンチマーク。 固定済みのランダム分割とファミリー単位の分割、ベースラインのライブ再実行、独自の予測のスコアリング、カバレッジ調査を利用できます。

開き方は 2 通りあります。

  • ホストされたサイトを開きます:https://dfieser.github.io/hea-bench/。
  • または、リポジトリをクローンし、python tools/build_web_engine.py を一度実行して(ページ内に固定されたエンジンを構築します。約 30 MB)、次に python -m http.server -d web を実行して http://localhost:8000 を開きます。 web/index.html をディスクから直接開いても計算機能は使えますが、ブラウザーは file:// ページ上のエンジンをブロックするため、ほかのタブを使うにはローカルサーバーが必要です。

計算機には独自のドキュメントが付属しています。すべての合金と酸化物の式を引用付きで導出する 理論 ビュー、グループ化およびフィルター可能な 方程式 リファレンス、グループ化された 参考文献 があります。ディープリンクを使うと、各ビューを直接開けます(index.html#theory、#equations、#refs)。パリティが重要となる計算は web/hea-calculator-core.js にあり、2 つのパリティテストスイートによって Python との回帰チェックが行われます。

ペア評価:相予測ベンチマーク(実験的)

公開されているHEA相予測の精度のほとんどは、化学量論系列を多数含むコーパスでランダムに訓練/テスト分割して測定されているため、モデルは訓練時に使用した合金の近縁組成でテストされています。これは主に、既知の系内での補間を測定しています。 hea_bench.benchmarkには、統合された実験コーパス(約7,700種類の合金)を用いた、固定済みのファミリー単位の分割とランダム分割のペア、および両方を並べて報告する評価器が含まれています。

from hea_bench.benchmark import evaluate, load_benchmark
print(evaluate(my_model, load_benchmark(task="phase4")).table())

このパッケージ独自の記述子を用いる標準的なランダムフォレストは、ランダム分割でバランス精度0.941、ファミリー単位の分割で0.734を達成します。どちらの数値も誤りではなく、異なる問いに答えています(既知の系における新しい化学量論組成と、未知の元素系)。両者の差は、ランダム分割のスコアのうち、訓練用合金の近縁組成でのテストに由来する部分を定量化します。グループ化評価を補間と外挿の観点から捉える方法については、Li et al., Commun. Mater. 6:9 (2025)を参照してください。 doi:10.1038/s43246-024-00731-w。 ベースライン、分割ダイジェスト、完全な来歴情報: docs/benchmark-baselines.md。

各ソースデータセットはCC BY 4.0ライセンスでパッケージに同梱されており(data/raw/README.mdを参照)、コーパスはダウンロードなしで、マシン上に一度だけ構築されます。 hea_bench.corpus.build_corpus()は、最大のソースデータセットが固定されたSHA-256に一致することを確認し、すべてのコーパスバージョンを構築します。アプリとMCPサーバーのcorpus_buildツールも同じ処理を行います。

独立したプロダクトとしてのコーパス

ベンチマークの基盤となる統合実験コーパスは、タスクや分割の仕組みを介さず、直接利用することもできます。

from hea_bench.corpus import load_corpus

corpus = load_corpus()                # v0.2.0 (10,290 alloys), every row, full provenance
corpus.describe()                     # counts, families, agreement rate
al_bcc = corpus.query(contains=["Al"], phase="BCC", descriptor_ready=True)
al_bcc.rows[0].raw_labels             # each source's verbatim reported phase
al_bcc.to_csv("al-bcc.csv")

すべての行には、ソースごとの標準化ラベルと原文どおりのラベル、Borgの処理経路、入手可能な場合は一次文献のDOI、さらに上流のレコード識別子が含まれているため、パッケージを離れることなくラベルを監査できます。来歴チェーン、ソースごとのライセンス状況、調和処理のルール、既知の制約事項については、コーパスカードに記載されています。load_corpus()は最大バージョンのv0.2.0を開きます。このバージョンでは、LLMが抽出したChizhevskiyデータベースが追加されています。 load_corpus(version="0.1.0")は人手で整理された参照データ(7,783種類の合金)であり、ベンチマーク、相予測、ドメインフラグでは常にこれを使用するため、公開済みの数値はすべて維持されます。

不確実性と適用可能領域

hea_bench.uncertaintyは、コーパスを使って学習したあらゆるものの信頼性を担保するレイヤーです。コンフォーマル予測は、任意のsklearn形式のモデルを、分布を仮定しない有限サンプルの被覆保証を伴う集合または区間を出力するモデルでラップします。また、適用可能領域モデルは、その保証の交換可能性の仮定が入力クエリに対して妥当である可能性を示します。

from hea_bench.corpus import load_corpus
from hea_bench.uncertainty import ConformalClassifier, fit_domain

domain = fit_domain(load_corpus(version="0.1.0"))
domain.novelty({"Hf": 0.2, "Nb": 0.2, "Ta": 0.2, "Ti": 0.2, "Zr": 0.2})
# {'element_set_seen': True, 'family_count': ..., 'nearest_family_distance': 0.0,
#  'descriptor_distance': ..., 'element_coverage': True, 'in_domain': True, ...}

新規性の出力には、意図的に互いに独立させた複数のシグナルと、保守的なin_domainフラグが含まれます。これは、シグナルごとに異なる形で機能しなくなるうえ、単一のスカラー値は誤解を招きやすいためです。未知の合金系におけるコンフォーマル予測集合の実測被覆率を、領域内外および元素数別に測定した結果は、docs/uncertainty-coverage.mdに記載されています。公開されている相予測集合は、合金系全体を単位とする交差検証で校正されており、元素数が4未満の合金と4以上の合金とで個別に校正されています。また、90パーセント予測集合は、未知の合金系に対して、単相タスクでは0.900、相構造タスクでは0.884の被覆率を達成しています。フラグだけ、または集合サイズだけを見るのではなく、両方を合わせて判断してください。これらのツールが示すのは、このコーパス上で、このパッケージがあなたの組成についてどの程度確信しているかに限られ、それ以外のことは示しません。

明示的な段階に分けた特性予測

hea_bench.properties は、実験を行う研究者が最初に尋ねる項目を、データ品質を暗示するのではなく API に明記したうえで予測します。

from hea_bench.properties import predict_property

predict_property({"Al": 0.2, "Co": 0.2, "Cr": 0.2, "Fe": 0.2, "Ni": 0.2}, "hardness")
# PropertyPrediction(prop='hardness', value=..., unit='HV',
#                    interval=(low, high), alpha=0.1, tier='B',
#                    in_domain=True, n_training=..., ...)

Tier A(density、melting_temperature、および元素ごとの出典を明記した日付付き価格表に基づく、あくまで参考値として明示された cost_per_kg)は、出典付きの表を使った閉形式の算術であり、実験データがある場合は検証済みです(docs/property-tier-a.md)。 Tier B(pip install "hea-bench[properties]" が必要な hardness)は、このパッケージの記述子に対するシード固定のランダムフォレストを、合金群ごとにグループ化したコンフォーマル区間と適用領域フラグでラップしたものです。保留データでの誤差、区間の較正、およびその誤差が裏付ける判断と裏付けない判断については、docs/property-hardness.md に明記されています。公開データが少なく不均質なため、区間は広くなっています。これが誠実な結果であり、隠さず示しています。保留データでの誤差を妥当に評価できるだけの公開データがない特性(管理されていない試験温度における降伏強度、延性、耐食性)は意図的に提供しておらず、その理由はモデルカードに記載しています。

制約付き組成探索

hea_bench.design.search は、「何を作るべきか」という問いに対するスクリーニング支援として、指定した元素候補から決定論的な組成格子を生成し、規則、特性、組成、適用領域の制約で絞り込みます。各候補に完全な根拠情報を付けたパレートフロントを返します。

from hea_bench.design import Maximize, Minimize, PropertyConstraint, search

result = search(
    elements=["Al", "Co", "Cr", "Fe", "Ni"],
    n_elements=(4, 5),
    constraints=(PropertyConstraint("density", max=8.0),),
    objectives=(Maximize("hardness"), Minimize("cost_per_kg")),
    step=0.05,
)
result.candidates[0].properties["hardness"].interval   # every number has one

適用領域の制約はデフォルトで有効です(最適化器はデータが不足する領域でモデル誤差を最も強く利用するため、無効化は明示的に行います)。また、optimize_bound="lower" を指定すると、適合した目的関数を区間の保守的な下限で順位付けします。探索は厳格な予算内で網羅的に行われ、黙ってサンプリングすることなく明示的に拒否するため、結果は設計上再現可能です。実測合金が復元されたフロントのどこに位置するかは、docs/design-recovery.md で誠実に検討しています。フロントは優先順位付けの支援であり、答えの一覧ではありません。

アクティブラーニングキャンペーン(測定データはご自身で用意)

hea_bench.design.campaign.Campaign は、継続的な利用につながるループを実行します。ご自身の測定値を記録し、次に試すバッチの順位付けを取得し、すべてをディスク上のプレーンな JSON ファイルに保存します(アカウント、サーバー、テレメトリーは不要です)。

from hea_bench.design.campaign import Campaign

campaign = Campaign("hardness", ["Al", "Co", "Cr", "Fe", "Ni"])
campaign.observe({"Al": 0.1, "Co": 0.25, "Cr": 0.2, "Fe": 0.25, "Ni": 0.2}, 430.0)
campaign.suggest(n=5)     # each Suggestion prints its interval and domain flag
campaign.save("my-campaign.json")

代理モデルはシード固定のランダムフォレストです。各提案には、フォレストのアウトオブバッグ誤差から求めた 90 パーセントのコンフォーマル区間が付くため、較正に測定データを消費しません。獲得関数には期待改善量または UCB を用い、バッチ候補は believer ヒューリスティックで選択します。また、硬度キャンペーンはパレット内の Borg レコードからウォームスタートするため、10 回目のサンプルを待たずにループが役立ちます。有益な行が 10 未満の場合は、見せかけの結果を出すのではなく拒否します。Borg 硬度レコードを使った 2 つのリプレイ、区間のカバレッジを含めたランダム選択との比較、および Al-Co-Cr-Fe-Ni における年順のリプレイは、docs/campaign-replay.md にあります。

ΔHmix ≈ 0 付近における Ω に関する注記

Ω = Tm·ΔSmix / |ΔHmix| は ΔHmix → 0 で発散するため、理想合金に近い合金(|ΔHmix| ≲ 1–2 kJ/mol)では、Ω の 大きさ は Miedema のペアテーブルの選択に極めて敏感です(出典間の不一致が最も大きいのは Mn です)。数値が異なっても相の判定(Ω ≫ 1.1)は安定しているため、この領域では Ω を定性的に解釈してください。

プロジェクト構成

hea-bench/
├── src/hea_bench/
│   ├── descriptors/     ΔS_mix, δ, VEC, T_m, ΔH_mix, Ω, S_E, φ + data tables
│   ├── rules/           the nine empirical phase-prediction rules
│   ├── oxides/          HEO module: families, oxidation-state solver,
│   │                    Shannon radii (94 elements, vendored from pymatgen)
│   ├── ceramics/        carbides, nitrides, diborides
│   ├── corpus/          the experimental corpus: build_corpus, load_corpus
│   ├── benchmark/       frozen family-grouped + random paired splits and evaluation
│   ├── properties/      density, melting point, cost, hardness
│   ├── uncertainty/     conformal sets and intervals, phase sets, domain flag
│   ├── design/          composition search and campaigns
│   ├── mcp_server.py    the MCP server (hea-bench-mcp)
│   ├── webapp.py        the bridge the in-page engine calls
│   ├── custom.py        custom elements and pair values
│   ├── composition.py   formula parser, normalizer
│   ├── constants.py     R = 8.314
│   └── cli.py           command-line entry point
├── tests/               unit tests + BOTH Python↔JS parity suites
├── web/                 landing page + self-contained calculator (+ MathJax)
├── src-tauri/           native desktop wrapper (Rust/Tauri)
├── examples/            Cantor-alloy and oxides walkthroughs (.py + .ipynb)
└── pyproject.toml

開発

git clone https://github.com/dfieser/hea-bench
cd hea-bench
pip install -e ".[dev]"
python -m pytest tests/ -q          # includes the Python↔JS parity test (needs Node)

HTML 計算ツール(web/index.html と web/hea-calculator-core.js)は、同じ記述子と規則を独立して実装した JavaScript 版です。Python の記述子コードを変更した場合は、JS コアも更新して一致させ、tests/test_web_parity.py と tests/test_web_oxides_parity.py を再実行し、実装間にずれが生じないようにしてください。JS コア内の元素データテーブルは、Python ライブラリから tests/data/_sync_js_tables.py と tests/data/_sync_js_oxide_tables.py によって生成されます。再生成し、手作業で編集しないでください。

ライセンス

MIT です。ベンダー同梱の matminer Miedema データファイルは、 上流の BSD-3-Clause ライセンスのままであり、 descriptors/data/LICENSE.matminer.txtに その内容が保持されています。

コントリビューションとサポート

コントリビューションやバグ報告を歓迎します。開発環境のセットアップと テスト規約については、CONTRIBUTING.mdを ご覧ください。

バグの報告や機能のリクエストは、 イシュートラッカーに お寄せください。質問やアイデアの提案は ディスカッションに 投稿してください。記述子の定義、組成に適用される規則、あるいは 2つの情報源が食い違う理由などについては、Q&A カテゴリーが適しています。 ここに投稿された回答は、同じ疑問を持つ人が後から見つけられるように残ります。 直接連絡する場合は、メンテナー([email protected])までメールしてください。 参加にあたっては行動規範が適用されます。

謝辞

Yen-Ming Horng(@infinitus01)、 独立研究者、台湾。外部による再現性とドキュメントのレビューを担当しました。 v2.1.4で修正されたdelta_g_maxのドキュメント上の契約の不一致を報告しました。

この種の外部レビューでは、再現性と ドキュメントと実装の一貫性を確認します。基礎となる科学的結論の 検証や支持を意味するものではありません。

引用

hea-benchを研究で使用する場合は、説明論文を 引用してください。

Fieser, D.; Dewanjee, U.; Hu, A. HEA-Bench: An AI-Agent-Optimized Calculator of High-Entropy Alloy and Oxide Descriptors and Phase-Prediction Rules. Materials 2026, 19, 3075. https://doi.org/10.3390/ma19143075

@article{ma19143075,
  author         = {Fieser, David and Dewanjee, Unmanaa and Hu, Anming},
  title          = {{HEA-Bench}: An {AI}-Agent-Optimized Calculator of High-Entropy Alloy and Oxide Descriptors and Phase-Prediction Rules},
  journal        = {Materials},
  volume         = {19},
  year           = {2026},
  number         = {14},
  article-number = {3075},
  issn           = {1996-1944},
  doi            = {10.3390/ma19143075},
  url            = {https://www.mdpi.com/1996-1944/19/14/3075},
}

この推奨引用を含む機械可読メタデータは CITATION.cffにあります(GitHubの「このリポジトリを引用」 ボタンではこのファイルが使用されます)。使用したソフトウェアの正確なバージョンを 参照するには、Zenodoアーカイブも引用してください。コンセプト DOI 10.5281/zenodo.20346287は、 常に最新バージョンを参照します。

hea-benchを引用する際は、実装されているパラメーター化の一次資料も あわせて引用してください。具体的には、Miedemaモデルについてはde Boer et al. 1988、 規則については論文(Yeh 2004、Zhang 2008、Guo–Liu 2011、Yang–Zhang 2012、King 2016、Ye 2015)、酸化物の一次資料(Shannon 1976、 Goldschmidt 1926、Bartel 2019、Spiridigliozzi 2021、Subramanian 1983)、 ベンダー同梱のペアテーブルについてはmatminer、Shannon半径のデジタイズについては pymatgenを引用してください。分類された参考文献一覧は、計算ツールのReferencesビューにあります。

免責事項

hea-benchが報告する記述子の値と規則の予測は、研究および情報提供のみを目的とする 経験的な推定値です。規則と記述子は、既知の限界を持つ半経験的な代替指標です。 正確性、完全性、特定の目的への適合性、または材料認定への適合性について、 いかなる保証も行いません。検証済みの熱力学的手法(CALPHADやDFTなど)による 独立した検証を行わずに、これらの出力を工学設計や材料認定の唯一の根拠として 使用しないでください。

ソフトウェアはMITライセンスに基づき、**「現状のまま」**提供されます。 matminer由来のベンダー同梱Miedema元素パラメーターは、 引き続き上流のBSD-3-Clauseライセンスの対象です。詳細は src/hea_bench/descriptors/data/LICENSE.matminer.txtを ご覧ください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。