説明

座標差分計算装置および座標差分計算方法

【課題】専用の演算器を用いることなく、座標の差分計算の高速化を図る。
【解決手段】本発明の座標差分演算装置は、制御部1、記憶部2〜4、選択部5、および演算部6から構成されている。記憶部2は、i粒子のX座標であるXiの値を予め記憶し、記憶部3は、Xiに基本セルのX軸方向の一辺の長さであるLxを加算した(Xi+Lx)の値を予め記憶し、記憶部4は、XiからLxを減算した(Xi−Lx)の値を予め記憶する。制御部1は、Xi,(Xi+Lx),(Xi−Lx)の値のうち、i粒子を含む微小セルとj粒子を含む微小セルとの距離が最小となるような値を選択させるための選択信号を出力する。選択部5は、制御部1から出力された選択信号に基づいて、Xi,(Xi+Lx),(Xi−Lx)のいずれかの値を選択して出力する。演算部6は、制御部1から出力されたXjから、選択部5から出力された値を減算することでΔXjを演算する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、2つの粒子の座標の差分を計算する座標差分計算装置および座標差分計算方法に関する。
【背景技術】
【0002】
分子動力学において、i粒子に働く力を計算する場合、i粒子以外の全ての粒子をj粒子として、i粒子とj粒子の各々との間に働く力の総和を求める。一般に、2つの粒子間に働く力は、粒子間の距離に依存するため、まずは、粒子間の距離を求める必要がある。
【0003】
しかし、i粒子以外の全ての粒子をj粒子とすると、計算量は膨大なものとなる。そこで、最近は、周期的境界条件を用いてi粒子に働く力を計算することが行われている。
【0004】
周期的境界条件では、予め決められた直方体形状の基本セルを考え、i粒子と同一の基本セル内に存在する粒子のみをj粒子とする。また、その周囲の各基本セルにも同じ配置でj粒子が並んでいると仮定し、i粒子と同一の基本セル内およびその周囲の基本セル内に存在するj粒子のうち、i粒子との距離が最小となるj粒子を計算対象とし、計算対象のj粒子からi粒子に対して働く力を計算する。
【0005】
以下、周期的境界条件について図4〜図6を用いて詳細に説明する。
【0006】
図4〜図6は、基本セルをXY平面上に2次元的に表した図である。なお、図4〜図6において、各基本セルは、X軸方向の一辺の長さがLx、Y軸方向の一辺の長さがLyで、図示しないZ軸方向の一辺の長さはLzとなっている。また、各基本セルは、複数の微小セルに分割されている。また、各微小セル内には、一般に、複数個の粒子が存在しているが、図4〜図6では、説明の簡略化のために、必要な粒子のみが示されている。
【0007】
図4の例では、i粒子は、中央の基本セルに存在している。また、j粒子は、i粒子と同一基本セル内に存在しているが、その周囲の各基本セル内にも同じ配置で存在していると仮定する。なお、以下では、説明の便宜のため、i粒子と同一基本セル内のj粒子をj0粒子と称し、その周囲の各基本セル内のj粒子をそれぞれj1〜j8粒子と称す。これらj0〜j8粒子のうちi粒子との距離が最小となるのは、i粒子と同一基本セル内のj0粒子である。この場合、周期的境界条件では、j0粒子を計算対象とし、j0粒子からi粒子に対して働く力を計算する。
【0008】
これに対して、図5の例では、j0〜j8粒子のうちi粒子との距離が最小となるのは、i粒子と同一基本セル内のj0粒子ではなく、その周囲の基本セル内のj6粒子である。この場合、周期的境界条件では、j6粒子を計算対象とし、j6粒子からi粒子に対して働く力を計算する。
【0009】
同様に、図6の例では、j0〜j8粒子のうちi粒子との距離が最小となるのは、i粒子と同一基本セル内のj0粒子ではなく、その周囲の基本セル内のj8粒子である。この場合、周期的境界条件では、j8粒子を計算対象とし、j8粒子からi粒子に対して働く力を計算する。
【0010】
上述のような周期的境界条件を用いて粒子間の距離を求める方法としては、特許文献1に開示された方法が公知となっている。
【0011】
特許文献1に開示された方法では、まず、i粒子と、同一基本セル内のj0粒子との座標の差分を計算する。続いて、差分の計算結果を、基本セルの一辺の長さの±1/2と比較する。そして、差分の計算結果が基本セルの一辺の長さの1/2よりも大きい場合は差分の計算結果から基本セルの一辺の長さを減算し、差分の計算結果が基本セルの一辺の長さの−1/2よりも小さい場合は差分の計算結果に基本セルの一辺の長さを加算する。これにより、周期的境界条件を用いた粒子間の距離の計算を実現している。
【0012】
具体的には、図4の例でX軸方向の座標の差分を計算する場合、まず、i粒子とj0粒子との座標の差分を計算する。ここでは、差分の計算結果がLx/2よりも大きいこと、−Lx/2よりも小さいことのいずれにも該当しないものとする。そのため、Lxの加減算は行わない。
【0013】
これに対して、図5の例でX軸方向の座標の差分を計算する場合、まず、i粒子とj0粒子との座標の差分を計算する。ここでは、差分の計算結果がLx/2よりも大きいものとする。そのため、差分の計算結果からLxを減算することで、i粒子とj6粒子との座標の差分を計算する。
【0014】
また、図6の例でX軸方向の座標の差分を計算する場合、まず、i粒子とj0粒子との座標の差分を計算する。ここでは、差分の計算結果が−Lx/2よりも小さいものとする。そのため、差分の計算結果にLxを加算することで、i粒子とj8粒子との座標の差分を計算する。
【特許文献1】特開平06−176052号公報
【発明の開示】
【発明が解決しようとする課題】
【0015】
しかしながら、特許文献1に開示された方法では、j粒子を変えるたびに、座標の差分の計算結果を±Lx/2と比較し、その比較結果に応じてLxを加減算しており、周期的境界条件を動的に計算する必要がある。そのため、座標の差分の計算量が増大し、計算の高速化が図れない。また、計算の高速化を図るには、周期的境界条件を動的に計算する専用の演算器が必要となり、ゲート量が増大してしまう。
【0016】
そこで、本発明の目的は、専用の演算器を用いることなく、座標の差分計算の高速化を図ることができる座標差分計算装置および座標差分計算方法を提供することにある。
【課題を解決するための手段】
【0017】
上記目的を達成するために本発明は、
基本セルを分割して得た複数の微小セルのいずれかに含まれるi粒子とj粒子の座標の差分を計算する座標差分計算装置であって、
前記i粒子の座標の値を予め記憶する第1の記憶手段と、
前記i粒子の座標に前記基本セルの一辺の長さを加算した値を予め記憶する第2の記憶手段と、
前記i粒子の座標から前記基本セルの一辺の長さを減算した値を予め記憶する第3の記憶手段と、
前記第1から第3の記憶手段に記憶された値のうち、前記i粒子を含む微小セルと前記j粒子を含む微小セルとの距離が最小となるような値を選択するための選択信号を出力するとともに、前記j粒子の座標の値を出力する制御手段と、
前記制御手段から出力された選択信号に基づいて、前記第1から第3の記憶手段に記憶された値のいずれかを選択して出力する選択手段と、
前記制御手段から出力されたj粒子の座標の値から、前記選択手段から出力された値を減算する演算手段とを有することを特徴とする。
【発明の効果】
【0018】
上述したように本発明によれば、i粒子に働く力を計算する間は一定となる周期的境界条件として、i粒子の座標の値、i粒子の座標に基本セルの一辺の長さを加算した値、およびi粒子の座標から基本セルの一辺の長さを減算した値を予め計算して保持しておく。i粒子とj粒子の座標の差分を計算する際には、まず、i粒子を含む微小セルとj粒子を含む微小セルとの距離が最小となるような周期的境界条件を選択する。そして、j粒子の座標から、選択した周期的境界条件を減算することで座標差分の計算を行う。
【0019】
従って、従来技術のように、j粒子が変わるたびに周期的境界条件を動的に計算する必要はないため、専用の演算器を用いなくても、座標差分の計算を高速に行うことができるという効果が得られる。また、専用の演算器を用いる必要がないため、ゲート量を削減し、消費電力を低減することができるという効果も得られる。
【0020】
また、周期的境界条件は、同一の微小セル内のj粒子について計算を行っている間は固定することができるため、周期的境界条件の選択は、j粒子が変わるたびに行う必要はなく、j粒子を含む微小セルが変わるたびに行えば良い。よって、座標差分の計算量が削減されるため、さらに高速に計算することができるという効果が得られる。
【発明を実施するための最良の形態】
【0021】
まず、本発明の座標差分計算装置の動作原理について説明する。以下では、説明の簡略化のため、X座標についてのみ説明する。
【0022】
ここでは、周期的境界条件を用いて、i粒子に働く力を計算する場合を考える。このとき、i粒子の座標を(Xi,Yi,Zi)とし、i粒子と同一基本セル内のj0粒子(図4〜図6参照)の座標を(Xj,Yj,Zj)とする。なお、j0粒子は、i粒子と同一基本セル内の全粒子となるため、一般に複数個存在する。
【0023】
周期的境界条件を用いた粒子間の距離は、次の数1で表される。
【0024】
【数1】

【0025】
数1において、Lxは、基本セルのX軸方向の一辺の長さである。このとき、i粒子に着目すると、i粒子に働く力を計算する間は、i粒子の座標の値は固定されている。また、Lxも固定値である。そこで、上記の数1を次の数2のように変形する。
【0026】
【数2】

【0027】
数2において、右辺の第2項目は周期的境界条件であり、Xi、(Xi+Lx)、または(Xi−Lx)のいずれかの値を示す。この周期的境界条件は、i粒子に働く力を計算する間は、j0粒子によらず固定値である。そのため、周期的境界条件は、予め一度だけ計算して保持しておく。
【0028】
また、周期的境界条件は、Xi、(Xi+Lx)、または(Xi−Lx)の値のうち、i粒子を含む微小セルとj粒子を含む微小セルとの距離が最小になるような値を選択する。
【0029】
具体的には、図4の例では、j0〜j8粒子のうちi粒子との距離が最小となるのは、i粒子と同一基本セル内のj0粒子である。j0粒子を計算対象とするには、j0粒子の座標にLxを加減算する必要はないため、周期的境界条件としてXiを選択する。同様に、j0粒子と同一微小セル内にある他の粒子をj0粒子として計算する場合も、i粒子を含む微小セルとj0粒子を含む微小セルとの距離が最小になる。よって、同一微小セル内のj0粒子について計算を行っている間は、周期的境界条件をXiに固定する。
【0030】
また、図5の例では、j0〜j8粒子のうちi粒子との距離が最小となるのは、i粒子と同一基本セル内のj0粒子ではなく、その周囲の基本セル内のj6粒子である。j6粒子を計算対象とするには、j0粒子の座標からLxを減算する必要があるため、周期的境界条件として(Xi+Lx)を選択する。同様に、j0粒子と同一微小セル内にある他の粒子をj0粒子として計算する場合も、i粒子を含む微小セルとj6粒子を含む微小セルとの距離が最小になる。よって、同一微小セル内のj0粒子について計算を行っている間は、周期的境界条件を(Xi+Lx)に固定する。
【0031】
また、図6の例では、j0〜j8粒子のうちi粒子との距離が最小となるのは、i粒子と同一基本セル内のj0粒子ではなく、その周囲の基本セル内のj8粒子である。j8粒子を計算対象とするには、j0粒子の座標にLxを加算する必要があるため、周期的境界条件として(Xi−Lx)を選択する。同様に、j0粒子と同一微小セル内にある他の粒子をj0粒子として計算する場合も、i粒子を含む微小セルとj8粒子を含む微小セルとの距離が最小になる。よって、同一微小セル内のj0粒子について計算を行っている間は、周期的境界条件を(Xi−Lx)に固定する。
【0032】
このように、周期的境界条件は、同一微小セル内のj粒子について計算を行っている間は固定することができる。そのため、j粒子を含む微小セルが変わるたびに、予め計算し保持しておいた周期的境界条件を切り替えれば、座標差分の計算が可能になる。
【0033】
従って、本発明では、従来技術のように、j粒子が変わるたびに周期的境界条件を動的に計算する必要はないため、専用の演算器を用いなくても、座標差分の計算を高速に行うことが可能になる。
【0034】
以下、上記の原理で動作を行う本発明の一実施形態の座標差分計算装置の構成について説明する。
【0035】
図1は、本実施形態の座標差分計算装置の構成を示すブロック図である。なお、図1の構成要素は、実際には、X座標、Y座標、Z座標の各座標ごとに設けられているが、図1では、X座標に関連する構成要素のみが示され、Y座標およびZ座標に関連する構成要素は省略されている。
【0036】
図1を参照すると、本実施形態の座標差分計算装置は、制御部1、記憶部2〜4、選択部5、および演算部6から構成されている。
【0037】
制御部1は、選択部5および演算部6の制御を行う。具体的には、制御部1は、演算部6に対しては、演算に用いるパラメータとして、基本セルのX軸方向の一辺の長さであるLx、i粒子のX座標の値であるXi、j粒子のX座標の値であるXjを出力するとともに、演算部6の動作内容を規定するための制御信号を出力する。また、制御部1は、選択部5に対しては、周期的境界条件となるXi,(Xi+Lx),(Xi−Lx)の値のうち、i粒子を含む微小セルとj粒子を含む微小セルとの距離が最小となるような値を選択するための選択信号を出力する。
【0038】
なお、本実施形態の座標差分計算装置には、i粒子またはj粒子となる各粒子の座標、基本セルの一辺の長さ、および、i粒子を含む微小セルとj粒子を含む微小セルとの距離を最小とするために選択すべき周期的境界条件を記憶した不図示のメモリが設けられている。制御部1は、このメモリに記憶されている情報を必要に応じて読み出し、選択部5および演算部6に対して出力している。
【0039】
記憶部2は、Xiの値を予め記憶する第1の記憶手段であり、また、記憶部3は、XiにLxを加算した(Xi+Lx)の値を予め記憶する第2の記憶手段であり、また、記憶部4は、XiからLxを減算した(Xi−Lx)の値を予め記憶する第3の記憶手段である。
【0040】
選択部5は、制御部1から出力された選択信号に基づいて、記憶部2〜4にそれぞれ記憶されているXi,(Xi+Lx),(Xi−Lx)のいずれかを選択して出力する。
【0041】
演算部6は、制御部1から出力された制御信号に基づいて動作を行う。具体的には、演算部6は、制御部1から出力されたXjと選択部5から出力された値を用いて、Xjから選択部5の出力値を減算することでΔXjを演算し、また、制御部1から出力されたXiとLxを用いて、(Xi+Lx),(Xi−Lx)を演算する。また、演算部6は、制御部1から出力されたXiを記憶部2に記憶させるとともに、演算した(Xi+Lx),(Xi−Lx)を記憶部3,4にそれぞれ記憶させる。
【0042】
以下、図1に示した座標差分計算装置の動作について、図2および図3を参照して説明する。
【0043】
図2を参照すると、まず、制御部1は、i粒子のX座標であるXiと基本セルのX軸方向の一辺の長さLxを演算部6に対して出力するとともに、Xi,(Xi+Lx),(Xi−Lx)を記憶部2〜4にそれぞれ記憶させる動作を実行させるための制御信号を演算部6に対して出力する。
【0044】
これを受けて、演算部6は、制御部1から出力されたXiをそのまま記憶部2に記憶させるとともに、制御部1から出力されたXiとLxを用いて、(Xi+Lx),(Xi−Lx)を演算して記憶部3,4に記憶させる。
【0045】
図3を参照すると、続いて、制御部1は、i粒子と同一基本セル内のいずれかの微小セルを選択し、さらに、選択した微小セル内のいずれかの粒子をj0粒子として選択し、選択したj0粒子のX座標であるXjを演算部6に対して出力するとともに、Xjから選択部5の出力値を減算する動作を実行させるための制御信号を演算部6に対して出力する。
【0046】
さらに、制御部1は、記憶部2〜4にそれぞれ記憶されたXi,(Xi+Lx),(Xi−Lx)の値のうち、i粒子を含む微小セルとj粒子を含む微小セルとの距離が最小となるような値を選択するための選択信号を選択部5に対して出力する。
【0047】
具体的には、図4の例では、i粒子を含む微小セルとj0粒子を含む微小セルとの距離が最小となる。そこで、制御部1は、j0粒子を計算対象とするため、Xiを選択させるための選択信号を出力する。
【0048】
また、図5の例では、i粒子を含む微小セルとj6粒子を含む微小セルとの距離が最小となる。そこで、制御部1は、j6粒子を計算対象とするため、(Xi+Lx)を選択させるための選択信号を出力する。
【0049】
また、図6の例では、i粒子を含む微小セルとj8粒子を含む微小セルとの距離が最小となる。そこで、制御部1は、j8粒子を計算対象とするため、(Xi−Lx)を選択させるための選択信号を出力する。
【0050】
その後、選択部5は、制御部1から出力された選択信号に基づき、記憶部2〜4にそれぞれ記憶されているXi,(Xi+Lx),(Xi−Lx)のいずれかを選択して演算部6に対して出力し、演算部6は、制御部1から出力されたXjから選択部5の出力を減算することでΔXjを計算する。
【0051】
以降、制御部1は、選択信号を固定したまま、同一微小セル内の別のj0粒子のX座標を順次演算部6に出力して、同一微小セル内の全てのj0粒子についてΔXjの計算を完了させる。そして、同一微小セル内の全てのj0粒子についてΔXjの計算が完了すると、制御部1は、基本セル内の別の微小セルを選択し、選択した微小セルに応じて選択信号を切り替え、その微小セル内の全てのj0粒子について上記と同様にΔXjの計算を行う。ただし、次に選択した微小セルによっては、選択信号を切り替えない場合もある。
【0052】
上述したように本実施形態においては、i粒子に働く力を計算する間は一定となる周期的境界条件を予め計算して保持しておく。そして、i粒子とj粒子の座標の差分を計算する際には、i粒子を含む微小セルとj粒子を含む微小セルとの距離が最小となるような周期的境界条件を選択して座標差分の計算を行う。
【0053】
従って、従来技術のように、j粒子が変わるたびに周期的境界条件を動的に計算する必要はないため、専用の演算器を用いなくても、座標差分の計算を高速に行うことができる。また、専用の演算器を用いる必要がないため、ゲート量を削減することができるとともに、消費電力を低減することができる。
【0054】
また、周期的境界条件は、同一の微小セル内のj粒子について計算を行っている間は固定することができるため、周期的境界条件の選択は、j粒子が変わるたびに行う必要はなく、j粒子を含む微小セルが変わるたびに行えば良い。よって、座標差分の計算量が削減されるため、計算のさらなる高速化に寄与し得る。
【図面の簡単な説明】
【0055】
【図1】本発明の一実施形態の座標差分計算装置の構成を示すブロック図である。
【図2】図1に示した座標差分計算装置において、周期的境界条件を予め計算し保持する動作を説明する図である。
【図3】図1に示した座標差分計算装置において、予め保持しておいた周期的境界条件を用いて座標の差分を計算する動作を説明する図である。
【図4】基本セルをXY平面上に2次元的に表した一例を示す図ある。
【図5】基本セルをXY平面上に2次元的に表した他の例を示す図ある。
【図6】基本セルをXY平面上に2次元的に表したさらに他の例を示す図ある。
【符号の説明】
【0056】
1 制御部
2〜4 記憶部
5 選択部
6 演算部


【特許請求の範囲】
【請求項1】
基本セルを分割して得た複数の微小セルのいずれかに含まれるi粒子とj粒子の座標の差分を計算する座標差分計算装置であって、
前記i粒子の座標の値を予め記憶する第1の記憶手段と、
前記i粒子の座標に前記基本セルの一辺の長さを加算した値を予め記憶する第2の記憶手段と、
前記i粒子の座標から前記基本セルの一辺の長さを減算した値を予め記憶する第3の記憶手段と、
前記第1から第3の記憶手段に記憶された値のうち、前記i粒子を含む微小セルと前記j粒子を含む微小セルとの距離が最小となるような値を選択するための選択信号を出力するとともに、前記j粒子の座標の値を出力する制御手段と、
前記制御手段から出力された選択信号に基づいて、前記第1から第3の記憶手段に記憶された値のいずれかを選択して出力する選択手段と、
前記制御手段から出力されたj粒子の座標の値から、前記選択手段から出力された値を減算する演算手段とを有することを特徴とする座標差分計算装置。
【請求項2】
請求項1に記載の座標差分計算装置において、
前記制御手段は、前記i粒子の座標の値と前記基本セルの一辺の長さを前記演算手段に対して予め出力し、
前記演算手段は、前記制御手段から出力されたi粒子の座標の値と前記基本セルの一辺の長さに基づいて、前記i粒子の座標に前記基本セルの一辺の長さを加算し、該加算値を前記第2の記憶手段に予め記憶させるとともに、前記i粒子の座標から前記基本セルの一辺の長さを減算し、該減算値を前記第3の記憶手段に予め記憶させ、さらに、前記制御手段から出力されたi粒子の座標の値を前記第1の記憶手段に予め記憶させることを特徴とする座標差分計算装置。
【請求項3】
基本セルを分割して得た複数の微小セルのいずれかに含まれるi粒子とj粒子の座標の差分を計算する座標差分計算方法であって、
前記i粒子の座標の値を第1の記憶手段に予め記憶する第1のステップと、
前記i粒子の座標に前記基本セルの一辺の長さを加算した値を第2の記憶手段に予め記憶する第2のステップと、
前記i粒子の座標から前記基本セルの一辺の長さを減算した値を第3の記憶手段に予め記憶する第3のステップと、
前記第1から第3の記憶手段に記憶された値のうち、前記i粒子を含む微小セルと前記j粒子を含む微小セルとの距離が最小となるような値を選択するための選択信号を出力するとともに、前記j粒子の座標の値を出力する第4のステップと、
前記第4のステップで出力された選択信号に基づいて、前記第1から第3の記憶手段に記憶された値のいずれかを選択して出力する第5のステップと、
前記第4のステップで出力されたj粒子の座標の値から、前記第5のステップで出力された値を減算する第6のステップとを有することを特徴とする座標差分計算方法。
【請求項4】
請求項3に記載の座標差分計算方法において、
前記i粒子の座標の値と前記基本セルの一辺の長さを予め出力する第7のステップをさらに有し、
前記第1のステップでは、前記第7のステップで出力されたi粒子の座標の値を前記第1の記憶手段に予め記憶させ、
前記第2のステップでは、前記第7のステップで出力されたi粒子の座標の値と前記基本セルの一辺の長さに基づいて、前記i粒子の座標に前記基本セルの一辺の長さを加算し、該加算値を前記第2の記憶手段に予め記憶させ、
前記第3のステップでは、前記第7のステップで出力されたi粒子の座標の値と前記基本セルの一辺の長さに基づいて、前記i粒子の座標から前記基本セルの一辺の長さを減算し、該減算値を前記第3の記憶手段に予め記憶させることを特徴とする座標差分計算方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2007−122150(P2007−122150A)
【公開日】平成19年5月17日(2007.5.17)
【国際特許分類】
【出願番号】特願2005−309827(P2005−309827)
【出願日】平成17年10月25日(2005.10.25)
【出願人】(000004237)日本電気株式会社 (19,353)
【Fターム(参考)】