(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024054603
(43)【公開日】2024-04-17
(54)【発明の名称】カットオフエネルギー決定プログラム、カットオフエネルギー決定方法、および情報処理装置
(51)【国際特許分類】
G16C 60/00 20190101AFI20240410BHJP
G16C 10/00 20190101ALI20240410BHJP
【FI】
G16C60/00
G16C10/00
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2022160925
(22)【出願日】2022-10-05
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002918
【氏名又は名称】弁理士法人扶桑国際特許事務所
(72)【発明者】
【氏名】大田 栄二
(57)【要約】
【課題】DFT計算に適したカットオフエネルギーの決定に要する計算時間を短縮する。
【解決手段】情報処理装置10は、カットオフエネルギーに応じた数の波動関数を用いた自己無撞着場法による物質の電子密度を繰り返し計算する。その際、情報処理装置10は、N回目(Nは1以上の整数)の第1の電子密度計算に適用した第1のカットオフエネルギーより小さい値の第2のカットオフエネルギーを適用してN+1回目の第2の電子密度計算を実行する。さらに情報処理装置10は、N+1回目の第2の電子密度計算で得られた電子密度が所定の条件を満たすか否かを判定する。そして情報処理装置10は、条件が満たされない場合、第2のカットオフエネルギーの値を出力する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
カットオフエネルギーに応じた数の波動関数を用いた自己無撞着場法による物質の電子密度の繰り返し計算において、N回目(Nは1以上の整数)の第1の電子密度計算に適用した第1のカットオフエネルギーより小さい値の第2のカットオフエネルギーを適用してN+1回目の第2の電子密度計算を実行し、
前記N+1回目の前記第2の電子密度計算で得られた電子密度が所定の条件を満たすか否かを判定し、
前記条件が満たされない場合、前記第2のカットオフエネルギーの値を出力する、
処理をコンピュータに実行させるカットオフエネルギー決定プログラム。
【請求項2】
前記条件が満たされない場合、前記第2のカットオフエネルギーを適用してN+2回目の以降の電子密度計算を実行する、
処理をコンピュータにさらに実行させる請求項1記載のカットオフエネルギー決定プログラム。
【請求項3】
前記条件が満たされる場合、前記第2のカットオフエネルギーから所定の値を減少させた第3のカットオフエネルギーを適用して、前記N+2回目の電子密度の計算を実行する、
処理をコンピュータに実行させる請求項2に記載のカットオフエネルギー決定プログラム。
【請求項4】
前記条件を満たすか否かを判定する処理では、N回目までの電子密度計算それぞれにおける、計算開始時に設定された電子密度と計算結果として得られた電子密度との差を示す第1の差分と、N+1回目の前記第2の電子密度計算における計算開始時に設定された電子密度と計算結果として得られた電子密度との差を示す第2の差分とに基づいて、電子密度の差分変化率を計算し、前記差分変化率に基づいて前記条件が満たされるか否かを判定する、
請求項1記載のカットオフエネルギー決定プログラム。
【請求項5】
前記条件を満たすか否かを判定する処理では、N回目までの電子密度計算ごとの前記第1の差分の代表値と前記第2の差分との差を、前記差分変化率として計算し、前記差分変化率が所定の閾値以下の場合に前記条件が満たされないと判定する、
請求項4記載のカットオフエネルギー決定プログラム。
【請求項6】
出力された前記第2のカットオフエネルギーを適用し、密度汎関数理論に基づいて前記物質の所定の物理量を計算する、
処理を前記コンピュータにさらに実行させる請求項1から4までのいずれか一項に記載のカットオフエネルギー決定プログラム。
【請求項7】
カットオフエネルギーに応じた数の波動関数を用いた自己無撞着場法による物質の電子密度の繰り返し計算において、N回目(Nは1以上の整数)の第1の電子密度計算に適用した第1のカットオフエネルギーより小さい値の第2のカットオフエネルギーを適用してN+1回目の第2の電子密度計算を実行し、
前記N+1回目の前記第2の電子密度計算で得られた電子密度が所定の条件を満たすか否かを判定し、
前記条件が満たされない場合、前記第2のカットオフエネルギーの値を出力する、
処理をコンピュータが実行するカットオフエネルギー決定方法。
【請求項8】
カットオフエネルギーに応じた数の波動関数を用いた自己無撞着場法による物質の電子密度の繰り返し計算において、N回目(Nは1以上の整数)の第1の電子密度計算に適用した第1のカットオフエネルギーより小さい値の第2のカットオフエネルギーを適用してN+1回目の第2の電子密度計算を実行し、前記N+1回目の前記第2の電子密度計算で得られた電子密度が所定の条件を満たすか否かを判定し、前記条件が満たされない場合、前記第2のカットオフエネルギーの値を出力する処理部、
を有する情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、カットオフエネルギー決定プログラム、カットオフエネルギー決定方法、および情報処理装置に関する。
【背景技術】
【0002】
近年、材料開発の分野において、研究開発期間の短縮、低コスト化を目指すデータ駆動型研究開発の取り組みとして、マテリアルズ・インフォマティクス(以後、MIと呼ぶ)が世界的に進展している。MIには良質なマテリアルデータの蓄積が重要である。そこで、実験に加えて量子化学などのシミュレーションによる効率的なデータ蓄積が期待されている。
【0003】
量子化学の主要な計算手法の一つに密度汎関数理論(DFT:Density Functional Theory)がある。DFTでは、まず、計算対象の物質の電子密度が自己無撞着場(SCF:Self-consistent Field)法により計算される。そして、得られた電子密度に基づいて、物質の状態を示す物理量(全エネルギーなど)が算出される。
【0004】
DFTを利用する技術としては、例えば、相変化型光記録媒体を設計する際に、記録層の材料として、所望の光学特性を有する材料を効率的に選択する相変化型光記録媒体の設計方法が提案されている。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
原子数をN(Nは自然数)とすると、DFTの計算量はオーダ表記でO(N3)となり、計算対象の系が大きくなると計算量が膨大となる。そのためDFTでは、計算の分解能を決定する重要な計算条件としてカットオフエネルギーが設定される。カットオフエネルギーは、どこまで短い波長の波の波動関数を計算に含めるかに関連するパラメータである。カットオフエネルギーが高い程、短い波長の波の波動関数を計算に含めることとなる。このカットオフエネルギーの設定値が不適切な場合、次の問題が発生する。
【0007】
カットオフエネルギーが過小な場合、全エネルギー値が実際よりも過大に評価される。またカットオフエネルギーが過大な場合、必要以上の計算分解能となり、計算時間が余分にかかる。そこで、DFTを用いた物理量の詳細な計算を実施する前に、最適なカットオフエネルギーを求めておくことが重要となる。
【0008】
従来、例えばカットオフエネルギーを変化(増加または減少)させた場合のDFT計算を複数回実行し、全エネルギー値が収束する最小のEcutを、最適なカットオフエネルギーに決定している。このような複数回のDFT計算の計算時間は膨大であり、計算時間の短縮が求められている。
【0009】
1つの側面では、本件は、DFT計算に適したカットオフエネルギーの決定に要する計算時間を短縮することを目的とする。
【課題を解決するための手段】
【0010】
1つの案では、以下の処理をコンピュータに実行させるカットオフエネルギー決定プログラムが提供される。
コンピュータは、カットオフエネルギーに応じた数の波動関数を用いた自己無撞着場法による物質の電子密度の繰り返し計算において、N回目(Nは1以上の整数)の第1の電子密度計算に適用した第1のカットオフエネルギーより小さい値の第2のカットオフエネルギーを適用してN+1回目の第2の電子密度計算を実行する。コンピュータは、N+1回目の第2の電子密度計算で得られた電子密度が所定の条件を満たすか否かを判定する。そしてコンピュータは、条件が満たされない場合、第2のカットオフエネルギーの値を出力する。
【発明の効果】
【0011】
1態様によれば、DFT計算に適したカットオフエネルギーの決定に要する計算時間を短縮することができる。
【図面の簡単な説明】
【0012】
【
図1】第1の実施の形態に係るカットオフエネルギー決定方法の一例を示す図である。
【
図3】制御ノードのハードウェアの一例を示す図である。
【
図4】計算ノードのハードウェア構成の一例を示す図である。
【
図5】Ecutと全エネルギーとの関係を示す図である。
【
図6】計算システムで実現する機能の一例を示すブロック図である。
【
図7】物質状態計算手順の一例を示すフローチャートである。
【
図8】差分
nと差分
1~n-1の代表値との一例を示す図である。
【
図9】Ecut決定処理の手順の一例を示すフローチャートである。
【
図10】Ecutを固定にした場合と変動させた場合との比較例を示す図である。
【
図11】SCF計算手順の一例を示すフローチャートである。
【
図12】Ecutと計算時間との関係を示す図である。
【発明を実施するための形態】
【0013】
以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
〔第1の実施の形態〕
第1の実施の形態は、DFTに基づく量子化学計算に適用するのに最適なカットオフエネルギーを短時間で決定可能なカットオフエネルギー決定方法である。
【0014】
図1は、第1の実施の形態に係るカットオフエネルギー決定方法の一例を示す図である。
図1には、カットオフエネルギー決定方法を実施する情報処理装置10が示されている。情報処理装置10は、例えばカットオフエネルギー決定プログラムを実行することにより、カットオフエネルギー決定方法を実施することができる。
【0015】
情報処理装置10は、記憶部11と処理部12とを有する。記憶部11は、例えば情報処理装置10が有するメモリまたはストレージ装置である。処理部12は、例えば情報処理装置10が有するプロセッサまたは演算回路である。
【0016】
記憶部11は、DFTによって解析する対象の物質に関する物質情報1が格納されている。物質情報には、例えば物質を構成する原子、電子数などの情報が含まれる。
処理部12は、物質情報1に示される物質のDFTによる量子化学計算に用いるカットオフエネルギーを決定する。具体的には、処理部12は、カットオフエネルギーに応じた数の波動関数を用いた自己無撞着場(SCF)法による物質の電子密度の繰り返し計算(SCF計算)を行う。
【0017】
処理部12は、電子密度の繰り返し計算において、N回目(Nは1以上の整数)の第1の電子密度計算に適用した第1のカットオフエネルギーより小さい値の第2のカットオフエネルギーを適用してN+1回目の第2の電子密度計算を実行する。なお、1回目のSCF計算に適用するカットオフエネルギーは、予め設定された値である。1回目のSCF計算に適用するカットオフエネルギーとしては、十分に高い値が設定される。十分に高い値とは、物質の全エネルギーを最小値に収束させることが可能なカットオフエネルギーである。
【0018】
例えば1回目のSCF計算で用いたカットオフエネルギーをEcut1とし、2回目のSCF計算で用いるカットオフエネルギーをEcut2とした場合、Ecut2はEcut1より小さな値となる(Ecut2<Ecut1)。N-1回目のSCF計算で用いたカットオフエネルギーをEcutN-1とし、N回目のSCF計算で用いるカットオフエネルギーをEcutNとした場合、EcutNはEcutN-1より小さな値となる(EcutN<EcutN-1)。同様にN+1回目のSCF計算で用いるカットオフエネルギーをEcutN+1とした場合、EcutN+1はEcutNより小さな値となる(EcutN+1<EcutN)。
【0019】
処理部12は、N+1回目の第2の電子密度計算で得られた電子密度が所定の条件を満たすか否かを判定する。所定の条件とは、例えば差分変化率が閾値以上であるという条件である。
【0020】
差分変化率は、第1の差分と第2の差分とに基づいて計算される。第1の差分は、計算開始時に設定された電子密度と計算結果として得られた電子密度との差を示す値である。第2の差分は、N+1回目の第2の電子密度計算における計算開始時に設定された電子密度と計算結果として得られた電子密度との差を示す値である。差分変化率は、例えばN回目までの電子密度計算ごとの第1の差分の代表値(平均値、中央値など)と第2の差分との差を代表値で除算した商の絶対値である。
【0021】
処理部12は、条件が満たされない場合、第2のカットオフエネルギーの値を出力する。差分変化率が閾値以上であるという条件の場合、処理部12は、差分変化率が閾値以下であれば、条件が満たされないと判断し、第2のカットオフエネルギーの値を出力する。
【0022】
出力される第2のカットオフエネルギーは、密度汎関数理論(DFT)におけるに最適なカットオフエネルギーである。そこで処理部12は、例えば第2のカットオフエネルギーを適用し、DFTに基づいて物質の所定の物理量を計算する。
【0023】
なお、処理部12は、条件が満たされる場合、第2のカットオフエネルギーから所定の値を減少させた第3のカットオフエネルギーを適用して、N+2回目の電子密度の計算を実行する。カットオフエネルギーを減少させて行くことで、いずれ電子密度計算で得られた電子密度が所定の条件を満たすようになる。
【0024】
このように、SCF計算を実行するごとに適用するカットオフエネルギーを減少させることで、SCF計算による電子密度が収束するまでに、最適なカットオフエネルギーが得られる。すなわち、SCF計算に適用するカットオフエネルギーが十分に高いときは、より多くの波を考慮したSCF計算が行われるため、計算による電子密度の差分変化量は大きな値となる。カットオフエネルギーを減少させていき最適な値(全エネルギーの最小値を算出可能な最も小さい値)に達するころには、SCF計算による電子密度の差分変化量は小さな値となる。そして、SCFカットオフエネルギーが最適な値より小さくなると、そのカットオフエネルギーでは全エネルギーの最小値には達することができないため、SCF計算の繰り返しによる電子密度の差分変化量はより小さくなる。
【0025】
そこで差分変化率が閾値以上であるという条件を設定し、その条件が満たされなくなったときのカットオフエネルギーを特定することで、特定したカットオフエネルギーが、DFT計算に適したカットオフエネルギーとなる。
【0026】
上記の方法でカットオフエネルギーを決定することで、DFT計算に適したカットオフエネルギーを、1回のDFT計算で行われるSCF計算の繰り返しによって決定することが可能となり、最適なカットオフエネルギーを短時間で算出することができる。
【0027】
なお、SCF計算で得られた電子密度が所定の条件を満たさなくなった後も、SCF計算を継続して実施してもよい。例えばN+1回目のSCF計算で得られた電子密度が所定の条件を満たさない場合、処理部12は、第2のカットオフエネルギーを適用してN+2回目以降の電子密度計算を実行する。これにより、最適なカットオフエネルギーの決定と同時に、DFT計算による物理量(例えば全エネルギーの最小値)の計算を実施することができる。その結果、決定したカットオフエネルギーを用いて、様々な初期条件でのDFT計算を行う場合において、カットオフエネルギーの決定と同時に1回分のDFT計算を実施することができ、DFTによる物理量計算の効率化が図れる。
【0028】
〔第2の実施の形態〕
第2の実施の形態は、DFTによる物質の分子状態の計算をHPC(High-performance Computing)で実行する場合におけるカットオフエネルギーの計算時間を短縮するものである。以下、第2の実施の形態では、カットオフエネルギーを「Ecut」と呼ぶこととする。
【0029】
図2は、システム構成の一例を示す図である。HPCを実現する計算システム30は、制御ノード100と複数の計算ノード200a,200b,・・・とを有する。複数の計算ノード200a,200b,・・・は、互いに高速な通信が可能なインターコネクト32で接続されている。インターコネクト32は、例えばプロセッサ間を6次元メッシュ/トーラスによって相互に接続したネットワークである。
【0030】
計算ノード200a,200b,・・・それぞれは、制御ネットワーク31にも接続されている。制御ネットワーク31には、さらに制御ノード100が接続されている。制御ノード100は、計算ノード200a,200b,・・・に対するジョブの実行指示を行うコンピュータである。
【0031】
制御ノード100は、ネットワーク20を介して端末40に接続されている。端末40は、ユーザの操作に基づいて、計算ノード200a,200b,・・・に実行させるジョブの情報を制御ノード100に登録するコンピュータである。制御ノード100は、端末40からの指示に従ってDFTによる計算を、複数の計算ノード200a,200b,・・・に指示する。
【0032】
例えばユーザは、DFTによる物質の状態の計算を計算ノード200a,200b,・・・に実行させることで、DFTで定義される電子系の全エネルギーなどの物理量を得ることができる。
【0033】
図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)などの電子回路で実現してもよい。
【0034】
メモリ102は、制御ノード100の主記憶装置として使用される。メモリ102には、プロセッサ101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ102には、プロセッサ101による処理に利用する各種データが格納される。メモリ102としては、例えばRAM(Random Access Memory)などの揮発性の半導体記憶装置が使用される。
【0035】
バス109に接続されている周辺機器としては、ストレージ装置103、GPU(Graphics Processing Unit)104、入力インタフェース105、光学ドライブ装置106、機器接続インタフェース107およびネットワークインタフェース108a,108bがある。
【0036】
ストレージ装置103は、内蔵した記録媒体に対して、電気的または磁気的にデータの書き込みおよび読み出しを行う。ストレージ装置103は、制御ノード100の補助記憶装置として使用される。ストレージ装置103には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、ストレージ装置103としては、例えばHDD(Hard Disk Drive)やSSD(Solid State Drive)を使用することができる。
【0037】
GPU104は画像処理を行う演算装置であり、グラフィックコントローラとも呼ばれる。GPU104には、モニタ21が接続されている。GPU104は、プロセッサ101からの命令に従って、画像をモニタ21の画面に表示させる。モニタ21としては、有機EL(Electro Luminescence)を用いた表示装置や液晶表示装置などがある。
【0038】
入力インタフェース105には、キーボード22とマウス23とが接続されている。入力インタフェース105は、キーボード22やマウス23から送られてくる信号をプロセッサ101に送信する。なお、マウス23は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【0039】
光学ドライブ装置106は、レーザ光などを利用して、光ディスク24に記録されたデータの読み取り、または光ディスク24へのデータの書き込みを行う。光ディスク24は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク24には、DVD(Digital Versatile Disc)、DVD-RAM、CD-ROM(Compact Disc Read Only Memory)、CD-R(Recordable)/RW(ReWritable)などがある。
【0040】
機器接続インタフェース107は、制御ノード100に周辺機器を接続するための通信インタフェースである。例えば機器接続インタフェース107には、メモリ装置25やメモリリーダライタ26を接続することができる。メモリ装置25は、機器接続インタフェース107との通信機能を搭載した記録媒体である。メモリリーダライタ26は、メモリカード27へのデータの書き込み、またはメモリカード27からのデータの読み出しを行う装置である。メモリカード27は、カード型の記録媒体である。
【0041】
ネットワークインタフェース108aは、ネットワーク20に接続されている。ネットワークインタフェース108aは、ネットワーク20を介して、端末40などの他のコンピュータまたは通信機器との間でデータの送受信を行う。ネットワークインタフェース108bは、制御ネットワーク31に接続されている。ネットワークインタフェース108bは、制御ネットワーク31を介して、計算ノード200a,200b,・・・との間でデータの送受信を行う。
【0042】
ネットワークインタフェース108a,108bは、例えばスイッチやルータなどの有線通信装置にケーブルで接続される有線通信インタフェースである。またネットワークインタフェース108a,108bは、基地局やアクセスポイントなどの無線通信装置に電波によって通信接続される無線通信インタフェースであってもよい。
【0043】
制御ノード100は、例えばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第2の実施の形態の処理機能を実現する。制御ノード100に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、制御ノード100に実行させるプログラムをストレージ装置103に格納しておくことができる。プロセッサ101は、ストレージ装置103内のプログラムの少なくとも一部をメモリ102にロードし、プログラムを実行する。また制御ノード100に実行させるプログラムを、光ディスク24、メモリ装置25、メモリカード27などの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサ101からの制御により、ストレージ装置103にインストールされた後、実行可能となる。またプロセッサ101が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
【0044】
図4は、計算ノードのハードウェア構成の一例を示す図である。計算ノード200aは、CPU/メモリ部201とルータ202とを有している。CPU/メモリ部201とルータ202とは、複数の通信インタフェース(NIC)203で接続されている。またCPU/メモリ部201には、制御ネットワーク31に接続するためのNIC204も接続されている。
【0045】
CPU/メモリ部201には複数のコアを有するCPUとメモリとが含まれる。CPU/メモリ部201は、コアごとにプロセス(処理の実行単位)が生成される。CPU/メモリ部201のコアごとのプロセスが、他の計算ノード内のプロセスと同期処理を行う場合、ルータ202を介して他の計算ノード200b,・・・と通信する。
【0046】
ルータ202は、例えば3次元方向のそれぞれに隣接する計算ノードと通信を行う。ルータ202は、CPU/メモリ部201から他の計算ノードに送信するデータを、その計算ノードのインターコネクト32内での位置に応じた方向に隣接する計算ノードへ送信する。またルータ202は、隣接する計算ノードからCPU/メモリ部201内のプロセスへのデータを受信すると、そのデータをCPU/メモリ部201に送信する。さらにルータ202は、隣接する計算ノードから受信したデータが他の計算ノード宛てのデータの場合、送信先の計算ノードのインターコネクト32内での位置に応じた方向に隣接する計算ノードへデータを送信する。
【0047】
他の計算ノード200b,・・・も、計算ノード200aと同様のハードウェア構成である。
図4に示すようなハードウェアの計算ノード200a,200b,・・・が3次元方向にメッシュ/トーラス接続されることで、3次元のメッシュ/トーラスのインターコネクト32となる。
【0048】
以上のようなハードウェアの制御ノード100と計算ノード200a,200b,・・・によって、第2の実施の形態の処理機能を実現することができる。なお、第1の実施の形態に示した情報処理装置10も、制御ノード100または計算ノード200aと同様のハードウェアにより実現することができる。
【0049】
計算システム30にDFTによる量子化学計算を実行させる場合、事前にEcutの決定が行われる。このEcutと物質の全エネルギーとは依存関係がある。
図5は、Ecutと全エネルギーとの関係を示す図である。
図5に示すグラフ41は、横軸がEcut、縦軸が、対応するEcutで計算した場合におけるDFTの全エネルギーである。エネルギーの単位はeVである。
【0050】
グラフ41に示すように、Ecutが大きくなるほど全エネルギーは小さくなる。すなわち全エネルギーとEcutとは依存性がある。だだし、Ecutがある程度以上大きくなると、Ecutを大きくしても全エネルギーは小さくならない(全エネルギーが収束する)。またEcutを大きくするほど、DFT計算において、より小さな波長の波を考慮に入れた計算をすることとなり、計算量が増加する。そのため、全エネルギーが収束する最小のEcutが、最適なEcutである。
【0051】
このように、DFT計算によって全エネルギーが最小となる状態を求める場合のEcutが最適なEcutよりも小さすぎると十分な計算精度が得られず、最適なEcutよりも大きすぎると計算時間が無駄に長期化する。したがって、DFT計算に適用するEcutを、全エネルギーを最小値に収束させることが可能なEcutに決定することが要求される。
【0052】
最適なEcutの決定方法として、例えばEcutを変化(増加または減少)させた場合のDFT計算を複数回実行し、全エネルギー値が収束する最小のEcutを抽出することが考えられる。しかし、1回のDFTによる全エネルギー計算では、空間または座標系に配置された1つ以上の点において、すべての点の電子密度が収束するまで繰り返し計算が行われる。電子密度が収束するか否かは、例えば自己無撞着なSCF計算が用いられる。
【0053】
電子密度の計算対象とする点は、例えば物質が存在する空間を多数のセルに分割したときの、各セルの位置を示す点である。空間の分割数が多くなれば、その分だけ電子密度を計算する点の数も増加する。そのため、精密に計算する場合、1回のDFT計算にも数時間かかる。
【0054】
全エネルギーとEcutとの依存関係は、Ecutと波数との関係から理解できる。物質の波動関数は、以下の式で表される。
【0055】
【0056】
rは、電子密度を計算する位置を示す位置ベクトルである。kは、波数ベクトルである。波数ベクトルの大きさが、波の波数(単位空間あたりどれだけの振動が完了するか)を示している。波長をλとしたとき波数は2π/λとなる。kmaxは波数の最大値である。kmaxとEcutとの間には、以下の関係がある。
【0057】
【0058】
式(2)に示すように、Ecutが大きいほどkmaxが大きくなる。kmaxが大きくなると、式(1)で用いる波数の数が増加し、計算精度が向上する。計算精度が向上することで、全エネルギーを最小値に近づけることができる。
【0059】
ここで、1回のDFT計算においてEcutを固定のままSCF計算を繰り返した場合、計算結果として、そのEcutのときの全エネルギーが得られるのみである。そこで第2の実施の形態に係る計算システム30は、1回のDFT計算において、SCFの1回分の計算を行うごとにEcutを変更することで、1回のDFT計算で最適なEcutの導出を可能とする。
【0060】
図6は、計算システムで実現する機能の一例を示すブロック図である。計算システム30は、記憶部110、計算指示部120、Ecut決定部210、およびDFT計算部220を有する。記憶部110と計算指示部120は、例えば制御ノード100が有する機能である。Ecut決定部210とDFT計算部220は、例えば計算ノード200a,200b,・・・が有する機能である。
【0061】
記憶部110は、計算対象の物質に関する情報(含まれる原子、既知の原子配置など)を記憶する。計算指示部120は、端末40から所定の物質の物性などの解析指示を受け付けると、その物質の解析のためのEcut決定指示をEcut決定部210に送信する。
【0062】
Ecut決定部210は、DFT計算に最適なEcutを決定する。DFT計算部220は、最適なEcutを適用したDFT計算により、物質の状態を計算する。例えばDFT計算部220は、DFTを用いた第1原理計算を行い、全エネルギーなどの電子の運動状態を計算することができる。またDFT計算部220は、物質の具体的な結晶構造(面心立方構造、六方最密構造など)をDFT計算で求めることもできる。
【0063】
なお、
図6に示した各要素の機能は、例えば、その要素に対応するプログラムモジュールをコンピュータに実行させることで実現することができる。例えば計算指示部120に対応するプログラムを制御ノード100が実行し、計算指示部120を実現する。制御ノード100で実現された計算指示部120が、複数の計算ノード200a,200b・・・のうちの1台または複数台に対してEcut決定部210またはDFT計算部220に対応するジョブの実行を指示する。指示された計算ノードは、指定されたジョブに対応するプログラムを実行することで、Ecut決定部210またはDFT計算部220を実現する。
【0064】
図7は、物質状態計算手順の一例を示すフローチャートである。以下、
図7に示す処理をステップ番号に沿って説明する。
[ステップS101]Ecut決定部210は、Ecut決定処理を行う。Ecut決定部210は、決定した最適なEcutの値を、DFT計算部220に送信する。
【0065】
[ステップS102]DFT計算部220は、決定された最適なEcutを適用したDFT計算により、物質の状態を計算する。
Ecut決定部210は、Ecut決定処理において、Ecutを変動させながらDFT計算を実行する。例えばEcut決定部210は、所定のEcut変化条件が満たされるまで、SCF計算を1回実行するごとにEcutを減少させる。Ecut変化条件としては、例えば電子密度の差分変化率を用いることができる。
【0066】
電子密度の差分変化率は、SCF計算の前に推定された電子密度とSCF計算で算出された電子密度との差分の変化の度合いを示す。例えばn回目(nは自然数)のSCF計算での計算前後での電子密度の差分を、差分nとする。Ecut決定部210は、この差分nを、差分1~n-1(差分1から差分n-1まで各差分)の代表値(平均値、中央値など)と比較する。
【0067】
図8は、差分
nと差分
1~n-1の代表値との一例を示す図である。グラフ42には、SCF計算の繰り返し回数に応じた差分の変化が示されている。グラフ42の横軸がSCF計算の繰り返し回数であり、縦軸が差分である。SCF計算の繰り返し回数が増えるのに伴い、差分は減少する。SCF計算1回当りの差分の減少度合いは、SCF計算の繰り返し回数が増えるに従って少なくなる。すなわち、SCF計算の繰り返し回数ごとの差分の値を示す点を結ぶ曲線42aは、SCF計算の繰り返し回数がある程度以上増えると水平に近くなる。
【0068】
n回目のSCF計算の差分変化率を求める場合、差分nと差分1~n-1の代表値が比較される。例えばEcut決定部210は、差分1~n-1の代表値(平均値、中央値など)からの差分nの変化の度合いを、n回目のSCF計算における差分変化率とする。差分変化率を式で表すと以下の通りである。
差分変化率n=|(差分n-差分1~n-1の代表値)÷差分1~n-1の代表値| (3)
Ecut決定部210は、このような差分変化率が所定の判定基準(DTH)に達するまで、SCF計算ごとにEcutを減少させる。差分変化率の判定基準(DTH)は、例えば「0.1」(10%)と設定される。この判定基準は、第1の実施の形態で説明した差分変化率の閾値の一例である。
【0069】
Ecutの初期値には、DFTの全エネルギーの最小値を求めることが可能な十分に大きな値が設定される。Ecutが最適な値(全エネルギーが収束する最小のEcut)より大きい間は、SCFにより電子密度が高精度に計算され、そのSCF計算における計算前後での電子密度の差分が大きく、差分変化率は判定基準より大きな値となる。Ecutが最適な値より小さくなるとSCFの差分変化率は判定基準より小さくなる。そのため、SCF計算ごとの差分変化率に基づいて、最適なEcutを求めることが可能となる。
【0070】
図9は、Ecut決定処理の手順の一例を示すフローチャートである。以下、
図9に示す処理をステップ番号に沿って説明する。
[ステップS111]Ecut決定部210は、差分変化率の条件を設定する。例えば計算指示部120が端末40を介したユーザからの入力に基づいて、差分変化率の条件を含むジョブ実行指示をEcut決定部210に送信する。Ecut決定部210は、指示された差分変化率の条件を、ジョブの実行条件として設定する。例えばEcut決定部210は、差分変化率の条件として、差分
1~n-1の代表値の種別(平均値、中央値などのうちのどれを用いるのか)を設定する。またEcut決定部210は、差分変化率の判定基準を設定する。
【0071】
[ステップS112]Ecut決定部210は、Ecutの条件を設定する。例えば計算指示部120が端末40を介したユーザからの入力に基づいて、Ecutの条件を含むジョブ実行指示をEcut決定部210に送信する。Ecut決定部210は、指示されたEcutの条件を、ジョブの実行条件として設定する。例えばEcut決定部210は、Ecutの条件として、Ecutの変動範囲の最小値と最大値を設定する。例えばEcutの最小値(Ecutmin)は200eVであり、Ecutの最大値(Ecutmax)は4000eVである。
【0072】
またEcut決定部210は、Ecutを減少させる際のEcutの刻み幅を設定する。例えばEcut決定部210は、Ecut刻み幅(Ecutdelta)を50eVに設定する。
【0073】
[ステップS113]Ecut決定部210は、SCF計算を実行する。SCF計算の結果として、最適なEcutが得られる。
[ステップS114]Ecut決定部210は、SCF計算によって得られた最適なEcutを出力する。
【0074】
ステップS113のSCF計算では、例えば1回のDFT計算分のSCF計算が繰り返し実行される。そしてSCF計算を1回実行するごとに、次回のSCF計算に適用するEcutが決定される。
【0075】
図10は、Ecutを固定にした場合と変動させた場合との比較例を示す図である。グラフ51は、1回のDFT計算においてEcutを固定した場合のSCF計算ごとのEcutを示している。グラフ51の横軸がSCF繰り返し回数であり、縦軸がEcutである。Ecutを固定した場合、何回目のSCFの計算であっても共通のEcutが使用される。
【0076】
グラフ52は、1回のDFT計算においてEcutを変動させた場合のSCF計算ごとの差分変化率を示している。グラフ52の横軸がSCF繰り返し回数であり、縦軸が差分変化率である。差分変化率は、SCF繰り返し回数が増えるに従って小さくなる。Ecut決定部210は、Ecutを判定基準(DTH)よりも高い値からSCF計算を開始する。これにより、SCF計算の繰り返し回数が増えると、いずれ差分変化率が判定基準(DHT)以下となる。
【0077】
グラフ53は、1回のDFT計算においてEcutを変動させた場合のSCF計算ごとのEcutを示している。グラフ53の横軸がSCF繰り返し回数であり、縦軸がEcutである。
【0078】
Ecutを変動させる場合、Ecutの初期値は最大値(Ecutmax)である。Ecutの最大値を、予想される最適なEcutより十分に大きな値とすることで、Ecutが最大値の状態では、現在の電子状態における全エネルギーを最小値に収束させることができる。差分変化率が判定基準(DTH)を上回っている間、Ecutは、SCF計算を繰り返すごとにEcut刻み幅(Ecutdelta)だけ減少する。差分変化率が判定基準(DTH)以下となった後のSCF計算ではEcutは一定値となる。1回のDFT計算の終了時点におけるEcutが、Ecutの最適値となる。
【0079】
次に、Ecut最適値を求めるためのSCF計算手順について詳細に説明する。
図11は、SCF計算手順の一例を示すフローチャートである。以下、
図11に示す処理をステップ番号に沿って説明する。
【0080】
[ステップS121]Ecut決定部210は、SCF繰り返し回数nに初期値として1を設定する。
[ステップS122]Ecut決定部210は、すべての位置ベクトルrについて、予め指定されている電子密度ρn(r)の初期値を設定する。
【0081】
[ステップS123]Ecut決定部210は、1電子波動関数φn(r)を計算する(φは一筆書き)。例えばEcut決定部210は、Kohn Sham方程式を解くことで1電子波動関数φn(r)を計算する。このときの計算におけるEcutとして、Ecutnが適用される。1回目のSCF計算におけるEcut1は、Ecut最大値(Ecutmax)である。
【0082】
[ステップS124]Ecut決定部210は、位置ベクトルごとに、1電子波動関数φn(r)に基づいて、電子密度ρ’n(r)を計算する。
[ステップS125]Ecut決定部210は、位置ベクトルごとに、電子密度ρn(r)と電子密度ρ’n(r)との差分Δρn(r)を計算する。差分Δρn(r)は、例えば「Δρn(r)=|ρ’n(r)-ρn(r)|」で計算できる。
【0083】
[ステップS126]Ecut決定部210は、すべての位置ベクトルrについての差分Δρn(r)が許容値Δρ以下か否かを判断する。例えばEcut決定部210は、位置ベクトルrごとの差分Δρn(r)のうちの最大値を抽出する。そしてEcut決定部210は、抽出した最大値が許容値Δρ以下であれば、すべての位置ベクトルrについての差分Δρn(r)が許容値Δρ以下であると判断する。
【0084】
Ecut決定部210は、すべての位置ベクトルrについての差分Δρn(r)が許容値Δρ以下であれば、SCF計算において電子密度が収束したと判断して、SCF計算処理を終了する。またEcut決定部210は、少なくとも1つの位置ベクトルrについての差分Δρn(r)が許容値Δρを超えていれば、処理をステップS127に進める。
【0085】
[ステップS127]Ecut決定部210は、全エネルギーと、位置ベクトルごとの差分変化率を計算する。例えばEcut決定部210は、差分変化率を計算する場合、差分Δρ1(r)~差分Δρn-1(r)の代表値を計算する。次にEcut決定部210は、計算した代表値と差分Δρn(r)との差の絶対値を計算する。そしてEcut決定部210は、差の絶対値を差分Δρ1(r)で除算した値を、差分変化率とする。
【0086】
[ステップS128]Ecut決定部210は、すべての位置ベクトルrについて、差分変化率が判定基準(DTH)以下か否かを判断する。Ecut決定部210は、すべての位置ベクトルrについて、差分変化率が判定基準(DTH)以下であれば、処理をステップS130に進める。またEcut決定部210は、少なくとも1つの位置ベクトルrについて、差分変化率が判定基準(DTH)より大きければ、処理をステップS129に進める。
【0087】
[ステップS129]Ecut決定部210は、次のSCF計算におけるEcutn+1を計算する。例えばEcut決定部210は、現在のEcutnからEcut刻み幅(Ecutdelta)を減算した値を、Ecutn+1とする(Ecutn+1=Ecutn-Ecutdelta)。その後、Ecut決定部210は処理をステップS131に進める。
【0088】
[ステップS130]Ecut決定部210は、現在のEcutnを、次のSCF計算におけるEcutn+1に設定する(Ecutn+1=Ecutn)。
[ステップS131]Ecut決定部210は、SCF繰り返し回数nに1を加算する(n=n+1)。
【0089】
[ステップS132]Ecut決定部210は、電子密度ρn(r)を更新する。例えばEcut決定部210は、電子密度ρ’n-1(r)を電子密度ρn(r)に設定する。またEcut決定部210は、電子密度ρn(r)または電子密度ρ’n-1(r)に基づく電子密度の最適化計算によって得られた電子密度に電子密度ρn(r)を更新してもよい。電子密度ρn(r)を更新後、Ecut決定部210は処理をステップS123に進める。
【0090】
このようにして、位置ベクトルで示されるすべての位置において、差分Δρn(r)が許容値Δρ以下となった場合、電子密度が収束したと判断され、その時点でのEcutが最適なEcutに決定される。その結果、1回のDFT計算分のSCF計算を行えばよく、最適なEcutを求めるための計算時間が大幅に短縮される。
【0091】
またSCF計算の繰り返しにおいて、Ecutを徐々に低下させている。DFTの計算時間は、Ecutに依存する。
図12は、Ecutと計算時間との関係を示す図である。
図12に示すグラフ61には、Ecutに応じたDFTの計算時間が示されている。グラフ61の横軸がEcutであり、縦軸が計算時間である。グラフ61に示すように、Ecutが大きくなるほど計算時間が増加する。ここでは最大カットオフエネルギー(Ecut
max)の場合の計算時間が最大である。
【0092】
DFT計算中のEcutを固定にしてDFT計算を行った場合とEcutを変動させることによる最適なEcut決定処理の高速化率は、以下の式(4)で表すことができる。
高速化率=Ecut固定によるDFT計算の総計算時間(複数回)/Ecutを変動させた1回のDFT計算時間 (4)
Ecut固定によるDFT計算を10回とし、Ecutを1段階増加させたときの計算時間の増加率が1.2倍(線形)であるものとすると、高速化率は以下の式で表される。
【0093】
【0094】
このようにEcutの変動を伴うSCF計算の繰り返しによって最適なEcutを決定することで、最適なEcutを短時間で決定することができる。例えば100原子のDFT計算を行う場合において1回のDFT計算に10分かかるとする。この場合、Ecut固定の10回のDFT計算で最適なEcutを求めようとすると、計算に100分かかる。それがEcutを変動させて1回のDFT計算で最適なEcutを求めることで、5分の1(20分)程度の時間で算出可能となる。原子数がさらに増え(例えば400以上)になると、1回のDFT計算に要する時間がさらに長期化する。そのため、Ecutを変動させて1回のDFT計算で最適なEcutを求めることによる計算時間の短縮効果が大きくなる。
【0095】
〔その他の実施の形態〕
第2の実施の形態では、HPCで計算を行っているが、計算対象の物質の原子数が少なければ、HPC以外のコンピュータで実行することも可能である。
【0096】
差分変化率の計算には、式(3)以外の式を用いることもできる。例えば、差分変化率として以下の式(6)を用いることもできる。
差分変化率=(今回の差分-前回の差分)÷前回の差分 (6)
式(6)で変化率を求めることで、より簡便な式で変化率を求めることができる。
【0097】
またEcutを減少させる際の減少量を示すEcut刻み幅(Ecutdelta)を、固定値ではなく、SCF計算ごとに変動させてもよい。例えば、差分変化率が判定基準(DTH)に近づくに従って、Ecut刻み幅(Ecutdelta)を減少させてもよい。
【0098】
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。
【符号の説明】
【0099】
1 物質情報
10 情報処理装置
11 記憶部
12 処理部