(57)【要約】【課題】計算速度の低下を防止しつつ回路規模を縮小した多体問題計算装置を提供する。【解決手段】力／ビリアル計算部１５は、周期的境界条件の基本セルを分割した複数の微小セルのうちいずれか１つを選択し、その微小セルに含まれる粒子を順次選択してその粒子から計算対象粒子に及ぼされる力を計算する。総和計算部１６は、力／ビリアル計算部１５で得られた、その微小セルに含まれる粒子の各々から計算対象粒子に及ぼされる力の値を積算して力の総和を求め、力の総和を力／ビリアル計算部１５に与える。力／ビリアル計算部１５は、力の総和に、その微小セルに対して予め定められた一定値を乗算することにより、その微小セルから計算対象粒子に対して及ぼされるビリアルを求める。【選択図】      図１
2007148560.tif 000002
【特許請求の範囲】
【請求項１】
周期的境界条件を適用する系における粒子間に働く力およびビリアルの計算を行なう多体問題計算装置であって、
周期的境界条件の基本セルを分割した複数の微小セルのうちいずれか１つを選択し、該微小セルに含まれる粒子を順次選択して該粒子から計算対象粒子に及ぼされる力を計算し、該微小セルに含まれる全ての粒子を選択し終えると、力の総和に、該微小セルに対して予め定められた一定値を乗算することにより、該微小セルから該計算対象粒子に対して及ぼされるビリアルを求める力／ビリアル計算部と、
前記力／ビリアル計算部で得られた、前記微小セルに含まれる前記粒子の各々から前記計算対象粒子に及ぼされる力の値を積算して力の総和を求め、該力の総和を前記力／ビリアル計算部に与える総和計算部と、を有する多体問題計算装置。
【請求項２】
前記力／ビリアル計算部は、前記系に含まれる複数の微小セルを順次選択し、該微小セルの各々から前記計算対象粒子に及ぼされるビリアルを計算し、
前記総和計算部は、前記力／ビリアル計算部で得られた、複数の前記微小セルの各々から前記計算対象粒子に及ぼされるビリアルの値を積算して、複数の前記微小セルから前記計算対象粒子に及ぼされるビリアルの総和を求める、請求項１記載の多体問題計算装置。
【請求項３】
前記力／ビリアル計算部は、前記系内の複数の粒子を計算対象粒子として順次選択し、該計算対象粒子の各々に対して複数の前記微小セルの各々から及ぼされるビリアルを計算し、
前記総和計算部は、前記力／ビリアル計算部で得られた、複数の前記微小セルの各々から複数の前記計算対象粒子に及ぼされるビリアルの値を積算して、前記系内のビリアルの総和を求める、請求項１または２に記載の多体問題計算装置。
【請求項４】
前記力／ビリアル計算部は、前記計算対象粒子である粒子ｉの座標（ｘi，ｙi，ｚi）と該計算対象粒子に力およびビリアルを及ぼす粒子ｊの座標（ｘj，ｙj，ｚj）の各座標軸成分の差分Δｘj＝ｘj−ｘi，Δｙj＝ｙj−ｙi，Δｚj＝ｚj−ｚiと、前記粒子ｊから前記粒子ｉに及ぼされる力の大きさＦを粒子ｊと粒子ｉの間の距離ｒで割ったＦ／ｒと、前記総和計算部で得られた前記力の総和とを入力としており、力を計算するとき前記Ｆ／ｒと前記Δｘj，Δｙj，Δｚjの各々とを乗算し、前記ビリアルを計算するとき、前記力の総和と、前記一定値である、粒子ｉの座標の各成分ｘi，ｙi，ｚiの値またはそれに前記基本セルの各軸方向の長さＬｘ，Ｌｙ，Ｌｚを加算あるいは減算した値ｘi±Ｌｘ，ｙi±Ｌｙ，ｚi±Ｌｚの各々とを乗算し、
前記総和計算部は、前記力／ビリアル計算部の乗算の結果を入力としており、前記力の値を積算するとき、前記力／ビリアル計算部から乗算の結果として得られる前記力の値と前回までの力の値の積算値とを各軸方向毎に加算して保持し、前記ビリアルの値を積算するとき、前記力／ビリアル計算部から乗算の結果として得られる前記ビリアルの値と前回までのビリアルの値の積算値とを各軸方向毎に加算して保持する、請求項２または３に記載の多体問題計算装置。
【請求項５】
前記力／ビリアル計算部は、
前記Ｆ／ｒと前記力の総和とを入力とし、力を計算するとき前記Ｆ／ｒを選択して出力し、ビリアルを選択するとき前記力の総和を選択して出力する第１の選択部と、前記座標軸成分の差分Δｘj，Δｙj，Δｚjと前記一定値ｘi±Ｌｘ，ｙi±Ｌｙ，ｚi±Ｌｚとを入力とし、力を計算するとき前記差分Δｘj，Δｙj，Δｚjを選択して出力し、ビリアルを選択するとき前記一定値ｘi±Ｌｘ，ｙi±Ｌｙ，ｚi±Ｌｚを選択して出力する第２の選択部と、前記第１の選択部と前記第２の選択部の出力を乗算して前記総和計算部に出力する乗算部とを有し、
前記総和計算部は、
前記力の値の積算値を保持する力総和保持部と、前記ビリアルの値の積算値を保持するビリアル総和保持部と、前記力の値を積算するとき前記力総和保持部に保持された値を選択して出力し、前記ビリアルの値を積算するとき前記ビリアル総和保持部に保持された値を選択して出力する第３の選択部と、前記力／ビリアル計算部の前記乗算器の出力と前記選択部の出力とを加算して前記力総和保持部または前記ビリアル総和保持部に与える加算部とを有する、
請求項４記載の多体問題計算装置。
【請求項６】
周期的境界条件を適用する系における粒子間に働く力およびビリアルの計算を行なうための多体問題計算方法であって、
力／ビリアル計算部が、周期的境界条件の基本セルを分割した複数の微小セルのうちいずれか１つを選択し、該微小セルに含まれる粒子を順次選択して該粒子から計算対象粒子に及ぼされる力を計算するステップと、
総和計算部が、前記微小セルに含まれる前記粒子の各々から前記計算対象粒子に及ぼされる力の値を積算して力の総和を求めるステップと、
力／ビリアル計算部が、前記力の総和に、前記微小セルに対して予め定められた一定値を乗算することにより、該微小セルから前記計算対象粒子に対して及ぼされるビリアルを求めるステップと、を有する多体問題計算方法。
【請求項７】
前記力／ビリアル計算部は、前記系に含まれる複数の微小セルを順次選択し、該微小セルの各々から前記計算対象粒子に及ぼされるビリアルを計算し、
前記総和計算部は、前記力／ビリアル計算部で得られた、複数の前記微小セルの各々から前記計算対象粒子に及ぼされるビリアルの値を積算して、複数の前記微小セルから前記計算対象粒子に及ぼされるビリアルの総和を求める、請求項６記載の多体問題計算方法。
【請求項８】
前記力／ビリアル計算部は、前記系内の複数の粒子を計算対象粒子として順次選択し、該計算対象粒子の各々に対して複数の前記微小セルの各々から及ぼされるビリアルを計算し、
前記総和計算部は、前記力／ビリアル計算部で得られた、複数の前記微小セルの各々から複数の前記計算対象粒子に及ぼされるビリアルの値を積算して、前記系内のビリアルの総和を求める、請求項６または７に記載の多体問題計算方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、多体問題計算装置に関する。
【背景技術】
【０００２】
分子動力学の分野では、液体、固体、高分子などの挙動を、それらを構成する原子あるいは分子の動きの結果と考え、それら粒子の動きをシミュレーションして研究が行なわれる。互いに相互作用する多数の粒子からなる系を扱う問題を多体問題といい、分子動力学では、原子や分子を粒子とした多体問題の計算を行なっている。また、天文学あるいは宇宙物理学の分野でも、惑星等を粒子とした惑星運行シミュレーションなどに多体問題が用いられる。
【０００３】
多体問題で扱う系の粒子間には相互作用が働くので、多体問題では粒子間に働く力が重要な物理量となり、必ず計算される。ある粒子に働く力は、他の全ての粒子から及ぼされる力の総和である。
【０００４】
また、物質は温度変化で圧力および体積が変化し、体積変化は粒子の位置の変化を意味するので、圧力もまた重要な物理量である。さらに、その圧力を求めるために用いられるビリアルも重要な物理量として頻繁に計算される。ビリアルとは、粒子間に働く力の各成分に各座標の差分を乗算したものである。系内のビリアルの総和から圧力を求めることができる。
【０００５】
２つの粒子間の座標差分とその２つの粒子間に働く力とを乗算してビリアルを求める装置が特許文献１や特許文献２に開示されている。
【０００６】
図４は、従来の計算装置の構成を示すブロック図である。この計算装置は、特許文献１に開示されたものである。図４を参照すると、従来の計算装置は、座標差分計算部９１、距離２乗計算部９２、関数計算部９３、遅延部９４、力計算部９５、ビリアル計算部９６、力総和計算部９７、およびビリアル総和計算部９８を有している。
【０００７】
ここでは、系内に多数ある粒子のうち、計算対象の粒子を粒子ｉとし、粒子ｉに影響を与える他の粒子を粒子ｊとする。
【０００８】
１つの粒子に及ぼされる力を計算するには、計算対象を１つの粒子ｉに固定して他の全ての粒子を粒子ｊとして求めた力を全て加算すればよい。
【０００９】
また、１つの粒子についてのビリアルを計算するには、計算対象の粒子を粒子ｉに固定して他の全ての粒子を粒子ｊとして求めたビリアルを全て加算すればよい。また、系内のビリアルの総和を計算するには、系内の全ての粒子を粒子ｉとして求めたビリアルを全て加算して２で割ればよい。ここで２で割っているのは、全ての粒子が粒子ｉになった場合と粒子ｊになった場合とでビリアルが２重に加算されているのを、それを解消するためである。
【００１０】
粒子ｉの座標を（ｘi，ｙi，ｚi）とし、粒子ｊの座標を（ｘj，ｙj，ｚj）とする。粒子ｊが粒子ｉに及ぼす力の大きさをＦとする。
【００１１】
座標差分計算部９１は、２つの粒子ｉ，ｊの座標を入力とし、式（１）〜（３）に従って座標差分Δｘj，Δｙj，Δｚjを計算する。
【００１２】
【数１】
2007148560.tif 000003
距離２乗計算部９２は、座標差分計算部９１で得られた差分から、式（４）に従って粒子間距離ｒの２乗を計算する。
【００１３】
【数２】
2007148560.tif 000004
関数計算部９３は、距離２乗計算部９２で得られた粒子間距離ｒの２乗を入力とし、粒子ｊから粒子ｉに及ぼされる力Ｆを粒子間距離ｒで割った値Ｆ／ｒを計算する。粒子間に働く力は、力の種類や粒子の種類によって異なる関数形で与えられるが、いずれの場合でも粒子間距離ｒが決まれば一意に値が求まる。そのため、粒子間距離ｒの２乗から力Ｆが求まり、さらに力を距離で割った値Ｆ／ｒが求まる。
【００１４】
遅延部９４は、座標差分計算部９１で得られた座標差分Δｘj，Δｙj，Δｚjを遅延させる。この遅延は、関数計算部９３での計算にかかる時間を調整するためのものである。
【００１５】
力計算部９５は、遅延部９４からの座標差分Δｘj，Δｙj，Δｚjと、関数計算部９３からの力を粒子間距離で割った値Ｆ／ｒとを入力とし、式（５）〜（７）に従って各座標軸方向の力の成分Ｆｘ，Ｆｙ，Ｆｚを計算する。
【００１６】
【数３】
2007148560.tif 000005
ビリアル計算部９６は、遅延部９４からの座標差分Δｘj，Δｙj，Δｚjと、力計算部９５からの力の成分Ｆｘ，Ｆｙ，Ｆｚとを入力とし、式（８）〜（１０）に従って各座標軸方向のビリアルの成分Ｖｘ，Ｖｙ，Ｖｚを計算する。
【００１７】
【数４】
2007148560.tif 000006
力総和計算部９７は、力計算部９５からの、粒子ｉ以外の全ての粒子を粒子ｊとした、粒子ｊによる力の成分Ｆｘ，Ｆｙ，Ｆｚを入力とし、全ての粒子ｊから粒子ｉに及ぼされる力の総和を求める。
【００１８】
ビリアル総和計算部９８は、ビリアル計算部９６からの、粒子ｉ以外の全ての粒子を粒子ｊとした、粒子ｊによるビリアルの成分Ｖｘ，Ｖｙ，Ｖｚを入力とし、粒子ｉについてのビリアルの総和を求める。
【００１９】
また、さらに、ビリアル総和計算部９８は、系内の全ての粒子を順に粒子ｉとしたビリアル総和計算部９８の計算結果を全て加算し、それを１／２にすることで、系内のビリアルの総和を計算することとしてもよい。
【００２０】
この従来の計算装置によれば、力およびその総和と、ビリアルおよびその総和との両方を求めることができる。
【特許文献１】特開平６−１７６００５号公報
【特許文献２】特開平８−２８７０４２号公報
【発明の開示】
【発明が解決しようとする課題】
【００２１】
上述したような従来の多体問題計算装置では、力の総和を求める回路とビリアルの総和を求める回路とが別個のハードウェアとして必要であり、装置全体の回路規模が大きくなっていた。また、力の計算とビリアルの計算とで乗算回路を共有し、その乗算回路を時分割で使用することにより、ハードウェアを削減した構成も併せて開示されている。しかし、その構成によれば、計算回路は粒子ｊ毎に力の計算とビリアルの計算を行なうため計算速度が遅くなっていた。
【００２２】
本発明の目的は、計算速度の低下を防止しつつ回路規模を縮小した多体問題計算装置を提供することである。
【課題を解決するための手段】
【００２３】
上記目的を達成するために、本発明の多体問題計算装置は、
周期的境界条件を適用する系における粒子間に働く力およびビリアルの計算を行なう多体問題計算装置であって、
周期的境界条件の基本セルを分割した複数の微小セルのうちいずれか１つを選択し、該微小セルに含まれる粒子を順次選択して該粒子から計算対象粒子に及ぼされる力を計算し、該微小セルに含まれる全ての粒子を選択し終えると、力の総和に、該微小セルに対して予め定められた一定値を乗算することにより、該微小セルから該計算対象粒子に対して及ぼされるビリアルを求める力／ビリアル計算部と、
前記力／ビリアル計算部で得られた、前記微小セルに含まれる前記粒子の各々から前記計算対象粒子に及ぼされる力の値を積算して力の総和を求め、該力の総和を前記力／ビリアル計算部に与える総和計算部と、を有している。
【００２４】
したがって、本発明によれば、力／ビリアル計算部が、選択した微小セルに含まれる粒子を順次選択して計算対象粒子に及ぼす力を計算し、総和計算部が、各粒子から計算対象粒子に及ぼされる力の値を積算して力の総和を求め、力を計算したのと同じ力／ビリアル計算部が、力の総和に一定値を乗算することにより、その微小セルからその計算対象粒子に対して及ぼされるビリアルを求めるので、力の計算とビリアルの計算で同じ力／ビリアル計算部を共用して回路規模を小さくでき、また複数の力を積算した値に対して一定値を乗算することにより短時間でビリアルを求めることができる。
【００２５】
また、前記力／ビリアル計算部は、前記系に含まれる複数の微小セルを順次選択し、該微小セルの各々から前記計算対象粒子に及ぼされるビリアルを計算し、
前記総和計算部は、前記力／ビリアル計算部で得られた、複数の前記微小セルの各々から前記計算対象粒子に及ぼされるビリアルの値を積算して、複数の前記微小セルから前記計算対象粒子に及ぼされるビリアルの総和を求めることとしてもよい。
【００２６】
したがって、これによれば、微小セルを順次選択することにより、系内の微小セルから計算対象粒子に及ぼされるビリアルを積算することができるので、小さな回路規模かつ短い計算時間で、系内の粒子から計算対象粒子に及ぼされるビリアルの総和を求めることができる。
【００２７】
また、前記力／ビリアル計算部は、前記系内の複数の粒子を計算対象粒子として順次選択し、該計算対象粒子の各々に対して複数の前記微小セルの各々から及ぼされるビリアルを計算し、
前記総和計算部は、前記力／ビリアル計算部で得られた、複数の前記微小セルの各々から複数の前記計算対象粒子に及ぼされるビリアルの値を積算して、前記系内のビリアルの総和を求めることとしてもよい。
【００２８】
したがって、これによれば、微小セルおよび計算対象粒子を順次選択することにより、系内の粒子間で相互に及ぼされるビリアルを積算することができるので、小さな回路規模かつ短い計算時間で、系内のビリアルの総和を求めることができる。
【００２９】
また、前記力／ビリアル計算部は、前記計算対象粒子である粒子ｉの座標（ｘi，ｙi，ｚi）と該計算対象粒子に力およびビリアルを及ぼす粒子ｊの座標（ｘj，ｙj，ｚj）の各座標軸成分の差分Δｘj＝ｘj−ｘi，Δｙj＝ｙj−ｙi，Δｚj＝ｚj−ｚiと、前記粒子ｊから前記粒子ｉに及ぼされる力の大きさＦを粒子ｊと粒子ｉの間の距離ｒで割ったＦ／ｒと、前記総和計算部で得られた前記力の総和とを入力としており、力を計算するとき前記Ｆ／ｒと前記Δｘj，Δｙj，Δｚjの各々とを乗算し、前記ビリアルを計算するとき、前記力の総和と、前記一定値である、粒子ｉの座標の各成分ｘi，ｙi，ｚiの値またはそれに前記基本セルの各軸方向の長さＬｘ，Ｌｙ，Ｌｚを加算あるいは減算した値ｘi±Ｌｘ，ｙi±Ｌｙ，ｚi±Ｌｚの各々とを乗算し、
前記総和計算部は、前記力／ビリアル計算部の乗算の結果を入力としており、前記力の値を積算するとき、前記力／ビリアル計算部から乗算の結果として得られる前記力の値と前回までの力の値の積算値とを各軸方向毎に加算して保持し、前記ビリアルの値を積算するとき、前記力／ビリアル計算部から乗算の結果として得られる前記ビリアルの値と前回までのビリアルの値の積算値とを各軸方向毎に加算して保持することとしてもよい。
【００３０】
したがって、これによれば、力／ビリアル計算部において、力を計算するための乗算と、ビリアルを計算するための乗算とを同じ回路で共用することができ、また、総和計算部において、力を積算するための加算と、ビリアルを積算するための加算とを同じ回路で共用することができる。
【００３１】
また、前記力／ビリアル計算部は、
前記Ｆ／ｒと前記力の総和とを入力とし、力を計算するとき前記Ｆ／ｒを選択して出力し、ビリアルを選択するとき前記力の総和を選択して出力する第１の選択部と、前記座標軸成分の差分Δｘj，Δｙj，Δｚjと前記一定値ｘi±Ｌｘ，ｙi±Ｌｙ，ｚi±Ｌｚとを入力とし、力を計算するとき前記差分Δｘj，Δｙj，Δｚjを選択して出力し、ビリアルを選択するとき前記一定値ｘi±Ｌｘ，ｙi±Ｌｙ，ｚi±Ｌｚを選択して出力する第２の選択部と、前記第１の選択部と前記第２の選択部の出力を乗算して前記総和計算部に出力する乗算部とを有し、
前記総和計算部は、
前記力の値の積算値を保持する力総和保持部と、前記ビリアルの値の積算値を保持するビリアル総和保持部と、前記力の値を積算するとき前記力総和保持部に保持された値を選択して出力し、前記ビリアルの値を積算するとき前記ビリアル総和保持部に保持された値を選択して出力する第３の選択部と、前記力／ビリアル計算部の前記乗算器の出力と前記選択部の出力とを加算して前記力総和保持部または前記ビリアル総和保持部に与える加算部とを有することとしてもよい。
【発明の効果】
【００３２】
本発明によれば、力／ビリアル計算部が、選択した微小セルに含まれる粒子を順次選択して計算対象粒子に及ぼす力を計算し、総和計算部が、各粒子から計算対象粒子に及ぼされる力の値を積算して力の総和を求め、力を計算したのと同じ力／ビリアル計算部が、力の総和に一定値を乗算することにより、その微小セルからその計算対象粒子に対して及ぼされるビリアルを求めるので、力の計算とビリアルの計算で同じ力／ビリアル計算部を共用して回路規模を小さくでき、また複数の力を積算した値に対して一定値を乗算することにより短時間でビリアルを求めることができる。
【発明を実施するための最良の形態】
【００３３】
本発明を実施するための形態について図面を参照して詳細に説明する。
【００３４】
ここでは、系内に多数ある粒子の中で計算対象となる中心粒子を粒子ｉとし、他の粒子を粒子ｊとする。
【００３５】
上述したように、１つの粒子に及ぼされる力を計算するには、計算対象を粒子ｉに固定して他の全ての粒子を粒子ｊとして求めた力を全て加算すればよい。
【００３６】
また、１つの粒子についてのビリアルを計算するには、計算対象を粒子ｉに固定して他の全ての粒子を粒子ｊとして求めたビリアルを全て加算すればよい。また、系内のビリアルの総和を計算するには、系内の全ての粒子を粒子ｉとして求めたビリアルを全て加算して２で割ればよい。ここで２で割っているのは、系内の全ての粒子を粒子ｉとするビリアルを全て加算すると、全ての粒子が粒子ｉになった場合と粒子ｊになった場合とが合計されるので、２重の加算を解消するためである。
【００３７】
分子動力学では、しばしば周期的境界条件が用いられる。本実施形態の系は、この周期的境界条件を適用できるものとする。周期的境界条件を適用する系は、所定の周期で繰り返される互いに等価な基本セルに分割することができる。
【００３８】
本実施形態では、周期的境界条件の基本セルをさらに複数の微小セルに分割し、微小セル毎のセルリストを作成しておき、セルリスト法を用いて計算を行なう。セルリストには、微小セル内の全粒子の座標が記録される。
【００３９】
粒子ｉに対して全ての粒子ｊから及ぼされるビリアルのＸ座標対角成分の全ての粒子ｉの総和Ｖｘｘ、Ｙ座標対角成分の全ての粒子ｉの総和Ｖｙｙ、Ｚ座標対角成分の全ての粒子ｉの総和Ｖｚｚは、それぞれ式（１１）〜（１３）で表される。
【００４０】
【数５】
2007148560.tif 000007
ここで、Ｌｘは基本セルのＸ軸方向の長さ、Ｌｙは基本セルのＹ軸方向の長さ、Ｌｚは基本セルのＺ軸方向の長さである。また、粒子ｉの座標が（ｘi，ｙi，ｚi）であり、粒子ｊの座標が（ｘj，ｙj，ｚj）である。
【００４１】
また、ｆxijは、粒子ｉに対して粒子ｊから及ぼされる力のｘ軸方向の成分であり、すなわち式（５）に示したＦｘと同じものである。ｆyijは、粒子ｉに対して粒子ｊから及ぼされる力のｙ軸方向の成分であり、すなわち式（６）に示したＦｙと同じものである。ｆzijは、粒子ｉに対して粒子ｊから及ぼされる力のｚ軸方向の成分であり、すなわち式（７）に示したＦｚと同じものである。
【００４２】
式（１１）の｛ｘj−（ｘi±Ｌｘ）｝は、粒子ｉと粒子ｊのＸ座標差分であるが、周期的境界条件から鏡像変換ものとなっている。“ｘj−（ｘi±Ｌｘ）”は、ｘj−ｘi＞Ｌｘ／２ならば“ｘj−（ｘi＋Ｌｘ）”であり、ｘj−ｘi＜−Ｌｘ／２ならば“ｘj−（ｘi−Ｌｘ）”であり、−Ｌｘ／２≦ｘｊ−ｘｉ≦Ｌｘ／２ならば“ｘj−ｘi”である。同様に、｛ｙj−（ｙi±Ｌｙ）｝は、粒子ｉと粒子ｊの鏡像変換したＹ座標差分である。｛ｚj−（ｚi±Ｌｚ）｝は、粒子ｉと粒子ｊの鏡像変換したＺ座標差分である。
【００４３】
Ｘ軸、Ｙ軸、Ｚ軸は全て同様に考えることができるので、ここではＸ軸の式（１１）に着目する。
【００４４】
式（１１）は展開すると式（１４）に変形することができる。ここでｆxjiは粒子ｉから粒子ｊに対して及ぼされる力であり、（−ｆxij）と等価である。全ての粒子が粒子ｉになる場合と粒子ｊになる場合があることを考慮すると、式（１４）の(ΣｘjΣ（−ｆxji）は粒子iと粒子jを入れ替えても同じなので、式（１４）は式（１５）に変形することができる。そして、式（１５）はさらに式（１６）に変形することができる。
【００４５】
【数６】
2007148560.tif 000008
ここで式（１５）に着目すると、全ての粒子ｉに対するビリアルを計算する場合において半数を鏡像変換しない粒子ｉの座標を用いることを表している。つまりｊ＞ｉとなる条件で（ｘi±Ｌｘ）の代わりにｘiを用いれば、式（１６）は鏡像変換座標である（ｘｉ±Ｌｘ）を用いることが可能となり、式（１７）に変換することができる。
【００４６】
【数７】
2007148560.tif 000009
式（１７）において、（Σｆxij）は全ての粒子ｊから粒子ｉに及ぼされる力の総和である。ここでは、この力の総和を微小セル毎に考える。
【００４７】
（ｘｉ±Ｌｘ）はｘj−ｘiとＬ／２、−Ｌ／２との関係で決まるので、粒子ｉを固定すれば粒子ｊのＸ座標で決まる値であるといえる。ある微小セルα内の全ての粒子ｊで（ｘi±Ｌｘ）が一定値であるとすれば、１つの粒子ｉに対して、ある微小セル内の全ての粒子ｊから及ぼされるビリアルの総和は、粒子ｉに微小セル内の全ての粒子ｊから及ぼされる力の総和を求め、得られた力の総和に一定値（ｘi±Ｌｘ）を乗算することで求まることとなる。
【００４８】
また、１つの粒子ｉに対して、系内の全ての粒子ｊから及ぼされるビリアルの総和は、微小セル毎に求めたビリアルの総和の、系内の全ての微小セル分の総和として求まる。
【００４９】
さらに、系内の全ての粒子ｉについてのビリアルの総和は、粒子ｉ毎に求めたビリアルの総和の、系内の全ての粒子ｉ分の総和として求まる。
【００５０】
まず、本発明の一実施形態の多体問題計算装置の構成について説明する。
【００５１】
図１は、本実施形態の多体問題計算装置の構成を示すブロック図である。図１を参照すると、本実施形態の多体問題計算装置は、座標差分計算部１１、距離２乗計算部１２、関数計算部１３、遅延部１４、力／ビリアル計算部１５、および総和計算部１６を有している。
【００５２】
座標差分計算部１１は、図４の座標差分計算部９１と同じものであり、２つの粒子ｉ，ｊの座標を入力とし、式（１）〜（３）に従って座標差分Δｘj，Δｙj，Δｚjを計算する。
【００５３】
距離２乗計算部１２は、図４の距離２乗計算部９２と同じものであり、座標差分計算部１１で得られた差分から、式（４）に従って粒子間距離ｒの２乗を計算する。
【００５４】
関数計算部１３は、図４の関数計算部９３と同じものであり、距離２乗計算部１２で得られた粒子間距離ｒの２乗を入力とし、粒子ｊから粒子ｉに及ぼされる力Ｆを粒子間距離ｒで割った値Ｆ／ｒを計算する。粒子間に働く力は、力の種類や粒子の種類によって異なる関数形で与えられるが、いずれの場合でも粒子間距離ｒが決まれば一意に値が求まる。そのため、粒子間距離ｒの２乗から力Ｆが求まり、さらに力を距離で割った値Ｆ／ｒが求まる。
【００５５】
遅延部１４は、図４の遅延部９４と同じものであり、座標差分計算部１１で得られた座標差分Δｘj，Δｙj，Δｚjを遅延させる。この遅延は、関数計算部１３での計算にかかる時間を調整するためのものである。
【００５６】
力／ビリアル計算部１５は、力の計算とビリアルの計算の両方を行なう。
【００５７】
その際、力／ビリアル計算部１５は、まず、ある微小セルに含まれる粒子ｊの各々から粒子ｉに及ぼされる力を順次計算する。本実施形態では、この計算は式（５）〜（７）に従って行なわれる。その計算結果は、総和保持部１６にて順次積算される。積算された結果は最終的に、微小セルに含まれる全ての粒子ｊから粒子ｉに及ぼされる力の総和となり、その微小セルの粒子ｊについての（Σｆxij，Σｆyij，Σｆzij）である。なお、このＸ軸方向の成分（Σｆxij）は式（１４）に含まれており、Ｙ軸方向の成分、Ｚ軸方向の成分も同様に考えることができる。
【００５８】
その微小セルに含まれる粒子ｊの全てについて力の計算が完了すると、力／ビリアル計算部１５は、次に、総和保持部１６にて積算された力の総和から、その微小セルに含まれる全ての粒子ｊからのビリアルの総和を計算する。この計算は、微小セルに含まれる全ての粒子ｊから粒子ｉに及ぼされる力の総和に、その微小セルの位置により定まる一定値を乗算するものであり、Ｘ軸方向について見ると、その計算は（Σｆxij）×（ｘi±Ｌｘ）である。
【００５９】
力／ビリアル計算部１５は、以上の計算を各微小セルについて繰り返すことにより、微小セルに含まれる粒子ｊからのビリアルの総和を全ての微小セルについて計算する。この計算結果は、総和保持部１６にて順次積算される。
【００６０】
力／ビリアル計算部１５は、さらに、以上の計算を各粒子ｉについて繰り返すことにより、系内の全ての粒子ｊから粒子ｉに及ぼされるビリアルの総和を系内の全ての粒子ｉについて計算する。この計算結果は、総和保持部１６にて順次積算されてもよい。
【００６１】
総和計算部１６は、力／ビリアル計算部１５で得られた、微小セルに含まれる粒子ｊの各々から粒子ｉに及ぼされる力の値を順次積算し、積算結果を保持する。微小セルに含まれる全ての粒子ｊからの力の積算が完了したときの積算結果（Σｆxij）は、力／ビリアル計算部１５でのビリアルの計算に用いられる。
【００６２】
また、総和計算部１６は、力／ビリアル計算部１５で得られた、微小セルに含まれる全ての粒子ｊから粒子ｉに及ぼされるビリアルの総和を順次積算し、積算結果を保持する。この積算は、ある粒子ｉに対して全ての微小セルの全ての粒子ｊから及ぼされるビリアルの総和が得られるまで行ってもよく、またそれを全ての粒子ｉの分だけ積算した総和が得られるまでおこなってもよい。全ての粒子ｉの分だけ積算した総和は式（１４）に示したものとなる。
【００６３】
次に、本実施形態の多体問題計算装置の動作について説明する。
【００６４】
図２は、本実施形態の多体問題計算装置の動作を示すフローチャートである。図２を参照すると、多体問題計算装置は、まず、計算対象となる１つの粒子ｉを選択する（ステップ１０１）。次に、多体問題計算装置は、ｉ粒子に及ぼす力を計算するための１つの微小セルを選択する（ステップ１０２）。次に、多体問題計算装置は、その微小セルの中の１つの粒子ｊを選択する（ステップ１０３）。
【００６５】
そして、多体問題計算装置は、選択した粒子ｊから、選択した粒子ｉに及ぼされる力を計算し（ステップ１０４）、その計算結果を積算して積算結果を保持する（ステップ１０５）。
【００６６】
ここで、多体問題計算装置は、選択した微小セル内の全ての粒子ｊについて力の計算が完了したか否か判定する（ステップ１０６）。全ての粒子ｊの計算が完了していなければ、多体問題計算装置は、ステップ１０３に戻って次の粒子ｊを選択する。
【００６７】
全ての粒子ｊの計算が完了していれば、多体問題計算装置は、次に、積算結果に、微小セルにより定まる一定値を乗算してビリアルを求め（ステップ１０７）、その計算結果を積算して積算結果を保持する（ステップ１０８）。
【００６８】
ここで、多体問題計算装置は、系内の全ての微小セルについてのビリアルの計算が完了したか否か判定する（ステップ１０９）。全ての微小セルについてのビリアルの計算が完了していなければ、多体問題計算装置は、ステップ１０２に戻って次の微小セルを選択する。
【００６９】
全ての微小セルについてのビリアルの計算が完了していれば、多体問題計算装置は、次に、全ての粒子ｉについてのビリアルの総和の計算が完了しているか否か判定する（ステップ１１０）。全ての粒子ｉについてのビリアルの総和の計算が完了していなければ、多体問題計算装置は、ステップ１０１に戻って次の粒子ｉを選択する。全ての粒子ｉについてのビリアルの総和の計算が完了していれば、多体問題計算装置は、処理を終了する。
【００７０】
なお、図２のフローチャートでは、最大限の例として、全ての粒子ｉに対して全ての微小セル内の全ての粒子ｊから及ぼされるビリアルの総和を計算している。
【００７１】
しかし、当然のことながら、ある１つの粒子ｉに対して全ての微小セルの全ての粒子ｊから及ぼされるビリアルの総和を計算することもできる。その場合、粒子ｉを固定し、ステップ１０２〜１０９の処理を実行すればよい。
【００７２】
また、ある１つの粒子ｉに対して、ある１つの微小セルの全ての粒子ｊから及ぼされるビリアルの総和を計算することもできる。その場合、粒子ｉと微小セルを固定し、ステップ１０３〜１０７の処理を実行すればよい。
【００７３】
次に、力／ビリアル計算部１５および総和計算部１６の詳細な構成および動作について説明する。
【００７４】
図３は、本実施形態の多体問題計算装置における力／ビリアル計算部および総和計算部の詳細な構成を示すブロック図である。説明のため、図３にはＸ軸方向の成分に関する構成のみが示してある。
【００７５】
図３を参照すると、力／ビリアル計算部１５Ｘは、ｘi−Ｌｘ保持部２１、ｘi＋Ｌｘ保持部２２、ｘi保持部２３、選択条件保持部２４、選択部２５〜２７、および乗算部２８を有している。総和計算部１６Ｘは、加算部３１、選択部３２、力総和保持部３３、およびビリアル総和保持部３４を有している。
【００７６】
力／ビリアル計算部１５Ｘのｘi−Ｌｘ保持部２１は、選択された粒子ｉについての（ｘi−Ｌｘ）の値を保持する。基本セルのＸ軸方向の長さＬｘは、周期的境界条件で定まる一定の値である。粒子ｉが定まれば、そのｘ座標であるｘｉは一意に定まる。
【００７７】
ｘｉ＋Ｌｘ保持部２２は、選択された粒子ｉについての（ｘi＋Ｌｘ）の値を保持する。
【００７８】
ｘｉ保持部２３は、選択された粒子ｉについてのｘiの値を保持する。
【００７９】
選択条件保持部２４は、ある微小セルに含まれる粒子ｊから粒子ｉに及ぼされるビリアルを求めるために力の総和に乗算される一定値を選択する条件を保持する。ここでは、（ｘi−Ｌｘ）、（ｘi＋Ｌｘ）、ｘiのいずれを選択するかは、ｉ粒子の属する微小セルとｊ粒子の属する微小セルとの関係で定まる。選択条件保持部２４は、例えば、その対応関係をテーブルとして保持しており、ｉ粒子の属する微小セルとｊ粒子の属する微小セルを与えられて所定の選択信号を選択部２５に出力する。
【００８０】
選択部２５は、選択条件保持部２４からの選択信号に従って、ある微小セルに含まれる粒子ｊから粒子ｉに及ぼされるビリアルを求めるために力の総和に乗算される一定値を選択する。
【００８１】
選択部２６は、乗算部２８に与える値として、遅延部１４からのΔｘjか、または選択部２５からの一定値かのいずれかを選択する。力の計算が行われているときには、選択部２６は遅延部１４からのΔｘjを選択する。ビリアルの計算が行なわれているときには、選択部２６は選択部２５からの一定値を選択する。
【００８２】
選択部２７は、乗算部２８に与える値として、関数計算部１３からのＦ／ｒか、または総和計算部１６Ｘの力総和保持部３３からの力の総和かのいずれかを選択する。力の計算が行われているときには、選択部２７は関数計算部１３からのＦ／ｒを選択する。ビリアルの計算が行なわれているときには、選択部２７は力操作保持部３３からの力の総和を選択する。
【００８３】
すなわち、図２のフローチャートのステップ１０４では、選択部２６が遅延部１４からのΔｘjを選択し、選択部２７が関数計算部１３からのＦ／ｒを選択する。一方、ステップ１０７では、選択部２６が選択部２５からの一定値を選択し、選択部２７が力総和保持部３３からの力の総和を選択する。
【００８４】
乗算部２８は、選択部２７から与えられた値と選択部２６から与えられた値とを乗算する。乗算部２８は、選択部２６、２７の選択により、力の計算とビリアルの計算の両方に用いられる。
【００８５】
総和計算部１６Ｘの加算部３１は、力／ビリアル計算部１５Ｘの乗算部２８からの値と選択部３２からの値とを加算する。加算部３１は、選択部３２の選択と力／ビリアル計算部１５Ｘの選択部２６、２７の選択とにより、力の積算とビリアルの積算の両方に用いられる。
【００８６】
選択部３２は、加算部３１に与える値として、力総和保持部３３からの力の総和か、またはビリアル総和保持部３４からのビリアルの総和かのいずれかを選択する。力の積算が行われているときには、選択部３２は力総和保持部３３からの力の総和を選択する。ビリアルの積算が行なわれているときには、選択部３３はビリアル総和保持部３４からのビリアルの総和を選択する。
【００８７】
力総和保持部３３は、加算部３１で力の積算が行なわれた結果として得られた値を保持する。
【００８８】
ビリアル総和保持部３４は、加算部３１でビリアルの積算が行なわれた結果として得られた値を保持する。
【００８９】
すなわち、図２のフローチャートのステップ１０５では、選択部３２が力総和保持部３３からの力の総和を選択し、力総和保持部３３が加算部３１からの値を取り込む。一方、ステップ１０８では、選択部３２がビリアル総和保持部３４からのビリアルの総和を選択し、ビリアル総和保持部３４が加算部３１からの値を取り込む。
【００９０】
なお、図３には示していないが、基本セルのＹ軸方向の長さをＬｙ、Ｚ軸方向の長さをＬｚとすれば、Ｙ軸方向およびＺ軸方向についてもＸ軸方向と同様に考えることができる。
【００９１】
以上説明したように、本実施形態によれば、力／ビリアル計算部１５が、選択した微小セルに含まれる粒子ｊを順次選択して粒子ｉに及ぼす力を計算し、総和計算部１６が、各粒子ｊから粒子ｉに及ぼされる力の値を積算して力の総和を求め、力を計算したのと同じ力／ビリアル計算部１５が、力の総和に一定値を乗算することにより、その微小セルからその粒子ｉに対して及ぼされるビリアルを求めるので、力の計算とビリアルの計算で同じ力／ビリアル計算部１５を共用して回路規模を小さくでき、また複数の力を積算した値に対して一定値を乗算することにより短時間でビリアルを求めることができる。
【００９２】
また、本実施形態によれば、微小セルを順次選択することにより、系内の微小セルから粒子ｉに及ぼされるビリアルを積算することができるので、小さな回路規模かつ短い計算時間で、系内の粒子ｊから粒子ｉに及ぼされるビリアルの総和を求めることができる。
【００９３】
また、本実施形態よれば、微小セルおよび粒子ｉを順次選択することにより、系内の粒子間で相互に及ぼされるビリアルを積算することができるので、小さな回路規模かつ短い計算時間で、系内のビリアルの総和を求めることができる。
【００９４】
また、本実施形態よれば、力／ビリアル計算部１５において、力を計算するための乗算と、ビリアルを計算するための乗算とを同じ回路で共用することができ、また、総和計算部１６において、力を積算するための加算と、ビリアルを積算するための加算とを同じ回路で共用することができる。
【００９５】
なお、本実施形態の多体問題計算装置は、鏡像変換座標を使用するために（ｘi±Ｌｘ）をΣｆxijに乗算することとしたが、本発明はこれに限定されるものではない。図３においてｘi−Ｌｘ保持部２１をｘi−Ｌｘ／２とし、ｘi＋Ｌｘ保持部２２をｘi＋Ｌｘ／２とし、選択条件保持部２４において、ｊ＞ｉの条件であっても（ｘi±Ｌｘ）を選択することとしてもよい。そうすれば、式（１６）から、（ｘi±Ｌx／２）をΣｆxijに乗算することにより、粒子ｊに対する粒子ｉから及ぼされるビリアルを計算する場合においても鏡像変換の影響を２重に加算することなくビリアルの総和を計算することができる。
【図面の簡単な説明】
【００９６】
【図１】本実施形態の多体問題計算装置の構成を示すブロック図である。
【図２】本実施形態の多体問題計算装置の動作を示すフローチャートである。
【図３】本実施形態の多体問題計算装置における力／ビリアル計算部および総和計算部の詳細な構成を示すブロック図である。
【図４】従来の計算装置の構成を示すブロック図である。
【符号の説明】
【００９７】
１１    座標差分計算部
１２    距離２乗計算部
１３    関数計算部
１４    遅延部
１５、１５Ｘ    力／ビリアル計算部
１６、１６Ｘ    総和計算部
２１    ｘi−Ｌｘ保持部
２２    ｘi＋Ｌｘ保持部
２３    ｘi保持部
２４    選択条件保持部
２５〜２７    選択部
２８    乗算部
３１    加算部
３２    選択部
３３    力総和保持部
３４    ビリアル総和保持部
１０１〜１１０    ステップ
【図１】
2007148560.tif 000010
【図２】
2007148560.tif 000011
【図３】
2007148560.tif 000012
【図４】
2007148560.tif 000013