(57)【要約】【課題】  速やかに電子状態計算を行うことができる電子状態演算装置、電子状態演算方法、及び電子状態演算プログラムを提供する。【解決手段】  本発明の電子状態演算装置１は、電子の固有状態に関する固有値問題の残差を反復演算し当該残差を減少させることで電子の固有状態を得る演算部１１と、前記残差に減少停滞が発生しているか否かを判定する停滞判定部１２とを備えている。さらに、電子状態演算装置１は、前記残差に減少停滞が発生していないと判定された場合に現状及び過去に演算された複数の入力ポテンシャルに基づいて新たな入力ポテンシャルを演算する第一の入力ポテンシャル演算部１０ｂと、前記残差に減少停滞が発生していると判定された場合に過去に演算された複数の入力ポテンシャルの内の一の新たな入力ポテンシャルに基づいて新たな入力ポテンシャルを演算する第二入力ポテンシャル演算部１０ｃとを有する演算制御部１０を備えている。【選択図】      図１
2010073182.tif 000002
【特許請求の範囲】
【請求項１】
第一原理計算に基づいて、入力ポテンシャルから残差ポテンシャルを求めるための演算を反復し、前記残差ポテンシャルを減少させることにより電子の固有状態及び電子間ポテンシャルを求める電子状態演算装置であって、
前記入力ポテンシャルに対応する、電子の固有状態を演算する固有状態演算部と、
前記電子の固有状態から残差ポテンシャルを演算する残差ポテンシャル演算部と、
前記残差ポテンシャルを減少させうる新たな入力ポテンシャルを演算し、前記新たな入力ポテンシャルを前記固有状態演算部に与えることで前記残差ポテンシャル演算部に前記残差ポテンシャルを反復演算させ、当該残差ポテンシャルを減少させる演算制御部と、を備え、
前記固有状態演算部は、
前記電子の固有状態に関する固有値問題の残差を反復演算し当該残差を減少させることで前記固有値問題を解き、前記電子の固有状態を得る演算部と、
前記演算部による前記固有値問題の残差の反復演算において、前記固有値問題の残差の減少が停滞しているか否かを判定し、前記残差の減少が停滞していると判定すると前記演算部の反復演算を中止させる停滞判定部と、を備え、
前記演算制御部は、
前記停滞判定部により前記固有値問題の残差の減少が停滞していないと判定された場合に、現状及び過去に演算された複数の入力ポテンシャル、及びこれらに対応して演算された複数の残差ポテンシャルに基づいて前記新たな入力ポテンシャルを演算する第一の入力ポテンシャル演算部と、
前記停滞判定部により前記固有値問題の残差の減少が停滞していると判定された場合に、過去に演算された複数の入力ポテンシャルの内の前記第一の入力ポテンシャル演算部が前記新たな入力ポテンシャルを演算するために用いる数より少ない数の入力ポテンシャル、及びこれに対応して演算された残差ポテンシャルに基づいて前記新たな入力ポテンシャルを演算する第二の入力ポテンシャル演算部と、を備えていることを特徴とする電子状態演算装置。
【請求項２】
前記第二の入力ポテンシャル演算部は、過去に演算された複数の入力ポテンシャルの内の一の入力ポテンシャル、及びこれに対応して演算された一の残差ポテンシャルに基づいて前記新たな入力ポテンシャルを演算する請求項１に記載の電子状態演算装置。
【請求項３】
前記第二の入力ポテンシャル演算部は、前記固有値問題の残差の減少が停滞していると判定される直前に演算された入力ポテンシャル、及びこれに対応して演算された残差ポテンシャルに基づいて前記新たな入力ポテンシャルを演算する請求項２に記載の電子状態演算装置。
【請求項４】
前記演算部は、所定数の電子それぞれについての固有状態を得るものであり、
前記停滞判定部は、
現状の前記固有値問題の残差と、過去に演算された固有値問題の残差との差である残差変化が予め定められた第一の閾値よりも小さいか否かを、前記所定数の電子についての固有状態それぞれについて判定し、前記残差変化が前記第一の閾値よりも小さいと判定された演算結果が得られた前記固有状態の個数を、前記演算部の反復演算の間、積算する積算部と、
前記積算部が積算した積算値が、予め定められた第二の閾値よりも大きいか否かを判定し、前記第二の閾値よりも大きいと判定すると、前記残差の減少が停滞しているものと判定する判定部と、を備えている請求項１〜３の内いずれか一項に記載の電子状態演算装置。
【請求項５】
第一原理計算に基づいて、入力ポテンシャルから残差ポテンシャルを求めるための演算を反復し、前記残差ポテンシャルを減少させることにより電子の固有状態及び電子間ポテンシャルを求める電子状態演算方法であって、
前記入力ポテンシャルに対応する、電子の固有状態を演算する固有状態演算ステップと、
前記電子の固有状態から残差ポテンシャルを演算する残差ポテンシャル演算ステップと、
前記残差ポテンシャルを減少させうる新たな入力ポテンシャルを演算し、前記新たな入力ポテンシャルに基づいて前記固有状態演算ステップ及び前記残差ポテンシャル演算ステップを反復演算して、前記残差ポテンシャルを減少させる減少ステップと、を備え、
前記固有状態演算ステップは、
前記電子の固有状態に関する固有値問題の残差を反復演算し当該残差を減少させることで前記固有値問題を解き、前記電子の固有状態を得る演算ステップと、
前記演算ステップによる前記固有値問題の残差の反復演算において、前記固有値問題の残差の減少が停滞しているか否かを判定し、前記残差の減少が停滞していると判定すると前記演算ステップにおける反復演算を中止させる停滞判定ステップと、を備え、
前記減少ステップは、
前記停滞判定ステップにおいて前記固有値問題の残差の減少が停滞していないと判定された場合に、現状及び過去に演算された複数の入力ポテンシャル、及びこれらに対応して演算された複数の前記残差ポテンシャルに基づいて前記新たな入力ポテンシャルを演算する第一の入力ポテンシャル演算ステップと、
前記停滞判定ステップにおいて前記固有値問題の残差の減少が停滞していると判定された場合に、過去に演算された複数の入力ポテンシャルの内の前記第一の入力ポテンシャル演算ステップにて前記新たな入力ポテンシャルを演算するために用いる数より少ない数の入力ポテンシャル、及びこれに対応して演算された残差ポテンシャルに基づいて前記新たな入力ポテンシャルを演算する第二の入力ポテンシャル演算ステップと、を備えていることを特徴とする電子状態演算方法。
【請求項６】
第一原理計算に基づいて、入力ポテンシャルから残差ポテンシャルを求めるための演算を反復し、前記残差ポテンシャルを減少させることにより電子の固有状態及び電子間ポテンシャルを求める電子状態演算をコンピュータに実行させるための電子状態演算プログラムであって、
前記入力ポテンシャルに対応する、電子の固有状態を演算する固有状態演算ステップと、
前記電子の固有状態から残差ポテンシャルを演算する残差ポテンシャル演算ステップと、
前記残差ポテンシャルを減少させうる新たな入力ポテンシャルを演算し、前記新たな入力ポテンシャルに基づいて前記固有状態演算ステップ及び前記残差ポテンシャル演算ステップを反復演算して、前記残差ポテンシャルを減少させる減少ステップと、を備え、
前記固有状態演算ステップは、
前記電子の固有状態に関する固有値問題の残差を反復演算し当該残差を減少させることで前記固有値問題を解き、前記電子の固有状態を得る演算ステップと、
前記演算ステップによる前記固有値問題の残差の反復演算において、前記固有値問題の残差の減少が停滞しているか否かを判定し、前記残差の減少が停滞していると判定すると前記演算ステップにおける反復演算を中止させる停滞判定ステップと、を備え、
前記減少ステップは、
前記停滞判定ステップにおいて前記固有値問題の残差の減少が停滞していないと判定された場合に、現状及び過去に演算された複数の入力ポテンシャル、及びこれらに対応して演算された複数の前記残差ポテンシャルに基づいて前記新たな入力ポテンシャルを演算する第一の入力ポテンシャル演算ステップと、
前記停滞判定ステップにおいて前記固有値問題の残差の減少が停滞していると判定された場合に、過去に演算された複数の入力ポテンシャルの内の前記第一の入力ポテンシャル演算ステップにて前記新たな入力ポテンシャルを演算するために用いる数より少ない数の入力ポテンシャル、及びこれに対応して演算された残差ポテンシャルに基づいて前記新たな入力ポテンシャルを演算する第二の入力ポテンシャル演算ステップと、を備えていることを特徴とする電子状態演算プログラム。
【請求項７】
第一原理計算に基づいて、入力ポテンシャルから残差ポテンシャルを求めるための演算を反復し、前記残差ポテンシャルを減少させることにより電子の固有状態及び電子間ポテンシャルを求める電子状態演算装置であって、
前記電子の固有状態及び前記電子間ポテンシャルを求めるための対象物質の基本格子ベクトル、及び前記対象物質を構成する複数の構成原子それぞれの位置ベクトルに基づいて、前記入力ポテンシャルの初期値を求め、前記初期値に基づいて、電子の固有状態及び電子間ポテンシャルを演算する電子状態演算部と、
前記電子状態演算部が演算する前記電子の固有状態及び前記電子間ポテンシャルに基づいて、前記対象物質の新たな基本格子ベクトル、及び前記対象物質を構成する複数の構成原子それぞれの新たな位置ベクトルを演算し、この新たな基本格子ベクトル及び新たな位置ベクトルを前記電子状態演算部に与えることで、当該電子状態演算部に、前記電子間ポテンシャル、及び前記電子の固有状態を反復演算させ、かつ自身は前記基本格子ベクトル、及び前記位置ベクトルを反復演算する原子位置演算部と、を備え、
前記電子状態演算部は、前記原子位置演算部による反復演算において演算される現状及び過去の基本格子ベクトル、及び位置ベクトルに基づいて、前記入力ポテンシャルの初期値を求めるものであり、
さらに、前記電子状態演算部は、
前記入力ポテンシャルに対応する、電子の固有状態を演算する固有状態演算部と、
前記電子の固有状態から残差ポテンシャルを演算する残差ポテンシャル演算部と、
前記初期値を前記固有状態演算部に与えることで前記残差ポテンシャルを減少させうる新たな入力ポテンシャルを演算させ、さらに、前記新たな入力ポテンシャルを前記固有状態演算部に与えることで前記残差ポテンシャル演算部に前記残差ポテンシャルを反復演算させ、当該残差ポテンシャルを減少させることで前記電子間ポテンシャルを得る演算制御部と、を備え、
前記固有状態演算部は、
前記電子の固有状態に関する固有値問題の残差を反復演算し当該残差を減少させることで前記固有値問題を解き、前記電子の固有状態を得る演算部と、
前記演算部による前記固有値問題の残差の反復演算において、前記固有値問題の残差の減少が停滞しているか否かを判定し、前記残差の減少が停滞していると判定すると前記演算部の反復演算を中止させる停滞判定部と、を備え、
前記演算制御部は、
前記演算制御部による反復演算の現状及び過去の演算において行われる前記停滞判定部による判定結果を参照し、現状の演算において前記固有値問題の残差の減少が停滞しているか否かを判断するとともに、現状の演算において前記残差の減少が停滞していると判断する場合にはさらに前記残差の減少の停滞が現状の演算と過去の演算との間で連続して発生しているか否かを判断する判断部と、
前記判断部により、現状の演算において前記固有値問題の残差の減少が停滞していないと判断された場合に、現状及び過去に演算された複数の入力ポテンシャル、及びこれらに対応して演算された複数の残差ポテンシャルに基づいて前記新たな入力ポテンシャルを演算する第一の入力ポテンシャル演算部と、
前記判断部により、現状の演算において前記固有値問題の残差の減少が停滞していると判断されかつ前記残差の減少の停滞が現状の演算と過去の演算との間で連続して発生していないと判断された場合に、過去に演算された複数の入力ポテンシャルの内の前記第一の入力ポテンシャル演算部が前記新たな入力ポテンシャルを演算するために用いる数より少ない数の入力ポテンシャル、及びこれに対応して演算された残差ポテンシャルに基づいて前記新たな入力ポテンシャルを演算する第二の入力ポテンシャル演算部と、
前記判断部により、現状の演算において前記固有値問題の残差の減少が停滞していると判断されかつ前記残差の減少の停滞が現状の演算と過去の演算との間で連続して発生していると判断された場合に、前記原子位置演算部による反復演算において演算される現状の基本格子ベクトル、及び位置ベクトルに基づいて前記新たな入力ポテンシャルを演算する第三の入力ポテンシャル演算部と、を備えていることを特徴とする電子状態演算装置。
【請求項８】
第一原理計算に基づいて、入力ポテンシャルから残差ポテンシャルを求めるための演算を反復し、前記残差ポテンシャルを減少させることにより電子の固有状態及び電子間ポテンシャルを求める電子状態演算方法であって、
前記電子の固有状態及び前記電子間ポテンシャルを求めるための対象物質の基本格子ベクトル、及び前記対象物質を構成する複数の構成原子それぞれの位置ベクトルに基づいて、前記入力ポテンシャルの初期値を求める初期値演算ステップと、
前記初期値演算ステップにより演算される前記初期値に基づいて、電子の固有状態及び電子間ポテンシャルを演算する電子状態演算ステップと、
前記電子状態演算ステップにより演算される前記電子の固有状態及び前記電子間ポテンシャルに基づいて、前記対象物質の新たな基本格子ベクトル、及び前記対象物質を構成する複数の構成原子それぞれの新たな位置ベクトルを演算し、この新たな基本格子ベクトル及び新たな位置ベクトルを前記初期値演算部に与えることで、当該初期値演算部及び前記電子状態演算部に、前記基本格子ベクトル、前記位置ベクトル、前記電子間ポテンシャル、及び前記電子の固有状態を反復演算させる原子位置演算ステップと、を備え、
前記初期値演算ステップは、前記原子位置演算ステップによる反復演算において演算される現状及び過去の基本格子ベクトル、及び位置ベクトルに基づいて、前記入力ポテンシャルの初期値を求めるものであり、
前記電子状態演算ステップは、
前記入力ポテンシャルに対応する、電子の固有状態を演算する固有状態演算ステップと、
前記電子の固有状態から残差ポテンシャルを演算する残差ポテンシャル演算ステップと、
前記初期値演算部による前記初期値を前記固有状態演算部に与えることで前記残差ポテンシャルを減少させうる新たな入力ポテンシャルを演算させ、さらに、前記新たな入力ポテンシャルを前記固有状態演算部に与えることで前記残差ポテンシャル演算部に前記残差ポテンシャルを反復演算させ、当該残差ポテンシャルを減少させることで前記電子間ポテンシャルを得る演算制御ステップと、を備え、
前記固有状態演算ステップは、
前記電子の固有状態に関する固有値問題の残差を反復演算し当該残差を減少させることで前記固有値問題を解き、前記電子の固有状態を得る演算ステップと、
前記演算ステップによる前記固有値問題の残差の反復演算において、前記固有値問題の残差の減少が停滞しているか否かを判定し、前記残差の減少が停滞していると判定すると前記演算部の反復演算を中止させる停滞判定ステップと、を備え、
前記演算制御ステップは、
前記演算制御ステップによる反復演算の現状及び過去の演算において行われる前記停滞判定ステップによる判定結果を参照し、現状の演算において前記固有値問題の残差の減少が停滞しているか否かを判断するとともに、現状の演算において前記残差の減少が停滞していると判断する場合にはさらに前記残差の減少の停滞が現状の演算と過去の演算との間で連続して発生しているか否かを判断する判断ステップと、
前記判断ステップにより、現状の演算において前記固有値問題の残差の減少が停滞していないと判断された場合に、現状及び過去に演算された複数の入力ポテンシャル、及びこれらに対応して演算された複数の残差ポテンシャルに基づいて前記新たな入力ポテンシャルを演算する第一の入力ポテンシャル演算ステップと、
前記判断ステップにより、現状の演算において前記固有値問題の残差の減少が停滞していると判断されかつ前記残差の減少の停滞が現状の演算と過去の演算との間で連続して発生していないと判断された場合に、過去に演算された複数の入力ポテンシャルの内の前記第一の入力ポテンシャル演算ステップにて前記新たな入力ポテンシャルを演算するために用いる数より少ない数の入力ポテンシャル、及びこれに対応して演算された残差ポテンシャルに基づいて前記新たな入力ポテンシャルを演算する第二の入力ポテンシャル演算ステップと、
前記判断ステップにより、現状の演算において前記固有値問題の残差の減少が停滞していると判断されかつ前記残差の減少の停滞が現状の演算と過去の演算との間で連続して発生していると判断された場合に、前記原子位置演算ステップによる反復演算において演算される現状の基本格子ベクトル、及び位置ベクトルに基づいて前記新たな入力ポテンシャルを演算する第三の入力ポテンシャル演算ステップと、を備えていることを特徴とする電子状態演算方法。
【請求項９】
第一原理計算に基づいて、入力ポテンシャルから残差ポテンシャルを求めるための演算を反復し、前記残差ポテンシャルを減少させることにより電子の固有状態及び電子間ポテンシャルを求める電子状態演算をコンピュータに実行させるための電子状態演算プログラムであって、
前記電子の固有状態及び前記電子間ポテンシャルを求めるための対象物質の基本格子ベクトル、及び前記対象物質を構成する複数の構成原子それぞれの位置ベクトルに基づいて、前記入力ポテンシャルの初期値を求める初期値演算ステップと、
前記初期値演算ステップにより演算される前記初期値に基づいて、電子の固有状態及び電子間ポテンシャルを演算する電子状態演算ステップと、
前記電子状態演算ステップにより演算される前記電子の固有状態及び前記電子間ポテンシャルに基づいて、前記対象物質の新たな基本格子ベクトル、及び前記対象物質を構成する複数の構成原子それぞれの新たな位置ベクトルを演算し、この新たな基本格子ベクトル及び新たな位置ベクトルを前記初期値演算部に与えることで、当該初期値演算部及び前記電子状態演算部に、前記基本格子ベクトル、前記位置ベクトル、前記電子間ポテンシャル、及び前記電子の固有状態を反復演算させる原子位置演算ステップと、を備え、
前記初期値演算ステップは、前記原子位置演算ステップによる反復演算において演算される現状及び過去の基本格子ベクトル、及び位置ベクトルに基づいて、前記入力ポテンシャルの初期値を求めるものであり、
前記電子状態演算ステップは、
前記入力ポテンシャルに対応する、電子の固有状態を演算する固有状態演算ステップと、
前記電子の固有状態から残差ポテンシャルを演算する残差ポテンシャル演算ステップと、
前記初期値演算部による前記初期値を前記固有状態演算部に与えることで前記残差ポテンシャルを減少させうる新たな入力ポテンシャルを演算させ、さらに、前記新たな入力ポテンシャルを前記固有状態演算部に与えることで前記残差ポテンシャル演算部に前記残差ポテンシャルを反復演算させ、当該残差ポテンシャルを減少させることで前記電子間ポテンシャルを得る演算制御ステップと、を備え、
前記固有状態演算ステップは、
前記電子の固有状態に関する固有値問題の残差を反復演算し当該残差を減少させることで前記固有値問題を解き、前記電子の固有状態を得る演算ステップと、
前記演算ステップによる前記固有値問題の残差の反復演算において、前記固有値問題の残差の減少が停滞しているか否かを判定し、前記残差の減少が停滞していると判定すると前記演算部の反復演算を中止させる停滞判定ステップと、を備え、
前記演算制御ステップは、
前記演算制御ステップによる反復演算の現状及び過去の演算において行われる前記停滞判定ステップによる判定結果を参照し、現状の演算において前記固有値問題の残差の減少が停滞しているか否かを判断するとともに、現状の演算において前記残差の減少が停滞していると判断する場合にはさらに前記残差の減少の停滞が現状の演算と過去の演算との間で連続して発生しているか否かを判断する判断ステップと、
前記判断ステップにより、現状の演算において前記固有値問題の残差の減少が停滞していないと判断された場合に、現状及び過去に演算された複数の入力ポテンシャル、及びこれらに対応して演算された複数の残差ポテンシャルに基づいて前記新たな入力ポテンシャルを演算する第一の入力ポテンシャル演算ステップと、
前記判断ステップにより、現状の演算において前記固有値問題の残差の減少が停滞していると判断されかつ前記残差の減少の停滞が現状の演算と過去の演算との間で連続して発生していないと判断された場合に、過去に演算された複数の入力ポテンシャルの内の前記第一の入力ポテンシャル演算ステップにて前記新たな入力ポテンシャルを演算するために用いる数より少ない数の入力ポテンシャル、及びこれに対応して演算された残差ポテンシャルに基づいて前記新たな入力ポテンシャルを演算する第二の入力ポテンシャル演算ステップと、
前記判断ステップにより、現状の演算において前記固有値問題の残差の減少が停滞していると判断されかつ前記残差の減少の停滞が現状の演算と過去の演算との間で連続して発生していると判断された場合に、前記原子位置演算ステップによる反復演算において演算される現状の基本格子ベクトル、及び位置ベクトルに基づいて前記新たな入力ポテンシャルを演算する第三の入力ポテンシャル演算ステップと、を備えていることを特徴とする電子状態演算プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、第一原理計算に基づいて、電子の固有状態及び電子間ポテンシャルといった電子状態を演算するための電子状態演算装置、電子状態演算方法、及び電子状態演算プログラムに関する。
【背景技術】
【０００２】
一般に、金属や無機物質等の基本的な物性を求めるために、原子や電子の状態を計算によって求める電子状態計算が行われている。
この電子状態計算は、まず、当該計算の対象となる対象物質における電子の固有状態を演算し、この固有状態に基づいて電子間ポテンシャルを演算し、さらにこの電子間ポテンシャルに基づいて前記対象物質を構成する原子の位置を演算するといった手法が採られる。
【０００３】
上記各演算は、それぞれが、他の演算によって得られた演算結果を用いて自己無撞着な非線形方程式について演算を反復することでその解が求められる。すなわち、各演算は、前記非線形方程式について試行錯誤的に何度も反復演算し、その誤差を「０」に収束したとみなせる程度にまで充分に減少させて解を求める。このため、それぞれの反復回数を互いに乗じた回数の演算を要することとなる。
例えば、上記電子間ポテンシャルを演算するには、下記式（１）に示すような、自己無撞着な非線形方程式Ｆを解くことで行われる。なお、式（１）中、ｖは電子間ポテンシャルとしての入力値である。
非線形方程式  Ｆ（ｖ）  ＝  ０  ・・・・  （１）
【０００４】
具体的には、入力値ｖinによる式（１）の解を出力値ｖoutとすると、誤差としての残差ｖresは、下記式（２）のように示される。
ｖres  ＝  ｖout  −  ｖin  ・・・・  （２）
【０００５】
上記非線形方程式Ｆは、電子の固有状態の演算結果を含んだ関数であり、電子の固有状態（固有エネルギ、波動関数）から出力値ｖoutが求められる。
一方、電子の固有状態は、入力値ｖinに基づいて反復演算を行うことにより得られるものである。つまり、電子間ポテンシャルの演算においては、設定された入力値ｖinによって、電子の固有状態を反復演算し、得られた電子の固有状態から出力値ｖoutを求める。そして、この入力値ｖinから出力値ｖoutを求める演算を反復することで、これら出力値ｖoutと入力値ｖinとの差である残差ｖresを「０」に収束したとみなせる程度に充分に減少させ、式（１）に係る非線形方程式の解を得る。
【０００６】
入力値ｖinは、予め初期値が設定される。そして、この残差ｖres及び初期値としての入力値ｖinに基づいて、新たな入力値ｖinを設定し、再度残差ｖresを演算する。このような演算を、入力値ｖinを調整しつつ反復することで、残差ｖresを減少させ、残差ｖresが充分に減少し「０」に収束したとみなせる程度の値となったときの入力値ｖin、又は出力値ｖoutを上記式（１）を満たす解とし、入力値ｖin、又は出力値ｖoutを電子間ポテンシャルとして得る。
【０００７】
ここで、上記新たな入力値ｖinを求めるには、以下の方法が採られる。すなわち、演算の反復回数をｋとするとき、反復回数ｋにおける入力値ｖin(k)及び残差ｖres(k)は既知であるので、反復回数ｋ＋１における新たな入力値ｖink+1を下記式（３）で予測する。なお、式（３）中、緩和係数Ｃは、反復回数ｋ＋１における残差ｖres(k+1)が反復回数ｋにおける残差ｖres(k)よりも小さい値となることが期待される値を選んで設定される。
【０００８】
【数１】
2010073182.tif 000003
【０００９】
上述の演算において、より速やかに残差ｖres(k)を減少させうる新たな入力値ｖin(k+1)を求めるための方法として、Ａｎｄｅｒｓｏｎ法や、多重割線型Ｂｒｏｙｄｅｎ法と呼ばれる方法が知られている（例えば、非特許文献１及び２参照）。
上記方法によれば、過去の演算結果としての入力値ｖin(λ)と残差ｖres(λ)（λ≦ｋ）を参照し、新たな入力値を求める方法が提案されている。非特許文献１によれば、参照する過去の演算結果の数の上限は５程度で十分とされている。また、非特許文献２によれば、参照する過去の演算結果の数の上限は９で十分とされている。
【００１０】
【非特許文献１】Ｖ．  Ｅｙｅｒｔ，「反復ベクトルの収束加速方法についての比較研究（Ａ  Ｃｏｍｐａｒａｔｉｖｅ  Ｓｔｕｄｙ  ｏｎ  Ｍｅｔｈｏｄｓ  ｆｏｒ  Ｃｏｎｖｅｒｇｅｎｃｅ  Ａｃｃｅｌｅｒａｔｉｏｎ  ｏｆ  Ｉｔｅｒａｔｉｖｅ  Ｖｅｃｔｏｒ  Ｓｅｑｕｅｎｃｅｓ）」，Ｊｏｕｒｎａｌ  ｏｆ  Ｃｏｍｐｕｔａｔｉｏｎａｌ  Ｐｈｙｓｉｃｓ，１９９６，Ｖｏｌｕｍｅ  １２４，  Ｉｓｓｕｅ  ２，ｐ２７１−２８５
【非特許文献２】澤村明賢、香山正憲、結石友宏、鍜治幹雄，「自己無撞着な電子構造計算の加速法、記憶量節約、多重割線型のＢｒｏｙｄｅｎ法の実現（Ａｃｃｅｌｅｒａｔｉｏｎ  ｏｆ  ｓｅｌｆ−Ｃｏｎｓｉｓｔｅｎｔ  Ｅｌｅｃｔｒｏｎｉｃ−Ｓｔｒｕｃｔｕｒｅ  Ｃａｌｃｕｌａｔｉｏｎｓ：Ｓｔｏｒａｇｅ−Ｓａｖｉｎｇ  ａｎｄ  Ｍｕｌｔｉｐｌｅ−ｓｅｃａｎｔ  Ｉｍｐｌｅｍｅｎｔａｔｉｏｎ  ｏｆ  ｔｈｅ  Ｂｒｏｙｄｅｎ  Ｍｅｔｈｏｄ）」，Ｍａｔｅｒｉａｌｓ  Ｔｒａｎｓａｃｔｉｏｎｓ，日本金属学会，１９９９年，Ｖｏｌ４０，Ｎｏ１１，ｐ．１１８６−１１９２
【発明の開示】
【発明が解決しようとする課題】
【００１１】
ところで、電子の固有状態は、上述したように、入力値ｖinに基づいて反復演算することにより求められる。
従って、入力値ｖinは、電子間ポテンシャルの演算における残差ｖresの減少のみならず、電子の固有状態の演算に対しても影響を及ぼす。
電子の固有状態の演算は、当該電子の固有状態に関する固有値問題の残差を反復演算しその固有値問題の残差を「０」に収束したとみなせる程度に充分に減少させることで行われるものであり、電子間ポテンシャルの反復演算の中で設定される入力値ｖinによっては、電子の固有状態について演算を反復してもその固有値問題の残差が大きく減少しなくなり、当該固有値問題の残差の減少が停滞する場合があった。
このような電子の固有状態についての演算において、固有値問題の残差に減少停滞が発生すると、当該固有値問題の残差の減少が進行しないまま演算を繰り返してしまい、電子の固有状態の演算の反復回数が増加してしまう。これにより、電子状態計算全体としての計算時間が増大化するという問題が生じる。
【００１２】
本発明はこのような事情に鑑みてなされたものであり、効率よく速やかに固有値問題の残差を減少させることで演算の反復回数を減らし、速やかに電子状態計算を行うことができる電子状態演算装置、電子状態演算方法、及び電子状態演算プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１３】
本発明者は、電子の固有状態及び電子間ポテンシャルといった電子状態計算を行うための電子状態演算装置について、その計算効率をより高めるべく、電子の固有状態についての演算において生じる固有値問題の残差の減少停滞を抑制するための方策について、鋭意研究を重ねていた。その過程で、電子間ポテンシャルを演算する上で反復するごとに更新設定される入力ポテンシャルが、電子の固有状態の演算についても影響を及ぼすことに着目し、種々の実験を行った。その結果、過去の演算結果を参照しつつ入力ポテンシャルを更新設定することが、前記固有値問題の残差の減少停滞に影響していることを見出した。つまり、上記非特許文献には、入力ポテンシャルを演算設定する際に、過去の演算結果を遡って複数個参照することで、残差ポテンシャルを速やかに減少させうる値を求めることが記載されているが、本発明者は、必要以上に過去の演算結果を参照することが前記固有値問題の残差の減少停滞を発生させる要因となっていることを見出し、本発明を完成させた。
【００１４】
すなわち、本発明は、第一原理計算に基づいて、入力ポテンシャルから残差ポテンシャルを求めるための演算を反復し、前記残差ポテンシャルを減少させることにより電子の固有状態及び電子間ポテンシャルを求める電子状態演算装置であって、
前記入力ポテンシャルに対応する、電子の固有状態を演算する固有状態演算部と、
前記電子の固有状態から残差ポテンシャルを演算する残差ポテンシャル演算部と、
前記残差ポテンシャルを減少させうる新たな入力ポテンシャルを演算し、前記新たな入力ポテンシャルを前記固有状態演算部に与えることで前記残差ポテンシャル演算部に前記残差ポテンシャルを反復演算させ、当該残差ポテンシャルを減少させる演算制御部と、を備え、
前記固有状態演算部は、
前記電子の固有状態に関する固有値問題の残差を反復演算し当該残差を減少させることで前記固有値問題を解き、前記電子の固有状態を得る演算部と、
前記演算部による前記固有値問題の残差の反復演算において、前記固有値問題の残差の減少が停滞しているか否かを判定し、前記残差の減少が停滞していると判定すると前記演算部の反復演算を中止させる停滞判定部と、を備え、
前記演算制御部は、
前記停滞判定部により前記固有値問題の残差の減少が停滞していないと判定された場合に、現状及び過去に演算された複数の入力ポテンシャル、及びこれらに対応して演算された複数の残差ポテンシャルに基づいて前記新たな入力ポテンシャルを演算する第一の入力ポテンシャル演算部と、
前記停滞判定部により前記固有値問題の残差の減少が停滞していると判定された場合に、過去に演算された複数の入力ポテンシャルの内の前記第一の入力ポテンシャル演算部が前記新たな入力ポテンシャルを演算するために用いる数より少ない数の入力ポテンシャル、及びこれに対応して演算された残差ポテンシャルに基づいて前記新たな入力ポテンシャルを演算する第二の入力ポテンシャル演算部と、を備えていることを特徴としている。
【００１５】
上記のように構成された電子状態演算装置によれば、停滞判定部によって固有値問題の残差に減少停滞が発生していないと判定された場合には、第一の入力ポテンシャル演算部によって、現状及び過去に演算された複数の入力ポテンシャル、及びこれらに対応する複数の残差ポテンシャルに基づいて新たな入力ポテンシャルが演算される。
その一方、停滞判定部が固有値問題の残差に減少停滞が発生していると判定すると、当該停滞判定部が演算部による反復演算を中止させる。さらに、この場合、第二の入力ポテンシャル演算部によって、過去に演算された複数の入力ポテンシャルの内、第一の入力ポテンシャル演算部が演算に用いる数より少ない数の入力ポテンシャル、及びこれに対応する残差ポテンシャルに基づいて新たな入力ポテンシャルを演算するので、その他の過去の演算結果及び現状の演算結果を参照しない。従って、固有値問題の残差に減少停滞が発生すれば、必要以上に過去の演算結果を参照することなく新たな入力ポテンシャルの演算が行われるので、再度行われる電子の固有状態の演算においては、固有値問題の残差に減少停滞が生じるのを抑制することができる。
つまり、残差の減少停滞が生じた後に再度行われる電子の固有状態の演算においては、固有値問題の残差の減少停滞の発生が抑制される。このため、固有値問題の残差に減少停滞が生じたとしても、固有値問題の残差が減少しないまま電子の固有状態の演算を繰り返してしまうのを防止でき、当該演算における反復回数を減らすことができる。この結果、速やかに電子状態の演算を行うことができる。
【００１６】
前記第二の入力ポテンシャル演算部は、過去に演算された複数の入力ポテンシャルの内の一の入力ポテンシャル、及びこれに対応して演算された一の残差ポテンシャルに基づいて前記新たな入力ポテンシャルを演算するものであることが好ましい。
この場合、必要以上に過去の演算結果を参照するのを確実に防止することができる。
【００１７】
また、前記第二の入力ポテンシャル演算部は、前記固有値問題の残差の減少が停滞していると判定される直前に演算された入力ポテンシャル、及びこれに対応して演算された残差ポテンシャルに基づいて前記新たな入力ポテンシャルを演算するものであることが好ましい。
この場合、前記残差に減少停滞が発生しなかった演算における最も新しい過去の演算結果のみを参照して、新たな入力ポテンシャルを演算するので、固有値問題の残差の減少及び残差ポテンシャルの減少が、他の複数の過去の演算結果を参照しないことによって過大に妨げられるのを防止できる。
【００１８】
上記電子状態演算装置において、前記演算部は、所定数の電子それぞれについての固有状態を得るものであり、
前記停滞判定部は、
現状の前記固有値問題の残差と、過去に演算された固有値問題の残差との差である残差変化が予め定められた第一の閾値よりも小さいか否かを、前記所定数の電子についての固有状態それぞれについて判定し、前記残差変化が前記第一の閾値よりも小さいと判定された演算結果が得られた前記固有状態の個数を、前記演算部の反復演算の間、積算する積算部と、
前記積算部が積算した積算値が、予め定められた第二の閾値よりも大きいか否かを判定し、前記第二の閾値よりも大きいと判定すると、前記残差の減少が停滞しているものと判定する判定部と、を備えていることが好ましい。
この場合、複数の電子それぞれについての固有状態を演算する上で、容易にかつ精度よく固有値問題の残差の減少停滞を判定することができる。
【００１９】
また、本発明は、第一原理計算に基づいて、入力ポテンシャルから残差ポテンシャルを求めるための演算を反復し、前記残差ポテンシャルを減少させることにより電子の固有状態及び電子間ポテンシャルを求める電子状態演算方法であって、
前記入力ポテンシャルに対応する、電子の固有状態を演算する固有状態演算ステップと、
前記電子の固有状態から残差ポテンシャルを演算する残差ポテンシャル演算ステップと、
前記残差ポテンシャルを減少させうる新たな入力ポテンシャルを演算し、前記新たな入力ポテンシャルに基づいて前記固有状態演算ステップ及び前記残差ポテンシャル演算ステップを反復演算して、前記残差ポテンシャルを減少させる減少ステップと、を備え、
前記固有状態演算ステップは、
前記電子の固有状態に関する固有値問題の残差を反復演算し当該残差を減少させることで前記固有値問題を解き、前記電子の固有状態を得る演算ステップと、
前記演算ステップによる前記固有値問題の残差の反復演算において、前記固有値問題の残差の減少が停滞しているか否かを判定し、前記残差の減少が停滞していると判定すると前記演算ステップにおける反復演算を中止させる停滞判定ステップと、を備え、
前記減少ステップは、
前記停滞判定ステップにおいて前記固有値問題の残差の減少が停滞していないと判定された場合に、現状及び過去に演算された複数の入力ポテンシャル、及びこれらに対応して演算された複数の前記残差ポテンシャルに基づいて前記新たな入力ポテンシャルを演算する第一の入力ポテンシャル演算ステップと、
前記停滞判定ステップにおいて前記固有値問題の残差の減少が停滞していると判定された場合に、過去に演算された複数の入力ポテンシャルの内の前記第一の入力ポテンシャル演算ステップにて前記新たな入力ポテンシャルを演算するために用いる数より少ない数の入力ポテンシャル、及びこれに対応して演算された残差ポテンシャルに基づいて前記新たな入力ポテンシャルを演算する第二の入力ポテンシャル演算ステップと、を備えていることを特徴としている。
【００２０】
上記構成の電子状態演算方法によれば、上述のように、固有値問題の残差に減少停滞が生じたとしても、固有値問題の残差が減少しないまま電子の固有状態の演算を繰り返してしまうのを防止でき、速やかに電子状態の演算を行うことができる。
【００２１】
また、本発明は、第一原理計算に基づいて、入力ポテンシャルから残差ポテンシャルを求めるための演算を反復し、前記残差ポテンシャルを減少させることにより電子の固有状態及び電子間ポテンシャルを求める電子状態演算をコンピュータに実行させるための電子状態演算プログラムであって、
前記入力ポテンシャルに対応する、電子の固有状態を演算する固有状態演算ステップと、
前記電子の固有状態から残差ポテンシャルを演算する残差ポテンシャル演算ステップと、
前記残差ポテンシャルを減少させうる新たな入力ポテンシャルを演算し、前記新たな入力ポテンシャルに基づいて前記固有状態演算ステップ及び前記残差ポテンシャル演算ステップを反復演算して、前記残差ポテンシャルを減少させる減少ステップと、を備え、
前記固有状態演算ステップは、
前記電子の固有状態に関する固有値問題の残差を反復演算し当該残差を減少させることで前記固有値問題を解き、前記電子の固有状態を得る演算ステップと、
前記演算ステップによる前記固有値問題の残差の反復演算において、前記固有値問題の残差の減少が停滞しているか否かを判定し、前記残差の減少が停滞していると判定すると前記演算ステップにおける反復演算を中止させる停滞判定ステップと、を備え、
前記減少ステップは、
前記停滞判定ステップにおいて前記固有値問題の残差の減少が停滞していないと判定された場合に、現状及び過去に演算された複数の入力ポテンシャル、及びこれらに対応して演算された複数の前記残差ポテンシャルに基づいて前記新たな入力ポテンシャルを演算する第一の入力ポテンシャル演算ステップと、
前記停滞判定ステップにおいて前記固有値問題の残差の減少が停滞していると判定された場合に、過去に演算された複数の入力ポテンシャルの内の前記第一の入力ポテンシャル演算ステップにて前記新たな入力ポテンシャルを演算するために用いる数より少ない数の入力ポテンシャル、及びこれに対応して演算された残差ポテンシャルに基づいて前記新たな入力ポテンシャルを演算する第二の入力ポテンシャル演算ステップと、を備えていることを特徴としている。
【００２２】
上記構成の電子状態演算プログラムによれば、上述のように、固有値問題の残差に減少停滞が生じたとしても、固有値問題の残差が減少しないまま電子の固有状態の演算を繰り返してしまうのを防止でき、速やかに電子状態の演算を行うことができる。
【００２３】
また、本発明は、第一原理計算に基づいて、入力ポテンシャルから残差ポテンシャルを求めるための演算を反復し、前記残差ポテンシャルを減少させることにより電子の固有状態及び電子間ポテンシャルを求める電子状態演算装置であって、前記電子の固有状態及び前記電子間ポテンシャルを求めるための対象物質の基本格子ベクトル、及び前記対象物質を構成する複数の構成原子それぞれの位置ベクトルに基づいて、前記入力ポテンシャルの初期値を求める初期値演算部と、前記初期値演算部が演算する前記初期値に基づいて、電子の固有状態及び電子間ポテンシャルを演算する電子状態演算部と、前記電子状態演算部が演算する前記電子の固有状態及び前記電子間ポテンシャルに基づいて、前記対象物質の新たな基本格子ベクトル、及び前記対象物質を構成する複数の構成原子それぞれの新たな位置ベクトルを演算し、この新たな基本格子ベクトル及び新たな位置ベクトルを前記初期値演算部に与えることで、当該初期値演算部及び前記電子状態演算部に、前記基本格子ベクトル、前記位置ベクトル、前記電子間ポテンシャル、及び前記電子の固有状態を反復演算させる原子位置演算部と、を備え、前記初期値演算部は、前記原子位置演算部による反復演算において演算される現状及び過去の基本格子ベクトル、及び位置ベクトルに基づいて、前記入力ポテンシャルの初期値を求めるものであり、前記電子状態演算部は、前記入力ポテンシャルに対応する、電子の固有状態を演算する固有状態演算部と、前記電子の固有状態から残差ポテンシャルを演算する残差ポテンシャル演算部と、前記初期値演算部による前記初期値を前記固有状態演算部に与えることで前記残差ポテンシャルを減少させうる新たな入力ポテンシャルを演算させ、さらに、前記新たな入力ポテンシャルを前記固有状態演算部に与えることで前記残差ポテンシャル演算部に前記残差ポテンシャルを反復演算させ、当該残差ポテンシャルを減少させることで前記電子間ポテンシャルを得る演算制御部と、を備え、前記固有状態演算部は、前記電子の固有状態に関する固有値問題の残差を反復演算し当該残差を減少させることで前記固有値問題を解き、前記電子の固有状態を得る演算部と、前記演算部による前記固有値問題の残差の反復演算において、前記固有値問題の残差の減少が停滞しているか否かを判定し、前記残差の減少が停滞していると判定すると前記演算部の反復演算を中止させる停滞判定部と、を備え、前記演算制御部は、前記演算制御部による反復演算の現状及び過去の演算において行われる前記停滞判定部による判定結果を参照し、現状の演算において前記固有値問題の残差の減少が停滞しているか否かを判断するとともに、現状の演算において前記残差の減少が停滞していると判断する場合にはさらに前記残差の減少の停滞が現状の演算と過去の演算との間で連続して発生しているか否かを判断する判断部と、前記判断部により、現状の演算において前記固有値問題の残差の減少が停滞していないと判断された場合に、現状及び過去に演算された複数の入力ポテンシャル、及びこれらに対応して演算された複数の残差ポテンシャルに基づいて前記新たな入力ポテンシャルを演算する第一の入力ポテンシャル演算部と、前記判断部により、現状の演算において前記固有値問題の残差の減少が停滞していると判断されかつ前記残差の減少の停滞が現状の演算と過去の演算との間で連続して発生していないと判断された場合に、過去に演算された複数の入力ポテンシャルの内の前記第一の入力ポテンシャル演算部が前記新たな入力ポテンシャルを演算するために用いる数より少ない数の入力ポテンシャル、及びこれに対応して演算された残差ポテンシャルに基づいて前記新たな入力ポテンシャルを演算する第二の入力ポテンシャル演算部と、前記判断部により、現状の演算において前記固有値問題の残差の減少が停滞していると判断されかつ前記残差の減少の停滞が現状の演算と過去の演算との間で連続して発生していると判断された場合に、前記原子位置演算部による反復演算において演算される現状の基本格子ベクトル、及び位置ベクトルに基づいて前記新たな入力ポテンシャルを演算する第三の入力ポテンシャル演算部と、を備えていることを特徴としている。
【００２４】
上記のように構成された電子状態演算装置によれば、判断部が現状の演算において固有値問題の残差に減少停滞が発生していると判断しかつ前記残差の減少の停滞が現状の演算と過去の演算との間で連続して発生していないと判断すると、必要以上に過去に演算された入力ポテンシャルを参照することなく演算を行う第二の入力ポテンシャル演算部によって新たな入力ポテンシャルが演算されるので、再度行われる電子の固有状態の演算においては、固有値問題の残差に減少停滞が生じるのを抑制することができる。
【００２５】
ここで、前記電子の固有状態及び前記電子間ポテンシャルを求めるための対象物質の性質やその他の条件によっては、上記第二の入力ポテンシャル演算部による演算では、固有値問題の残差に減少停滞が生じるのを抑制できない場合がある。このような場合、過去において行われた反復演算の結果をさらに排除した演算を行うことで、固有値問題の残差に減少停滞が生じるのを抑制することができる。
すなわち、本発明では、判断部が現状の演算において固有値問題の残差に減少停滞が発生していると判断しかつ前記残差の減少の停滞が現状の演算と過去の演算との間で連続して発生していると判断すると、第三の入力ポテンシャル演算部によって、原子位置演算部による反復演算において演算される現状の基本格子ベクトル、及び位置ベクトルに基づいて前記新たな入力ポテンシャルが演算されるので、原子位置演算部による反復演算における基本格子ベクトル、及び位置ベクトルそれぞれの過去の演算結果が前記新たな入力ポテンシャルに反映されない。
【００２６】
つまり、第二の入力ポテンシャル演算部による演算がなされても固有値問題の残差減少の停滞が抑制されず、固有値問題の残差の減少停滞が現状の演算と過去の演算との間で連続して発生すると、第三の入力ポテンシャル演算部によって、原子位置演算部による過去の演算結果をも参照することなく新たな入力ポテンシャルの演算が行われる。これによって、演算制御部の反復演算による過去の演算結果のみならず、原子位置演算部の反復演算による過去の演算結果も参照することなく新たな入力ポテンシャルが演算されるので、新たな入力ポテンシャルに及ぶ過去の反復演算の結果による影響を、第二の入力ポテンシャル演算部によるもの以上に排除できる。この結果、再度行われる電子の固有状態の演算において、固有値問題の残差に減少停滞が生じるのを抑制することができる。
以上により、対象物質の性質やその他の条件によって、必要以上に過去に演算された入力ポテンシャルを参照することなく演算を行う第二の入力ポテンシャル演算部による演算では、固有値問題の残差に減少停滞が生じるのを抑制できない場合においても、固有値問題の残差が減少しないまま電子の固有状態の演算を繰り返してしまうのを防止でき、速やかに電子状態の演算を行うことができる。
【００２７】
本発明は、第一原理計算に基づいて、入力ポテンシャルから残差ポテンシャルを求めるための演算を反復し、前記残差ポテンシャルを減少させることにより電子の固有状態及び電子間ポテンシャルを求める電子状態演算方法であって、前記電子の固有状態及び前記電子間ポテンシャルを求めるための対象物質の基本格子ベクトル、及び前記対象物質を構成する複数の構成原子それぞれの位置ベクトルに基づいて、前記入力ポテンシャルの初期値を求める初期値演算ステップと、前記初期値演算ステップにより演算される前記初期値に基づいて、電子の固有状態及び電子間ポテンシャルを演算する電子状態演算ステップと、前記電子状態演算ステップにより演算される前記電子の固有状態及び前記電子間ポテンシャルに基づいて、前記対象物質の新たな基本格子ベクトル、及び前記対象物質を構成する複数の構成原子それぞれの新たな位置ベクトルを演算し、この新たな基本格子ベクトル及び新たな位置ベクトルを前記初期値演算部に与えることで、当該初期値演算部及び前記電子状態演算部に、前記基本格子ベクトル、前記位置ベクトル、前記電子間ポテンシャル、及び前記電子の固有状態を反復演算させる原子位置演算ステップと、を備え、前記初期値演算ステップは、前記原子位置演算ステップによる反復演算において演算される現状及び過去の基本格子ベクトル、及び位置ベクトルに基づいて、前記入力ポテンシャルの初期値を求めるものであり、前記電子状態演算ステップは、前記入力ポテンシャルに対応する、電子の固有状態を演算する固有状態演算ステップと、前記電子の固有状態から残差ポテンシャルを演算する残差ポテンシャル演算ステップと、前記初期値演算部による前記初期値を前記固有状態演算部に与えることで前記残差ポテンシャルを減少させうる新たな入力ポテンシャルを演算させ、さらに、前記新たな入力ポテンシャルを前記固有状態演算部に与えることで前記残差ポテンシャル演算部に前記残差ポテンシャルを反復演算させ、当該残差ポテンシャルを減少させることで前記電子間ポテンシャルを得る演算制御ステップと、を備え、前記固有状態演算ステップは、前記電子の固有状態に関する固有値問題の残差を反復演算し当該残差を減少させることで前記固有値問題を解き、前記電子の固有状態を得る演算ステップと、前記演算ステップによる前記固有値問題の残差の反復演算において、前記固有値問題の残差の減少が停滞しているか否かを判定し、前記残差の減少が停滞していると判定すると前記演算部の反復演算を中止させる停滞判定ステップと、を備え、前記演算制御ステップは、前記演算制御ステップによる反復演算の現状及び過去の演算において行われる前記停滞判定ステップによる判定結果を参照し、現状の演算において前記固有値問題の残差の減少が停滞しているか否かを判断するとともに、現状の演算において前記残差の減少が停滞していると判断する場合にはさらに前記残差の減少の停滞が現状の演算と過去の演算との間で連続して発生しているか否かを判断する判断ステップと、前記判断ステップにより、現状の演算において前記固有値問題の残差の減少が停滞していないと判断された場合に、現状及び過去に演算された複数の入力ポテンシャル、及びこれらに対応して演算された複数の残差ポテンシャルに基づいて前記新たな入力ポテンシャルを演算する第一の入力ポテンシャル演算ステップと、前記判断ステップにより、現状の演算において前記固有値問題の残差の減少が停滞していると判断されかつ前記残差の減少の停滞が現状の演算と過去の演算との間で連続して発生していないと判断された場合に、過去に演算された複数の入力ポテンシャルの内の前記第一の入力ポテンシャル演算ステップにて前記新たな入力ポテンシャルを演算するために用いる数より少ない数の入力ポテンシャル、及びこれに対応して演算された残差ポテンシャルに基づいて前記新たな入力ポテンシャルを演算する第二の入力ポテンシャル演算ステップと、前記判断ステップにより、現状の演算において前記固有値問題の残差の減少が停滞していると判断されかつ前記残差の減少の停滞が現状の演算と過去の演算との間で連続して発生していると判断された場合に、前記原子位置演算ステップによる反復演算において演算される現状の基本格子ベクトル、及び位置ベクトルに基づいて前記新たな入力ポテンシャルを演算する第三の入力ポテンシャル演算ステップと、を備えていることを特徴としている。
【００２８】
また、本発明は、第一原理計算に基づいて、入力ポテンシャルから残差ポテンシャルを求めるための演算を反復し、前記残差ポテンシャルを減少させることにより電子の固有状態及び電子間ポテンシャルを求める電子状態演算をコンピュータに実行させるための電子状態演算プログラムであって、前記電子の固有状態及び前記電子間ポテンシャルを求めるための対象物質の基本格子ベクトル、及び前記対象物質を構成する複数の構成原子それぞれの位置ベクトルに基づいて、前記入力ポテンシャルの初期値を求める初期値演算ステップと、前記初期値演算ステップにより演算される前記初期値に基づいて、電子の固有状態及び電子間ポテンシャルを演算する電子状態演算ステップと、前記電子状態演算ステップにより演算される前記電子の固有状態及び前記電子間ポテンシャルに基づいて、前記対象物質の新たな基本格子ベクトル、及び前記対象物質を構成する複数の構成原子それぞれの新たな位置ベクトルを演算し、この新たな基本格子ベクトル及び新たな位置ベクトルを前記初期値演算部に与えることで、当該初期値演算部及び前記電子状態演算部に、前記基本格子ベクトル、前記位置ベクトル、前記電子間ポテンシャル、及び前記電子の固有状態を反復演算させる原子位置演算ステップと、を備え、前記初期値演算ステップは、前記原子位置演算ステップによる反復演算において演算される現状及び過去の基本格子ベクトル、及び位置ベクトルに基づいて、前記入力ポテンシャルの初期値を求めるものであり、前記電子状態演算ステップは、前記入力ポテンシャルに対応する、電子の固有状態を演算する固有状態演算ステップと、前記電子の固有状態から残差ポテンシャルを演算する残差ポテンシャル演算ステップと、前記初期値演算部による前記初期値を前記固有状態演算部に与えることで前記残差ポテンシャルを減少させうる新たな入力ポテンシャルを演算させ、さらに、前記新たな入力ポテンシャルを前記固有状態演算部に与えることで前記残差ポテンシャル演算部に前記残差ポテンシャルを反復演算させ、当該残差ポテンシャルを減少させることで前記電子間ポテンシャルを得る演算制御ステップと、を備え、前記固有状態演算ステップは、前記電子の固有状態に関する固有値問題の残差を反復演算し当該残差を減少させることで前記固有値問題を解き、前記電子の固有状態を得る演算ステップと、前記演算ステップによる前記固有値問題の残差の反復演算において、前記固有値問題の残差の減少が停滞しているか否かを判定し、前記残差の減少が停滞していると判定すると前記演算部の反復演算を中止させる停滞判定ステップと、を備え、前記演算制御ステップは、前記演算制御ステップによる反復演算の現状及び過去の演算において行われる前記停滞判定ステップによる判定結果を参照し、現状の演算において前記固有値問題の残差の減少が停滞しているか否かを判断するとともに、現状の演算において前記残差の減少が停滞していると判断する場合にはさらに前記残差の減少の停滞が現状の演算と過去の演算との間で連続して発生しているか否かを判断する判断ステップと、前記判断ステップにより、現状の演算において前記固有値問題の残差の減少が停滞していないと判断された場合に、現状及び過去に演算された複数の入力ポテンシャル、及びこれらに対応して演算された複数の残差ポテンシャルに基づいて前記新たな入力ポテンシャルを演算する第一の入力ポテンシャル演算ステップと、前記判断ステップにより、現状の演算において前記固有値問題の残差の減少が停滞していると判断されかつ前記残差の減少の停滞が現状の演算と過去の演算との間で連続して発生していないと判断された場合に、過去に演算された複数の入力ポテンシャルの内の前記第一の入力ポテンシャル演算ステップにて前記新たな入力ポテンシャルを演算するために用いる数より少ない数の入力ポテンシャル、及びこれに対応して演算された残差ポテンシャルに基づいて前記新たな入力ポテンシャルを演算する第二の入力ポテンシャル演算ステップと、前記判断ステップにより、現状の演算において前記固有値問題の残差の減少が停滞していると判断されかつ前記残差の減少の停滞が現状の演算と過去の演算との間で連続して発生していると判断された場合に、前記原子位置演算ステップによる反復演算において演算される現状の基本格子ベクトル、及び位置ベクトルに基づいて前記新たな入力ポテンシャルを演算する第三の入力ポテンシャル演算ステップと、を備えていることを特徴としている。
【００２９】
上記構成の電子状態演算方法、及び、電子状態演算プログラムによれば、上述のように、必要以上に過去に演算された入力ポテンシャルを参照することなく新たな入力ポテンシャルを演算しても、固有値問題の残差に減少停滞が生じるのを抑制できない場合には、原子位置演算部の反復演算による過去の演算結果も参照することなく新たな入力ポテンシャルが演算される。この結果、再度行われる電子の固有状態の演算において、固有値問題の残差に減少停滞が生じるのを抑制することができる。
【発明の効果】
【００３０】
以上のように、本発明の電子状態演算装置、電子状態演算方法、及び電子状態演算プログラムによれば、より効率よく速やかに電子状態計算を行うことができる。
【発明を実施するための最良の形態】
【００３１】
〔第一の実施形態に係る装置の全体構成〕
次に、本発明の好ましい実施形態について添付図面を参照しながら説明する。図１は、本発明の第一の実施形態に係る電子状態演算装置の機能的構成を示すブロック図である。この電子状態演算装置１は、第一原理計算に基づいて、対象とする金属や無機物質等を構成している原子や電子の状態を計算によって求め、これに基づいて、当該金属や無機物質等の対象物質の基本的な物性を求めるものであり、コンピュータ等によって構成されている。
電子状態演算装置１は、キーボードやマウス等からなる入力デバイス及びディスプレイやプリンタ等からなる出力デバイスを含んで構成される入出力部２と、オペレーティングシステムや、各種プログラム、情報等を記憶するためのハードディスク等からなる記憶部３と、入出力部２から入力される各種データに基づいて電子状態計算を行うための処理を行うデータ処理部４とを機能的に備えている。
電子状態演算装置１の記憶部３には、電子状態計算を行うためのプログラム（電子状態演算プログラム）や、電子状態計算の結果から対象物質の基本的物性を演算するためのプログラムが記憶部３にインストールされており、これらプログラムが実行されることにより、電子状態演算装置１が有している、後述の電子状態計算を行うための各機能部が実現される。
【００３２】
データ処理部４は、入出力部２を介して入力される対象物質についての構成原子や基本格子構造等に関する情報等に基づいて構成原子の位置を示すベクトルを求め、さらに原子が電子に及ぼすポテンシャルを演算する原子位置演算部５と、対象物質の電子についての電子間ポテンシャルｖや固有状態（波動関数、固有エネルギ）といった電子状態を演算するための電子状態演算部６と、上記ベクトルや電子状態から対象物質の物性値を演算する物性演算部７とを機能的に有しており、これら各部を総括的に制御する。また、データ処理部４は、上記各部によって行われる反復演算処理でその反復回数をカウントするための第一〜第三カウンタ１３，１４，１５を機能的に有している。
このうち、電子状態演算部６は、原子位置演算部５から与えられる、原子が電子に及ぼすポテンシャル（原子−電子間ポテンシャルｖext）に基づいて第一原理計算を反復演算し、電子状態を出力する機能を有しており、これを実現するための機能部群として、固有状態演算部８と、残差ポテンシャル演算部９と、演算制御部１０とを有している。
【００３３】
固有状態演算部８は、電子間ポテンシャルｖを演算するための入力値としての入力ポテンシャルに基づいて、電子の固有状態を示す固有エネルギ及び波動関数を反復演算する。また、固有状態演算部８は、電子の固有状態に関する反復演算において求められる残差について、その減少が停滞したか否かを判定する機能等も有している。
残差ポテンシャル演算部９は、固有状態演算部８が演算した電子の固有状態に基づいて電子密度を求め、さらにこの電子密度から電子間ポテンシャルの出力値としての出力ポテンシャルを演算する。また、残差ポテンシャル演算部９は、得られた出力ポテンシャルと、固有状態演算部８に入力された入力ポテンシャルとの差（誤差）である残差ポテンシャルを演算し、演算結果である残差ポテンシャル及び出力ポテンシャルを演算制御部１０に出力する。
【００３４】
演算制御部１０は、固有状態演算部８に入力ポテンシャルを与えることで、残差ポテンシャル演算部９に残差ポテンシャルを反復演算させる機能を有している。
また、演算制御部１０は、前記反復演算の結果、残差ポテンシャルが「０」に収束したとみなせる程度に充分に減少したと判断しうる値にまで減少すると、各部の反復演算を中止させそのときの出力ポテンシャルを電子間ポテンシャルｖとして出力するとともに、そのときの電子の固有状態を出力する。このように、演算制御部１０は、所定の条件を満たしたときに、前記電子間ポテンシャル及び電子の固有状態を電子状態演算部６の演算結果として出力する。なお、電子間ポテンシャルｖについては、残差ポテンシャルが「０」に収束したとみなせる程度に充分に減少したときの入力ポテンシャル、又は出力ポテンシャルのいずれかを電子間ポテンシャルｖとしての出力とすることができるが、本実施形態では、出力ポテンシャルを電子間ポテンシャルｖとして出力するように演算制御部１０を構成した場合について説明する。
さらに演算制御部１０は、残差ポテンシャル演算部９が演算した残差ポテンシャル及びこの残差ポテンシャルに対応する入力ポテンシャルに基づいて残差ポテンシャルを反復演算させるべく、固有状態演算部８に与えるための新たな入力ポテンシャルを演算する機能を有している。
【００３５】
〔固有状態演算部の機能について〕
上記固有状態演算部８の機能についてさらに詳述する。図２は、固有状態演算部８の機能を示すブロック図である。固有状態演算部８は、演算制御部１０から与えられる入力ポテンシャルｖin及び原子−電子間ポテンシャルｖextに基づいて、電子の固有状態に関する固有値問題の残差ｒj（ｊは演算される固有状態の数に対応付けられる数）を反復演算し、「０」に収束したとみなせる程度に充分に減少したと判断しうる値にまで当該残差ｒjを減少させることで前記固有値問題を解き、電子の固有状態を得る演算部１１と、演算部１１による反復演算において前記残差ｒjの減少停滞が発生しているか否かを判定する停滞判定部１２とを有している。
ここで、演算部１１が行う固有値問題の反復演算については、対象物質の単位格子中に含まれる電子に応じて定まる、演算を続行するために必要な所定数の固有状態について行われる。その所定数は、対象物質の単位格子中に含まれる電子の内、原子間の結合に関与している電子の数の半分よりも若干多い数に設定される。従って、演算部１１は、演算を続行するために必要な個数の固有状態を演算結果として出力する。
また、固有値問題の反復演算における残差ｒjの減少停滞とは、前記所定数の電子の固有状態それぞれについての固有値問題を解く上で求められる前記残差ｒjにおいて、演算を反復しても前記残差ｒjが大きく減少しなくなった電子の固有状態の個数が増加し、各固有値問題の演算の反復回数が必要以上に増大していると認められる状態をいう。
【００３６】
停滞判定部１２は、演算部１１が行う反復演算における前記残差ｒjを取得し、前記残差ｒjの減少停滞が発生しているか否かを判定する。
停滞判定部１２は、反復演算の中で、現状の残差ｒjと、過去に演算された残差ｒjとの差である残差変化が予め定められた第一の閾値（後に説明する）よりも小さいか否かを、前記所定数の電子の固有状態に関する演算それぞれについて判定し、前記残差変化が前記第一の閾値よりも小さいと判定された演算結果が得られた前記固有状態の個数を積算する積算部１２ａと、積算部１２ａが積算した積算値が、予め定められた第二の閾値（後に説明する）よりも大きいか否かを判定し、第二の閾値よりも大きいと判定すると、前記残差ｒjの減少が停滞していると判定する判定部１２ｂとを有している。
【００３７】
判定部１２ｂは、演算部１１が行う反復演算の中でその演算ごとに、減少停滞の判定を行う。判定部１２ｂは、前記残差ｒjの減少が停滞していると判定すると、減少停滞の判定結果を示すための判定フラグを「１」に設定し、停滞していないと判定すると、判定フラグを「０」に設定する。判定を終えると、判定部１２ｂは、判定が終了した旨を演算部１１に通知する。
【００３８】
演算部１１は、前記通知を受けると、判定フラグを参照する。参照した結果、判定フラグが「０」に設定されている場合、現状行っている反復演算を続行する。一方、判定フラグが「１」に設定されている場合、現状行っている反復演算を中止し、現段階において演算された電子の固有状態（波動関数ψj、固有エネルギεj）を演算結果として、残差ポテンシャル演算部９へ出力する。
このように、判定部１２ｂは、前記残差ｒjの減少停滞が発生していると判定した場合、「１」とされた判定フラグを演算部１１に参照させることで、演算部１１の反復演算を中止させることができる。なお、積算部１２ａは、前記残差変化を演算するために、演算部１１が演算を反復するごとに与えられる残差ｒjを記憶部３に記憶する。
【００３９】
以上のようにして、固有状態演算部８の演算部１１は、各電子の固有状態の演算結果としての固有エネルギεj、波動関数ψjを残差ポテンシャル演算部９に出力する。
【００４０】
〔演算制御部の機能について〕
次に、演算制御部１０の機能について詳述する。図３は、演算制御部１０の機能を示すブロック図である。なお、演算制御部１０は、上述したように複数の機能を有しているが、図３では、その機能の内、残差ポテンシャル演算部９が演算した残差ポテンシャル及びこの残差ポテンシャルを求めるために用いた入力ポテンシャルに基づいて、再度固有状態演算部８に与えるための新たな入力ポテンシャルを演算する機能について示している。
【００４１】
残差ポテンシャル演算部９は、電子状態演算部６による反復演算の中で、自身の演算結果である残差ポテンシャル及び出力ポテンシャルを演算制御部１０に与える。
【００４２】
残差ポテンシャル演算部９より、残差ポテンシャル及び出力ポテンシャルが与えられた演算制御部１０は、判定検知部１０ａに残差ポテンシャルが「０」に収束したとみなせる程度に充分に減少したと判断しうる値にまで減少しているか否かを判定させる。判定検知部１０ａにより残差ポテンシャルが充分に減少していると判定されると、演算制御部１０は、現状の出力ポテンシャルを電子間ポテンシャルとして、電子の固有状態とともに原子位置演算部５に出力する。
【００４３】
判定検知部１０ａは、残差ポテンシャルが充分に減少していないと判定すると、判定フラグを参照する。判定フラグが「０」の場合、判定検知部１０ａは、第一入力ポテンシャル演算部１０ｂに前記残差ポテンシャル、及びこの残差ポテンシャルを求めるために用いた入力ポテンシャルを与え、固有状態演算部８に与えるための新たな入力ポテンシャルを演算させる。一方、判定フラグが「１」の場合、第二入力ポテンシャル演算部１０ｃに前記新たな入力ポテンシャルを演算させる。
【００４４】
第一入力ポテンシャル演算部１０ｂは、判定検知部１０ａから与えられる現状の残差ポテンシャル及び入力ポテンシャルに加え、電子状態演算部６による反復演算の結果、過去に演算された複数の入力ポテンシャル及びこれらに対応して演算された複数の残差ポテンシャルに基づいて、前記新たな入力ポテンシャルを演算する。なお、上記過去に演算された複数の入力ポテンシャル及び複数の残差ポテンシャルは、演算制御部１０によって、演算が反復されるごとに逐次記憶部３に記憶格納される。第一入力ポテンシャル演算部１０ｂは、この記憶部３に記憶格納された情報を参照し、前記新たな入力ポテンシャルを演算する。
【００４５】
第二入力ポテンシャル演算部１０ｃは、記憶部３に記憶された情報を参照し、過去に演算された複数の入力ポテンシャルの内の一の入力ポテンシャル、及びこれに対応して演算された一の残差ポテンシャルに基づいて前記新たな入力ポテンシャルを演算する。
【００４６】
第一及び第二入力ポテンシャル演算部１０ｂ，１０ｃにより演算される新たな入力ポテンシャルは、固有状態演算部８に与えられ、電子間ポテンシャル及び電子の固有状態についての反復演算に用いられる。
次に、上記構成の電子状態演算装置１の動作について説明する。
【００４７】
〔電子状態演算装置の動作について〕
図４は、本実施形態の電子状態演算装置１の総括的な動作を示したフローチャートである。
本装置１において、入出力部２に電子状態計算の対象とする対象物質の構成原子の位置に関する情報やその他必要なパラメータが入力されると（ステップＳ１０１）、データ処理部４は、第一カウンタ１３のカウント値ｌを「１」に設定する（ステップＳ１０２）。
【００４８】
図５は、上記ステップＳ１０１において、対象物質の構成原子の位置に関する情報の入力を受け付けるためのディスプレイ表示の一例である。
データ処理部４は、図５に示すように、数値情報を入力するための入力欄４０を入出力部２の有するディスプレイに表示する。この入力欄４０は、例えば、単位格子に含まれる各構成原子それぞれの３次元座標値が入力できるように設けられている。当該装置１の操作者は、マウス等で入力しようとする入力欄４０にカーソルを移動させた後、キーボード等を操作することで、前記３次元座標値に関する数値情報を入力する。入出力部２は、この入力欄４０に入力された各数値情報を各構成原子の位置情報として受け付ける。
なお、ここで入出力部２が受け付ける構成原子の位置に関する情報である、単位格子に含まれる各構成原子それぞれの３次元座標値は、対象物質の構成原子や結晶構造等から予め予測して求められる。
また、図５では、構成原子の位置に関する情報を入力する際の態様を示したが、後述する他の情報（閾値ｒth、閾値ｖth、第一の閾値Ａstag、係数Ｂstag）についても、同様の入力画面が用意され、受け付けられる。
【００４９】
図４に戻って、データ処理部４は、各構成原子それぞれの３次元座標値等の必要なパラメータを受け付けると、これらパラメータを原子位置演算部５に与える。これらパラメータが与えられた原子位置演算部５は、下記に示す、対象物質の基本格子ベクトル及び各構成原子の位置ベクトルについての初期値（ｌ＝１）を演算する（ステップＳ１０３）。
【００５０】
【数２】
2010073182.tif 000004
【００５１】
なお、上記式中、Ｎatomは、単位格子に含まれる構成原子の個数である。
次いで、原子位置演算部５は、上記基本格子ベクトル及び位置ベクトルの初期値に基づいて原子−電子間ポテンシャルｖextを演算し（ステップＳ１０４）、電子状態演算部６に演算した原子−電子間ポテンシャルｖextを与える。
【００５２】
原子−電子間ポテンシャルｖextが与えられた電子状態演算部６は、この原子−電子間ポテンシャルｖextに基づいて、電子間ポテンシャルｖ、電子の固有状態（波動関数ψj、固有エネルギεj、（ｊは演算される固有状態の数に対応付けられる数）を演算する（ステップＳ１０５）。なお、このステップＳ１０５において行われる演算処理については、後に詳述する。
【００５３】
ステップＳ１０５の演算処理を終えた電子状態演算部６は、得られた電子間ポテンシャルｖ及び電子の固有状態を原子位置演算部５に与える。原子位置演算部５は、これら電子間ポテンシャルｖ及び電子の固有状態に基づいて対象物質を構成したときに、単位格子に生じる応力（下記参照）を演算するとともに、単位格子に含まれる各構成原子に作用する力（下記参照）を各構成原子それぞれについて演算する（ステップＳ１０６）。
【００５４】
【数３】
2010073182.tif 000005
【００５５】
次に、原子位置演算部５は、上記応力σ(l)、及び各構成原子の内の全部又は指定した一部における力Ｆh(l)が、予め個々に定めた基準値よりも小さいか否かを判定する（ステップＳ１０７）。この判定基準を満たさない場合、原子位置演算部５は、ステップＳ１０８に進み、基本格子ベクトルａi(l)、及び前述の全部又は指定した一部の各構成原子に対応する位置ベクトルＲh(l)を更新し、新たな基本格子ベクトルａi(l+1)、位置ベクトルＲh(l+1)を演算する。つまり、このステップＳ１０８では、原子位置演算部５は、各構成原子の位置関係を適宜調整する処理を行う。
【００５６】
そして、原子位置演算部５は、第一カウンタ１３のカウント値ｌに「１」を加え（ステップＳ１０９）、ステップＳ１０４に戻り、新たな基本格子ベクトルａi(l+1)、位置ベクトルＲh(l+1)に基づいて原子−電子間ポテンシャルｖextを求める。さらに、ステップＳ１０５に進み、再度、電子状態演算部６は、各ポテンシャル等の演算を行う。これに基づいて原子位置演算部５は、応力σ(l)、及び力Ｆh(l)を求め、再度これら応力σ(l)、力Ｆh(l)が判定基準を満たしているか否かを判定する。原子位置演算部５及び電子状態演算部６は、これを繰り返すことで、応力σ(l)、力Ｆh(l)が判定基準を満たすまで、上記演算を反復する。
なお、第一カウンタ１３のカウント値ｌは、ステップＳ１０４〜Ｓ１０９にて行われる反復演算の演算回数を示している。
【００５７】
なお、ステップＳ１０８において、新たな基本格子ベクトルａi(l+1)、位置ベクトルＲh(l+1)を演算する際、原子位置演算部５は、応力σ(l)、力Ｆh(l)を、あるいは、過去の値である応力σ(λ)、力Ｆh(λ)（λ＜ｌ）をも利用して、基本格子ベクトルａi(l)、及び位置ベクトルＲh(l)を更新し、上記判定基準を満たしうる応力σ(l)、力Ｆh(l)が得られるように、新たな基本格子ベクトルａi(l+1)、位置ベクトルＲh(l+1)を演算する。
【００５８】
ステップＳ１０７において、応力σ(l)、及び各構成原子の内の全部又は指定した一部における力Ｆh(l)が上記判定基準を満たす場合、原子位置演算部５は、物性演算部７に対して、現状得られた基本格子ベクトルａi(l)、位置ベクトルＲh(l)、電子間ポテンシャルｖ、及び電子の固有状態（波動関数ψj、固有エネルギεj）を与える。これらが与えられた物性演算部７は、対象物質の物質を演算し、データ処理部４は、入出力部２を介して、前記対象物質の物性に関するデータ、あるいは、前記各ベクトル、電子間ポテンシャル、電子の固有状態に関するデータを出力する（ステップＳ１１０）。
【００５９】
次に、図４中、ステップＳ１０５における、電子間ポテンシャルｖ及び電子の固有状態の演算について説明する。
【００６０】
〔電子間ポテンシャル及び固有状態の演算について〕
図６は、電子状態演算部６が電子間ポテンシャル及び電子の固有状態（波動関数ψj、固有エネルギεj）を求める際の動作態様を示したフローチャートである。
電子状態演算部６は、原子位置演算部５が演算した原子−電子間ポテンシャルｖextが与えられると（図４中ステップＳ１０４）、第二カウンタ１４のカウント値ｍを「１」に設定する（ステップＳ２０１）。そして、電子状態演算部６は、固有状態演算部８に入力するための入力ポテンシャルｖin(m)の初期値（ｍ＝１）を演算制御部１０に設定させる（ステップＳ２０２）。
【００６１】
電子状態演算部６の演算制御部１０は、原子−電子間ポテンシャルｖext及び入力ポテンシャルｖin(m)を固有状態演算部８に与え、これらに対応した電子の固有状態（波動関数ψj、固有エネルギεj（１≦ｊ≦Ｎeig））を固有状態演算部８に演算させる（ステップＳ２０３）。
なお、ここで、ｊは、上述のように、演算される固有状態の個数に対応付けられる数である。また、Ｎeigは、電子状態計算を続行するために必要な固有状態の所定数である。固有状態演算部８（の演算部１１）は、Ｎeig個の固有状態それぞれについて演算する。
【００６２】
図７は、図６中ステップＳ２０３の演算処理における固有状態演算部８の動作を示したフローチャートである。
固有状態演算部８は、原子−電子間ポテンシャルｖext及び入力ポテンシャルｖin(m)が与えられると、位置と運動量の関数であるハミルトニアンＨを下記式（４）で定義する（ステップＳ３０１）。
Ｈ  ＝  Ｔ  ＋  ｖext  ＋  ｖin(m)  ・・・・  （４）
【００６３】
なお、上記式（４）中、Ｔは運動エネルギを示している。また、ハミルトニアンＨは、演算子としての機能を有する行列である。
次に、固有状態演算部８は、第三カウンタ１５のカウント値ｎを「１」に設定するとともに、減少停滞の判定結果を示すための判定フラグを「０」に設定する（ステップＳ３０２）。
そして、固有状態演算部８は、初期設定としての固有ベクトルである波動関数ψj(n)（ｎ＝１）を仮定する（ステップＳ３０３）。
【００６４】
次に、固有状態演算部８（の演算部１１）は、下記式（５）に示されるように、ハミルトニアンＨと、波動関数ψj(n)との積φjを求める（ステップＳ３０４）。
φj  ＝  Ｈψj(n)  ・・・・  （５）
【００６５】
ここで、固有ベクトルである波動関数ψと、固有値である固有エネルギεは、下記式（６）に示されるように関係を有している。
εψ  ＝  Ｈψ  ・・・・  （６）
【００６６】
すなわち、電子の固有状態としての波動関数ψ、及び固有エネルギεは、上記式（６）のように、演算子であるハミルトニアンＨについての固有値問題として表され、この固有値問題を解くことで求められる。
【００６７】
そこで、固有状態演算部８（の演算部１１）は、下記式（７）に基づいて固有エネルギεj(n)を求めとともに、下記式（８）に基づいて上記固有値問題の残差ｒj(n)を求める（ステップＳ３０５）。
【００６８】
【数４】
2010073182.tif 000006
【００６９】
なお、波動関数ψj(n)はＮeig個の固有状態それぞれに対応する固有ベクトルとしての波動関数を含んだベクトル群を示しており、固有値問題の残差ｒj(n)もＮeig個の固有状態それぞれに対応する残差を表すベクトルを含んだベクトル群を示している。固有エネルギεj(n)はＮeig個の電子それぞれに対応する固有エネルギの値を含んだ数値群を示している。よって、上記の演算によって、上述したＮeig個の固有状態それぞれについて得られる。
【００７０】
次に、固有状態演算部８（の演算部１１）は、Ｎeig個の固有状態をそれぞれ演算する上で、得られた固有値問題の残差ｒj(n)の値の内、下記式（９）で示される最大値Ｍが、予め定められた閾値ｒthよりも小さいか否かを判定する（ステップＳ３０６）。
【００７１】
【数５】
2010073182.tif 000007
【００７２】
固有状態演算部８は、以下に述べるように固有値問題の残差ｒj(n)を反復演算し、残差ｒj(n)が「０」に収束したとみなせる程度に充分に減少したと判断しうる値にまで減少させることで固有値問題を解き、そのときの波動関数ψj(n)、及び固有エネルギεj(n)を解として得る。ここで、閾値ｒthは、固有値問題の残差ｒj(n)が「０」に収束したとみなせる程度に充分に減少したと判断しうる値に設定される。
これにより、ステップＳ３０６において、固有値問題の残差ｒj(n)の値の内の最大値Ｍが、閾値ｒthよりも小さいと判定されると、すべての固有値問題の残差ｒj(n)が「０」に収束したとみなせる程度に充分に減少したと判断することができ、閾値ｒthよりも小さくないと判定されると、固有値問題の残差ｒj(n)が未だ充分に減少していないと判断することができる。
【００７３】
ステップＳ３０６において、最大値Ｍが、閾値ｒthよりも小さいと判定すると、固有状態演算部８は、図６中のステップＳ２０３に戻り、現状、解として得られた波動関数ψj(n)、及び固有エネルギεj(n)を残差ポテンシャル演算部９に与える。すなわち、固有状態演算部８は、固有値問題の残差ｒj(n)の値の全てが、閾値ｒthよりも小さくなった場合、残差ｒj(n)が充分に減少したと判断され、そのときの波動関数ψj(n)、及び固有エネルギεj(n)を解として出力する。
【００７４】
一方、最大値Ｍが、閾値ｒthよりも小さくないと判定すると（ステップＳ３０６）、固有状態演算部８（の演算部１１）は、固有値問題の残差ｒj(n)を停滞判定部１２に与える。停滞判定部１２は、これに基づいて、固有値問題の残差ｒj(n)に減少停滞が発生しているか否かの判定を行う（ステップＳ３０７）。
停滞判定部１２の判定部１２ｂは、前記残差の減少が停滞していると判定すると、判定フラグを「１」に設定し、停滞していないと判定すると、判定フラグを「０」に設定する。減少停滞に関する判定を終えると、停滞判定部１２は、上述したように、判定を終えた旨の通知を演算部１１に対して与える。
なお、停滞判定部１２による前記残差の減少停滞に関する判定についての具体的な処理については、後に詳述する。
【００７５】
判定を終えた旨の通知が与えられた演算部１１は、判定フラグを参照し、判定フラグが「１」であるか否かを判断する（ステップＳ３０８）。判定フラグが「０」である場合、すなわち、停滞判定部１２が、固有値問題の残差ｒj(n)の減少が停滞していないと判定したときには、演算部１１は、新たな波動関数ψj(n+1)を演算し（ステップＳ３０９）、第三カウンタ１５のカウント値ｎに「１」を加え（ステップＳ３１０）、ステップＳ３０４に戻る。そして、再度、固有エネルギεj(n)及び波動関数ψj(n)を求めるとともに、固有値問題の残差ｒj(n)を求める演算を反復する。
なお、第三カウンタ１５のカウント値ｎは、ステップＳ３０４〜Ｓ３１０にて行われる反復演算の演算回数を示している。
【００７６】
一方、判定フラグが「１」である場合、すなわち、停滞判定部１２が、固有値問題の残差ｒj(n)の減少が停滞していると判定したときには、固有状態演算部８の演算部１１は、図６中のステップＳ２０３に戻り、現状、解として得られた波動関数ψj(n)、及び固有エネルギεj(n)を残差ポテンシャル演算部９に与える。
【００７７】
このように、固有状態演算部８の演算部１１は、固有値問題の残差ｒj(n)の最大値Ｍが、閾値ｒthよりも小さくなるまで、すなわち、固有値問題の残差ｒj(n)の値の全てが閾値ｒthよりも小さくなる程度に減少するまで、前記固有値問題に関する反復演算を行い、固有値問題の残差ｒj(n)の値の全てが閾値ｒthよりも小さくなったとき（「０」に収束したとみなせる程度に充分に減少したとき）に固有値問題が解けたものとして、そのときの波動関数ψj(n)、及び固有エネルギεj(n)を解として出力する。
【００７８】
ただし、固有値問題の残差ｒj(n)の最大値Ｍが、閾値ｒthよりも小さくなるまでに減少しておらず、かつ、停滞判定部１２により固有値問題の残差ｒj(n)に減少停滞が発生していると判定された場合には、演算部１１は、上記反復演算を中止して、そのときの波動関数ψj(n)、及び固有エネルギεj(n)を解として出力する。
【００７９】
なお、演算部１１は、ステップＳ３０９において、新たな波動関数ψj(n+1)を演算するが、この新たな波動関数ψj(n+1)は、下記式（１０）に基づいて演算されることで、固有値問題の残差ｒj(n)を減少しうる値として演算される。
【００８０】
【数６】
2010073182.tif 000008
【００８１】
ここで、図７中、ステップＳ３０７における、残差の減少停滞に関する判定についての具体的な処理について説明する。図８は、固有状態演算部８の停滞判定部１２による減少停滞に関する判定処理の態様を示すフローチャートである。
【００８２】
演算部１１から、固有値問題の残差ｒj(n)（１≦ｊ≦Ｎeig）の値が与えられると、停滞判定部１２（の積算部１２ａ）は、Ｎeig個の固有状態の内、所定の停滞条件を満たす演算結果が得られた固有状態の個数Ｎstag(n)をカウントする（ステップＳ４０１）。
【００８３】
上記停滞条件は、下記式（１１），（１２）によって示され、これら式（１１）及び式（１２）の双方を満たす演算結果が得られた固有状態の個数をカウントする。
【００８４】
【数７】
2010073182.tif 000009
【００８５】
ここで、上記式（１１）では、Ｎeig個の固有状態それぞれについての残差ｒj(n)が、閾値ｒth以上であるかを判定しており、式（１１）によって、Ｎeig個の固有状態の内、残差ｒj(n)が閾値ｒthより小さくなり減少していると判断できるものは、個数Ｎstag(n)におけるカウントの対象から除外している。
また、上記式（１２）中、左辺の分母は、残差ｒj(n)と、過去（前回である（ｎ−１）回目）に演算された残差ｒj(n-1)との差である残差変化を示している。また、Ａstagは、前記残差変化の値の変化の度合を判定するための、予め定められた第一の閾値であり、この第一の閾値Ａstagよりも小さい場合に、積算部１２ａは、その演算については残差の減少が進んでいないものとして、個数Ｎstag(n)におけるカウントの対象としている。
なお、式（１２）において、左辺を‖ｒj(n-1)‖で除しているが、これは、左辺の演算を容易とするためである。
【００８６】
次いで、積算部１２ａは、下記式（１３）に基づいて、個数Ｎstag(n)の積算値を求める（ステップＳ４０２）。この個数Ｎstag(n)の積算値は、式（１３）に示すように、演算部１１による反復演算ごとにカウントされる個数Ｎstag(n)を、その反復演算の間、積算した値である。従って、図７中、ステップＳ３０４〜Ｓ３１０に示される前記反復演算に係るループを抜けた後、再度前記ループに入ると、積算部１２ａは、個数Ｎstag(n)及びその積算値をリセットして改めてカウントを開始する。
【００８７】
【数８】
2010073182.tif 000010
【００８８】
次に、積算部１２ａは、ステップＳ４０２にて求めた積算値を判定部１２ｂに与える。判定部１２ｂは、この積算値が下記式（１４）を満たすか否かを判定する（ステップＳ４０３）。
【００８９】
【数９】
2010073182.tif 000011
【００９０】
式（１４）中の右辺は、電子状態計算を続行するために必要な固有状態の数であるＮeigに、予め設定される係数Ｂstagを乗算したものであり、予め定められた第二の閾値を構成している。
前記積算値が、前記第二の閾値よりも大きいと判定されると（ステップＳ４０３）、判定部１２ｂは、固有値問題の残差ｒj(n)の減少が停滞していると判定し、判定フラグを「１」に設定する（ステップＳ４０４）。そして、演算部１１に判定が終了した旨の通知を与え（ステップＳ４０５）、図７中、ステップＳ３０７に戻り、ステップＳ３０８に進む。
なお、上記第一の閾値Ａstagは、固有値問題の残差ｒj(n)の変化が停滞しているか否かを判定する上での基準となる値であり、第一の閾値Ａstagによって、固有値問題の残差ｒj(n)の変化に対する敏感度が定められる。また、係数Ｂstagは前記積算値による減少停滞についての判定基準となる値である第二の閾値を調整する係数であり、これによって、前記積算値に対する許容度が定められる。
【００９１】
一方、前記積算値が前記第二の閾値以下と判定されると（ステップＳ４０３）、判定部１２ｂは、固有値問題の残差ｒj(n)の減少が停滞していないと判定し、判定フラグの設定を行わず、演算部１１に判定が終了した旨の通知を与え（ステップＳ４０５）、図７中、ステップＳ３０７に戻り、ステップＳ３０８に進む。
なおこの場合、図７中ステップＳ３０２において、判定フラグは初期値として「０」に設定されており、判定フラグの設定は「０」のままとなる。
【００９２】
このように、停滞判定部１２は、Ｎeig個の固有状態の内、所定の停滞条件を満たす固有値問題の演算結果が得られた固有状態の個数Ｎstag(n)をカウントすることで、反復演算の内の個々の演算におけるＮeig個の固有状態それぞれに関する固有値問題の残差ｒj(n)の減少の状況をＮeig個の固有状態を全体として判定する。そして、カウントされた個数Ｎstag(n)の積算値によって、演算部１１による固有値問題を解くための反復演算全体における残差ｒj(n)の減少停滞を判定している。
また、停滞判定部１２は、減少停滞が発生していないと判定すると判定フラグ初期値の「０」とし、減少停滞が発生していると判定すると判定フラグを「１」に設定する。
【００９３】
以上のようにして、固有状態演算部８は、固有値問題の残差ｒj(n)の値を反復演算し、当該残差ｒj(n)の値を充分に減少させることで前記固有値問題を解き、Ｎeig個の固有状態としての、波動関数ψj(n)、及び固有エネルギεj(n)を得る。
また固有状態演算部８は、演算部１１による反復演算において、固有値問題の残差ｒj(n)の減少が停滞しているか否かを判定し、残差ｒj(n)の減少が停滞していると判定すると、演算部１１の反復演算を中止して、判定フラグにその判定結果を反映させる。
【００９４】
次に、上記のように得られた固有状態から残差ポテンシャルを求めさらに電子間ポテンシャルｖを求めるための演算処理について説明する。
【００９５】
〔電子間ポテンシャルの演算について〕
図６に戻って、ステップＳ２０３において、Ｎeig個の固有状態としての、波動関数ψj(n)、及び固有エネルギεj(n)を得ると、固有状態演算部８は、これらを残差ポテンシャル演算部９に与える。残差ポテンシャル演算部９は、与えられたこれら電子の固有状態に基づいて、電子密度ρを求める（ステップＳ２０４）。
【００９６】
次に、残差ポテンシャル演算部９は、上記電子密度ρから、電子間ポテンシャルの出力値としての出力ポテンシャルｖout(m)を演算し、さらに、ステップＳ２０２において演算制御部１０が設定した入力ポテンシャルｖin(m)と、前記出力ポテンシャルｖout(m)との差である残差ポテンシャルｖres(m)を求める（ステップＳ２０５）。
【００９７】
残差ポテンシャル演算部９は、求めた残差ポテンシャルｖres(m)を演算制御部１０に与える。演算制御部１０は、この残差ポテンシャルｖres(m)の大きさが予め定められた閾値ｖthよりも小さいか否かの判定を行う（ステップＳ２０６）。
【００９８】
電子間ポテンシャルｖは、上述したように、反復演算により得られる残差ポテンシャルｖres(m)が「０」に収束したとみなせる程度に充分に減少したと判断しうる値となったときの出力ポテンシャルｖout(m)として得られる。ここで、閾値ｖthは、残差ポテンシャルｖres(m)が「０」に収束したとみなせる程度に充分に減少したと判断しうる値に設定される。
これにより、ステップＳ２０６において、残差ポテンシャルｖres(m)が閾値ｖthよりも小さいと判定されると、「０」に収束したとみなせる程度に充分に減少したと判断することができ、閾値ｖth以上と判定されると、未だ充分に減少していないと判断することができる。
【００９９】
演算制御部１０は、残差ポテンシャルｖres(m)が閾値ｖthより小さいと判定すると（ステップＳ２０６）、図４中、ステップＳ１０５に戻り、残差ポテンシャルｖres(m)が充分に減少したものとして、現状の出力ポテンシャルｖout(m)を電子間ポテンシャルｖとして、原子位置演算部５に与える。さらに演算制御部１０は、図６中ステップＳ２０３により求めた電子の固有状態である、波動関数ψj(n)、固有エネルギεj(n)についても原子位置演算部５に与える。
以降、原子位置演算部５及び電子状態演算部６は、上述した、ステップＳ１０４〜Ｓ１０９による処理を反復する。
【０１００】
上記ステップＳ２０６において、残差ポテンシャルｖres(m)が閾値ｖth以上と判定すると、演算制御部１０（の判定検知部１０ａ）は、判定フラグを参照する（ステップＳ２０７）。
ステップＳ２０７において、判定フラグが「１」でない場合（「０」である場合）、すなわち、固有値問題の残差ｒj(n)の減少が停滞していないと停滞判定部１２により判定された場合、演算制御部１０の判定検知部１０ａは、第一入力ポテンシャル演算部１０ｂに残差ポテンシャルｖres(m)、及び入力ポテンシャルｖin(m)を与え、固有状態演算部８に与えるための新たな入力ポテンシャルｖin(m+1)を演算させる。
【０１０１】
演算制御部１０の第一入力ポテンシャル演算部１０ｂは、記憶部３に記憶された情報を参照し、与えられた残差ポテンシャルｖres(m)、及び入力ポテンシャルｖin(m)に加えて、過去に反復演算された複数の入力ポテンシャルｖin(μ)、及びこれに対応して演算された複数の残差ポテンシャルｖres(μ)（但し、μ＜ｍ）に基づいて、固有状態演算部８に与えるための新たな入力ポテンシャルｖin(m+1)を演算する（ステップＳ２０９）。
【０１０２】
ここで、第一入力ポテンシャル演算部１０ｂは、上記新たな入力ポテンシャルｖin(m+1)を演算するために、以下に示す処理を行う。
新たな入力ポテンシャルｖin(m+1)を予測するには、一般的に下記式（１５）が用いられる。なお、式（１５）中、緩和係数Ｃは、カウント値ｍ＋１（反復回数ｍ＋１）における残差ポテンシャルｖres(m+1)がカウント値ｍにおける残差ポテンシャルｖres(m)よりも小さい値となることが期待される値を選んで設定される。
【０１０３】
【数１０】
2010073182.tif 000012
【０１０４】
これに対して、第一入力ポテンシャル演算部１０ｂは、過去の演算結果を反映するために、下記式（１６）に基づいて、新たな入力ポテンシャルｖin(m+1)を予測する。
【０１０５】
【数１１】
2010073182.tif 000013
【０１０６】
上記式（１６）中、Ｐmは、カウント値ｍから過去の演算にさかのぼる回数を示しており、新たな入力ポテンシャルｖin(m+1)を求めるために用いる過去の演算結果の上限個数を示しており、予め設定される。
第一入力ポテンシャル演算部１０ｂは、上記式（１６）を演算するために、式（１６）を式（１５）と同じ形の式とみなして演算すべく、仮の残差ポテンシャルｖresを下記式（１７）、仮の入力ポテンシャルｖinを下記式（１８）と定義し、前記仮の残差ポテンシャルｖresを最小化するパラメータｘの値を求め、得られたパラメータｘを式（１７）、（１８）に代入することで仮の残差ポテンシャルｖres及び仮の入力ポテンシャルｖinを求める。
【０１０７】
【数１２】
2010073182.tif 000014
【０１０８】
そして、第一入力ポテンシャル演算部１０ｂは、仮の残差ポテンシャルｖres及び仮の入力ポテンシャルｖinをそれぞれ、上記式（１５）中の残差ポテンシャルｖres(m)及び入力ポテンシャルｖin(m)として代入し、演算することで新たな入力ポテンシャルｖin(m+1)を得る。
【０１０９】
一方、ステップＳ２０７において、判定フラグが「１」である場合、すなわち、固有値問題の残差ｒj(n)の減少が停滞していると停滞判定部１２により判定された場合、演算制御部１０の判定検知部１０ａは、第二入力ポテンシャル演算部１０ｃに新たな入力ポテンシャルｖin(m+1)を演算させる（ステップＳ２０８）。
【０１１０】
第二入力ポテンシャル演算部１０ｃは、記憶部３に記憶された情報を参照し、過去に反復演算された複数の入力ポテンシャルｖin(μ)（但し、μ＜ｍ）の内の第一入力ポテンシャル演算部１０ｂが新たな入力ポテンシャルｖin(m+1)を演算するために用いる数より少ない数の入力ポテンシャルｖin、及びこれに対応して演算された残差ポテンシャルｖresに基づいて新たな入力ポテンシャルｖin(m+1)を演算する。
【０１１１】
具体的には、第二入力ポテンシャル演算部１０ｃは、下記式（１９）に基づいて新たな入力ポテンシャルｖin(m+1)を演算する。すなわち、第二入力ポテンシャル演算部１０ｃは、過去に演算された複数の入力ポテンシャルｖin(μ)から一の入力ポテンシャルｖinとして、入力ポテンシャルｖin(m-1)及びこれに対応して演算された残差ポテンシャルｖres(m-1)に基づいて新たな入力ポテンシャルｖin(m+1)を演算する。
なお、入力ポテンシャルｖin(m-1)及び残差ポテンシャルｖres(m-1)は、固有値問題の残差ｒj(n)の減少が停滞していると判定されたカウント値ｍの演算の直前であるカウント値ｍ−１の演算において求められたものである。
【０１１２】
【数１３】
2010073182.tif 000015
【０１１３】
ステップＳ２０８又はＳ２０９にて新たな入力ポテンシャルｖin(m+1)を演算すると、演算制御部１０は、第二カウンタ１４のカウント値ｍに「１」を加え（ステップＳ２１０）、ステップＳ２０３に戻る。
【０１１４】
ステップＳ２０３に戻り、電子状態演算部６（の固有状態演算部８、残差ポテンシャル演算部９、及び演算制御部１０）は、図４中ステップＳ１０４にて原子位置演算部５が演算した原子−電子間ポテンシャルｖextと、ステップＳ２０８又はＳ２０９にて演算された新たな入力ポテンシャルｖin(m)（ステップＳ２１０にてｍ＝ｍ＋１とされるので「ｍ」と表示している）とから、これらに対応した電子の固有状態（波動関数ψj、固有エネルギεj）を演算し、ステップＳ２０４〜Ｓ２０５を経ることで、新たな入力ポテンシャルｖin(m)に対応した残差ポテンシャルｖres(m)、出力ポテンシャルｖres(m)を演算する。
そして、電子状態演算部６は、再度、残差ポテンシャルｖres(m)の大きさが予め定められた閾値ｖthよりも小さいか否かの判定を行う（ステップＳ２０６）。電子状態演算部６は、これらステップＳ２０３〜Ｓ２１０を繰り返すことで、残差ポテンシャルｖres(m)が閾値ｖthより小さくなり、充分に減少したと判定されるまで、上記演算を反復する。
なお、第二カウンタ１４のカウント値ｍは、ステップＳ２０３〜Ｓ２１０にて行われる反復演算の演算回数を示している。
【０１１５】
また、電子状態演算部６は、上記反復演算において新たな入力ポテンシャルｖin(m)を求める際に、第一入力ポテンシャル演算部１０ｂを用いるか第二入力ポテンシャル演算部１０ｃを用いるかの選択を、上述のように参照した判定フラグの参照結果に応じて行う。
【０１１６】
電子状態演算部６は、残差ポテンシャルｖres(m)が閾値ｖthより小さいと判定すると（ステップＳ２０６）、上述の通り、図４中のステップＳ１０５に戻り、現状の出力ポテンシャルｖout(m)を電子間ポテンシャルｖとして原子位置演算部５に与えるとともに、現状得られている電子の固有状態である波動関数ψj(n)及び固有エネルギεj(n)についても原子位置演算部５に与える。
以降、原子位置演算部５及び電子状態演算部６は、上述した、ステップＳ１０４〜Ｓ１０９による処理を反復する。そして、上述の諸条件を満たせば、データ処理部４は、入出力部２を介して、前記対象物質の物性に関するデータ、あるいは、前記各ベクトル、電子間ポテンシャル、電子の固有状態に関するデータを出力する（ステップＳ１１０）。
【０１１７】
上記のように構成された電子状態演算装置１によれば、停滞判定部１２によって固有値問題の残差ｒj(n)に減少停滞が発生していないと判定された場合には、第一入力ポテンシャル演算部１０ｂによって、現状の残差ポテンシャルｖres(m)、及び入力ポテンシャルｖin(m)に加えて、過去に反復演算された複数の入力ポテンシャルｖin(μ)、及びこれに対応して演算された複数の残差ポテンシャルｖres(μ)（但し、μ＜ｍ）に基づいて新たな入力ポテンシャルｖin(m+1)が演算される。
その一方、停滞判定部１２が固有値問題の残差ｒj(n)に減少停滞が発生していると判定すると、当該停滞判定部１２が演算部１１による反復演算を中止させる。さらに、この場合、第二入力ポテンシャル演算部１０ｃによって、過去に反復演算された複数の入力ポテンシャルｖin(μ)（但し、μ＜ｍ）の内の第一入力ポテンシャル演算部１０ｂが新たな入力ポテンシャルｖin(m+1)を演算するために用いる数より少ない数の入力ポテンシャルｖin（一の入力ポテンシャルｖin(m-1)）、及びこれに対応して演算された残差ポテンシャルｖres(m-1)に基づいて新たな入力ポテンシャルｖin(m+1)を演算するので、その他の過去の演算結果及び現状の演算結果を参照しない。従って、固有値問題の残差ｒj(n)に減少停滞が発生すれば、必要以上に過去の演算結果を参照することなく新たな入力ポテンシャルｖin(m+1)の演算が行われるので、再度行われる固有値問題（電子の固有状態）の演算において、固有値問題の残差に減少停滞が生じるのを抑制することができる。
つまり、固有値問題の残差ｒj(n)に減少停滞が生じた後に再度行われる固有値問題についての演算においては、固有値問題の残差ｒj(n)の減少停滞の発生が抑制される。このため、固有値問題の残差ｒj(n)に減少停滞が生じたとしても、固有値問題の残差ｒj(n)が減少しないまま固有値問題についての演算を繰り返してしまうのを防止でき、当該演算における反復回数を減らすことができる。この結果、速やかに電子状態の演算を行うことができる。
【０１１８】
なお、本実施形態の電子状態演算装置１では、上述のように、固有値問題の残差ｒj(n)に減少停滞が生じた場合に、固有値問題に関する反復演算（ステップＳ３０４〜Ｓ３１０による反復演算）を中止して、再度演算を開始するので、他の反復演算（ステップＳ１０４〜Ｓ１０９による反復演算、ステップＳ２０３〜Ｓ２１０による反復演算）においては、その減少の進行を妨げるおそれがある。
この点、固有状態演算部８の演算部１１が行う、各電子の固有状態に関する固有値問題についての演算は、上記式（５）に示すように、演算子としての機能を有する行列であるハミルトニアンＨと、ベクトルである波動関数ψj(n)との積φjを繰り返し演算するため、一度の演算に要する時間が多大のものとなる。このため、固有値問題に関する演算の反復回数を減らすことができれば、他の反復演算における反復回数が多少増加したとしても、電子状態の演算全体としては、その演算時間が圧縮される。
【０１１９】
また、上記実施形態において、第二入力ポテンシャル演算部１０ｃは、過去に反復演算された複数の入力ポテンシャルｖin(μ)（但し、μ＜ｍ）の内の一の入力ポテンシャルｖin(m-1)、及びこれに対応して演算された一の残差ポテンシャルｖres(m-1)に基づいて新たな入力ポテンシャルｖin(m+1)を演算するので、必要以上に過去の演算結果を参照するのを確実に防止することができる。
【０１２０】
また、第二入力ポテンシャル演算部１０ｃは、固有値問題の残差ｒj(n)に減少停滞が発生していると判定された演算の直前に演算された入力ポテンシャルｖin(m-1)及び残差ポテンシャルｖres(m-1)に基づいて新たな入力ポテンシャルｖin(m+1)を演算するので、固有値問題の残差ｒj(n)の減少停滞が発生しなかった間における最も新しい過去の演算結果のみを参照して、新たな入力ポテンシャルを演算するので、固有値問題の残差ｒj(n)の減少及び残差ポテンシャルｖres(m-1)の減少が、他の複数の過去の演算結果を参照しないことによって過大に妨げられるのを防止できる。
【０１２１】
〔第一の実施形態に係る装置に関する効果の確認について〕
本発明者は、本実施形態による電子状態演算装置１によって、実際に電子ポテンシャルの演算を行い、従来の方法で演算を行った場合と比較してその効果の検証を行った。
実施例品としては、上記実施形態による電子状態演算装置１を用いた。なお、上記実施例において、ステップＳ４０１において用いられる第一の閾値Ａstagは、０．１、ステップＳ４０３において用いられる第二の閾値を定めるための係数Ｂstagは、２に設定した。
比較例品としては、上記電子状態演算装置１において、入力ポテンシャルｖin(m+1)を得る際の演算を第一入力ポテンシャル演算部１０ｂのみで行うことで、固有値問題の残差の減少停滞の判定及び第二入力ポテンシャル演算部１０ｃによる演算を行わない態様としたものを用いた。
【０１２２】
電子状態の演算対象としては、ＩｎＧａＡｓＰ系ＩＩＩ−Ｖ族半導体混晶（ＩＩＩ族原子の空孔を１つ含んでいる）を採用した。
混晶では各構成原子の原子半径の差から、各構成原子の位置は半導体結晶の理想位置から微妙にずれるので、図４中、ステップＳ１０４〜Ｓ１０９による反復演算の中でステップＳ１０８において行われる、各構成原子の位置関係を調整する処理により最適な位置に調整される。この処理については、反復回数を６回として、電子状態の演算を終えるように設定した。なお、電子状態を行ったいずれの演算結果についても、反復回数６回で、理想位置に対して最適と判断できる程度の位置関係に調整されたことを確認している。
【０１２３】
評価方法としては、上記実施例品及び比較例品それぞれを用いて、電子状態の演算を上述の条件にて行い、電子状態の演算を開始してから終えるまでに、固有値問題についての演算に含まれる上記式（５）に示される演算（ハミルトニアンＨと、ベクトルである波動関数ψj(n)との積φjを求める演算）の演算回数を比較することで評価した。その結果を表１に示す。
【０１２４】
【表１】
2010073182.tif 000016
【０１２５】
表１に示すように実施例品では、比較例品と比較して、３割程度演算回数が減少していることが判る。
【０１２６】
図９は、実施例品及び比較例品によって行った電子状態の演算における、ハミルトニアンＨと波動関数ψj(n)との積を求める演算の演算回数と、固有値問題の残差ｒj(n)の値の内の最大値Ｍ（上記式（９）参照）との関係を示すグラフである。
図９（ａ）は実施例品、（ｂ）は比較例品による演算に関するグラフであり、横軸はＨψj(n)の演算回数、縦軸は最大値Ｍ（Ｒｙ）を示している。
図９（ａ）及び（ｂ）を見ると、両者は共に、６つの群を成す多数の線図が表れている。これら６つの群は、上述のように、図４中のステップＳ１０８において行われる各構成原子の位置関係を調整する処理が行われるごとに群を成すように現れており、前記処理は６回反復されるので、その反復回数に対応して６つの群として現れている。
各群それぞれの中で、固有値問題の残差ｒj(n)を減少させる演算が行われるので、各群を構成している多数の線図は、各群それぞれの中で反復反復されることで最大値Ｍが小さくなり、固有値問題の残差ｒj(n)が減少されていることが示されている。
【０１２７】
図９（ｂ）を見ると、４つ目の群以降から、図中の円Ｕ１で囲まれる部分のように線図が平行に延びる部分が顕著に現れており、最大値Ｍが減少に至るまでにＨψj(n)の演算回数が増加していることが判る。比較例品では、このような減少停滞が数多く生じており、この減少停滞によってＨψj(n)の演算回数が全体として増加している。
一方、図９（ａ）では、図中の円Ｕ２で囲まれる部分のように減少停滞が生じている部分が現れているが、その後の演算においては減少停滞の発生が見られない。このことより、実施例品では、減少停滞後に再度行われる演算においては、残差の減少停滞の発生が抑制されていることが確認できる。
【０１２８】
図１０は、実施例品及び比較例品によって行った電子状態の演算における、ハミルトニアンＨと波動関数ψj(n)との積を求める演算の演算回数と、残差ポテンシャルｖres(m)の値との関係を示すグラフである。
図１０（ａ）は実施例品、（ｂ）は比較例品による演算に関するグラフであり、横軸はＨψj(n)の演算回数、縦軸は残差ポテンシャルｖres(m)の値（Ｒｙ）を示している。
図１０（ａ）及び（ｂ）においても、図９の説明にて述べた理由と同じ理由によって６つの線図が表れている。残差ポテンシャルｖres(m)は、ステップＳ１０４〜Ｓ１０９による反復演算の中で序々に減少するように演算されるので、各線図は、それぞれＨψj(n)の演算回数に応じて、漸次小さくなるように現れている。
図１０を見ると、実施例品である（ａ）では、残差ポテンシャルｖres(m)が一様に減少していることが判る。
一方、（ｂ）では、４つ目の線図以降から、残差ポテンシャルｖres(m)の減少の度合が小さくなり、Ｈψj(n)の演算回数が全体として増加していることが判る。
【０１２９】
図１１は、実施例品及び比較例品によって行った電子状態の演算における、ハミルトニアンＨと波動関数ψj(n)との積を求める演算の演算回数と、電子間ポテンシャルｖの演算回数との関係を示すグラフである。
図１１（ａ）は実施例品、（ｂ）は比較例品による演算に関するグラフであり、横軸は電子間ポテンシャルｖの演算回数、縦軸は、電子間ポテンシャルｖの演算回数ごとのＨψj(n)の演算回数を示している。
図１１（ａ）及び（ｂ）においても、図９の説明にて述べた理由と同じ理由によって６つの線図が表れている。
【０１３０】
図１１を見ると、比較例品を示す（ｂ）では、実施例品を示す（ａ）と比較して、４つ目の線図以降から、極端にＨψj(n)の演算回数が増加していることが判る。
また、電子状態の演算を終えるまでに行われる電子間ポテンシャルｖの演算回数は、実施例品の方が若干増えているが、演算に多大な時間を要するＨψj(n)の演算回数は、実施例品の方が少ないので、電子状態の演算全体として比較すると、実施例品の方がその演算時間は圧縮される。
【０１３１】
また、参照する過去の演算結果の上限個数Ｐmが、Ｈψj(n)の演算回数に及ぼす影響を把握するために、他の比較例品について電子状態の演算を行った。
前記他の比較例品としては、上記電子状態演算装置１において、入力ポテンシャルｖin(m+1)を得る際の演算を第一入力ポテンシャル演算部１０ｂのみで行うことで、固有値問題の残差の減少停滞の判定及び第二入力ポテンシャル演算部１０ｃによる演算を行わない態様としたものとし、第一入力ポテンシャル演算部１０ｂが行う演算は、上記式（１６）〜（１８）に基づいたものを用いて電子状態の演算を行うものとした。
なお、参照する過去の演算結果の上限個数Ｐmについては、「２」、「７」、及び「１０」の３種類に設定し、その他の条件は上述の実施例品及び比較例品の場合と同様とした。
【０１３２】
図１２は、上記他の比較例品によって行った電子状態の演算における、ハミルトニアンＨと波動関数ψj(n)との積を求める演算の演算回数と、固有値問題の残差ｒj(n)の値の内の最大値Ｍとの関係を示すグラフである。
図１２（ａ）は、参照する過去の演算結果の上限個数Ｐmを「２」に設定したもの、（ｂ）は、上限個数Ｐmを「７」に設定したもの、（ｃ）は、上限個数Ｐmを「１０」に設定したものであり、横軸はＨψj(n)の演算回数、縦軸は最大値Ｍ（Ｒｙ）を示している。
【０１３３】
図１２を見ると、いずれの場合においても減少停滞が生じ、Ｈψj(n)の演算回数が増加している。また、Ｈψj(n)の演算回数が、上限個数Ｐmに依存する傾向は見られない。
つまり、この結果から、上限個数Ｐmを調整しただけでは、減少停滞を回避することができないと言える。
この点、本発明による実施例品では、図９（ａ）に示すように、減少停滞が発生したとしても、その後の演算においては、減少停滞の発生が抑制されている。
このように、本発明により得られる、固有値問題における残差の減少停滞の抑制効果は、単に参照する過去の演算結果の上限個数Ｐmを減らしただけでは得ることができないものであることが、上記の結果から明らかである。
【０１３４】
以上の検証結果より、本発明による電子状態演算装置によれば、固有状態を求める演算において、固有値問題の残差に減少停滞が生じたとしても、その後の演算においては減少停滞の発生を抑制することができ、その結果、固有値問題の残差が減少しないまま演算を繰り返してしまうのを防止でき、当該演算における反復回数を減らすことができることが明らかとなった。
【０１３５】
〔第二の実施形態に係る装置の構成及びその動作について〕
図１３は、本発明の第二の実施形態に係る電子状態演算装置１の電子状態演算部６が電子間ポテンシャル及び電子の固有状態を求める際の動作態様を示したフローチャート、図１４は、固有状態演算部の動作を示したフローチャート、図１５は、演算制御部の機能を示すブロック図である。本実施形態と上記第一の実施形態との相違点は、固有状態演算部８が停滞判定部１２の判定結果を示す判定フラグに応じて、固有値問題の残差減少の停滞状況を示す後述する停滞指数Ｍを設定する点、演算制御部１０が、第三入力ポテンシャル演算部１０ｄを有している点、及び、判定検知部１０ａが停滞指数Ｍに基づいて第一〜第三入力ポテンシャル演算部１０ｂ〜１０ｄの内の一つを選択し、新たな入力ポテンシャルの演算を行わせる点である。その他の点については、第一の実施形態と同様なので説明を省略する。
【０１３６】
図１３で示すフローチャートは、上記第一の実施形態における図６に相当する処理を示しており、電子状態演算部６が電子間ポテンシャル及び電子の固有状態（波動関数ψj、固有エネルギεj）を求める際の動作態様を示している。
電子状態演算部６は、原子位置演算部５が演算した原子−電子間ポテンシャルｖextが与えられると（図４中ステップＳ１０４）、第二カウンタ１４のカウント値ｍを「１」に設定する（ステップＳ５０１）。そして、電子状態演算部６は、固有状態演算部８に入力するための入力ポテンシャルｖin(m)の初期値（ｍ＝１）を演算制御部１０に設定させる（ステップＳ５０２）。
このとき、演算制御部１０は、原子位置演算部５が行う図４中のステップＳ１０４〜Ｓ１０９による反復演算で演算される、現状の基本格子ベクトルａi(l)、位置ベクトルＲh(l)、及び過去の基本格子ベクトルａi(ν)、位置ベクトルＲh(ν)に（但し、ν＜ｌ）に基づいて、入力ポテンシャルｖin(m)の初期値を求め、設定する。
なお、現状の基本格子ベクトルａi(l)、位置ベクトルＲh(l)とは、原子位置演算部５による反復演算によって現状の反復回で演算されたものであり、過去の基本格子ベクトルａi(ν)、位置ベクトルＲh(ν)とは、前記現状の反復回よりも小さい数値の反復回（過去の反復回）によって演算されたものを指す。
【０１３７】
電子状態演算部６の演算制御部１０は、原子−電子間ポテンシャルｖext及び入力ポテンシャルｖin(m)を固有状態演算部８に与え、これらに対応した電子の固有状態（波動関数ψj、固有エネルギεj（１≦ｊ≦Ｎeig））を固有状態演算部８に演算させる（ステップＳ５０３）。
【０１３８】
図１４に示すフローチャートは、図１３中のステップＳ５０３の処理を示している。
図１４において、固有状態演算部８は、まず、第二カウンタ１４のカウント値ｍが「１」であるか否かを判定する（ステップＳ６０１）。
第二カウンタ１４のカウント値ｍが「１」である場合、固有状態演算部８は、停滞指数Ｍstag(m)を、及びＭstag(m-1)を「０」に設定し、ステップＳ６０３に進む（ステップＳ６０２）。第二カウンタ１４のカウント値ｍが「１」でない場合、固有状態演算部８は、そのまま、ステップＳ６０３に進む。
ステップＳ６０３〜Ｓ６０９では、それぞれ図７中のステップＳ３０１〜Ｓ３０７と対応しており、ステップＳ３０１〜Ｓ３０７と同様の処理が行われる。
【０１３９】
ステップＳ６０９において、停滞判定部１２が減少停滞に関する判定を終えた旨の通知を演算部１１に対して与えると、固有状態演算部８は、判定フラグを参照し、判定フラグが「１」であるか否かを判断する（ステップＳ６１０）。
判定フラグが「０」である場合、すなわち、停滞判定部１２が、固有値問題の残差ｒj(n)の減少が停滞していないと判定したときには、固有状態演算部８は、停滞指数Ｍstag(m)を「０」に設定する（ステップＳ６１１）。ついで、固有状態演算部８は、演算部１１に新たな波動関数ψj(n+1)を演算させ（ステップＳ６１２）、第三カウンタ１５のカウント値ｎに「１」を加え（ステップＳ６１３）、ステップＳ６０６に戻る。そして、再度、固有エネルギεj(n)及び波動関数ψj(n)を求めるとともに、固有値問題の残差ｒj(n)を求める演算を反復する。
【０１４０】
一方、判定フラグが「１」である場合、すなわち、停滞判定部１２が、固有値問題の残差ｒj(n)の減少が停滞していると判定したときには、固有状態演算部８は、第二カウンタ１４のカウント値ｍが一つ前である過去の演算における停滞指数Ｍstag(m-1)に「１」を加えた値を停滞指数Ｍstag(m)として設定する（ステップＳ６１４）。
【０１４１】
ここで、上記停滞指数Ｍstag(m)は、判定フラグが「０」である場合、「０」に設定され、判定フラグが「１」である場合、第二カウンタ１４のカウント値ｍが一つ前の停滞指数Ｍstag(m-1)に「１」を加えた値を停滞指数Ｍstag(m)として設定される。このため、後述する図１３中のステップＳ５０３〜Ｓ５１２による反復演算が行われたとき、現状の演算において固有値問題の残差ｒj(n)の減少が停滞していない場合、停滞指数Ｍstag(m)は、常に「０」に設定される。
【０１４２】
また、第二カウンタ１４のカウント値ｍが一つ前の演算である過去の演算において、固有値問題の残差ｒj(n)の減少が停滞しておらず、現状の演算において固有値問題の残差ｒj(n)の減少が停滞している場合、一つ前の演算における停滞指数Ｍstag(m-1)は「０」なので、停滞指数Ｍstag(m)は、「１」に設定される。
また、一つ前の演算（過去の演算）において、固有値問題の残差ｒj(n)の減少が停滞し、かつ、現状の演算において固有値問題の残差ｒj(n)の減少が停滞している場合、一つ前の演算における停滞指数Ｍstag(m-1)は「１」以上となるので、停滞指数Ｍstag(m)は、「１」より大きい値に設定される。
このように、停滞指数Ｍstag(m)は、現状の演算において固有値問題の残差ｒj(n)の減少が停滞しているか否かを示すとともに、現状の演算において固有値問題の残差ｒj(n)の減少が停滞している場合には、固有値問題の残差ｒj(n)の減少の停滞が現状の演算と過去の演算との間で連続して発生しているか否かを示すことができる。
【０１４３】
次いで、固有状態演算部８は、図１３中のステップＳ５０３に戻り、現状、解として得られた波動関数ψj(n)、及び固有エネルギεj(n)を残差ポテンシャル演算部９に与える。
ステップＳ５０４〜Ｓ５０６では、それぞれ図６中のステップＳ２０４〜Ｓ２０６と対応しており、ステップＳ２０４〜Ｓ２０６と同様の処理が行われる。
【０１４４】
ステップＳ５０６において、残差ポテンシャル演算部９から残差ポテンシャルｖres(m)が与えられた演算制御部１０は、この残差ポテンシャルｖres(m)の大きさが予め定められた閾値ｖthよりも小さいか否かの判定を行う（ステップＳ５０６）。
【０１４５】
演算制御部１０は、残差ポテンシャルｖres(m)が閾値ｖthより小さいと判定すると（ステップＳ５０６）、図４中、ステップＳ１０５に戻り、残差ポテンシャルｖres(m)が充分に減少したものとして、現状の出力ポテンシャルｖout(m)を電子間ポテンシャルｖとして、原子位置演算部５に与える。さらに演算制御部１０は、図１３中ステップＳ５０３により求めた電子の固有状態である、波動関数ψj(n)、固有エネルギεj(n)についても原子位置演算部５に与える。
以降、原子位置演算部５及び電子状態演算部６は、上述した、ステップＳ１０４〜Ｓ１０９による処理を反復する。
【０１４６】
上記ステップＳ５０６において、残差ポテンシャルｖres(m)が閾値ｖth以上と判定すると、演算制御部１０（の判定検知部１０ａ）は、停滞指数Ｍstag(m)を参照する（ステップＳ５０７）。
【０１４７】
本実施形態の演算制御部１０は、図１５に示すように、第一及び第二入力ポテンシャル演算部１０ｂ、１０ｃに加え、第三入力ポテンシャル演算部１０ｄを有している。
また、本実施形態の判定検知部１０ａは、残差ポテンシャルが「０」に収束したとみなせる程度に充分に減少したと判断しうる値にまで減少しているか否かを判定する機能（ステップＳ５０６）に加えて、残差ポテンシャルが充分に減少していないと判定すると、停滞指数Ｍstag(m)を参照し、停滞指数Ｍstag(m)に応じて、いずれかの入力ポテンシャル演算部１０ｂ〜１０ｄを選択し、固有状態演算部８に与えるための新たな入力ポテンシャルを演算させる。
【０１４８】
ステップＳ５０７において、停滞指数Ｍstag(m)を参照しその値が「１」であると判定された場合、すなわち、一つ前の演算（過去の演算）において、固有値問題の残差ｒj(n)の減少が停滞しておらず、現状の演算において固有値問題の残差ｒj(n)の減少が停滞している場合、演算制御部１０の判定検知部１０ａは、第二入力ポテンシャル演算部１０ｃに新たな入力ポテンシャルｖin(m+1)を演算させる（ステップＳ５０８）。このステップＳ５０８における新たな入力ポテンシャルｖin(m+1)の演算については、上記第一の実施形態における図６中ステップＳ２０８と同様である。
ステップＳ５０８にて新たな入力ポテンシャルｖin(m+1)を演算すると、演算制御部１０は、第二カウンタ１４のカウント値ｍに「１」を加え（ステップＳ５０９）、ステップＳ５０３に戻る。
【０１４９】
一方、ステップＳ５０７において、停滞指数Ｍstag(m)が「１」でないと判定された場合、判定検知部１０ａは、ステップＳ５１０に進み、停滞指数Ｍstag(m)が「１」より大きいか否かを判定する（ステップＳ５１０）。
【０１５０】
ステップＳ５１０において、停滞指数Ｍstag(m)が「１」より大きいと判定された場合、すなわち、一つ前の演算（過去の演算）において、固有値問題の残差ｒj(n)の減少が停滞し、かつ、現状の演算において固有値問題の残差ｒj(n)の減少が停滞している場合、判定検知部１０ａは、第三入力ポテンシャル演算部１０ｄに新たな入力ポテンシャルｖin(m+1)を演算させる（ステップＳ５１１）。
第三入力ポテンシャル演算部１０ｄは、原子位置演算部５が行う図４中のステップＳ１０４〜Ｓ１０９による反復演算において演算される、現状の基本格子ベクトルａi(l)、位置ベクトルＲh(l)を取得し、これらに基づいて、固有状態演算部８に与えるための新たな入力ポテンシャルｖin(m+1)を演算する（ステップＳ５１１）。
ステップＳ５１１にて新たな入力ポテンシャルｖin(m+1)を演算すると、演算制御部１０は、第二カウンタ１４のカウント値ｍに「１」を加え（ステップＳ５０９）、ステップＳ５０３に戻る。
【０１５１】
ステップＳ５１０において、停滞指数Ｍstag(m)が「１」より大きくないと判定された場合、すなわち、現状の演算において固有値問題の残差ｒj(n)の減少が停滞していない場合、判定検知部１０ａは、第一入力ポテンシャル演算部１０ｂに残差ポテンシャルｖres(m)、及び入力ポテンシャルｖin(m)を与え、固有状態演算部８に与えるための新たな入力ポテンシャルｖin(m+1)を演算させる（ステップＳ５１２）。このステップＳ５１２における新たな入力ポテンシャルｖin(m+1)の演算については、上記第一の実施形態における図６中ステップＳ２０９と同様である。
【０１５２】
以上のように、判定検知部１０ａは、ステップＳ５０７、及びＳ５１０において、固有値問題の残差減少の停滞状況を示す停滞指数Ｍstag(m)を参照することで、現状の演算において固有値問題の残差ｒj(n)の減少が停滞しているか否かを判断するとともに、現状の演算において残差ｒj(n)の減少が停滞していると判断する場合にはさらに残差ｒj(n)の減少の停滞が現状の演算と過去の演算との間で連続して発生しているか否かを判断することができる判断部を構成している。そして、判定検知部１０ａは、上記判断に応じて、各入力ポテンシャル演算部１０ｂ〜１０ｄを選択しつつ、新たな入力ポテンシャルｖin(m+1)を演算させることができる。
【０１５３】
ステップＳ５１２にて新たな入力ポテンシャルｖin(m+1)を演算すると、演算制御部１０は、第二カウンタ１４のカウント値ｍに「１」を加え（ステップＳ５０９）、ステップＳ５０３に戻る。
【０１５４】
以上により、電子状態演算部６は、ステップＳ５０６において残差ポテンシャルｖres(m)が閾値ｖthより小さくなり、充分に減少したと判定されるまで、上述のステップＳ５０３〜Ｓ５１２による処理を繰り返し、演算を反復する。
【０１５５】
以降の処理は、上記第一の実施形態と同様であり、原子位置演算部５及び電子状態演算部６は、図４に示すステップＳ１０４〜Ｓ１０９による処理を反復する。そして、諸条件を満たせば、電子状態演算装置１は、前記各ベクトル、電子間ポテンシャル、電子の固有状態に関するデータを出力する。
【０１５６】
上記のように構成された電子状態演算装置によれば、判断部としての判定検知部１０ａが現状の演算において固有値問題の残差ｒj(n)に減少停滞が発生していると判断しかつ残差ｒj(n)の減少の停滞が現状の演算と過去の演算との間で連続して発生していないと判断すると、必要以上に過去に演算された入力ポテンシャルを参照することなく演算を行う第二入力ポテンシャル演算部１０ｃによって新たな入力ポテンシャルｖin(m+1)が演算されるので、再度行われる電子の固有状態の演算においては、固有値問題の残差に減少停滞が生じるのを抑制することができる。
【０１５７】
ここで、電子の固有状態及び前記電子間ポテンシャルを求めるための対象物質の性質やその他の条件によっては、上記第二入力ポテンシャル演算部１０ｃによる演算では、固有値問題の残差ｒj(n)に減少停滞が生じるのを抑制できない場合がある。このような場合、過去において行われた反復演算の結果をさらに排除した演算を行うことで、固有値問題の残差ｒj(n)に減少停滞が生じるのを抑制することができる。
すなわち、本実施形態では、判定検知部１０ａが現状の演算において固有値問題の残差ｒj(n)に減少停滞が発生していると判断しかつ残差ｒj(n)の減少の停滞が現状の演算と一つ前の演算（過去の演算）との間で連続して発生していると判断すると、第三入力ポテンシャル演算部１０ｄによって、原子位置演算部５による反復演算において演算される現状の基本格子ベクトルａi(l)、及び位置ベクトルＲh(l)に基づいて新たな入力ポテンシャルｖin(m+1)が演算されるので、原子位置演算部５による反復演算における過去の演算結果である、過去の基本格子ベクトルａi(ν)、位置ベクトルＲh(ν)（但し、ν＜ｌ）が新たな入力ポテンシャルに反映されない。
【０１５８】
つまり、第二入力ポテンシャル演算部１０ｃによる演算がなされても固有値問題の残差減少の停滞が抑制されず、固有値問題の残差の減少停滞が現状の演算と一つ前の演算（過去の演算）との間で連続して発生すると、第三入力ポテンシャル演算部１０ｄによって、原子位置演算部５による過去の演算結果をも参照することなく新たな入力ポテンシャルｖin(m+1)の演算が行われる。これによって、演算制御部８の反復演算による過去の演算結果のみならず、原子位置演算部５の反復演算による過去の演算結果も参照することなく新たな入力ポテンシャルｖin(m+1)が演算されるので、新たな入力ポテンシャルｖin(m+1)に及ぶ過去の反復演算の結果による影響を、第二入力ポテンシャル演算部１０ｃによるもの以上に排除できる。この結果、再度行われる固有状態の演算において、固有値問題の残差に減少停滞が生じるのを抑制することができる。
以上により、本実施形態によれば、対象物質の性質やその他の条件によって、必要以上に過去に演算された入力ポテンシャルを参照することなく演算を行う上記第二入力ポテンシャル演算部１０ｃによる演算では、固有値問題の残差ｒj(n)に減少停滞が生じるのを抑制できない場合においても、固有値問題の残差が減少しないまま電子の固有状態の演算を繰り返してしまうのを防止でき、速やかに電子状態の演算を行うことができる。
【０１５９】
〔第二の実施形態に係る装置に関する効果の確認について〕
本発明者は、本実施形態（第二の実施形態）による電子状態演算装置１によって、実際に電子ポテンシャルの演算を行い、従来及び第一の実施形態による方法で演算を行った場合と比較してその効果の検証を行った。
従来の方法、及び第一の実施形態による方法で演算を行う場合については、上記第一の実施形態における効果の確認における比較例品及び実施例品と同様の条件とした。
第二の実施形態による方法によるもの（以下、ここでは第二実施形態品という）についても、従来の方法によるもの（以下、ここでは比較例品という）、及び第一の実施形態による方法によるもの（以下、ここでは第一実施形態品という）と同様の条件とした。
【０１６０】
電子状態の演算対象となる対象物質としては、ＺｎをドーピングしたＩｎＰであって、Ｚｎの原子配置が、当該Ｚｎが拡散しつつある中間的な位置にある状態のものを採用した。
【０１６１】
評価方法としては、上記比較例品、第一実施形態品、及び第二実施形態品それぞれを用いて、電子状態の演算を上述の条件にて行い、図４中、繰り返し実行されるステップＳ１０４〜Ｓ１０９による処理（各構成原子の位置関係を調整する処理）において、その繰り返し実行される前記処理の内の一の前記処理（第一カウンタ１３のカウント値ｌ一つ分における前記処理）にのみ着目し、前記一の前記処理において行われる、電子間ポテンシャル及び固有状態についての演算（図６、又は図１３に示すフローチャートで示される演算）に含まれる上記式（５）に示される演算（ハミルトニアンＨと、ベクトルである波動関数ψj(n)との積φjを求める演算）の演算回数と、残差ポテンシャルｖres(m)の値（Ｒｙ）との関係を比較することで評価した。その結果を図１６に示す。
【０１６２】
図１６は、比較例品、第一実施形態品、及び第二実施形態品それぞれを用いて行った電子状態の演算における、ハミルトニアンＨと波動関数ψj(n)との積を求める演算の演算回数と、残差ポテンシャルｖres(m)の値との関係を示すグラフである。
図１６中、実線は第二実施形態品、破線は第一実施形態品、一点鎖線は比較例品による演算に関するグラフを示しており、横軸はＨψj(n)の演算回数、縦軸は残差ポテンシャルｖres(m)の値（Ｒｙ）を示している。また、上記各実施形態品において、残差ポテンシャルｖres(m)の値は、１０-7に達すれば、演算される電子間ポテンシャルの精度が十分に得られるため、残差ポテンシャルｖres(m)の値は、１０-7に達すれば収束したものとみなすことができる。
【０１６３】
図１６において、円Ｅで囲まれた部分において、各品は、固有状態の演算において固有値問題の残差の減少に停滞が発生している。
比較例品では、その後、Ｈψj(n)の演算回数の増加に対して、残差ポテンシャルｖres(m)の値は序々に減少しているが、当該残差ポテンシャルｖres(m)の値が収束する気配は見られない。その理由は、最初に固有値問題の残差の減少の停滞が生じた後、固有値問題の残差が減少しないまま固有状態の演算を反復してしまい、これによって、残差ポテンシャルｖres(m)の収束を鈍化させているものと考えられる。
また、第一実施形態品も上記比較例品と同様、Ｈψj(n)の演算回数の増加に対して、残差ポテンシャルｖres(m)の値が収束する気配は見られない。この場合も、最初に固有値問題の残差の減少の停滞が生じた後、その後の演算における残差の減少の停滞を抑制することができず、固有値問題の残差が減少しないまま固有状態の演算を反復してしまい、これによって、残差ポテンシャルｖres(m)の収束を鈍化させているものと考えられる。
【０１６４】
一方、第二実施形態品では、固有値問題の残差の停滞が発生の後、残差ポテンシャルｖres(m)の値が急激に増加するが、その後、Ｈψj(n)の演算回数の増加に対して、残差ポテンシャルｖres(m)の値は減少し、収束したものとみなすことができる程度よりもその値が小さくなっている。このように、第二実施形態品では、一時的に残差ポテンシャルｖres(m)の値が増加するが、最終的には収束に至る。
この場合、最初に固有値問題の残差の減少の停滞が生じた後、その後の演算においては固有値問題の残差の減少の停滞の発生が効果的に抑制され、残差ポテンシャルｖres(m)を収束させているものと考えられる。
【０１６５】
以上のように、本検証における条件下では、固有値問題の残差の停滞に対して何ら対策が施されていない比較例品のみならず、固有値問題の残差の停滞に対して過去に演算された入力ポテンシャルを参照することなく新たな入力ポテンシャルを演算するように構成された第一実施形態品においても、一度固有値問題の残差に減少停滞が生じると、その後の演算において固有値問題の残差の減少停滞が発生するのを抑制することができない。
これに対して、第二実施形態品によれば、このような条件下においても、効果的に固有値問題の残差の減少停滞が発生するのを抑制することができ、固有状態に関する演算についての反復回数を減らせることが明らかとなった。
【０１６６】
なお、今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した意味ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内での全ての変更が含まれることが意図される。
【図面の簡単な説明】
【０１６７】
【図１】本発明の一実施形態に係る電子状態演算装置の機能的構成を示すブロック図である。
【図２】固有状態演算部の機能を示すブロック図である。
【図３】演算制御部の機能を示すブロック図である。
【図４】本実施形態の電子状態演算装置の総括的な動作を示したフローチャートである。
【図５】ステップＳ１０１において、対象物質の構成原子の位置に関する情報の入力を受け付けるためのディスプレイ表示の一例である。
【図６】電子状態演算部が電子間ポテンシャル及び電子の固有状態を求める際の動作態様を示したフローチャートである。
【図７】図６中ステップＳ２０３の演算処理における固有状態演算部の動作を示したフローチャートである。
【図８】固有状態演算部の停滞判定部による減少停滞に関する判定処理の態様を示すフローチャートである。
【図９】実施例品及び比較例品によって行った電子状態の演算における、ハミルトニアンＨと波動関数ψj(n)との積を求める演算の演算回数と、固有値問題の残差ｒj(n)の値の内の最大値Ｍとの関係を示すグラフであり、（ａ）は実施例品の結果、（ｂ）は比較例品の結果を示している。
【図１０】実施例品及び比較例品によって行った電子状態の演算における、ハミルトニアンＨと波動関数ψj(n)との積を求める演算の演算回数と、残差ポテンシャルｖres(m)の値との関係を示すグラフであり、（ａ）は実施例品の結果、（ｂ）は比較例品の結果を示している。
【図１１】実施例品及び比較例品によって行った電子状態の演算における、ハミルトニアンＨと波動関数ψj(n)との積を求める演算の演算回数と、電子間ポテンシャルｖの演算回数との関係を示すグラフであり、（ａ）は実施例品の結果、（ｂ）は比較例品の結果を示している。
【図１２】上記他の比較例品によって行った電子状態の演算における、ハミルトニアンＨと波動関数ψj(n)との積を求める演算の演算回数と、固有値問題の残差ｒj(n)の値の内の最大値Ｍとの関係を示すグラフであり、（ａ）は、上限個数Ｐmを「２」に設定したもの、（ｂ）は、上限個数Ｐmを「７」に設定したもの、（ｃ）は、上限個数Ｐmを「１０」に設定したものである。
【図１３】本発明の第二の実施形態に係る電子状態演算装置の電子状態演算部が電子間ポテンシャル及び電子の固有状態を求める際の動作態様を示したフローチャートである。
【図１４】本発明の第二の実施形態に係る電子状態演算装置の固有状態演算部の動作を示したフローチャートである。
【図１５】本発明の第二の実施形態に係る電子状態演算装置の演算制御部の機能を示すブロック図である。
【図１６】比較例品、第一実施形態品、及び第二実施形態品それぞれを用いて行った電子状態の演算における、ハミルトニアンＨと波動関数ψj(n)との積を求める演算の演算回数と、残差ポテンシャルｖres(m)の値との関係を示すグラフである。
【符号の説明】
【０１６８】
１      電子状態演算装置
５      原子位置演算部
６      電子状態演算部
８      固有状態演算部
９      残差ポテンシャル演算部
１０    演算制御部
１０ａ  判定検知部
１０ｂ  第一入力ポテンシャル演算部
１０ｃ  第二入力ポテンシャル演算部
１０ｄ  第三入力ポテンシャル演算部
１１    演算部
１２    停滞判定部
１２ａ  積算部
１２ｂ  判定部
【図１】
2010073182.tif 000017
【図２】
2010073182.tif 000018
【図３】
2010073182.tif 000019
【図４】
2010073182.tif 000020
【図５】
2010073182.tif 000021
【図６】
2010073182.tif 000022
【図７】
2010073182.tif 000023
【図８】
2010073182.tif 000024
【図９】
2010073182.tif 000025
【図１０】
2010073182.tif 000026
【図１１】
2010073182.tif 000027
【図１２】
2010073182.tif 000028
【図１３】
2010073182.tif 000029
【図１４】
2010073182.tif 000030
【図１５】
2010073182.tif 000031
【図１６】
2010073182.tif 000032