Skip to content

AiiDA-KKRを活用したハイスループット計算

AiiDA-KKRは、Jülich KKR codes(JuKKR)をAiiDA(計算科学向けの自動化・来歴管理基盤)に接続するプラグイン群である。多数の計算を「来歴(provenance)グラフ」として保存し、再現可能な形で不純物埋め込み・合金・界面などのKKR計算系列を組み立て、検索可能なデータベースとして運用できる枠組みである。

参考ドキュメント

  1. aiida-kkr Documentation(公式)
    https://aiida-kkr.readthedocs.io/
  2. Rüßmann, P., Bertoldo, F. & Blügel, S., The AiiDA-KKR plugin and its application to high-throughput impurity embedding into a topological insulator, npj Computational Materials 7, 13 (2021).
    https://www.nature.com/articles/s41524-020-00482-5
  3. (日本語)矢作裕太, AiiDAではじめる計算自動化:(その1)AiiDAって何?(Qiita, 2025)
    https://qiita.com/yuta-yahagi/items/776c92125b56fc11653c

1. 背景:AiiDAとAiiDA-KKRの狙い

1.1 AiiDAとは何か

AiiDAは、計算ジョブの投入・監視・収集を自動化しつつ、入力・出力・実行環境・計算系列の関係を有向非巡回グラフ(directed acyclic graph; DAG)として保存する枠組みである。計算結果だけでなく、その結果に至るまでの計算過程(どの構造・どのパラメータ・どの実行コード・どの計算機設定で得たか)を「データベースに問い合わせ可能な形」で保持する点に核心がある。

来歴グラフは数学的には

G=(V,E),EV×V

で表され、非巡回性は

任意の vV について vv に戻る有向閉路が存在しない

という制約として表現される。この非巡回性が、結果の生成手順を一意に辿れる性質(追跡可能性)を与える。

1.2 なぜKKR計算にAiiDAが効くのか

KKR(Korringa–Kohn–Rostoker)系の計算では、バルクの自己無撞着計算、界面・多層膜の設定、合金近似(VCA/CPA等)、不純物埋め込み、状態密度や応答関数の評価など、複数段の計算を段階的に連結することが多い。AiiDA-KKRは、これらの段階をAiiDAの「プロセス」として形式化し、計算系列全体を来歴として保存することで、(i) 大量計算の自動化、(ii) 途中結果の再利用、(iii) 体系的なデータ収集、を同時に実現することを目的とする。

2. AiiDA-KKRが提供する機能の全体像

AiiDA-KKRは「JuKKRの実行そのもの」を置き換えるものではなく、JuKKRを外部計算コードとして扱い、AiiDAの枠組み(デーモン実行、リモート計算機接続、データベース保存、来歴グラフ)に載せるための接着層である。基本的には次を含む。

  • 計算プラグイン(CalcJob):JuKKR各実行モジュールに対応する投入単位
  • パーサ(Parser):出力ファイルから物理量・メタ情報を抽出する解釈器
  • ワークチェーン(WorkChain):複数計算を組み合わせて一連の計算系列を自動構成する高水準手続き
  • ユーティリティ:入力生成、収束支援、データ整形、既存計算の取り込み(import)など

3. 来歴とデータモデル:何が保存されるのか

3.1 AiiDAにおける「保存対象」

AiiDAでは、計算実行に関わる要素が「ノード」として保存され、ノード間の依存関係が「リンク」として表現される。概念的には次の対応である。

  • 入力データ:構造、パラメータ辞書、擬ポテンシャルではなく(JuKKRは全電子であるため)主としてポテンシャル初期化情報や設定辞書など
  • 実行環境:どの計算機(Computer)で、どの実行コード(Code)を、どのスケジューラ設定で走らせたか
  • 出力データ:収束情報、フェルミ準位、局所モーメント、DOS、バンド、交換相互作用など(計算種別に依存)
  • 生ファイル:リモート作業ディレクトリ(remote_folder)と取得物(retrieved)

重要なのは、「数値だけ」ではなく「数値に至る関係」が保存される点である。これにより、同じ物理量でも生成経路が異なるデータを混同せずに扱える。

3.2 既存計算の取り込み(Importer)の意味

研究現場では、AiiDA導入前に走らせた計算資産が大量に存在し得る。AiiDA-KKRは、既存のJuKKR計算結果をAiiDAの来歴グラフへ組み込むための「importer計算」を備える。これにより、過去資産を「AiiDAの管理下にある計算と同等に」扱い、そこから先の計算系列(追加の不純物計算、DOS評価、派生解析など)を来歴(provenance)が途切れない形で接続できる。

4. AiiDA-KKRのコンポーネント

AiiDA-KKRはドキュメント上、計算とワークチェーン、および補助ツール群として整理されている。代表的な要素を表にまとめる。

区分名称例(概念)役割出力の性格
計算(CalcJob)voronoi系原子中心セルや初期ポテンシャル構築の前処理を担う初期化ポテンシャル、前処理ログ
計算(CalcJob)KKRhost系周期系(バルク・界面・多層膜等)の自己無撞着計算を担う収束情報、フェルミ準位、局所量、派生評価に必要な中間ファイル
計算(CalcJob)KKRimp系ホストに対する不純物・欠陥の埋め込み計算を担う局所DOS、局所モーメント、散乱に関する量など
計算(CalcJob)KKRnano系大規模系向けの計算を担う(導入可否は環境に依存)大規模系の評価結果
計算(CalcJob)Importer既存計算結果をAiiDAノードとして取り込むAiiDA管理データとしての再表現
ワークチェーンstartpot系初期ポテンシャル生成~次段への接続を整える後続計算へ渡す入力一式
ワークチェーンscf系自己無撞着反復の管理、収束判定、再投入を扱う収束済みノード、収束履歴
ワークチェーンimpurity系ホスト→不純物→DOS等を一連で組み立てる不純物系列の集約結果
ワークチェーンSTM/BdG等STM像近似や超伝導埋め込み(YSR状態)など特化計算を扱う空間分布量、局所スペクトル等

ここでのポイントは、AiiDA-KKRが「計算を走らせる最小単位(CalcJob)」と「複数段を束ねる手続き(WorkChain)」を分離し、再利用可能な部品として積み上げる設計になっていることである。これにより、研究目的に応じて計算系列の組み替えが容易になる。

5. 代表的な利用シナリオ

以下では、JuKKR側の理論式や多重散乱の詳細には踏み込まず、AiiDA-KKRで「どう系列化され、何が保存されるか」という観点で整理する。

5.1 バルク・界面:周期系の自己無撞着計算系列

  • 入力:結晶構造(格子・原子座標)、計算条件(スピン、相対論設定、収束条件などの辞書)
  • 系列:前処理(初期化)→周期系SCF→(必要に応じて)DOS・バンド等
  • 保存:各段の入力辞書、実行コード識別子、計算機情報、収束履歴、評価量

AiiDA側では、周期系SCFの「最終状態」を次段の計算に入力として接続し、途中の試行も含めて来歴が残るため、後から「どの条件で収束したか」を追跡できる。

5.2 合金:CPAを含む系列の管理

AiiDA-KKRは、合金近似(CPA)を含む計算の自動化・保存を支援する。合金組成や乱れの設定が、入力辞書として明示的に保存されるため、組成スイープ(多点計算)を行った際の整理が容易になる。

合金系列は一般に

{組成 xi}i=1N  {計算ノード C(xi)}i=1N

という「入力集合から計算集合への写像」としてデータベース化され、組成をキーに検索・集約が可能になる。

5.3 不純物埋め込み:多数不純物の高スループット化

AiiDA-KKRが特に強みを持つ応用として、多数の不純物を同一ホストへ埋め込む計算系列が挙げられる。ホスト計算を一度収束させ、その成果物(ホスト側の情報)を再利用して多くの不純物計算へ分岐させる構造を、来歴グラフとして自然に表現できる。

  • 共有部分:ホストSCF
  • 分岐部分:不純物種・サイト・深さ・電荷状態などのパラメータ集合
  • 集約:不純物ごとの磁気モーメント、局所DOS特徴量、ドーピング傾向などの統計的整理

このような系列は、計算科学における「データベース構築」を直接的に支える。

5.4 交換相互作用などの派生量(Jij等)の抽出

AiiDA-KKRは、交換結合パラメータ(Jij)やDzyaloshinskii–Moriya相互作用(Dij)の抽出機能を掲げている。これらは、電子状態計算結果から派生的に評価される量であり、評価条件(参照状態、カットオフ、対称性設定など)が結果に影響する。AiiDAでは評価条件も入力として保存されるため、派生量の比較・再現が体系立てて行える。

5.5 STM走査・BdG不純物などの特化ワークチェーン

AiiDA-KKRのワークチェーンには、STM像(Tersoff–Hamann近似に基づく局所DOSマップ)や、超伝導ホストに対する不純物埋め込み(Yu–Shiba–Rusinov状態を扱うBdG系)を含むものがある。これらは、(i) 不純物周辺の空間分布を多点で評価する、(ii) スペクトルの特徴(共鳴、ギャップ内状態)を抽出する、といった計算系列を統合するために用意されている。

6. 導入:インストールと構成

ここでは手順の詳細ではなく、依存関係の論理構造を整理する。

6.1 依存関係

AiiDA-KKRの導入には少なくとも次が必要である。

  • aiida-core(AiiDA本体)
  • JuKKR(実計算コード群。AiiDA-KKRはこれを外部コードとして呼ぶ)
  • aiida-kkr(プラグイン本体)

AiiDAはプロファイル(DB設定を含む)を持つため、まずAiiDA自体の初期化が必要である。その上で、JuKKR実行バイナリをAiiDAに「Code」として登録し、計算機(Computer)と紐付けることで、投入が可能になる。

6.2 構成のイメージ

以下は概念例であり、環境(仮想環境、コンテナ、HPC)により調整が必要である。

  • AiiDA-KKRの導入(例)
    pip install aiida-kkr

  • AiiDAの初期設定(例)
    verdi quicksetup

  • エントリポイント認識(例)
    reentry scan -r aiida

  • 登録確認(例)
    verdi calculation plugins

AiiDA-KKRはドキュメントとして、計算機とコードの設定(Computer/Code設定)を前提としている。これは、同一のワークチェーンを別の計算機へ移植できるように、実行環境をデータベース側に抽象化して記録するためである。

7. データ共有・公開・二次利用

AiiDAの設計は、Findable, Accessible, Interoperable, Reusable(FAIR)原則と親和的である。AiiDAでは、計算系列全体をアーカイブとしてエクスポート・インポートでき、共同研究者が同一の来歴グラフを手元で再現的に参照することができる。

さらに、Materials Cloudのような基盤は、AiiDA来歴グラフを伴うデータ公開を促進する。AiiDA-KKRの論文では、多数の不純物埋め込み計算の結果をデータベース化し、物性傾向の解析へ接続する例が示されている。ここでは「計算の系列が保存されること」自体が、データの信頼性と二次利用性の基盤になる。

8. 周辺エコシステムとの連携

AiiDAはプラグイン・レジストリを持ち、多様な計算コードを同一の思想(来歴・自動化・DB)で扱うことを可能にする。AiiDAlabは、AiiDA上の計算手続きをウェブアプリとして共有する枠組みであり、共同研究や教育用途における入口として機能し得る。

また、磁性分野ではAiiDA-Spiritのように、第一原理由来のパラメータ抽出とスピンダイナミクス(LLG)を来歴で接続する試みもある。AiiDA-KKRは、KKR由来の交換相互作用やSOC起源の情報を保持しやすい側面があるため、マルチスケール連携の一要素として位置付けやすい。

9. 用語集(AiiDA/AiiDA-KKR)

  • Node(ノード):データまたはプロセス(計算実行)を表すDB上の単位である。
  • Link(リンク):ノード間の依存関係を表す有向辺である。
  • CalcJob:リモート計算機で実行される外部コード呼び出し単位である。
  • WorkChain:複数のCalcJobや下位WorkChainを組み合わせる高水準プロセスである。
  • Parser:出力ファイルから物理量やメタ情報を抽出し、AiiDAデータへ変換する部品である。
  • Code / Computer:実行バイナリと実行先計算機をAiiDA内で抽象化した登録対象である。
  • Importer(AiiDA-KKR):既存のJuKKR計算結果をAiiDA来歴へ取り込むための機構である。
  • Entry point:AiiDAがプラグイン機能を発見するための登録点である。

まとめと展望

AiiDA-KKRは、JuKKRをAiiDAの来歴グラフとデータベース管理に接続し、多段のKKR計算系列(周期系、合金、不純物、派生量評価)を再現可能な形で自動化する枠組みである。今後は、AiiDAエコシステム(公開基盤、GUI共有、他手法プラグイン)との接続が進むことで、KKR由来の高密度データを横断的に活用し、磁性・トポロジー・欠陥物性などの体系的探索へ拡張されていくと期待される。

参考文献