(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024158044
(43)【公開日】2024-11-08
(54)【発明の名称】量子化学計算プログラム、量子化学計算方法、および情報処理装置
(51)【国際特許分類】
G16C 10/00 20190101AFI20241031BHJP
【FI】
G16C10/00
【審査請求】未請求
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2023072880
(22)【出願日】2023-04-27
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002918
【氏名又は名称】弁理士法人扶桑国際特許事務所
(72)【発明者】
【氏名】大田 栄二
(57)【要約】
【課題】物質の安定構造を求めるための計算量を削減する。
【解決手段】情報処理装置10は、物質を構成する複数の原子の位置を示す位置情報2に、複数の原子の位置を初期設定し、さらに複数の原子の位置の更新を繰り返す。情報処理装置10は、複数の原子の位置が初期設定または更新されると、物質の全エネルギーを計算する。情報処理装置10は、複数の原子の位置が初期設定または更新されると、複数の原子それぞれに作用する力の大きさを計算する。情報処理装置10は、複数の原子の位置が更新されると、更新前後での物質の全エネルギーの変化の度合いを示すエネルギー変化率を計算する。そして情報処理装置10は、力の大きさについての第1の収束条件3と、エネルギー変化率についての第2の収束条件4との少なくとも一方が満たされると、複数の原子の位置を更新する処理を終了させ、終了時点での位置情報2を取得する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
物質を構成する複数の原子の位置を示す位置情報に、前記複数の原子の位置を初期設定し、さらに前記物質の状態が安定する方向への前記複数の原子の位置の更新を繰り返し、
前記複数の原子の位置が初期設定または更新されると、前記位置情報に基づいて、前記物質の全エネルギーを計算し、
前記複数の原子の位置が初期設定または更新されると、前記位置情報に基づいて、前記複数の原子それぞれに作用する力の大きさを計算し、
前記複数の原子の位置が更新されると、更新前後での前記物質の全エネルギーの変化の度合いを示すエネルギー変化率を計算し、
前記力の大きさについての第1の収束条件と、前記エネルギー変化率についての第2の収束条件との少なくとも一方が満たされたか否かを判断し、
前記第1の収束条件と前記第2の収束条件との少なくとも一方が満たされると、前記複数の原子の位置を更新する処理を終了させ、終了時点での前記位置情報を取得する、
処理をコンピュータに実行させる量子化学計算プログラム。
【請求項2】
前記第1の収束条件と前記第2の収束条件との少なくとも一方が満たされたか否かを判断する処理では、前記複数の原子すべてについて、前記力の大きさが第1の許容値以下である場合に前記第1の収束条件が満たされたと判断する、
請求項1記載の量子化学計算プログラム。
【請求項3】
前記第1の収束条件と前記第2の収束条件との少なくとも一方が満たされたか否かを判断する処理では、前記エネルギー変化率が第2の許容値以下である場合に前記第2の収束条件が満たされたと判断する、
請求項1記載の量子化学計算プログラム。
【請求項4】
前記エネルギー変化率を計算する処理では、n回目(nは自然数)の更新後の前記位置情報に基づく前記物質の第1の全エネルギーと、m回目(mはn-1以下の自然数)からn-1回目まで更新後の前記位置情報に基づく前記物質の第2の全エネルギーの代表値との差を、前記第2の全エネルギーの代表値で除算し、除算結果の絶対値を前記エネルギー変化率とする、
請求項1から3までのいずれか一項に記載の量子化学計算プログラム。
【請求項5】
物質を構成する複数の原子の位置を示す位置情報に、前記複数の原子の位置を初期設定し、さらに前記物質の状態が安定する方向への前記複数の原子の位置の更新を繰り返し、
前記複数の原子の位置が初期設定または更新されると、前記位置情報に基づいて、前記物質の全エネルギーを計算し、
前記複数の原子の位置が初期設定または更新されると、前記位置情報に基づいて、前記複数の原子それぞれに作用する力の大きさを計算し、
前記複数の原子の位置が更新されると、更新前後での前記物質の全エネルギーの変化の度合いを示すエネルギー変化率を計算し、
前記力の大きさについての第1の収束条件と、前記エネルギー変化率についての第2の収束条件との少なくとも一方が満たされたか否かを判断し、
前記第1の収束条件と前記第2の収束条件との少なくとも一方が満たされると、前記複数の原子の位置を更新する処理を終了させ、終了時点での前記位置情報を取得する、
処理をコンピュータが実行する量子化学計算方法。
【請求項6】
物質を構成する複数の原子の位置を示す位置情報に、前記複数の原子の位置を初期設定し、さらに前記物質の状態が安定する方向への前記複数の原子の位置の更新を繰り返し、前記複数の原子の位置が初期設定または更新されると、前記位置情報に基づいて、前記物質の全エネルギーを計算し、前記複数の原子の位置が初期設定または更新されると、前記位置情報に基づいて、前記複数の原子それぞれに作用する力の大きさを計算し、前記複数の原子の位置が更新されると、更新前後での前記物質の全エネルギーの変化の度合いを示すエネルギー変化率を計算し、前記力の大きさについての第1の収束条件と、前記エネルギー変化率についての第2の収束条件との少なくとも一方が満たされたか否かを判断し、前記第1の収束条件と前記第2の収束条件との少なくとも一方が満たされると、前記複数の原子の位置を更新する処理を終了させ、終了時点での前記位置情報を取得する処理部、
を有する情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、量子化学計算プログラム、量子化学計算方法、および情報処理装置に関する。
【背景技術】
【0002】
近年、材料開発の分野において、研究開発期間の短縮、低コスト化を目指すデータ駆動型研究開発の取り組みとして、マテリアルズ・インフォマティクス(以後、MIと呼ぶ)が世界的に進展している。MIには良質なマテリアルデータの蓄積が重要である。そこで、実験に加えて量子化学などのシミュレーションによる効率的なデータ蓄積が期待されている。
【0003】
量子化学の主要な計算手法の一つに密度汎関数理論(DFT:Density Functional Theory)がある。DFTでは、まず、計算対象の物質の電子密度が自己無撞着場(SCF:Self-consistent Field)法により計算される。そして、得られた電子密度に基づいて、物質の状態を示す物理量(全エネルギーなど)が算出される。
【0004】
材料開発においては、物質の性質を支配する分子の安定構造を求める構造最適化にDFTが利用される。構造最適化では、分子の立体構造を少しずつ変えながらDFTが繰り返し行われ、全エネルギーが最小となる安定構造が探査される。
【0005】
原子数をN(Nは自然数)とすると、DFTの計算量はオーダ表記でO(N3)となり、計算対象の系が大きくなると計算量が膨大となる。そのため、DFTを用いて分子の安定構造を求める場合には、できるだけ計算量を削減することが求められる。
【0006】
物質の安定構造を求める技術としては、例えば、全エネルギーの原子座標微分の計算を並列化し、分子の安定構造を高速にかつ低記憶容量で求める分子設計支援システムが提案されている。
【先行技術文献】
【特許文献】
【0007】
【発明の概要】
【発明が解決しようとする課題】
【0008】
物質の安定構造を求める構造最適化の計算では、計算の収束条件が満たされるまでに時間がかかる場合がある。例えば、構造最適化では、空間または座標系に配置された一つ以上の原子において、すべての原子のForce(ひずみ)が収束するまで、原子配置の修正とその原子配置におけるDFTによる全エネルギーの計算とが繰り返し実行される。このような構造最適化の計算過程では、全エネルギーが微小変動へ遷移する場合がある。全エネルギーが微小変動に遷移すると、一部の原子についてForceが収束しづらくなる。その結果、DFT計算の繰り返し回数が増加し、計算時間が長期化する。
【0009】
1つの側面では、本件は、物質の安定構造を求めるための計算量を削減することを目的とする。
【課題を解決するための手段】
【0010】
1つの案では、以下の処理をコンピュータに実行させる量子化学計算プログラムが提供される。
コンピュータは、物質を構成する複数の原子の位置を示す位置情報に、複数の原子の位置を初期設定し、さらに物質の状態が安定する方向への複数の原子の位置の更新を繰り返す。コンピュータは、複数の原子の位置が初期設定または更新されると、位置情報に基づいて、物質の全エネルギーを計算する。コンピュータは、複数の原子の位置が初期設定または更新されると、位置情報に基づいて、複数の原子それぞれに作用する力の大きさを計算する。コンピュータは、複数の原子の位置が更新されると、更新前後での物質の全エネルギーの変化の度合いを示すエネルギー変化率を計算する。コンピュータは、力の大きさについての第1の収束条件と、エネルギー変化率についての第2の収束条件との少なくとも一方が満たされたか否かを判断する。そしてコンピュータは、第1の収束条件と第2の収束条件との少なくとも一方が満たされると、複数の原子の位置を更新する処理を終了させ、終了時点での位置情報を取得する。
【発明の効果】
【0011】
1態様によれば、物質の安定構造を求めるための計算量を削減する。
【図面の簡単な説明】
【0012】
【
図1】第1の実施の形態に係る量子化学計算方法の一例を示す図である。
【
図3】制御ノードのハードウェアの一例を示す図である。
【
図4】計算ノードのハードウェア構成の一例を示す図である。
【
図5】原子のエネルギーの大きさとForceの収束のし易さの関係を示す図である。
【
図6】Forceの収束条件を満たすまでのDFTの繰り返し回数の一例を示す図である。
【
図7】2つの収束条件の論理和による構造最適化の収束判定の一例を示す図である。
【
図8】2つの収束条件を満たすまでのDFTの繰り返し回数の一例を示す図である。
【
図9】計算システムで実現する機能の一例を示すブロック図である。
【
図10】構造最適化処理の手順の一例を示すフローチャートである。
【
図11】構造最適化処理の手順の一例を示すフローチャートである。
【
図12】エネルギー変化率に関する収束条件を併用することによる構造最適化計算の高速化の一例を示す図である。
【
図13】広域探索技術サービスの一例を示す図である。
【発明を実施するための形態】
【0013】
以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
〔第1の実施の形態〕
第1の実施の形態は、物質の安定構造(基底状態)を求めるための計算量を削減した量子化学計算方法である。
【0014】
図1は、第1の実施の形態に係る量子化学計算方法の一例を示す図である。
図1には、第1の実施の形態に係る量子化学計算方法を実施するための情報処理装置10が示されている。情報処理装置10は、例えば量子化学計算プログラムを実行することにより、第1の実施の形態に係る量子化学計算方法を実施することができる。
【0015】
情報処理装置10は、記憶部11と処理部12とを有する。記憶部11は、例えば情報処理装置10が有するメモリまたはストレージ装置である。処理部12は、例えば情報処理装置10が有するプロセッサまたは演算回路である。
【0016】
記憶部11は、例えば安定構造を求める対象の物質を示す物質情報1を記憶する。物質情報1には、例えば物質の分子構造が示されている。
処理部12は、物質情報1で示される物質が安定構造となるときの原子の配置を算出する。物質が安定構造となるのは、例えば物質のエネルギーが最小となるときである。このような物質の安定構造を求める処理は、構造最適化とも呼ばれる。例えば処理部12は、以下の処理を行う。
【0017】
処理部12は、物質情報1に示される物質を構成する複数の原子の位置を示す位置情報2に、複数の原子の位置を初期設定する。さらに処理部12は、物質の状態が安定する方向への複数の原子の位置の更新を繰り返す。
【0018】
処理部12は、複数の原子の位置が初期設定または更新されると、位置情報2に基づいて物質の全エネルギーを計算する。例えば処理部12は、DFTにより物質が存在する空間内の電子密度を計算し、電子密度に基づいて全エネルギーを計算する。
【0019】
処理部12は、複数の原子の位置が初期設定または更新されると、位置情報2に基づいて、複数の原子それぞれに作用する力の大きさを計算する。例えば処理部12は、複数の原子それぞれについて、他の原子との距離に基づいて、他の原子との間のクーロン力のポテンシャルの和を計算する。処理部12は、複数の原子それぞれについてのポテンシャルの和に基づいて、各原子に作用する力の大きさを計算する。
【0020】
処理部12は、複数の原子の位置が更新されると、更新前後での物質の全エネルギーの変化の度合いを示すエネルギー変化率を計算する。例えば処理部12は、n回目(nは自然数)の更新後の位置情報に基づく物質の第1の全エネルギーと、m回目(mはn-1以下の自然数)からn-1回目まで更新後の位置情報に基づく物質の第2の全エネルギーの代表値との差を計算する。そして処理部12は、計算した差を、第2の全エネルギーの代表値で除算し、除算結果の絶対値をエネルギー変化率とする。
【0021】
複数の原子それぞれに作用する力の大きさと、物質のエネルギー変化率とが求まると、処理部12は、力の大きさについての第1の収束条件3と、エネルギー変化率についての第2の収束条件4との少なくとも一方が満たされたか否かを判断する。これは、繰り返し処理の収束条件が、第1の収束条件3と第2の収束条件4との論理和であることを意味する。
【0022】
例えば処理部12は、複数の原子すべてについて、力の大きさが第1の許容値以下である場合に第1の収束条件3が満たされたと判断する。また処理部12は、エネルギー変化率が第2の許容値以下である場合に第2の収束条件4が満たされたと判断する。
【0023】
そして処理部12は、第1の収束条件3と第2の収束条件4との少なくとも一方が満たされると、複数の原子の位置を更新する処理を終了させ、終了時点での位置情報2を取得する。このとき取得した位置情報2に設定されている複数の原子の位置は、物質の安定構造を示している。
【0024】
このように、第1の収束条件3と第2の収束条件4との少なくとも一方が満たされれば、原子の位置の更新を終了させ、そのときの位置情報2を取得することで、物質の安定構造を求めるための計算量が削減される。すなわち、一部の原子に作用する力の大きさが第1の許容値を超えていたとしても、エネルギー変化率が第2の許容値以下であれば、原子の位置の更新、全エネルギーの計算、力の大きさの計算、およびエネルギー変化率の計算の繰り返し処理が終了する。そのため、例えば原子に作用する力の大きさについての第1の収束条件3だけで収束判定をする場合より、早期に収束を判定することができ、計算量が削減される。
【0025】
例えば
図1の例では、第1の許容値「|F|」が「1.00」であり、第2の許容値「RCE_TH」が「1.0×10
-5」である。このとき、物質の2つ目の原子は、その原子に作用する力の大きさ|F
2|が、繰返し回数4回目で第1の許容値以下となっている。他方、物質の1つ目の原子は、その原子に作用する力の大きさ|F
1|が、繰返し回数5回目になっても第1の許容値を超えている。そのため、第1の収束条件3のみの場合、繰返し回数が5回に達しても、繰り返し処理は終了しない。
【0026】
エネルギー変化率は、繰り返し回数5回目において、第2の許容値以下となっている。そのため、第2の収束条件4での収束判定も行うことで、繰返し回数5回目において、繰り返し処理が終了する。その結果、物質の安定構造を特定するまでの計算量が削減される。
【0027】
なお、いずれかの原子に作用する力が第1の収束条件3を満足するまでに時間がかかる場合としては、例えば一部の原子のエネルギーが小さい場合が考えられる。原子のエネルギーが小さい場合、原子の位置を更新するごとに、その原子に作用する力の大きさが増減を繰り返し、第1の収束条件3を満たすまでに時間を要する可能性がある。
【0028】
原子に作用する力の大きさが増減を繰り返すと、力の大きさが増加したときに、その原子の位置を更新するときの移動量も大きくなる。しかし、エネルギーが相対的に小さい原子の移動量がやや大きくても、全エネルギーに対する影響は少ない。すなわち、エネルギーが相対的に小さい原子に作用する力の大きさが第1の許容値を超えている状況であっても、エネルギー変化率が第2の許容値以下となるほど小さいのであれば、その原子に作用する力の大きさの増減が全エネルギーに与える影響は微小である。このような場合、全エネルギーがほぼ最小値になっていると判断することができる。
【0029】
全エネルギーが最小値となる原子の位置は、物質の安定構造を示す。すなわち処理部12は、第1の収束条件3と第2の収束条件4との論理和によって繰り返し処理の収束判定をすることで、最終的に求まる物質の安定構造の精度を低下させずに計算量を削減することができる。
【0030】
また、第2の収束条件4に用いたエネルギー変化率が第2の許容値以下である場合には、全エネルギーの値についても十分に低下していることが担保される。そのためエネルギー変化率についての第2の収束条件4を用いたことで、構造最適化によって得られた構造の物質について、ユーザがその物質の全エネルギーによって有用性を判断する場合において、ユーザはその判断を適切に行うことができる。
【0031】
〔第2の実施の形態〕
第2の実施の形態は、DFTによる物質の分子構造の計算をHPC(High-performance Computing)で実行する場合におけるDFTの繰り返し回数を削減させた計算システムである。
【0032】
図2は、システム構成の一例を示す図である。HPCを実現する計算システム30は、制御ノード100と複数の計算ノード200a,200b,・・・とを有する。複数の計算ノード200a,200b,・・・は、互いに高速な通信が可能なインターコネクト32で接続されている。インターコネクト32は、例えばプロセッサ間を6次元メッシュ/トーラスによって相互に接続したネットワークである。
【0033】
計算ノード200a,200b,・・・それぞれは、制御ネットワーク31にも接続されている。制御ネットワーク31には、さらに制御ノード100が接続されている。制御ノード100は、計算ノード200a,200b,・・・に対するジョブの実行指示を行うコンピュータである。
【0034】
制御ノード100は、ネットワーク20を介して端末40に接続されている。端末40は、ユーザの操作に基づいて、計算ノード200a,200b,・・・に実行させるジョブの情報を制御ノード100に登録するコンピュータである。制御ノード100は、端末40からの指示に従ってDFTによる計算を、複数の計算ノード200a,200b,・・・に指示する。
【0035】
例えばユーザは、DFTによる物質の状態の計算を計算ノード200a,200b,・・・に実行させることで、DFTで定義される電子系の全エネルギーなどの物理量を得ることができる。
【0036】
図3は、制御ノードのハードウェアの一例を示す図である。制御ノード100は、プロセッサ101によって装置全体が制御されている。プロセッサ101には、バス109を介してメモリ102と複数の周辺機器が接続されている。プロセッサ101は、マルチプロセッサであってもよい。プロセッサ101は、例えばCPU(Central Processing Unit)、MPU(Micro Processing Unit)、またはDSP(Digital Signal Processor)である。プロセッサ101がプログラムを実行することで実現する機能の少なくとも一部を、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)などの電子回路で実現してもよい。
【0037】
メモリ102は、制御ノード100の主記憶装置として使用される。メモリ102には、プロセッサ101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ102には、プロセッサ101による処理に利用する各種データが格納される。メモリ102としては、例えばRAM(Random Access Memory)などの揮発性の半導体記憶装置が使用される。
【0038】
バス109に接続されている周辺機器としては、ストレージ装置103、GPU(Graphics Processing Unit)104、入力インタフェース105、光学ドライブ装置106、機器接続インタフェース107およびネットワークインタフェース108a,108bがある。
【0039】
ストレージ装置103は、内蔵した記録媒体に対して、電気的または磁気的にデータの書き込みおよび読み出しを行う。ストレージ装置103は、制御ノード100の補助記憶装置として使用される。ストレージ装置103には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、ストレージ装置103としては、例えばHDD(Hard Disk Drive)やSSD(Solid State Drive)を使用することができる。
【0040】
GPU104は画像処理を行う演算装置であり、グラフィックコントローラとも呼ばれる。GPU104には、モニタ21が接続されている。GPU104は、プロセッサ101からの命令に従って、画像をモニタ21の画面に表示させる。モニタ21としては、有機EL(Electro Luminescence)を用いた表示装置や液晶表示装置などがある。
【0041】
入力インタフェース105には、キーボード22とマウス23とが接続されている。入力インタフェース105は、キーボード22やマウス23から送られてくる信号をプロセッサ101に送信する。なお、マウス23は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【0042】
光学ドライブ装置106は、レーザ光などを利用して、光ディスク24に記録されたデータの読み取り、または光ディスク24へのデータの書き込みを行う。光ディスク24は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク24には、DVD(Digital Versatile Disc)、DVD-RAM、CD-ROM(Compact Disc Read Only Memory)、CD-R(Recordable)/RW(ReWritable)などがある。
【0043】
機器接続インタフェース107は、制御ノード100に周辺機器を接続するための通信インタフェースである。例えば機器接続インタフェース107には、メモリ装置25やメモリリーダライタ26を接続することができる。メモリ装置25は、機器接続インタフェース107との通信機能を搭載した記録媒体である。メモリリーダライタ26は、メモリカード27へのデータの書き込み、またはメモリカード27からのデータの読み出しを行う装置である。メモリカード27は、カード型の記録媒体である。
【0044】
ネットワークインタフェース108aは、ネットワーク20に接続されている。ネットワークインタフェース108aは、ネットワーク20を介して、端末40などの他のコンピュータまたは通信機器との間でデータの送受信を行う。ネットワークインタフェース108bは、制御ネットワーク31に接続されている。ネットワークインタフェース108bは、制御ネットワーク31を介して、計算ノード200a,200b,・・・との間でデータの送受信を行う。
【0045】
ネットワークインタフェース108a,108bは、例えばスイッチやルータなどの有線通信装置にケーブルで接続される有線通信インタフェースである。またネットワークインタフェース108a,108bは、基地局やアクセスポイントなどの無線通信装置に電波によって通信接続される無線通信インタフェースであってもよい。
【0046】
制御ノード100は、例えばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第2の実施の形態の処理機能を実現する。制御ノード100に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、制御ノード100に実行させるプログラムをストレージ装置103に格納しておくことができる。プロセッサ101は、ストレージ装置103内のプログラムの少なくとも一部をメモリ102にロードし、プログラムを実行する。また制御ノード100に実行させるプログラムを、光ディスク24、メモリ装置25、メモリカード27などの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサ101からの制御により、ストレージ装置103にインストールされた後、実行可能となる。またプロセッサ101が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
【0047】
図4は、計算ノードのハードウェア構成の一例を示す図である。計算ノード200aは、CPU/メモリ部201とルータ202とを有している。CPU/メモリ部201とルータ202とは、複数の通信インタフェース(NIC)203で接続されている。またCPU/メモリ部201には、制御ネットワーク31に接続するためのNIC204も接続されている。
【0048】
CPU/メモリ部201には複数のコアを有するCPU201aとメモリ201bとが含まれる。CPU/メモリ部201は、コアごとにプロセス(処理の実行単位)が生成される。CPU/メモリ部201のコアごとのプロセスが、他の計算ノード内のプロセスと同期処理を行う場合、ルータ202を介して他の計算ノード200b,・・・と通信する。
【0049】
ルータ202は、例えば3次元方向のそれぞれに隣接する計算ノードと通信を行う。ルータ202は、CPU/メモリ部201から他の計算ノードに送信するデータを、その計算ノードのインターコネクト32内での位置に応じた方向に隣接する計算ノードへ送信する。またルータ202は、隣接する計算ノードからCPU/メモリ部201内のプロセスへのデータを受信すると、そのデータをCPU/メモリ部201に送信する。さらにルータ202は、隣接する計算ノードから受信したデータが他の計算ノード宛てのデータの場合、送信先の計算ノードのインターコネクト32内での位置に応じた方向に隣接する計算ノードへデータを送信する。
【0050】
他の計算ノード200b,・・・も、計算ノード200aと同様のハードウェア構成である。
図4に示すようなハードウェアの計算ノード200a,200b,・・・が3次元方向にメッシュ/トーラス接続されることで、3次元のメッシュ/トーラスのインターコネクト32となる。
【0051】
以上のようなハードウェアの制御ノード100と計算ノード200a,200b,・・・によって、第2の実施の形態の処理機能を実現することができる。なお、第1の実施の形態に示した情報処理装置10も、制御ノード100または計算ノード200aと同様のハードウェアにより実現することができる。
【0052】
計算システム30では、DFTを利用した構造最適化により、物質を構成する分子の安定構造を計算する。ここで、DFTを利用した構造最適化において、計算量が増大する原因について説明する。
【0053】
構造最適化では、空間または座標系に配置されたすべての原子のForceが収束するまで、原子位置の更新と更新された原子配置でのDFTの計算とを繰り返し実行する。Forceは、各原子に作用する力(例えばクーロン力)の大きさである。すべての原子について、Forceが十分に小さければ、そのときの分子は構造が安定している。このような収束判定基準を式で表すと以下のようになる。
【0054】
収束判定基準:|Fi|≦|F| (1)
iは、分子に含まれる原子の識別番号である。|Fi|は、i番目の原子のForceの大きさである。|F|は、Forceの許容値である。すべての原子が収束判定基準を満たしたときの分子の全エネルギーが、安定構造における全エネルギーとなる。
【0055】
このとき、以下のいずれかの条件を満たす場合、全エネルギーは微小変動へ遷移する。
1つ目の条件は、全エネルギーへの影響が小さい原子(エネルギーが小さい原子)が存在し、その原子が未収束となっていることである。エネルギーが小さい原子は、例えば原子核に近い方の軌道(電子殻)の電子しか有していない原子である。また外側の電子殻の電子を有する原子であっても、その電子を共有するような対となる他の原子が存在するときは、安定構造となり、エネルギーが小さい原子となる。
【0056】
2つ目の条件は、エネルギーが小さい原子の振動(原子のForceによる周期的な原子の変位)が発生していることである。
これらのいずれかの条件が満たされる原子については、全エネルギーが微小振動に遷移する可能性がある。全エネルギーが微小変動に遷移すると、Forceが上記の収束判定基準を満たさない原子がいつまでも残存する。その結果、構造最適化におけるDFTの繰り返し計算回数が増加すると共に、計算時間が長期化する。
【0057】
図5は、原子のエネルギーの大きさとForceの収束のし易さの関係を示す図である。
図5に示すグラフ50は、横軸がDFTの繰り返し回数であり、縦軸が原子のForce|F
i|である。グラフ50における実線の曲線は、エネルギーが小さい原子(例えばエネルギーが最小の原子)のDFTの繰り返し回数の増加に伴う、Forceの変化を表している。グラフ50における破線の曲線は、エネルギーが大きい原子(例えばエネルギーが最大の原子)のDFTの繰り返し回数の増加に伴う、Forceの変化を表している。
【0058】
グラフ50は、収束条件としてForceに関する収束条件のみを用いた場合の例である。エネルギーが大きい原子は、DFTを繰り返すと、早い段階でForceが許容値以下となっている。それに対して、エネルギーが小さい原子は、DFTの繰返し回数の増加に伴いForceがある程度までは順調に低下するが、それ以降は、DFTの繰返し回数が増加しても、Forceは増減を繰り返しながらゆっくり低下する。そのため、エネルギーが小さい原子では、Forceが収束判定基準を満たすまでのDFTの繰り返し回数が、エネルギーが大きい原子よりも多くなる。
【0059】
図6は、Forceの収束条件を満たすまでのDFTの繰り返し回数の一例を示す図である。Force計算結果表51には、エネルギーが小さい原子と大きい原子とについて、DFTの繰り返し回数ごとの、その回のDFTで得られた原子のForceの計算結果が示されている。Forceの許容値は「1.00」である。
【0060】
Force計算結果表51では、エネルギーが大きい原子は4回目のDFT計算により、Forceが許容値以下の「1.00」となっている。他方、エネルギーが小さい原子は7回目のDFT計算により、Forceが許容値以下の「1.00」となっている。
【0061】
構造最適化の収束条件は、すべての原子について、Forceが収束判定基準を満たすことである。Force計算結果表51に示すようなForceの計算結果となった場合、構造最適化の処理が収束するまでにDFT計算を7回繰り返すこととなる。
【0062】
このように、Forceの収束のし易さが原子ごとに大きく異なるため、すべての原子について収束が完了するまでのDFT繰返し回数が多くなっている。
そこで、第2の実施の形態に係る計算システム30は、Forceに関する収束条件(第1の収束条件)と、全エネルギーの変化の度合い(エネルギー変化率(RCE))に関する収束条件(第2の収束条件)との論理和により、構造最適化の収束の有無を判定する。
【0063】
第1の収束条件は、すべての原子についてのForceが収束判定基準を満たす(Forceの許容値「|F|」以下となる)ことである。
第2の収束条件は、エネルギー変化率が収束判定基準を満たす(エネルギー変化率の許容値「RCE_TH」以下となる)ことである。
【0064】
エネルギー変化率は、前回の全エネルギーと今回の全エネルギーの変化の度合いを表す値である。エネルギー変化率は、例えば以下の式により与えられる。
エネルギー変化率(RCE)=|(今回の値-前回の値)÷前回の値| (2)
今回の値は、直近のDFTの結果から得られた全エネルギーの値である。前回の値は、直近のDFTの1回前のDFTの結果から得られた全エネルギーの値である。なお、前回の値に代えて、過去数回分のDFTの結果から得られた全エネルギーの代表値(例えば平均値)を用いることもできる。過去数回分のDFTとは、例えば直近のDFTがn回目のとき、m(m≦n)回目からn-1回目までの各DFTである。
【0065】
計算システム30は、このような2つの収束条件のいずれか一方が満たされれば、構造最適化の計算結果が収束したものと判定する。
図7は、2つの収束条件の論理和による構造最適化の収束判定の一例を示す図である。グラフ52は、第1の収束条件の判定結果を示している。グラフ52の横軸がDFTの繰り返し回数であり、縦軸が原子のForce「|F
i|」である。グラフ52には、エネルギーが小さい原子についての、DFTの繰り返し回数の増加に伴うForceの変化が曲線で示されている。グラフ52内の横線は、Forceの許容値「|F|」を示している。
【0066】
グラフ53は、第2の収束条件の判定結果を示している。グラフ53の横軸がDFTの繰り返し回数であり、縦軸がエネルギー変化率「RCE」である。グラフ53には、DFTの繰り返し回数の増加に伴う分子の全エネルギーの変化が曲線で示されている。グラフ53内の横線は、エネルギー変化率の許容値「RCE_TH」を示している。
【0067】
グラフ52とグラフ53とを比較すると分かるように、原子のForceが収束判定基準を満たすよりも、エネルギー変化率が収束判定基準を満たす方が早い。すなわち第1の収束条件だけではなく第2の収束条件も用いて構造最適化の収束判定を行うことで、収束するまでのDFTの繰り返し回数が削減される。その結果、構造最適化の計算時間も短縮される。
【0068】
図7に示した場合において第1の収束条件が満たされるまで、原子の位置の更新とDFT計算とを繰り返したとしても、第2の収束条件が満たされた時点と、物質の構造(原子の配置)はあまり変わらない。
【0069】
なお、構造最適化によって得られた原子の配置は、局所最適解となっている可能性がある。局所最適解は、局所的な空間内で全エネルギーが最小となっている解であり、探索空間全体における全エネルギーが最小となる解(大局最適解)ではない。
【0070】
実際の構造最適化では、収束条件を満たしたときの原子の配置が局所最適解になってるか否かをユーザが確認する。例えば過去に行った同様の構造最適化よりも全エネルギーが高い場合、局所最適解となっているものと考えられる。局所最適解となっている場合には、ユーザは、例えば原子の初期状態の位置を変更して、計算システム30に、構造最適化を再度実行させることとなる。
【0071】
このように局所最適解となる場合があるため、仮に第2の収束条件が満たされた場合において、それ以降、第1の収束条件が満たされるまで構造最適化を継続したとしても、局所最適解となる原子の位置の精度を向上させるに過ぎない可能性がある。第2の収束条件が満たされた場合には構造最適化の処理を終了して、局所最適解となっているか否かの確認処理を進めれば、局所最適解となっていたときにおける構造最適化の再計算を早期に実施することができ、物質の安定構造を探索する作業が効率的となる。
【0072】
図8は、2つの収束条件を満たすまでのDFTの繰り返し回数の一例を示す図である。Force計算結果表54には、エネルギーが小さい原子と大きい原子とについて、DFTの繰り返し回数ごとの、その回のDFTで得られた原子のForceの計算結果が示されている。ここで、Forceの許容値は「1.00」であるものとする。
【0073】
Force計算結果表54では、エネルギーが大きい原子は4回目のDFT計算により、Forceが許容値以下の「1.00」となっている。他方、エネルギーが小さい原子は7回目のDFT計算により、Forceが許容値以下の「1.00」となっている。
【0074】
RCE計算結果表55には、DFTの繰り返し回数ごとの、その回のDFTで得られたエネルギー変化率「RCE」の計算結果が示されている。ここで、全エネルギーの許容値「RCE_TH」は、1.0×10-5であるものとする。
【0075】
RCE計算結果表55では、繰返し回数が増加するごとに、DFTで得られるエネルギー変化率が小さくなり、5回目のDFT計算により、エネルギー変化率が許容値以下となっている。
【0076】
図8の例では、Forceに関する第1の収束条件が満たされるのは7回目のDFT計算であるが、エネルギー変化率に関する第2の収束条件が満たされるのは5回目のDFT計算である。第1の収束条件と第2の収束条件との論理和を採ることで、5回目のDFT計算により、構造最適化の計算が収束したと判定される。すなわち、分子の安定構造を求めるための計算量が削減される。
【0077】
なおForceが許容値を超える原子が残存していても、エネルギー変化率が許容値以下となっていれば、DFTの計算をそれ以上繰り返しても、全エネルギーは大きくは低下しないものと考えられる。そのため構造最適化の収束条件として第2の収束条件を追加しても、最終的に得られる全エネルギーは最小値に近い値となる。すなわち、分子の安定構造を十分に高精度に特定することが可能である。
【0078】
図9は、計算システムで実現する機能の一例を示すブロック図である。計算システム30は、記憶部110、計算指示部120、および構造最適化部210を有する。記憶部110と計算指示部120は、例えば制御ノード100が有する機能である。構造最適化部210は、例えば計算ノード200a,200b,・・・が有する機能である。
【0079】
記憶部110は、計算対象の物質に関する情報(含まれる原子など)を記憶する。
計算指示部120は、端末40から所定の物質の安定構造の解析指示を受け付けると、構造最適化部210に、その物質の構造最適化処理の実行を指示する。
【0080】
構造最適化部210は、DFTを用いて、分子が安定構造となる原子の位置を計算する。例えば構造最適化部210は、分子に含まれる原子を解析対象の空間に配置する。構造最適化部210は、配置された位置に原子があるときの、空間内の電子密度をDFTによって計算する。構造最適化部210は、電子密度の計算では、現在の原子配置での全エネルギーが最小となるまで、SCF計算を繰り返す。構造最適化部210は、現在の原子の配置における全エネルギーの最小値が得られると、エネルギーが低下するように原子の位置を移動させる。構造最適化部210は、このようなDFT計算と原子の位置の更新とを繰り返す。これにより、全エネルギーが最小となる原子の配置が求められる。全エネルギーが最小となる原子の配置は、分子の安定構造である。
【0081】
なお、
図9に示した各要素の機能は、例えば、その要素に対応するプログラムモジュールをコンピュータに実行させることで実現することができる。例えば計算指示部120に対応するプログラムを制御ノード100が実行し、計算指示部120を実現する。制御ノード100で実現された計算指示部120が、複数の計算ノード200a,200b・・・のうちの1台または複数台に対して構造最適化部210に対応するジョブの実行を指示する。指示された計算ノードは、指定されたジョブに対応するプログラムを実行することで構造最適化部210を実現する。
【0082】
次に構造最適化処理の手順について説明する。
図10は、構造最適化処理の手順の一例を示すフローチャートである。以下、
図10に示す処理をステップ番号に沿って説明する。
【0083】
[ステップS101]計算指示部120は、構造最適化に適用する収束判定基準を設定する。例えばユーザは、端末40に、Forceの許容値「|F|」とエネルギー変化率の許容値「RCE_TH」とを入力する。端末40は、入力されたForceの許容値「|F|」とエネルギー変化率の許容値「RCE_TH」とを、制御ノード100に送信する。計算指示部120は、送られたForceの許容値「|F|」とエネルギー変化率の許容値「RCE_TH」とを、収束判定基準を示すパラメータとして、構造最適化処理のジョブに設定する。
【0084】
[ステップS102]計算指示部120は、構造最適化部210に構造最適化のジョブの実行を指示する。すると構造最適化部210が構造最適化処理を実行する。
[ステップS103]計算指示部120は、構造最適化の計算結果を出力する。例えば計算指示部120は、安定構造における原子の配置を示す座標、安定構造における全エネルギーなどを含む解析結果を、端末40に送信する。端末40は、解析結果を、例えばモニタに表示する。
【0085】
次に、構造最適化処理の手順について詳細に説明する。
図11は、構造最適化処理の手順の一例を示すフローチャートである。以下、
図11に示す処理をステップ番号に沿って説明する。
【0086】
[ステップS111]構造最適化部210は、原子位置を初期化する。例えば構造最適化部210は、分子に含まれる原子それぞれの位置を示す座標に、予め指定されている初期値を設定する。
【0087】
[ステップS112]構造最適化部210は、DFTにより、現在の原子配置における、解析対象の空間内の電子密度を計算する。電子密度の計算には、例えばSCF法が用いられる。
【0088】
[ステップS113]構造最適化部210は、空間の座標ごとの電子密度に基づいて、分子の全エネルギーを計算する。
[ステップS114]構造最適化部210は、2回目以降のDFT計算において、エネルギー変化率「RCE」を計算する。
【0089】
[ステップS115]構造最適化部210は、各原子のForce「|Fi|」を計算する。各原子のForce「|Fi|」は、他のすべての原子との相互作用のポテンシャルの合計に基づいて計算することができる。例えば構造最適化部210は、各原子の位置におけるポテンシャルの勾配を計算する。計算された勾配が、原子に働く力の方向と強さを表す。
【0090】
[ステップS116]構造最適化部210は、すべての原子について、原子のForce「|Fi|」が許容値「|F|」以下となっているか否かを判断する(|Fi|≦|F|)。構造最適化部210は、すべての原子について「|Fi|≦|F|」が満たされる場合、構造最適化処理を終了する。また構造最適化部210は、少なくとも1つの原子について「|Fi|≦|F|」が満たされない場合、処理をステップS117に進める。
【0091】
[ステップS117]構造最適化部210は、エネルギー変化率「RCE」が、エネルギー変化率の許容値「RCE_TH」以下か否かを判断する(RCE≦RCE_TH)。構造最適化部210は、「RCE≦RCE_TH」が満たされている場合、構造最適化処理を終了する。また構造最適化部210は、「RCE≦RCE_TH」が満たされない場合、処理をステップS118に進める。なお、構造最適化部210は、ステップS116とステップS117の処理を、逆の順番で実行してもよい。
【0092】
[ステップS118]構造最適化部210は、全エネルギーが減少するように原子の位置を更新する。例えば構造最適化部210は、各原子に働く力の逆方向に、その力の大きさに応じた量だけ原子を移動させる。構造最適化部210は、準ニュートン法または共役勾配法を用いて、原子の移動方向と移動量とを決定することもできる。その後、構造最適化部210は、処理をステップS112に進める。
【0093】
このようにして、Forceに関する第1の収束条件とエネルギー変化率に関する第2の収束条件とのいずれか一方が満たされると、構造最適化が収束したものとして、構造最適化処理が終了する。
【0094】
図12は、エネルギー変化率に関する収束条件を併用することによる構造最適化計算の高速化の一例を示す図である。
図12は、CP2Kプログラムを用いて、アンモニア触媒の安定構造をDFTによって計算したときの計算結果61を示している。構造最適化の収束条件としては、Forceに関する第1の収束条件のみを適用した場合と、Forceに関する第1の収束条件とエネルギー変化率に関する第2の収束条件との論理和を適用した場合との2パターンで行われている。エネルギー変化率の許容値は「1.0×10
-5」である。
【0095】
収束判定条件に第1の収束条件のみを適用した場合、全エネルギーは「-372.06966350」(eV)、DFT繰り返し回数は「55」、収束までの経過時間は「633.807」(s)である。収束判定条件に第1の収束条件と第2の収束条件とを適用した場合、全エネルギーは「-372.04732301」(eV)、DFT繰り返し回数は「36」、収束までの経過時間は「470.829」(s)、高速化率は「1.35」である。
【0096】
グラフ62には、Forceに関する第1の収束条件のみを適用した場合の高速化倍率「1」と、Forceに関する第1の収束条件とエネルギー変化率に関する第2の収束条件との論理和を適用した場合の高速化倍率「1.35」とが示されている。
【0097】
このように、構造最適化の収束条件として、Forceに関する第1の収束条件とエネルギー変化率に関する第2の収束条件との論理和を用いることで、計算速度が高速化される。しかも計算結果61に示すように、得られる全エネルギーに大きな差はない。すなわち、計算精度を落とさずに計算時間が短縮されている。
【0098】
なお、第1の収束条件と第2の収束条件との論理和を適用した場合、構造最適化が収束した時点での全エネルギーが、第1の収束条件のみを適用した場合よりも「0.2」(eV)程度高くなっている。物質のアンモニア触媒としての適性は吸着エネルギーで判断されるが、吸着エネルギーの善し悪しは、「0.5」(eV)単位で比較されるのが一般的である。そのため、構造最適化で得られた構造の全エネルギーの「0.2」(eV)程度の誤差は、アンモニア触媒の探索において許容できる誤差である。
【0099】
第2の実施の形態に示した技術を用いることで、例えばHPCとAI(Artificial Intelligence)を融合させた新素材の広域探索技術サービスを効率的に実施することができる。
【0100】
図13は、広域探索技術サービスの一例を示す図である。例えば計算システム30は、ユーザから、探索対象の材料などの物質に関する初期条件を示す入力データ91を取得する。計算システム30は、入力データ91に基づいて、量子化学シミュレーションを高速に実行する。その結果、物質の構造に関する高品質のデータ92,94を容易に生成できる。
【0101】
計算システム30で生成したデータ92は、例えばGNN(Graph Neural Network)などの技術を用いたAIシミュレーションにより、特性などの解析が可能である。AIシミュレーションによって生成したデータ93と計算システム30で生成したデータ94を用いれば、例えば因果発見AIを用いて、人間では分析しきれない大量の材料候補とその材料の物性との組合せから、因果関係を分析することができる。その結果、新たな発見・気づきを得ることが可能となる。
【0102】
因果関係の分析結果は、例えば量子化学シミュレーションの探索条件に反映させることで、探索範囲の絞り込みに利用することができる。探索範囲の絞り込みが適切に行われることにより、例えばユーザが希望する特性の物質を早期に見つけ出すことができる。
【0103】
〔その他の実施の形態〕
第2の実施の形態では、開示した技術を、AIを利用した新材料の広域探索サービスに適用する例を示したが、他の情報処理サービスに適用することもできる。
【0104】
また第2の実施の形態では、HPCによりDFTの計算を行っているが、解析対象の物質の原子数が少なければ、HPC以外のコンピュータによって、第2の実施の形態に示した構造最適化を行うこともできる。
【0105】
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。
【符号の説明】
【0106】
1 物質情報
2 位置情報
3 第1の収束条件
4 第2の収束条件
10 情報処理装置
11 記憶部
12 処理部