説明

電子ポテンシャル演算装置、電子ポテンシャル演算方法、及び電子ポテンシャル演算プログラム

【課題】 速やかに電子ポテンシャルを演算することができる電子ポテンシャル演算装置、電子ポテンシャル演算方法、及び物性予測値演算プログラムを提供する。
【解決手段】 本発明の電子ポテンシャル演算装置10は、残差変化ポテンシャル群を生成する変化ポテンシャル群生成部23aと、前記残差変化ポテンシャル群を特異値分解することで変換残差変化ポテンシャル群に近似変換する変換部23bと、前記変換残差変化ポテンシャル群に基づいて新たな入力ポテンシャルを演算する演算部23cとを備えている。変化ポテンシャル群生成部23aは、現状の残差変化ポテンシャルと、過去の演算結果による変換残差変化ポテンシャル群とを要素として含んだものを前記残差変化ポテンシャル群として生成する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、第一原理計算に基づいて電子ポテンシャルを演算するための電子ポテンシャル演算装置、電子ポテンシャルの演算方法、及び電子ポテンシャル演算プログラムに関する。
【背景技術】
【0002】
一般に、金属や無機物質等の固体における電子ポテンシャルを演算するには、例えば、下記式(a)に示すような、第一原理計算に基づく自己無撞着な非線形方程式Fを解くことで行われる。なお、式(a)中、vは電子ポテンシャルとしての入力値である。
非線形方程式 F(v) = 0 ・・・・ (a)
【0003】
具体的には、入力値vinに対する残差vresは、下記式(b)のように示される。そして、この残差vres及び入力値vinに基づいて、新たな入力値vinを設定し、再度残差vresを演算する。このような演算を、入力値vinを調整しつつ反復することで、残差vresを減少させ、残差vresが充分に減少し「0」に収束したと判断しうる値となったときのの解を上記式(a)を満たすvに近似する値として、電子ポテンシャルを得る。
res = F(vin) ・・・・ (b)
【0004】
ここで、上記新たな入力値を求めるには、以下の方法が採られる。すなわち、演算の反復回数をkとするとき、反復回数kにおける入力値vink及び残差vreskは既知であるので、反復回数k+1における新たな入力値vink+1を下記式(c)で予測する。なお、式(c)中、緩和係数Aは、反復回数k+1における残差vresk+1が反復回数kにおける残差vreskよりも小さい値となることが期待される値を選んで設定される。
【0005】
【数3】

【0006】
上述の演算において、より速やかに残差vreskを減少させうる新たな入力値vink+1を求めるための方法として、Anderson法や、多重割線型Broyden法と呼ばれる方法が知られている(例えば、非特許文献1参照)。
上記Anderson法では、反復回数k+1における新たな入力値vink+1を、以下に示す方法によって算出する。
すなわち、反復回数k+1における新たな入力値vink+1は、下記式(d)によって示される。
【0007】
【数4】

【0008】
Anderson法では、式(d)に示すように、現状(反復回数k)の演算結果に加えて、過去の演算結果も含めて演算を行う。なお、式(d)中、lkは、反復回数kから過去の演算にさかのぼる反復回数を示しており、参照すべき過去の演算結果の個数を示している。
上記式(d)において、仮の残差を下記式(e)、仮の入力値を下記式(f)と定義し、仮の残差を最小化するパラメータxの値を求め、得られたパラメータxを式(e)、(f)に代入することで、仮の残差及び仮の入力値を求める。そして、これら仮の残差及び仮の入力値を式(c)中の残差vresk及び入力値vinkとして代入し、演算することで、反復回数k+1における新たな入力値vink+1が得られる。
【0009】
【数5】

【0010】
上記式(e)における仮の残差を最小化するパラメータxを求めるためには、式(e)中の「vresλ−vresλ-1」で表される数値群に対して、予め定めた条件数の上限値に基づいて特異値分解を行うことで、仮の残差を最小化するパラメータxが求められる。
以上のようにして得られた新たな入力値vink+1は、残差vresk+1を減少させる上で効果的であり、上記演算を反復することで、速やかに残差vresk+1を減少させることができる。
【0011】
【非特許文献1】澤村明賢、香山正憲、結石友宏、鍜治幹雄,「自己無撞着な電子構造計算の加速法、記憶量節約、多重割線型のBroyden法の実現(Acceleration of self−Consistent Electronic−Structure Calculations:Storage−Saving and Multiple−secant Implementation of the Broyden Method)」,Materials Transactions,日本金属学会,1999年,Vol40,No11,p.1186−1192
【発明の開示】
【発明が解決しようとする課題】
【0012】
ところで、Anderson法においては、上述のように、過去の演算結果を参照しており、参照すべき過去の演算結果の個数lk(上記式(d)参照)を定める必要がある。
また、上記方法では、参照する過去の演算結果である式(e)で示される仮の残差を最小化する際に特異値分解を行うが、この特異値分解についての条件数の上限値を定める必要がさらにある。
ここで、特異値分解とは、条件数の上限値に基づいて、与えられた個々のデータを、独立性の高い要素に近似的に変換するものと言える。また、条件数の上限値とは、与えられたデータ間の独立性がどの程度有意であるかどうかを判定する基準であり、小さすぎれば本来有意であるはずのデータを取りこぼすおそれがある。また、大きすぎれば誤差を大きく含んでしまうおそれが生じる。
【0013】
上記Anderson法では、参照すべき過去の演算結果による数値群を上記特異値分解の対象としているため、参照すべき過去の演算結果の個数lkと、条件数の上限値とは、上記残差を速やかに減少させる上において、相互に密接に関係している。すなわち、条件数の上限値の設定を適切に行ったとしても、前記個数lkが非常に大きい数値に設定された場合、参照すべき過去の演算結果を過剰に保持することとなり、演算を行うための装置に対する処理負荷を増大させるばかりか、多量の誤差が発生するおそれもある。逆に前記個数lkが非常に小さい数値に設定された場合、過去の演算結果を参照する個数が過小となり、Anderson法を利用する利点が損なわれる。
上記のように、演算を行うための装置に対する処理負荷が増大したり、特異値分解によって変換された数値群に誤差が含まれたりすることは、残差を速やかに減少させる上での阻害要因となる。
【0014】
以上のように、参照すべき過去の演算結果の個数lk、及び条件数の上限値は、残差が充分に減少するまでの反復回数に大きく影響を及ぼすにも関わらず、人為的に設定する必要があった。上記演算を効率よく速やかに行うためには、これら両設定値を好適に設定することが望ましいが、両設定値間の関係による影響を考慮しつつ、実際にどの程度の値に設定すればよいかを推定することは困難であり、この点において演算の効率化を妨げる要因となっていた。このため、電子ポテンシャルを演算する上で、より効率よく速やかに残差を減少させうる方策が嘱望されていた。
【0015】
本発明はこのような事情に鑑みてなされたものであり、効率よく速やかに残差を減少させることで演算の反復回数を減らし、速やかに電子ポテンシャルを演算することができる電子ポテンシャル演算装置、電子ポテンシャル演算方法、及び電子ポテンシャル演算プログラムを提供することを目的とする。
【課題を解決するための手段】
【0016】
上記目的を達成するための本発明は、第一原理計算に基づいて入力ポテンシャルから残差を得る演算、及び前記入力ポテンシャル及び前記残差に基づいて当該残差を減少させうる新たな入力ポテンシャルを得る演算を反復することで前記残差を減少させ、当該残差が充分に減少したと判断される所定の閾値以下となったときの解を電子ポテンシャルとして得る電子ポテンシャル演算装置であって、
初期値としての前記入力ポテンシャル、及び前記新たな入力ポテンシャルを得る演算に用いる条件数の上限値を入力するための入力手段と、
前記入力ポテンシャルに基づいて前記残差を演算する残差演算部と、
前記入力ポテンシャル及び前記残差に基づいて前記新たな入力ポテンシャルを演算する入力ポテンシャル演算部と、
前記入力ポテンシャル演算部によって演算された前記新たな入力ポテンシャルに基づいて、前記残差演算部に前記残差を反復演算させる反復演算部と、
前記残差が前記閾値以下であるか否かを判定するとともに、当該残差が前記閾値以下であると判定すると前記残差演算部による反復演算を停止させる制御部と、を備え、
前記入力ポテンシャル演算部は、
前記残差演算部の反復演算により演算される複数の残差から得られる演算前後の残差変化を示す残差変化ポテンシャル群を生成する残差変化ポテンシャル群生成部と、
前記残差変化ポテンシャル群生成部により生成される前記残差変化ポテンシャル群を、前記条件数の上限値に基づいて特異値分解することにより、互いに独立性の高い要素群で構成される変換残差変化ポテンシャル群に近似変換する変換部と、
前記変換部が変換した前記変換残差変化ポテンシャル群に基づいて、新たな入力ポテンシャルを演算する演算部と、を備え、
前記残差変化ポテンシャル群生成部は、現状の演算結果による残差と過去の演算結果による残差との間の差である残差変化ポテンシャルと、前記変換部による過去の演算結果である前記変換残差変化ポテンシャル群とを、要素として含んだものを前記残差変化ポテンシャル群として生成することを特徴としている。
【0017】
上記のように構成された電子ポテンシャル演算装置において、残差変化ポテンシャル群は、特異値分解によって、当該残差変化ポテンシャル群に含まれる要素の内、線形従属性の高い要素について一つの要素にまとめられることで、互いに線形独立性の高い要素のみが残るように近似変換されるので、特異値分解後の変換残差変化ポテンシャル群の要素の個数は、当該特異値分解の結果によって、残差変化ポテンシャル群の要素の個数以下に定まる。
演算部は、変換残差変化ポテンシャル群に基づいて演算を行うので、演算部による演算の際に参照すべき過去の演算結果の個数は、変換残差変化ポテンシャル群の要素の個数と一致する。すなわち、参照すべき過去の演算結果の個数は、特異値分解による変換によって定まるので、過去にさかのぼって参照すべき過去の演算結果の個数を予め設定する必要がない。
すなわち、互いに残差が充分に減少したと判断されるまでの反復回数に大きく影響を及ぼす設定値である、参照すべき過去の演算結果の個数、及び条件数の上限値の内、参照すべき過去の演算結果の個数については、予め設定する必要がないので、条件数の上限値についての好適な値の推定が容易となる。この結果、効率よく速やかに残差を減少させることが可能となる。従って、演算の反復回数を減らすことができ、速やかに電子ポテンシャルを演算することができる。
【0018】
さらに、本発明の電子ポテンシャル演算装置では、特異値分解を行った過去の変換残差変化ポテンシャル群に現状の残差変化ポテンシャルを加えたものを残差変化ポテンシャル群として更新して生成し、この生成された残差変化ポテンシャル群について特異値分解して変換残差変化ポテンシャル群を算出する。このため、参照すべき過去の演算結果としての要素の個数を予め設定せずに演算を反復したとしても、変換残差変化ポテンシャル群に含まれる要素の個数が無駄に増大化することを防止することができる。この結果、装置に作用する処理負荷を低減でき、より効率よく速やかに残差を減少させることができる。
【0019】
具体的には、前記残差変化ポテンシャル群は、下記式(1)で示される数値群であることが好ましい。
【0020】
【数6】

【0021】
また、上記電子ポテンシャル演算装置において、前記入力ポテンシャル演算部は、さらに、当該入力ポテンシャル演算部の反復演算により演算される複数の入力ポテンシャルから得られる演算前後の入力ポテンシャル変化を示す入力変化ポテンシャル群より、前記変換残差変化ポテンシャル群に整合する変換入力変化ポテンシャル群を算出する変換入力変化ポテンシャル群算出部と、
現状の演算結果による入力ポテンシャルと過去の演算結果による入力ポテンシャルとの間の差である入力変化ポテンシャルと、変換入力変化ポテンシャル群算出部による過去の演算結果である前記変換入力変化ポテンシャル群とを、要素として含んだものを前記入力変化ポテンシャル群として生成する入力変化ポテンシャル群生成部と、を備え、
前記演算部は、前記変換部、及び前記変換入力変化ポテンシャル群算出部がそれぞれ算出する前記変換残差変化ポテンシャル群、及び前記変換入力変化ポテンシャル群に基づいて、新たな入力ポテンシャルを演算するものであることが好ましい。
【0022】
この場合、上記入力変化ポテンシャル群生成部、及び変換入力変化ポテンシャル群算出部によって、変換残差変化ポテンシャル群に整合する好適な値とされた変換入力変化ポテンシャル群を算出することができる。
【0023】
具体的には、前記入力変化ポテンシャル群は、下記式(2)で示される数値群であるとともに、前記変換入力変化ポテンシャル群は、下記式(3)及び式(4)で示される数値群であることが好ましい。
【0024】
【数7】

【0025】
また、本発明は、第一原理計算に基づいて入力ポテンシャルから残差を得る演算、及び前記入力ポテンシャル及び前記残差に基づいて当該残差を減少させうる新たな入力ポテンシャルを得る演算を反復することで前記残差を減少させ、当該残差が充分に減少したと判断される所定の閾値以下となったときの解を電子ポテンシャルとして得る電子ポテンシャル演算方法であって、
初期値としての前記入力ポテンシャル、及び前記新たな入力ポテンシャルを得る演算に用いる条件数の上限値を入力する入力ステップと、
前記入力ポテンシャルに基づいて前記残差を演算する残差演算ステップと、
前記入力ポテンシャル及び前記残差に基づいて前記新たな入力ポテンシャルを演算する入力ポテンシャル演算ステップと、
前記入力ポテンシャル演算ステップ、及び前記残差演算ステップを反復演算させる反復ステップと、
前記残差が前記閾値以下であるか否かを判定するとともに、当該残差が前記閾値以下であると判定すると、前記入力ポテンシャル演算ステップ、及び前記残差演算ステップによる反復演算を停止させる停止ステップと、を備え、
前記入力ポテンシャル演算ステップは、
前記残差演算ステップの反復演算により演算される複数の残差から得られる演算前後の残差変化を示す残差変化ポテンシャル群を生成する残差変化ポテンシャル群生成ステップと、
前記残差変化ポテンシャル群生成ステップにより生成される前記残差変化ポテンシャル群を、前記条件数の上限値に基づいて特異値分解することにより、互いに独立性の高い要素群で構成される変換残差変化ポテンシャル群に近似変換する変換ステップと、
前記変換ステップにて変換される前記変換残差変化ポテンシャル群に基づいて、新たな入力ポテンシャルを演算する演算ステップと、を備え、
前記残差変化ポテンシャル群生成ステップは、現状の演算結果による残差と過去の演算結果による残差との間の差である残差変化ポテンシャルと、過去の演算結果による前記変換残差変化ポテンシャル群とを、要素として含んだものを前記残差変化ポテンシャル群として生成することを特徴としている。
【0026】
上記のように構成された電子ポテンシャル演算方法によれば、上述のように、効率よく速やかに残差を減少させることで演算の反復回数を減らし、速やかに電子ポテンシャルを演算することができる。
【0027】
また、本発明は、第一原理計算に基づいて入力ポテンシャルから残差を得る演算、及び前記入力ポテンシャル及び前記残差に基づいて当該残差を減少させうる新たな入力ポテンシャルを得る演算を反復することで前記残差を減少させ、当該残差が充分に減少したと判断される所定の閾値以下となったときの解を電子ポテンシャルとして得る電子ポテンシャル演算プログラムであって、
初期値としての前記入力ポテンシャル、及び前記新たな入力ポテンシャルを得る演算に用いる条件数の上限値を入力する入力ステップと、
前記入力ポテンシャルに基づいて前記残差を演算する残差演算ステップと、
前記入力ポテンシャル及び前記残差に基づいて前記新たな入力ポテンシャルを演算する入力ポテンシャル演算ステップと、
前記入力ポテンシャル演算ステップ、及び前記残差演算ステップを反復演算させる反復ステップと、
前記残差が前記閾値以下であるか否かを判定するとともに、当該残差が前記閾値以下であると判定すると、前記入力ポテンシャル演算ステップ、及び前記残差演算ステップによる反復演算を停止させる停止ステップと、を備え、
前記入力ポテンシャル演算ステップは、
前記残差演算ステップの反復演算により演算される複数の残差から得られる演算前後の残差変化を示す残差変化ポテンシャル群を生成する残差変化ポテンシャル群生成ステップと、
前記残差変化ポテンシャル群生成ステップにより生成される前記残差変化ポテンシャル群を、前記条件数の上限値に基づいて特異値分解することにより、互いに独立性の高い要素群で構成される変換残差変化ポテンシャル群に近似変換する変換ステップと、
前記変換ステップにて変換される前記変換残差変化ポテンシャル群に基づいて、新たな入力ポテンシャルを演算する演算ステップと、を備え、
前記残差変化ポテンシャル群生成ステップは、現状の演算結果による残差と過去の演算結果による残差との間の差である残差変化ポテンシャルと、過去の演算結果による前記変換残差変化ポテンシャル群とを、要素として含んだものを前記残差変化ポテンシャル群として生成することを特徴としている。
【0028】
上記のように構成された電子ポテンシャル演算プログラムによれば、上述のように、効率よく速やかに残差を残差させることで演算の反復回数を減らし、速やかに電子ポテンシャルを演算することができる。
【発明の効果】
【0029】
以上のように、本発明の電子ポテンシャル演算装置、電子ポテンシャル演算方法、及び電子ポテンシャル演算プログラムによれば、より効率よく速やかに電子ポテンシャルを演算することができる。
【発明を実施するための最良の形態】
【0030】
〔装置の全体構成〕
次に、本発明の好ましい実施形態について添付図面を参照しながら説明する。図1は、本発明の一実施形態に係る電子ポテンシャル演算装置の構成を示す図である。この電子ポテンシャル演算装置10は、第一原理計算に基づいて、対象となる固体や分子の電子ポテンシャルを算出するものであり、キーボードやマウス等からなる入力デバイス11と、ディスプレイや、プリンタ等からなる出力デバイス12と、各種情報を記憶するためのハードディスク等からなる記憶部13と、入力デバイス11から入力される各種データに基づいて電子ポテンシャルを演算するための処理を行うデータ処理部20とを備えており、コンピュータ等によって構成されている。
電子ポテンシャル演算装置10は、例えば、電子ポテンシャルの演算を行うためのプログラム(電子ポテンシャル演算プログラム)が記憶部13にインストールされており、そのプログラムが実行されることによりデータ処理部20が有している、後述の電子ポテンシャルの演算処理を行うための各機能部を実現する。
【0031】
データ処理部20は、上記第一原理計算を行うために必要な初期値としての電子ポテンシャルを算出するための初期ポテンシャル演算部21を有している。データ処理部20は、さらに、第一原理計算を反復演算するための機能部群として、残差演算部22と、入力ポテンシャル演算部23と、判定部24と、制御部27とを有している。
初期ポテンシャル演算部21は、当該装置10が受け付けた、演算対象の物性値や、後述する条件数の上限値S、緩和係数Aといった数値情報等に基づいて、初期値としての平均的な電子ポテンシャルを演算する。
残差演算部22は、入力値としての電子ポテンシャルが入力されると、この電子ポテンシャルに基づいて第一原理計算を行う。すなわち、残差演算部22は、入力された電子ポテンシャル(以下、入力ポテンシャルともいう)を上記式(b)にて表されるvinとして代入し、残差vresを演算する。入力ポテンシャルvinは、上記初期ポテンシャル演算部21又は入力ポテンシャル演算部23によって演算され、当該残差演算部22に提供される。
【0032】
判定部24は、上記残差演算部22により算出される残差vresが予め設定された目標値以下であるか否かを判定する機能を有している。なお、この目標値とは、前記残差vresが充分に減少したか否かを判断するための閾値であり、残差vresが目標値以下の場合、後述するように残差vresが充分に減少したものと判断される。一方、残差vresが目標値よりも大きい場合、残差vresが未だ充分に減少していないものと判断される。
なお、前記目標値は、残差vresが「0」に収束したとみなせる程度に充分に減少したと判断される値に設定されている。
【0033】
入力ポテンシャル演算部23は、上記判定部24の判定に基づいて前記残差vresが充分に減少していないと判断された場合、さらに残差演算部22によって残差vresの演算を行う際の新たな入力ポテンシャルを演算する機能を有している。
また、入力ポテンシャル演算部23は、現状の入力ポテンシャル及び残差に基づいて新たな入力ポテンシャルを演算するための機能部として、変化ポテンシャル群生成部23a、変換部23b、及び演算部23cを有している。これら各部の機能については、後に詳述する。
【0034】
制御部27は、データ処理部20の各機能部を包括的に制御する。例えば、判定部24によって残差が目標値よりも大きいと判定されると、制御部27は、残差vresは未だ充分に減少していないと判断し、さらに残差vresを演算するために入力ポテンシャル演算部24及び残差演算部22に演算を実行する旨の命令を出力する。また、判定部24によって残差vresが目標値以下と判定されると、制御部27は、残差vresが充分に減少したものと判断し、演算を停止する旨の命令を出力する。また、その時点での出力ポテンシャルを、電子ポテンシャルの演算結果として出力デバイス12に出力させる機能も有している。すなわち、制御部27は、残差vresが充分に減少するまで各部に残差を反復演算させるように制御するものであり、入力ポテンシャル演算部24によって演算された前記新たな入力ポテンシャルに基づいて、残差演算部22に残差vresを反復演算させる機能を有するとともに、判定部24によって残差vresが目標値以下であると判定された場合、当該残差vresが充分に減少したと判断し各部に反復演算を停止させる機能を有している。
【0035】
物性演算部30は、演算結果として得られる電子ポテンシャルを制御部27から受け取り、この電子ポテンシャルに基づいて、前記対象となる固体や分子に関する電子密度分布、前記固体や分子を構成する原子の結合状態、原子間の位置、導電性、及び熱伝導性等といった物性について、予測される物性予測値を演算し、出力デバイス12に出力させる機能を有している。すなわち、本実施形態の電子ポテンシャル演算装置10は、固体や分子の物性予測値の演算を行う物性予測値演算装置としての機能も有している。
また、データ処理部20は、上記演算の反復回数kをカウントするためのカウンタ28を機能的に有している。
次に、上記構成の電子ポテンシャル演算装置の動作について説明する。
【0036】
〔電子ポテンシャル演算装置の動作について〕
図2は、本実施形態の電子ポテンシャル演算装置の具体的な動作を示したフローチャートである。
本装置10において、電子ポテンシャルを算出しようとする金属又は分子等からなる固体を構成する原子の種類、位置、当該固体における一般的な電子密度といった演算対象の物性値や、入力ポテンシャル演算部23の演算に必要となる条件数の上限値S、緩和係数Aといった数値情報が入力されると(ステップS101)、データ処理部20の制御部27は、これらデータに基づいて初期値としての平均的な入力ポテンシャルを、初期ポテンシャル演算部21に演算させる(ステップS102)。
【0037】
図3は、上記ステップS101において、電子ポテンシャルを算出しようとする固体等の前記数値情報の入力を受け付けるためのディスプレイ表示の一例である。制御部27は、図3に示すように、数値情報を入力するための枠である入力枠部40を出力デバイス12であるディスプレイに表示する。この入力枠部40は、例えば、単位格子に含まれる各原子それぞれの3次元座標値が入力できるように設けられている。当該装置10の操作者は、マウス等で入力しようとする入力枠部40にカーソルを移動させた後、キーボード等を操作することで、数値情報を入力する。入力デバイス11、及び出力デバイス12は、この入力枠部40に入力された各数値情報を各原子の位置として受け付ける。つまり、入力デバイス11、出力デバイス、及び初期ポテンシャル演算部21は、初期値としての入力ポテンシャル、及び前記条件数の上限値を得るための入力手段を構成している。
なお、ここでは、原子の位置の数値情報を入力する際の態様を示したが、他の情報(原子の種類、電子密度、条件数の上限値、緩和係数A)についても、同様の入力画面が用意され、受け付けることができる。
【0038】
初期ポテンシャル演算部21が入力ポテンシャルを演算すると、制御部27は、カウンタ28における反復回数kを「1」に設定する(ステップS103)。
次に、制御部27は、上記初期値としての入力ポテンシャルvinkに基づいて、残差vreskを、残差演算部22に演算させる(ステップS104)。なお、このステップS104において、残差演算部22は、第一原理計算に基づいた上記式(a)及び式(b)で示される非線形方程式を解くことで残差vreskを演算する。
【0039】
次に、制御部27は、ステップS104で得られた残差vreskが所定の目標値T以下であるか否かを、判定部24に判定させる(ステップS105)。
判定部24によって残差vreskが目標値T以下であると判定された場合、制御部27は、残差vreskが充分に減少したものと判断し、入力ポテンシャル演算部23及び残差演算部22による反復演算を停止する(ステップS106)。
ここで、目標値Tは、上述したように、残差vreskが「0」に収束したとみなせる程度に充分に減少したと判断される値に設定されている。
上記式(a),(b)より、残差vreskが最終的に「0」に収束したときに真値としての解が得られるが、本実施形態では、真値とみなせる程度に近似した解が得られる程度に残差vreskが減少した段階で、当該残差が「0」に収束したと判断するために目標値Tを定めており、判定部24及び制御部27は、残差vreskが目標値T以下であると判定すると、残差vreskが「0」に収束したとみなせる程度に充分に減少したと判断する。
【0040】
制御部27は、入力ポテンシャル演算部23及び残差演算部22による反復演算を停止した後(ステップS106)、現状の入力ポテンシャルを式(a)の解とみなし、電子ポテンシャルの演算結果として出力デバイス12に出力させる(ステップS107)。
さらに、制御部27は、演算結果としての電子ポテンシャルを物性演算部30に出力する。演算結果を受け取った物性演算部30は、前記対象となる固体や分子に関する物性値についての予測値を演算解析し(ステップS108)、出力デバイス12に出力する(ステップS109)。
【0041】
一方、ステップS105において、判定部24により残差vreskが目標値Tより大きいと判定された場合、制御部27は、残差vreskが未だ充分に減少していないと判断し、ステップS110に進み、入力ポテンシャル演算部23に新たな入力ポテンシャルvink+1を演算させる(ステップS110)。なお、このステップS110における新たな入力ポテンシャルvink+1の演算の方法については後述する。
【0042】
ステップS110によって、新たな入力ポテンシャルが得られると、制御部27は、ステップS111に進み、カウンタ28の反復回数kに「1」を加え(ステップS111)、ステップS104に戻る。
制御部27は、ステップS110にて得られた新たな入力ポテンシャルvink+1に基づいて残差演算部22に、再度、新たな残差vresk+1を演算させ(ステップS104)、判定部24に新たな残差vresk+1を判定させる(ステップS105)。これを繰り返すことで、判定部24によって残差が目標値T以下と判定されるまで、上記演算を反復する。
演算を反復した結果、判定部24によって残差vreskが目標値T以下であると判定された場合は、ステップS106に進み、上述の通り処理がなされる。
【0043】
〔新たな入力ポテンシャルを算出する際の動作について〕
次に、ステップS110における、新たな入力ポテンシャルvink+1を算出する際の動作について説明する。
本実施形態の電子ポテンシャル演算装置10において、基本的には、上記式(c)に基づいて新たな入力ポテンシャルvink+1を算出するように構成されている。すなわち、仮の残差、及び仮の入力ポテンシャルを算出し、得られた値を上記式(c)中の残差vresk及び入力ポテンシャルvinkとして代入し演算することで、反復回数k+1における新たな入力ポテンシャルvink+1を得る。
【0044】
図4は、図2中ステップS110における、新たな入力ポテンシャルvink+1を算出する際の動作を示したフローチャートである。
制御部27は、判定部24により残差が目標値Tより大きいと判定され(ステップS105)、ステップS110に進むと、入力ポテンシャル演算部23に、カウンタ28の反復回数kの値が1であるか否かを判断させる(ステップS201)。
【0045】
反復回数kが1であると判断された場合、入力ポテンシャル演算部23は、ステップS202に進み、新たな入力ポテンシャルvink+1を、現状(反復回数k=1)における入力ポテンシャルvink、残差vresk、及び上記ステップS101にて入力された緩和係数Aに基づいて演算する(ステップS202)。
このとき、入力ポテンシャル演算部23は、下記式(5)により、新たな入力ポテンシャルvink+1を演算する。その後、図2に示すフローチャートに戻り、ステップS111に進んで、カウンタ28の反復回数kに「1」を加え(ステップS111)、制御部27は、新たな入力ポテンシャルvink+1に基づいて再度残差vreskの演算を残差演算部22に行わせる(ステップS104)。
【0046】
【数8】

【0047】
一方、図4中、ステップS201において反復回数kが1でないと判断された場合、入力ポテンシャル演算部23は、ステップS203に進み、変換残差変化ポテンシャル群Wresk、及び変換入力変化ポテンシャル群Winkを算出する(ステップS203)。なお、これら変換残差変化ポテンシャル群Wresk、及び変換入力変化ポテンシャル群Winkの内容ついては、後に詳述する。
【0048】
図5は、図4中ステップS203における、変換残差変化ポテンシャル群Wresk、及び変換入力変化ポテンシャル群Winkを算出する際の動作を示したフローチャートである。
図5において、入力ポテンシャル演算部23は、まず、反復回数kが2より大きいか否かを判断する(ステップS301)。
反復回数kが2より大きくないと判断したとき、すなわち、反復回数kが2である場合(図4中ステップS201において、k=1の場合は除外されているためである。)、入力ポテンシャル演算部23は、変化ポテンシャル群生成部23aに、下記式(6)、式(7)にそれぞれ示される残差変化ポテンシャルδvresk、及び入力変化ポテンシャル値δvinkを演算させ、さらにこれらに基づいて、下記式(8)、式(9)にそれぞれ示される残差変化ポテンシャル群ΔVresk、及び入力変化ポテンシャル群ΔVinkを生成させる(ステップS302)。
【0049】
【数9】

【0050】
残差変化ポテンシャルδvreskは、現状(反復回数がk)の演算結果である残差vreskと過去(反復回数がk−1)の演算結果である残差vresk-1との差を示す値であるが、後の演算を容易にするために、実質的な残差の差(vresk−vresk-1)をその絶対値で除している。
また、入力変化ポテンシャル値δvinkは、現状(反復回数がk)の演算結果である入力ポテンシャルvinkと過去(反復回数がk−1)の演算結果である入力ポテンシャルvink-1との差を示す値であるが、後の演算を容易にするために、上記残差変化ポテンシャルδvresに合わせて実質的な入力ポテンシャルの差(vink−vink-1)を実質的な残差の差(vresk−vresk-1)の絶対値で除している。
なお、過去(反復回数がk−1)の演算結果である残差vresk-1、及び入力ポテンシャルvink-1は、その演算時に、記憶部13に記憶されており、上記式(6)、(7)による演算の際、それを参照して演算を行う。
【0051】
残差変化ポテンシャル群ΔVreskは、残差変化ポテンシャルδvresλ(λ≦k)を要素として含む数値群であり、後に示すように、残差演算部22の反復演算により演算される複数の残差から得られる演算前後の残差変化を示すものであるが、ここでは、反復回数kが2であるときの値(δvreskのみ一つだけ)を要素として含むものとして生成される。
入力変化ポテンシャル群ΔVinkは、入力変化ポテンシャルδvinλ(λ≦k)を要素として含む数値群であり、後に示すように、入力ポテンシャル演算部23の反復演算により演算される複数の入力ポテンシャルから得られる演算前後の入力ポテンシャル変化を示すものであるが、ここでは、反復回数kが2であるときの値(δvinkのみ一つだけ)を要素として含むものとして生成される。
【0052】
次に、入力ポテンシャル演算部23は、変換部23bに、ステップS302にて得られた残差変化ポテンシャル群ΔVreskについて、ステップS101にて入力された条件数の上限値Sによって特異値分解させることにより、変換残差変化ポテンシャル群Wreskを算出させ、さらに、この変換残差変化ポテンシャル群Wreskに基づいて、有効部分抽出行列Bkを算出する(ステップS303)。
【0053】
次いで、入力ポテンシャル演算部23は、上記残差変化ポテンシャル群ΔVresk、入力変化ポテンシャル群ΔVink、及び有効部分抽出行列Bkに基づいて、変換入力変化ポテンシャル群Winkを変換部23bに算出させる(ステップS304)。
以上のようにして、入力ポテンシャル演算部23は、変換残差変化ポテンシャル群Wresk、及び変換入力変化ポテンシャル群Winkを算出する。
なお、上記特異値分解は、後述するように、複数の数値からなる数値群をベクトル群とみなして演算するものであるが、反復回数kが2の場合、残差変化ポテンシャル群ΔVresk、及び入力変化ポテンシャル群ΔVinkは、要素としての数値を一つしか持っていないため、実質的な演算は行われない。
【0054】
また、入力ポテンシャル演算部23は、算出した変換残差変化ポテンシャル群Wresk、及び変換入力変化ポテンシャル群Winkを記憶部13に記憶する。
上記ステップS303、S304における処理内容、及び上記有効部分抽出行列Bkについては、後に詳述する。
【0055】
その後、入力ポテンシャル演算部23は、図4中のフローチャートのステップS203に戻る。
【0056】
一方、図5中のステップS301において、反復回数kが2より大きいと判断したときには、入力ポテンシャル演算部23は、変化ポテンシャル群生成部23aに、上記式(6)、式(7)にそれぞれ示される現状の反復回数における残差変化ポテンシャルδvresk、及び入力変化ポテンシャル値δvinkを演算させる。さらに、これらと、記憶部13に記憶された過去(反復回数がk−1)の演算結果による変換残差変化ポテンシャル群Wresk-1、及び変換入力変化ポテンシャル群Wink-1に基づいて、下記式(10)、式(11)にそれぞれ示される残差変化ポテンシャル群ΔVresk、及び入力変化ポテンシャル群ΔVinkを生成させる(ステップS305)。
【0057】
【数10】

【0058】
ここで、変化ポテンシャル群生成部23aは、上記式(10)に示すように、過去(反復回数がk−1)の演算結果による変換残差変化ポテンシャル群Wresk-1と、現状(反復回数がk)の残差変化ポテンシャルδvresk、とを要素として含んだ数値群を残差変化ポテンシャル群ΔVreskとして生成する。
また、同様に、上記式(11)に示すように、過去(反復回数がk−1)の演算結果による変換入力変化ポテンシャル群Wink-1と、現状(反復回数がk)の入力変化ポテンシャル値δvink、とを要素として含んだ数値群を入力変化ポテンシャル群ΔVinkとして生成する。
【0059】
次に、入力ポテンシャル演算部23は、変換部23bに、ステップS305にて得られた残差変化ポテンシャル群ΔVreskを、ステップS101にて入力された条件数の上限値Sに基づいて特異値分解することにより、変換残差変化ポテンシャル群Wreskに変換し、さらに、この変換残差変化ポテンシャル群Wreskに基づいて、有効部分抽出行列Bkを算出する(ステップS303)。
【0060】
ここで、特異値分解とは、ある数値群をベクトル群とみなし、このベクトル群に含まれるベクトルの内、線形従属性の高いベクトル同士をまとめてしまい、線形独立性の高いベクトル(充分に違いの多い有意性の高い成分)のみを抽出し、互いに独立性の高いベクトル群で構成されるように近似変換するものであり、例えば、下記式(12)に示す数値群である残差変化ポテンシャル群ΔVreskを特異値分解すると、下記式(13)に示す数値群である変換残差変化ポテンシャル群Wreskを得ることができる。
【0061】
【数11】

【0062】
なお、上記式(12)において、lkは、反復回数kから過去の演算にさかのぼって参照すべき過去の演算結果としての要素の個数を示しており、上記式(13)において、mkは、変換残差変化ポテンシャル群Wreskに含まれる要素の個数を示している。
上記式(13)中の変換残差変化ポテンシャル群Wreskに含まれる要素である変換残差変化ポテンシャルwresλ(但し、k−mk+1≦λ≦k)は、それぞれ、特異値分解によって、残差変化ポテンシャル群ΔVreskに含まれる要素の内、線形従属性の高い要素について一つの要素にまとめられ、互いに線形独立性の高い要素のみが残るように近似変換された結果、得られる要素(値)である。従って、式(13)における列数としての要素の個数mkは、式(12)における変換前の列数としての要素の個数lk以下となるように定まる。つまり、個数mkは、特に設定せずとも、特異値分解による変換の際に、変換前(現状)の要素の個数lk以下の値に定まる。
また、本実施形態では、変換部23bは、残差変化ポテンシャル群ΔVreskについて、特異値分解を行うと同時に、直交変換も行う。
なお、特異値分解における条件数の上限値Sは、与えられた数値間の独立性がどの程度有意であるかどうかを判定する基準であり、対象の数値群を変換するに当たっての変換後の最大長さを最小長さで除した比であり誤差拡大率を設定するためのパラメータである。
【0063】
上記のように、変換部23bは、変化ポテンシャル群生成部23aにより生成される残差変化ポテンシャル群ΔVreskを、条件数の上限値Sによって特異値分解することにより、互いに独立性の高い要素群で構成される変換残差変化ポテンシャル群Wreskに近似変換するように構成されている。
【0064】
上記ステップS305にて変化ポテンシャル群生成部23aが生成する残差変化ポテンシャル群ΔVreskは、過去(反復回数がk−1)の演算結果による変換残差変化ポテンシャル群Wresk-1と、現状(反復回数がk)の残差変化ポテンシャルδvreskとによって構成されており、変換部23bは、この残差変化ポテンシャル群ΔVreskに対してさらに特異値分解を行うので、反復演算の際、変換部23bは、得られる過去の演算結果の全てについて特異値分解を行うことができ、過去の演算結果の全てを現状の演算に反映することができる。
【0065】
例えば、過去の演算にさかのぼって参照すべき過去の演算結果としての要素の個数lkを予め設定した場合、その参照範囲から外れるより古い過去の演算結果は、演算結果に反映されなくなるので、その中に有効な値が含まれていたとすれば、残差を速やかに減少させる上で、効率を低下させる要因となる。これに対して、本実施形態では、過去の演算結果の全てを現状の演算に反映することができるので、演算の効率を低下させることがない。
【0066】
また、本実施形態では、演算の際に参照すべき過去の演算結果の個数は、特異値分解による変換の際に、現状の個数以下の値に定まるので、過去の演算にさかのぼって参照すべき過去の演算結果としての要素の個数lkを予め設定する必要がない。
さらに、本実施形態では、特異値分解を行った過去の変換残差変化ポテンシャル群Wresk-1に現状の残差変化ポテンシャルδvreskを加えたものを残差変化ポテンシャル群ΔVreskとして更新して生成し、この生成された残差変化ポテンシャル群ΔVreskについて特異値分解して変換残差変化ポテンシャル群Wreskを算出する。このため、参照すべき過去の演算結果としての要素の個数を予め設定せずに演算を反復したとしても、変換残差変化ポテンシャル群Wreskに含まれる要素の個数が無駄に増大化するのを防止することができる。この結果、装置に作用する処理負荷を低減でき、より効率よく速やかに残差を減少させることができる。
【0067】
以上のように、変換残差変化ポテンシャル群Wreskは、反復演算ごとに得られる残差(残差変化ポテンシャル)を反映して更新される残差変化ポテンシャル群ΔVreskを、特異値分解により変換することによって得られる数値群である。
さらに、変換部23bは、上記のようにして得られた変換残差変化ポテンシャル群Wreskに基づいて、下記式(14)を満たす有効部分抽出行列Bkを算出する。
【0068】
【数12】

【0069】
有効部分抽出行列Bkは、残差変化ポテンシャル群ΔVreskから有効な部分を取り出す行列であり、後の演算に用いられる。
【0070】
次に、入力ポテンシャル演算部23は、ステップS304に進み、上記入力変化ポテンシャル群ΔVink、及び有効部分抽出行列Bkに基づいて、変換入力変化ポテンシャル群Winkを、変換部23bに算出させる(ステップS304)。
変換入力変化ポテンシャル群Winkは、下記式(15)によって求められる。すなわち、変換部23bは、入力変化ポテンシャル群ΔVinkに有効部分抽出行列Bkを乗することで、変換残差変化ポテンシャル群Wreskに整合する部分のみを抽出し、その抽出した部分を変換入力変化ポテンシャル群Winkとして得る。
【0071】
【数13】

【0072】
上記式(15)によって得られる変換入力変化ポテンシャル群Winkは、残差変化ポテンシャル群ΔVreskを特異値分解することで得られる変換残差変化ポテンシャル群Wreskに整合する数値群を構成する。つまり、有効部分抽出行列Bkは、数値群に対して反復回数kにおける特異値分解を行うための変換行列といえる。
また、入力ポテンシャル演算部23は、算出した変換残差変化ポテンシャル群Wresk、及び変換入力変化ポテンシャル群Winkを記憶部13に演算を行うごとに更新して記憶する。
【0073】
その後、入力ポテンシャル演算部23は、図4中のフローチャートのステップS203に戻る。
【0074】
以上のようにして、入力ポテンシャル演算部23は、図4中のフローチャートのステップS203において、変換残差変化ポテンシャル群Wresk、及び変換入力変化ポテンシャル群Winkを算出する。
【0075】
次に、入力ポテンシャル演算部23は、図4中ステップS204に進み、後述するパラメータxを演算部23cに算出させ(ステップS204)、上記各ステップにて算出した変換残差変化ポテンシャル群Wresk、変換入力変化ポテンシャル群Wink、及びパラメータxに加えて、現状の入力ポテンシャルvink、現状の残差vresk、及び緩和係数Aによって、新たな入力ポテンシャルvink+1を、演算部23cに演算させる(ステップS205)。
【0076】
ここで、ステップS204、及びS205において、演算部23cが、上記変換残差変化ポテンシャル群Wresk、及び変換入力変化ポテンシャル群Winkを用いて、新たな入力ポテンシャルvink+1を算出する処理について説明する。
【0077】
上述したように、新たな入力ポテンシャルvink+1は、上記式(c)(式(5))を基本として演算され、過去の演算結果を参照しつつ残差を減少させるためには、上記式(d)に基づいて、演算が行われる。
本実施形態においては、上記式(d)に代入される仮の残差、及び仮の入力ポテンシャルを、下記式(16)及び式(17)によって定義する。
【0078】
【数14】

【0079】
演算部23cは、式(16)、式(17)に示される仮の残差及び仮の入力ポテンシャルを求め、さらにこれらを上記式(c)(式(5))に代入することで、新たな入力ポテンシャルvink+1を算出する。
【0080】
上記式(16)において、「vresλ−vresλ-1」を「vresλ−vresλ-1」の絶対値で除しているが、これは、「vresλ−vresλ-1」によって表される数値群をベクトルとみなしたときにその長さが全て1となるように規格化するためである。これに合わせて、式(17)における「vinλ−vinλ-1」についても、同様に「vresλ−vresλ-1」の絶対値で除している。また、式(16)、式(17)中、パラメータxλは、仮の残差を最小化するときの変数であり、仮の残差を最小化したときの値を上記式(16)、式(17)に代入することで、仮の残差及び仮の入力ポテンシャルが算出される。
なお、本実施形態において、上記演算は、上述のステップS302、S305において、残差変化ポテンシャルδvresk、及び入力変化ポテンシャル値δvinkを演算するための式(6)、式(7)によって行われる。
式(16)、式(17)は、それぞれ上記式(6)、式(7)を適用することで、下記式(18)、式(19)のように表される。
【0081】
【数15】

【0082】
本実施形態では、上記式(18)、式(19)に対して過去の演算結果を反映させるために、上記式(8)〜(11)を適用する。その結果、仮の残差及び仮の入力ポテンシャルは、下記式(20)、式(21)のように表される。
【0083】
【数16】

【0084】
上記式(20)、式(21)中、パラメータ群Xkは、数値群である残差変化ポテンシャル群ΔVresk、及び入力変化ポテンシャル群ΔVinkに合わせて、下記式(22)に示すパラメータを要素とする数値群(行列)として表される。
【0085】
【数17】

【0086】
なお、式(20)中の残差変化ポテンシャル群ΔVreskは、上述したように、過去の演算結果による変換残差変化ポテンシャル群Wresk-1と、現状の残差変化ポテンシャルδvreskとによって構成された数値群であり、式(21)中の入力変化ポテンシャル群ΔVinkは、過去の演算結果による変換入力変化ポテンシャル群Wink-1と、現状の入力変化ポテンシャル値δvink、とによって構成された数値群であり、これらは、上述したように図5中のステップS302及びS305によって生成される。
【0087】
さらに本実施形態では、下記式(23)、式(24)に示すように、式(20)中の残差変化ポテンシャル群ΔVreskについて特異値分解を行い、入力変化ポテンシャル群ΔVinkについては、特異値分解に整合する演算を行い、得られる変換残差変化ポテンシャル群Wresk、及び、変換入力変化ポテンシャル群Winkを上記式(20)、式(21)に適用し、仮の残差及び仮の入力ポテンシャルを算出する。なお、変換残差変化ポテンシャル群Wreskは、図5中ステップS303にて算出され、変換入力変化ポテンシャル群Winkは、図5中ステップS304にて算出される。
【0088】
【数18】

【0089】
すなわち、演算部23cは、過去の変換残差変化ポテンシャル群Wresk-1を含む残差変化ポテンシャル群ΔVreskを特異値分解することで得た変換残差変化ポテンシャル群Wreskに基づいて、仮の残差を求める。
また同様に、演算部23cは、過去の変換入力変化ポテンシャル群Wink-1を含む入力変化ポテンシャル群ΔVinkから算出される変換残差変化ポテンシャル群Wreskに整合する変換入力変化ポテンシャル群Winkに基づいて、仮の入力ポテンシャルを算出する。
なお、上記式(23)、(24)中、mkは、上述したように、変換残差変化ポテンシャル群Wreskに含まれる要素の個数を示しており、特異値分解による変換によって定まる値である。
また、上記式(23)、式(24)において、パラメータ群Ykは、上記式(20)、式(21)におけるパラメータ群Xkに対応するものであり、下記式に示すように、変換残差変化ポテンシャル群Wresk、及び変換入力変化ポテンシャル群Winkに対応するmk個の(仮の残差を最小化するための変数である)パラメータyλを要素とする数値群(行列)として表される。
【0090】
【数19】

【0091】
ここで、上記式(23),(24)から仮の残差及び仮の入力ポテンシャルを算出するには、仮の残差を最小化するパラメータ群Y´k(パラメータy´λ)を求める必要がある。
仮の残差を最小化するパラメータ群Y´kは、上記式(23)より、下記式(25)のように表される。
【0092】
【数20】

【0093】
演算部23cは、上記式(25)に基づいて、ステップS203にて得られた変換残差変化ポテンシャル群Wreskを用いて、仮の残差を最小化するパラメータ群Y´kを算出する(ステップS204)。なお、この仮の残差を最小化するパラメータ群Y´kは、残差に対する変換残差変化ポテンシャル群Wreskの類似度を示している。
【0094】
次いで、演算部23cは、上記式(23),(24)それぞれに、式(25)で得られた仮の残差を最小化するパラメータ群Y´kを代入し、パラメータ群Y´kと変換残差変化ポテンシャル群Wreskとの一次結合、及び、パラメータ群Y´kと変換入力変化ポテンシャル群Winkとの一次結合を求めることで、仮の残差及び仮の入力ポテンシャルを算出する。
そして、この仮の残差及び仮の入力ポテンシャルを上記式(c)(式(5))に代入することで、新たな入力ポテンシャルvink+1を算出する(ステップS205)。
【0095】
ステップ205にて新たな入力ポテンシャルvink+1を得ると、ステップS110に戻り、制御部27は、ステップS111、ステップS104と進む。その後の処理は、上述の通りである。
【0096】
以上のようにして、本実施形態の電子ポテンシャル演算装置は、第一原理計算を反復演算することで、残差vreskが充分に減少したと判断しうる値まで減少させ、電子ポテンシャルを演算、算出することができる。
【0097】
上記のように構成された本実施形態の電子ポテンシャル演算装置10において、残差変化ポテンシャル群ΔVresは、変換部23bによる特異値分解によって、当該残差変化ポテンシャル群ΔVresに含まれる要素の内、線形従属性の高い要素について一つの要素にまとめられることで、互いに線形独立性の高い要素のみが残るように近似変換されるので、特異値分解後の変換残差変化ポテンシャル群Wresの要素の個数は、当該特異値分解の結果によって、残差変化ポテンシャル群ΔVresの要素の個数以下に定まる。
演算部は、変換残差変化ポテンシャル群Wresに基づいて演算を行うので、演算部23cによる演算の際に参照すべき過去の演算結果の個数は、変換残差変化ポテンシャル群Wresの要素の個数と一致する。すなわち、参照すべき過去の演算結果の個数である変換残差変化ポテンシャル群Wresの要素の個数は、特異値分解による変換によって定まるので、過去にさかのぼって参照すべき過去の演算結果の個数を予め設定する必要がない。
【0098】
すなわち、互いに残差が充分に減少したと判断されるまでの反復回数に大きく影響を及ぼす設定値である、参照すべき過去の演算結果の個数、及び条件数の上限値Sの内、参照すべき過去の演算結果の個数については、予め設定する必要がなくなるので、条件数の上限値Sについての好適な値の推定が容易となる。この結果、効率よく速やかに残差を減少させることが可能となる。従って、演算の反復回数を減らすことができ、速やかに電子ポテンシャルを演算することができる。
【0099】
さらに、本発明の電子ポテンシャル演算装置10では、特異値分解を行った過去の変換残差変化ポテンシャル群Wresk-1に現状の残差変化ポテンシャルδvreskを加えたものを残差変化ポテンシャル群ΔVreskとして更新して生成し、この生成された残差変化ポテンシャル群ΔVreskについて特異値分解して変換残差変化ポテンシャル群Wreskを算出する。このため、参照すべき過去の演算結果としての要素の個数を予め設定せずに演算を反復したとしても、変換残差変化ポテンシャル群Wreskに含まれる要素の個数が無駄に増大化することを防止することができる。この結果、装置に作用する処理負荷を低減でき、より効率よく速やかに残差を減少させることができる。
【0100】
〔効果の確認について〕
本発明者は、本実施形態による電子ポテンシャル演算装置10によって、実際に電子ポテンシャルの演算を行い、従来の方法(Anderson法)で演算を行った場合と比較してその効果の検証を行った。
演算対象としては、ZnOを採用し、原子位置の緩和まで行った場合の電子ポテンシャルを演算する場合の反復回数をカウントした。また、実施例としては、上記実施形態による電子ポテンシャル演算装置10を用いて演算を行い、比較例としては、Anderson法に基づいて演算を行い、両者の演算の反復回数を比較することで評価した。その結果を図6に示す。
【0101】
なお、演算に際して、緩和係数Aは、0.2(図6(a))と、1.6(図6(b))の2水準、条件数の上限値(図では逆数1/Sで示している)は、図6のように4水準に設定し、比較例における参照すべき過去の演算結果の個数lmaxは、4水準に設定した。また、図6中の実施例の欄における括弧内の数値は、反復演算する上で、自動的に定まった参照すべき過去の演算結果の個数mである。
【0102】
図6を見ると、実施例では、条件に関わらず、反復回数が40回前後と安定した数値が得られていることが判る。一方、比較例では、40回前後から最大で167回と条件の違いに対して数値の幅が大きくなっている。
また、条件によっては、実施例と比較例との差がほぼ同等である場合もあるが、全体として、実施例の場合の方が少ない反復回数となっていると言える。
【0103】
この結果より、本実施形態による電子ポテンシャル演算装置によれば、条件に関わらず、安定して少ない反復回数で演算を行うことで、反復回数を減らすことができ、より効率よく速やかに電子ポテンシャルを演算することができることが明らかとなった。
【0104】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した意味ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内での全ての変更が含まれることが意図される。
【図面の簡単な説明】
【0105】
【図1】本発明の一実施形態に係る電子ポテンシャル演算装置の構成を示す図である。
【図2】本実施形態の電子ポテンシャル演算装置の具体的な動作を示したフローチャートである。
【図3】数値情報の入力を受け付けるためのディスプレイ表示の一例である。
【図4】図2中ステップS110における、新たな入力ポテンシャルを算出する際の動作を示したフローチャートである。
【図5】図4中ステップS203における、変換残差変化ポテンシャル群、及び変換入力変化ポテンシャル群を算出する際の動作を示したフローチャートである。
【図6】電子ポテンシャルの演算を行い、演算の反復回数をカウントした結果を示す図であり、(a)は緩和係数Aが0.2の場合、(b)は緩和係数Aが1.6の場合の結果を示す図である。
【符号の説明】
【0106】
10 電子ポテンシャル演算装置
11 入力デバイス
12 出力デバイス
22 残差演算部
23 入力ポテンシャル演算部
23a 変化ポテンシャル群生成部(残差変化ポテンシャル群生成部、入力変化ポテンシャル群生成部)
23b 変換部(変換入力変化ポテンシャル群算出部)
23c 演算部
24 判定部
27 制御部(反復演算部)

【特許請求の範囲】
【請求項1】
第一原理計算に基づいて入力ポテンシャルから残差を得る演算、及び前記入力ポテンシャル及び前記残差に基づいて当該残差を減少させうる新たな入力ポテンシャルを得る演算を反復することで前記残差を減少させ、当該残差が充分に減少したと判断される所定の閾値以下となったときの解を電子ポテンシャルとして得る電子ポテンシャル演算装置であって、
初期値としての前記入力ポテンシャル、及び前記新たな入力ポテンシャルを得る演算に用いる条件数の上限値を入力するための入力手段と、
前記入力ポテンシャルに基づいて前記残差を演算する残差演算部と、
前記入力ポテンシャル及び前記残差に基づいて前記新たな入力ポテンシャルを演算する入力ポテンシャル演算部と、
前記入力ポテンシャル演算部によって演算された前記新たな入力ポテンシャルに基づいて、前記残差演算部に前記残差を反復演算させる反復演算部と、
前記残差が前記閾値以下であるか否かを判定するとともに、当該残差が前記閾値以下であると判定すると前記残差演算部による反復演算を停止させる制御部と、を備え、
前記入力ポテンシャル演算部は、
前記残差演算部の反復演算により演算される複数の残差から得られる演算前後の残差変化を示す残差変化ポテンシャル群を生成する残差変化ポテンシャル群生成部と、
前記残差変化ポテンシャル群生成部により生成される前記残差変化ポテンシャル群を、前記条件数の上限値に基づいて特異値分解することにより、互いに独立性の高い要素群で構成される変換残差変化ポテンシャル群に近似変換する変換部と、
前記変換部が変換した前記変換残差変化ポテンシャル群に基づいて、新たな入力ポテンシャルを演算する演算部と、を備え、
前記残差変化ポテンシャル群生成部は、現状の演算結果による残差と過去の演算結果による残差との間の差である残差変化ポテンシャルと、前記変換部による過去の演算結果である前記変換残差変化ポテンシャル群とを、要素として含んだものを前記残差変化ポテンシャル群として生成することを特徴とする電子ポテンシャル演算装置。
【請求項2】
前記残差変化ポテンシャル群は、下記式(1)で示される数値群である請求項1に記載の電子ポテンシャル演算装置。
【数1】

【請求項3】
前記入力ポテンシャル演算部は、さらに、当該入力ポテンシャル演算部の反復演算により演算される複数の入力ポテンシャルから得られる演算前後の入力ポテンシャル変化を示す入力変化ポテンシャル群より、前記変換残差変化ポテンシャル群に整合する変換入力変化ポテンシャル群を算出する変換入力変化ポテンシャル群算出部と、
現状の演算結果による入力ポテンシャルと過去の演算結果による入力ポテンシャルとの間の差である入力変化ポテンシャルと、変換入力変化ポテンシャル群算出部による過去の演算結果である前記変換入力変化ポテンシャル群とを、要素として含んだものを前記入力変化ポテンシャル群として生成する入力変化ポテンシャル群生成部と、を備え、
前記演算部は、前記変換部、及び前記変換入力変化ポテンシャル群算出部がそれぞれ算出する前記変換残差変化ポテンシャル群、及び前記変換入力変化ポテンシャル群に基づいて、新たな入力ポテンシャルを演算するものである請求項1又は2に記載の電子ポテンシャル演算装置。
【請求項4】
前記入力変化ポテンシャル群は、下記式(2)で示される数値群であるとともに、前記変換入力変化ポテンシャル群は、下記式(3)及び式(4)で示される数値群である請求項3に記載の電子ポテンシャル演算装置。
【数2】

【請求項5】
第一原理計算に基づいて入力ポテンシャルから残差を得る演算、及び前記入力ポテンシャル及び前記残差に基づいて当該残差を減少させうる新たな入力ポテンシャルを得る演算を反復することで前記残差を減少させ、当該残差が充分に減少したと判断される所定の閾値以下となったときの解を電子ポテンシャルとして得る電子ポテンシャル演算方法であって、
初期値としての前記入力ポテンシャル、及び前記新たな入力ポテンシャルを得る演算に用いる条件数の上限値を入力する入力ステップと、
前記入力ポテンシャルに基づいて前記残差を演算する残差演算ステップと、
前記入力ポテンシャル及び前記残差に基づいて前記新たな入力ポテンシャルを演算する入力ポテンシャル演算ステップと、
前記入力ポテンシャル演算ステップ、及び前記残差演算ステップを反復演算させる反復ステップと、
前記残差が前記閾値以下であるか否かを判定するとともに、当該残差が前記閾値以下であると判定すると、前記入力ポテンシャル演算ステップ、及び前記残差演算ステップによる反復演算を停止させる停止ステップと、を備え、
前記入力ポテンシャル演算ステップは、
前記残差演算ステップの反復演算により演算される複数の残差から得られる演算前後の残差変化を示す残差変化ポテンシャル群を生成する残差変化ポテンシャル群生成ステップと、
前記残差変化ポテンシャル群生成ステップにより生成される前記残差変化ポテンシャル群を、前記条件数の上限値に基づいて特異値分解することにより、互いに独立性の高い要素群で構成される変換残差変化ポテンシャル群に近似変換する変換ステップと、
前記変換ステップにて変換される前記変換残差変化ポテンシャル群に基づいて、新たな入力ポテンシャルを演算する演算ステップと、を備え、
前記残差変化ポテンシャル群生成ステップは、現状の演算結果による残差と過去の演算結果による残差との間の差である残差変化ポテンシャルと、過去の演算結果による前記変換残差変化ポテンシャル群とを、要素として含んだものを前記残差変化ポテンシャル群として生成することを特徴とする電子ポテンシャル演算方法。
【請求項6】
第一原理計算に基づいて入力ポテンシャルから残差を得る演算、及び前記入力ポテンシャル及び前記残差に基づいて当該残差を減少させうる新たな入力ポテンシャルを得る演算を反復することで前記残差を減少させ、当該残差が充分に減少したと判断される所定の閾値以下となったときの解を電子ポテンシャルとして得る電子ポテンシャル演算プログラムであって、
初期値としての前記入力ポテンシャル、及び前記新たな入力ポテンシャルを得る演算に用いる条件数の上限値を入力する入力ステップと、
前記入力ポテンシャルに基づいて前記残差を演算する残差演算ステップと、
前記入力ポテンシャル及び前記残差に基づいて前記新たな入力ポテンシャルを演算する入力ポテンシャル演算ステップと、
前記入力ポテンシャル演算ステップ、及び前記残差演算ステップを反復演算させる反復ステップと、
前記残差が前記閾値以下であるか否かを判定するとともに、当該残差が前記閾値以下であると判定すると、前記入力ポテンシャル演算ステップ、及び前記残差演算ステップによる反復演算を停止させる停止ステップと、を備え、
前記入力ポテンシャル演算ステップは、
前記残差演算ステップの反復演算により演算される複数の残差から得られる演算前後の残差変化を示す残差変化ポテンシャル群を生成する残差変化ポテンシャル群生成ステップと、
前記残差変化ポテンシャル群生成ステップにより生成される前記残差変化ポテンシャル群を、前記条件数の上限値に基づいて特異値分解することにより、互いに独立性の高い要素群で構成される変換残差変化ポテンシャル群に近似変換する変換ステップと、
前記変換ステップにて変換される前記変換残差変化ポテンシャル群に基づいて、新たな入力ポテンシャルを演算する演算ステップと、を備え、
前記残差変化ポテンシャル群生成ステップは、現状の演算結果による残差と過去の演算結果による残差との間の差である残差変化ポテンシャルと、過去の演算結果による前記変換残差変化ポテンシャル群とを、要素として含んだものを前記残差変化ポテンシャル群として生成することを特徴とする電子ポテンシャル演算プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2009−229402(P2009−229402A)
【公開日】平成21年10月8日(2009.10.8)
【国際特許分類】
【出願番号】特願2008−78227(P2008−78227)
【出願日】平成20年3月25日(2008.3.25)
【出願人】(000002130)住友電気工業株式会社 (12,747)
【Fターム(参考)】