MateriApps
物質科学シミュレーションのポータルサイト

現在アプリ掲載数332件

お問合せ / アプリ掲載依頼
    • JP
    • EN
  • MateriApps について
  • レビュー募集
もっと詳しく探す
  • NEWS / 講習会・イベント
  • アプリ一覧
  • アプリ詳細検索
  • キーワード解説
  • レビュー
  • 事例
  • アプリコンシェルジュ
  • インストールしないでアプリを
    試せる「MateriApps LIVE!」

    詳細はこちら
  • MateriApps について
  • レビュー募集
  • プライバシーポリシー
  • お問合せ / アプリ掲載依頼
  • アプリ一覧
  • Atomic Simulation Environment (ASE)

Atomic Simulation Environment (ASE)

  • 公開度:3 ★★★
  • ドキュメント充実度:3 ★★★

原子構造モデリング・シュミレーション管理・可視化などを行うpythonモジュール群。数多くの第一原理計算・古典分子動力学・量子化学計算アプリケーションに対応しており、GUI、コマンドライン、pythonスクリプトなど、複数のインタフェースを備える。LGPLに基いて公開されている。

ユニバーサル機械学習ポテンシャルを使ってみる
Last Update:2025/09/12
あなたはすでに投票済みです!

MateriApps開発チーム

第一原理計算の精度を保ちつつ高速・大規模・長時間の分子動力学計算を実現する方法として、機械学習ポテンシャル関連技術が注目されている。第一原理計算を用いて構造とエネルギー、原子間力、応力を対応づけるデータセットを用意し、これを再現するように機械学習モデルを訓練し、力場として用いることで、第一原理計算に比べて桁違いに高速な計算が可能となるというものである。最近では、ほとんどの元素に対応した訓練を行った、いわゆる「ユニバーサルな」機械学習ポテンシャルが注目を浴びており、アカデミアだけでなく、Google, Microsoft, Metaを含む大企業の研究グループも参入し、モデル同士の性能を競うMatbench Discoveryのリーダーボードが毎月のように更新されている。これらの機械学習ポテンシャルモデルは、Atomic Simulation Environment (ASE)のcalculatorインタフェースを介して利用することができるようになっており、非常に簡便に計算が実行可能である。計算対象の系ごとに、実験や第一原理計算と比較、検討するなど注意深い検討が必要だが、多くの用途で第一原理計算を置き換えることができるところまで来ているようである。ここでは、Matbench Discoveryのリーダーボード上位陣の一部についてASEとphonopyを用いたフォノン計算を行い、結果を比較してみたい。

モデルのインストール

今回試す機械学習ポテンシャルは、いずれもPython環境下で簡単にインストールできる。まずはcondaなどを使ってPython仮想環境を分けてインストールを行うのが無難であると思われる。

conda create -n umlip python=3.9
conda activate umlip

ここではumlip (universal machine-learning interatomic potentialの略)という名前をつけたPython 3.9の仮想環境をインストールし、activateした。次にMatterSim、Orb、DeePMD-kit、GRACE、Sevennet、をインストールする。

# MatterSim
pip install mattersim==1.1.1

# Orb
pip install orb-models==0.4.2
pip install "pynanoflann@git+https://github.com/dwastberg/pynanoflann#egg=af434039ae14bedcbb838a7808924d6689274168"

# DeePMD-kit
pip install deepmd-kit==3.0.1

# GRACE 
pip install tensorpotential==0.4.5

# SevenNet
pip install sevenn==0.11.2

# Pytorch
pip install torch==2.5.1

以上で同時に依存パッケージもダウンロードされる。TensorflowやPytorchもインストールされるが、GPU対応が必要な場合はあらかじめ自分でGPU対応版をインストールしておく。最後のconda activate umlipは、インストールされたPythonパッケージに付随する実行プログラムにパスを通すために必要である。今回入れたパッケージのうち、DeePMD-kitとGRACEはリンク1、リンク2の情報に基づいて、以下のようにして最新のモデルパラメータを別途ダウンロードした。他のパッケージは、必要に応じて実行時にモデルパラメータファイルがダウンロードされる。

wget https://bohrium-api.dp.tech/ds-dl/dpa3openlam-74ng-v3.zip 
grace_models download GRACE_2L_OAM_28Jan25

unzip dpa3openlam-74ng-v3.zip

計算の実行

フォノン計算を行うPythonスクリプトを準備する(完成版スクリプトはこちら)。以下では完成版スクリプトから抜粋して説明する。各モデルのcalculatorは、以下のように各パッケージをimportし、定義できる。機械学習ポテンシャル以外に、EMT (effective medium theory)に基づく古典力場もimportし、比較に用いる。

from ase.calculators.emt import EMT

from mattersim.forcefield.potential import MatterSimCalculator
from mattersim.applications.phonon import PhononWorkflow

from orb_models.forcefield import pretrained
from orb_models.forcefield.calculator import ORBCalculator

from deepmd.calculator import DP

from sevenn.calculator import SevenNetCalculator

device = "cpu"
# specify universal mlip calculators
calcs = [MatterSimCalculator(load_path="MatterSim-v1.0.0-5M.pth",device=device), 
         ORBCalculator(pretrained.orb_v2(device=device),device=device),
         DP(model="2025-01-10-dpa3-openlam.pth"),
         SevenNetCalculator(model='7net-l3i5', device=device),
         grace_fm("GRACE-1L-OAM_2Feb25"),
         EMT()
         ]

計算する物質は、cifファイルを準備すればよい。ここでは、Materials Projectからダウンロードした銅のファイルを用いた(こちらからダウンロード可能。DOI: 10.17188/1204433)。

path_to_structure = "Cu.cif"
atoms_init = read(path_to_structure)

各calculatorを用いて格子定数の緩和とフォノン計算を行う。フォノン計算のワークフロー自動化のために、MatterSimで提供されているPhononWorkflowを用いた。

# loop over calculators
e =[]
latcons = []
models = []
for calc in calcs:
    # Copy atoms object for each calculator
    atoms = atoms_init.copy()

    # attach the calculator to the atoms object
    atoms.calc = calc
    atoms.set_constraint(FixSymmetry(atoms))    
    ucf = StrainFilter(atoms)
    relax = BFGS(ucf)
    relax.run(fmax=0.01)
    latcons.append(atoms.cell.cellpar()[0])
    e.append(atoms.get_potential_energy())

    model_name = type(calc).__name__
    models.append(model_name)
    ph = PhononWorkflow(
        atoms=atoms,
        find_prim = True,
        work_dir = f"./{model_name}",
        amplitude = 0.01,
        supercell_matrix = np.diag([4,4,4]),
    )

    has_imag, phonons = ph.run()

実行する。

python phon_umlip.py

うまく行くと、モデルごとにディレクトリが生成され、その中でphonopyを使ったフォノン計算結果が出力される。

phonopy-bandplot */band.yaml --legend

で、各モデルごとにフォノンバンドが出力される。ORBCalculator以外は似通った結果になっている。Matbenchによると、Orb-v2のフォノン熱伝導度の誤差(κSRME)は比較的大きいことが分かっており、フォノン物性に関してはあまり信頼できないことがわかる。その他のポテンシャルモデルもフォノンバンドの詳細は異なっており、要求精度によっては、第一原理計算も含めた検討が必要になることが想定される。ただし、この計算はノートPCを用いて1分程度で完了するため、スクリーニング用途を考えると有用性が非常に高いと言えそうだ。

04 / 06

  • 01基本情報
  • 02事例・論文
  • 03講習会
  • 04レビュー
  • 05開発者の声
  • 06このアプリ情報に
    ついてのお問い合わせ
TOP

MateriApps
物質科学シミュレーションのポータルサイト

  • NEWS / 講習会・イベント
  • アプリ一覧
  • アプリ詳細検索
  • キーワード解説
  • 事例
  • アプリコンシェルジュ
  • プライバシーポリシー
お問合せ / アプリ掲載依頼
  • 東京大学 物性研究所 The Institute for Solid State Physics
  • 東京大学 The University of Tokyo
  • CDMSI
  • CCMS

© MateriApps, 2013-2025. All rights reserved.