(57)【特許請求の範囲】
【請求項１】
分子と分子、および分子と壁との間の相互作用を計算する相互作用計算装置において、
分子種と分子数と分子壁区別を受信情報として受信する手段と、
前記受信情報に基づいて３次元座標上で固定した壁の配置を決定する手段と、
前記受信情報に基づいて分子の配置を決定する手段と、
前記壁と分子を合わせた座標データを生成する手段と、
前記座標データを前記分子壁区別に基づいて分子を前半にソートし、壁を後半にソートする手段と、
前記分子と分子との相互作用を計算する手段と、
前記壁から分子への相互作用を計算する手段と、
前記の分子と分子との相互作用と、壁から分子への相互作用とを合わせる手段と
を備えたことを特徴とする相互作用計算装置。
【請求項２】
分子と分子、および分子と壁との間の相互作用を計算する相互作用計算装置において、
分子種と分子数と分子壁区別を受信情報として受信する手段と、
前記受信情報に基づいて３次元座標上で固定した壁の配置を決定する手段と、
前記受信情報に基づいて分子の配置を決定する手段と、
前記壁と分子を合わせた座標データを生成する手段と、
前記座標データを前記分子壁区別に基づいて分子を前半にソートし、壁を後半にソートする手段と、
壁と壁との相互作用を除いた相互作用を計算する手段と、
前記分子から壁への相互作用を計算して、上記計算結果から除く手段と
を備えたことを特徴とする相互作用計算装置。
【請求項３】
コンピュータに、分子と分子、および分子と壁との間の相互作用を計算させるプログラムを記録したコンピュータ読取可能な記録媒体であって、
コンピュータに、
分子種と分子数と分子壁区別を受信情報として受信する手段と、
前記受信情報に基づいて３次元座標上で固定した壁の配置を決定する手段と、
前記受信情報に基づいて分子の配置を決定する手段と、
前記壁と分子を合わせた座標データを生成する手段と、
前記座標データを前記分子壁区別に基づいて分子を前半にソートし、壁を後半にソートする手段と、
前記分子と分子との相互作用を計算する手段と、
前記壁から分子への相互作用を計算する手段と、
前記の分子と分子との相互作用と、壁から分子への相互作用とを合わせる手段と
して機能させるプログラムを記録したコンピュータ読取可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、分子と分子、分子と壁との間の相互作業を計算する相互作用計算装置に関するものである。
【０００２】
【従来の技術】
従来、分子と分子、分子と壁との間の相互作用は、それれぞの分子について他の分子、壁との間の相互作業をそれぞれ計算していた。
【０００３】
【発明が解決しようとする課題】
このように従来の分子と分子、分子と壁の間に作用する力は、それぞれ相互の作用を計算していたため、計算量が膨大となって迅速に計算し得ないという問題があった。このため、分子と分子、分子と壁との間に及ぼす力を計算量少なく迅速に計算機を用いて計算することが望まれている。
【０００４】
本発明は、これらの問題を解決するため、与えられた分子などのデータをもとに配置された分子や壁の座標をもとにソートして分子と壁に分け、迅速に相互作用の計算を行うことを目的としている。
【０００５】
【課題を解決するための手段】
図１は、本発明のシステムブロック図を示す。
図１において、計算機１は、各種処理を行うものであって、ここでは、ソート手段２および計算手段３などから構成されるものである。
【０００６】
ソート手段２は、与えられた分子や壁およびそれらの配置の情報をもとにソートして分子と壁に分けるものである。
計算手段３は、分子と壁との相互作用を計算したり、分子および壁と、分子および壁との相互作用を計算したりなどするものである。
【０００７】
次に、動作を説明する。
ソート手段２が与えられた分子や壁およびそれらの配置の情報をもとにソートして分子と壁に分け、計算手段３が分子と分子との相互作用を計算、および分子と壁との相互作用を計算した後、これら計算した両者を合わせて各分子に働く力を求めるようにしている。
【０００８】
また、ソート手段２が与えられた分子や壁およびそれらの配置の情報をもとにソートして分子と壁に分け、計算手段３が分子および壁と、分子および壁との相互作用を計算した後、この計算したうちの分子と壁との相互作用の一方について０クリアし、各分子に働く力を求めるようにしている。
【０００９】
従って、配置された分子や壁の座標をもとにソートして分子と壁に分け、計算量を少なくして迅速に相互作用の計算を行うことが可能となる。
【００１０】
【発明の実施の形態】
次に、図２から図１１を用いて本発明の実施の形態および動作を順次詳細に説明する。ここで、図１の各手段を機能させるプログラムを図示外の記憶媒体から読み出して計算機１の主記憶上にローディングして起動し、以下に説明する各種処理を実行させるものである。
【００１１】
図２は、本発明の動作説明フローチャートを示す。
図２において、Ｓ１は、データを入力する。これは、分子に関する情報、例えば後述する図３、図４に示すように、分子の構造（例えばメタン）、個数などの情報をキー入力あるいはデータベースから検索して入力したりする。
【００１２】
Ｓ２は、“壁”の配置を決定する。これは、３次元座標上で固定した動かない壁の配置を決定する。
Ｓ３は、“分子”の配置を決定する。これは、Ｓ１で入力した分子について、３次元座標上の配置（例えば所定矩形内であって当該矩形内の乱数で決めた位置に配置）を決める。
【００１３】
Ｓ４は、座標データを生成する。これは、Ｓ２、Ｓ３で壁および分子の配置が決定されたのでこれらの座標データを生成する。
Ｓ５は、“分子”の座標のみをデータの先頭にソートする。これは、Ｓ４で座標データを生成した分子と壁について、分子を先頭にソートし、壁を後ろにソートする。
【００１４】
Ｓ６は、ソートの結果、データの前半ｍ個は、“分子”なので、分子（ｉ）−分子（ｊ）については、Ｆij＝−Ｆjiを利用して、半分のみ計算し、Ｆiを求める。データの後半は、“壁”なので、“壁（ｊ）”から“分子（ｉ）”への相互作用Ｆijを計算し、Ｆiを求める。これらは、後述する図７ないし図９で詳述するように、Ｓ４で生成した座標データをもとに、分子と壁とを分けてソートして図７のようにし、このうちの前半のｍ個の分子について分子（ｉ）と分子（ｊ）との相互作用を求め、次に、後半の壁について壁（ｊ）から分子（ｉ）に作用する相互作用を計算してＦiを求める。そして、両者を併せて分子に働く力を求める。
【００１５】
Ｓ７は、各原子ｉについて、力ＦiからΔｔ秒後のｉ原子の新座標を計算する。
以上によって、分子および壁の配置を決めて座標データを生成し、ソートして前半の分子の部分についてＦij＝−Ｆjiの性質を利用して後述する図７ないし図９に示すように、分子ｉと分子ｊとの相互作用、壁ｊから分子ｉへの相互作用を求めた両者の和によって分子に作用する力を求めることにより、少ない計算量で相互作用を簡易かつ迅速に計算機を用いて計算することが可能となった。以下順次詳細に説明する。
【００１６】
図３は、本発明のデータ入力例を示す。これは、既述した図２のＳ１のデータ入力の具体例である。
ここで、上段のｎはデータの種類の個数のシーケンシャル番号を表し、Ｋは分子種、Ｌは分子の数を表し、ＦＬＡＧは分子が固定（１）か固定しない（０）の区別を表す。例えば第１行目の
ｎ    Ｋ        Ｌ        ＦＬＡＧ
１    ｍｏｌｌ  １００    ０
は、シーケンシャル番号が“１”、分子種が“ｍｏｌｌ”（例えばメタン）、個数が“１００個”、壁でなく分子を表す。
【００１７】
ここで、“壁”は、通常、分子性結晶の基本単位の３次元周期構造をとるので、単位の積載を行う。
また、“分子”は、回転角と、エリアを指定すると、エリア内にランダムに選ばれた点に分子の重心を一致させ、指定された回転角で配向した位置に配置される。回転角を指定しなければ、回転角をランダムに、エリアを指定しなければセルのランダムに選ばれた点に分子の重心が配置される。
【００１８】
以上のようにして、座標データ（ｎ、ｌ、ｍ）を配置する。
図４は、本発明のデータ入力と配置の具体例を示す。これは、既述した図２のＳ２、Ｓ３の壁、分子の配置例である。ここでは、分子種“メタン”、“セオライト”、“Ｈ2Ｏ”をそれぞれ、１００個、２個、２００個、配置する様子を示す。
【００１９】
図５は、本発明の配置例を示す。これは、図４で配置の具体例を３次元的に判りやすく模式的に表したものである。左からＨ2Ｏ、セオライト、メタンの順に３次元座標上に配置したものである。
【００２０】
図６は、本発明のデータのソート説明図を示す。これは、Ｓ５のように分子および壁を配置し、分子を前半にソートし、壁を後半にソートするときの説明図である。
【００２１】
図６において、▲１▼は、ｋ０＝０とする。
▲２▼は、ＦＬＡＧ＝０のデータ（図３のＦＬＡＧ＝０の分子のデータ）を前半にソートするための配列ｋ（ｎ）を定義する。これは、図示の下記の
ｎ＝１，ｋ
ｉｆ  ＦＬＡＧ  ＝  ０
ｋ０  ＝  ｋ０  ＋  １
ｋ（ｎ）  ＝  ｋ０
によって、ＦＬＡＧ＝０のデータを前半にソートするための配列ｋ（ｎ）が定義される。
【００２２】
▲３▼は、ＦＬＡＧ＝１のデータ（図３のＦＬＡＧ＝１の壁のデータ）を後半にソートするための配列ｋ（ｎ）を定義する。これは、図示の下記の
ｎ＝１，ｋ
ｉｆ  ＦＬＡＧ  ＝  １
ｋ０  ＝  ｋ０  ＋  １
ｋ（ｎ）  ＝  ｋ０
によって、ＦＬＡＧ＝１のデータを後半にソートするための配列ｋ（ｎ）が定義される。
【００２３】
▲４▼は、座標データをソートする。これは、図示の下記の記述によって、ソートする。
▲５▼は、計算で用いられるような通し番号に変更する。
【００２４】
以上によって、前半に分子をソートし、後半に壁をソートすることが可能となる。
図７は、本発明の計算で求めたい領域説明図を示す。これは、ＣＨ4の分子を０〜ｍまでに前半にソートし、後半のｍ〜Ｎまでに壁をソートした状態を示す。また、図中の斜線の部分は、計算で求めたい領域である。以下図８ないし図１１を用いて、斜線で示した計算で求めたい領域の計算方法について詳細に説明する。
【００２５】
図８は、本発明の説明図（その１）を示す。
図８の（ａ）は、図７の斜線の計算で求めたい領域について、▲１▼の２重ループの部分によって図９の▲１▼の部分を求め、▲２▼の２重ループの部分によって図９の▲２▼の部分を求めるための記述を示す。
【００２６】
図８の（ｂ）は図８の（ａ）の▲１▼の２重ループの部分を判りやすくフローチャートにしたものであり、図８の（ｃ）は図８の（ａ）の▲２▼の２重ループの部分を判りやすくフローチャートにしたものである。
【００２７】
図８の（ｂ）において、Ｓ１１は、ｉ＝１と初期設定する。
Ｓ１２は、ｉに１を加えてｊとする。
Ｓ１３は、Ｆijを計算する。これは、例えばＦij＝−｛ｄΦiJ／ｄｒij｝＝−Ｆjiというように、分子と分子との距離をｄｒijとし、そのときのポテンシャルの差がｄΦijのときの両者に働く力をＦijとして求める。
【００２８】
Ｓ１４は、ＦiにＦijを加える。これにより、
Ｆi＝Ｆi＋Ｆij
を求める。
【００２９】
Ｓ１５は、Ｆjに−Ｆijを加える。これにより、
Ｆj＝Ｆj−Ｆij
を求める。
【００３０】
Ｓ１６は、ｊに１を加える。
Ｓ１７は、ｊ＞ｍか判別する。ＹＥＳの場合には、Ｓ１８に進む。ＮＯの場合には、Ｓ１３に戻り繰り返す。
【００３１】
Ｓ１８は、ｉに１を加える。
Ｓ１９は、ｉ＞ｍか判別する。ＹＥＳの場合には、Ｓ２０に進む。一方、ＮＯの場合には、Ｓ１２に戻り繰り返す。
【００３２】
以上のＳ１からＳ１９のＹＥＳによって、図９の▲１▼の斜線の部分のＦi＝Ｆi＋Ｆij、およびＦj＝Ｆj−Ｆijを求めることが可能となる。
Ｓ２０は、ｉ＝１とする。
【００３３】
Ｓ２１は、ｊ＝ｍ＋１とする。
Ｓ２２は、Ｆijを計算する。これは、Ｓ１３と同じようにしてＦijを求める。
Ｓ２３は、ＦiにＦijを加える。これにより、
Ｆi＝Ｆi＋Ｆij
を求める。
【００３４】
Ｓ２４は、ｊに１を加える。
Ｓ２５は、ｊ＞Ｎか判別する。ＹＥＳの場合には、Ｓ２６に進む。ＮＯの場合には、Ｓ２２に戻り繰り返す。
【００３５】
Ｓ２７は、ｉ＞ｍか判別する。ＹＥＳの場合には、終了する。一方、ＮＯの場合には、Ｓ２１に戻り繰り返す。
以上のＳ２０からＳ２７のＹＥＳによって、図９の▲２▼の斜線の部分のＦi＝Ｆi＋Ｆijを求めることが可能となる。
【００３６】
以上の図８の▲１▼の２重ループの部分、および▲２▼の２重ループの部分によって、図９の▲１▼および▲２▼の部分がそれぞれ求められ、両者を合わせて計算で求めたい領域の分子に働く力Ｆiが必要最小限の計算によって求められたこととなる。
【００３７】
図９は、本発明の説明図（その１の▲１▼、▲２▼）を示す。
図９において、▲１▼は、図８の▲１▼の記述あるいはフローチャート（Ｓ１１からＳ１９）によって求められる領域を示す。
【００３８】
同様に、▲２▼は、図８の▲２▼の記述あるいはフローチャート（Ｓ２０からＳ２７）によって求められる領域を示す。
図１０は、本発明の説明図（その２）を示す。
【００３９】
図１０の（ａ）は、図７の斜線の計算で求めたい領域について、▲１▼’の２重ループの部分によって図１１の▲１▼’の部分を求め、▲２▼’の１重ループの部分によって図１１の▲２▼’の部分を０クリアして求めるための記述を示す。
【００４０】
図１０の（ｂ）は図１０の（ａ）の▲１▼’の２重ループの部分を判りやすくフローチャートにしたものであり、図１０の（ｃ）は図１０の（ａ）の▲２▼’の１重ループの部分を判りやすくフローチャートにしたものである。
【００４１】
図１０の（ｂ）において、Ｓ３１は、ｉ＝１と初期設定する。
Ｓ３２は、ｉに１を加えてｊとする。
Ｓ３３は、Ｆijを計算する。これは、例えばＦij＝−｛ｄΦiJ／ｄｒij｝＝−Ｆjiというように、分子と分子との距離をｄｒijとし、そのときのポテンシャルの差がｄΦijのときの両者に働く力をＦijとして求める。
【００４２】
Ｓ３４は、ＦiにＦijを加える。これにより、
Ｆi＝Ｆi＋Ｆij
を求める。
【００４３】
Ｓ３５は、Ｆjに−Ｆijを加える。これにより、
Ｆj＝Ｆj−Ｆij
を求める。
【００４４】
Ｓ３６は、ｊに１を加える。
Ｓ３７は、ｊ＞Ｎか判別する。ＹＥＳの場合には、Ｓ３８に進む。ＮＯの場合には、Ｓ３３に戻り繰り返す。
【００４５】
Ｓ３８は、ｉに１を加える。
Ｓ３９は、ｉ＞ｍか判別する。ＹＥＳの場合には、Ｓ４０に進む。一方、ＮＯの場合には、Ｓ３２に戻り繰り返す。
【００４６】
以上のＳ３１からＳ３９のＹＥＳによって、図１１の▲１▼’の斜線の部分のＦi＝Ｆi＋Ｆij、およびＦj＝Ｆj−Ｆijを求めることが可能となる。
Ｓ４０は、Ｆi＝０とする。
【００４７】
Ｓ４１は、ｉに１を加える。
Ｓ４２は、ｉ＞Ｎか判別する。ＹＥＳの場合には、終了する。ＮＯの場合には、Ｓ４０に戻り繰り返す。
【００４８】
以上のＳ４０からＳ４２のＹＥＳによって、図１１の▲２▼’の斜線の部分のＦi＝０とし（０クリアし）、結果として、図７の計算で求めたい領域についてＦiを求めることが可能となる。
【００４９】
以上の図１０の▲１▼’の２重ループの部分、および▲２▼’の１重ループの部分によって、図１１の▲１▼’の部分を求め、当該▲１▼’の部分のうち▲２▼’の部分を０クリアして結果として、図７の計算で求めたい領域の分子に働く力Ｆiがベクトル計算によって迅速に求めることができる。例えば図１１の▲１▼’の計算を求めて、▲２▼’の部分を０クリアする計算方法の場合、▲２▼’の部分が１重ループであって迅速にベクトル計算できるので、この▲２▼’の部分の領域の大きさに対応するｍの個数（分子の個数）が、全体の計算個数Ｎに比して小さいときには当該▲２▼’の１重ループの計算が早くでき、結果として既述した図８、図９の▲１▼の２重ループ、▲２▼の２重ループの計算に比して早く実行することが可能となる。
【００５０】
図１１は、本発明の説明図（その２の▲１▼’、▲２▼’）を示す。
図１１において、▲１▼’は、図１０の▲１▼’の記述あるいはフローチャート（Ｓ３１からＳ３９）によって求められる領域を示す。
【００５１】
同様に、▲２▼’は、図１０の▲２▼’の記述あるいはフローチャート（Ｓ４０からＳ４２）によって０クリアされる領域を示す。
【００５２】
【発明の効果】
以上説明したように、本発明によれば、配置された分子や壁の座標をもとにソートして分子と壁に分け、迅速に相互作用の計算を行うことができる。これらにより、粒子間の相互作用の計算を実現でき、分子動力学計算を行う電子計算機装置を製造することが可能となる。
【図面の簡単な説明】
【図１】本発明のシステムブロック図である。
【図２】本発明の動作説明フローチャートである。
【図３】本発明のデータ入力例である。
【図４】本発明のデータ入力と配置の具体例である。
【図５】本発明の配置例である。
【図６】本発明のデータのソート説明図である。
【図７】本発明の計算で求めたい領域説明図である。
【図８】本発明の説明図（その１）である。
【図９】本発明の説明図（その１の▲１▼、▲２▼）である。
【図１０】本発明の説明図（その２）である。
【図１１】本発明の説明図（その２の▲１▼’、▲２▼’）である。
【符号の説明】
１：計算機
２：ソート手段
３：計算手段
【図１】
0003942051.tif 000002
【図２】
0003942051.tif 000003
【図３】
0003942051.tif 000004
【図４】
0003942051.tif 000005
【図５】
0003942051.tif 000006
【図６】
0003942051.tif 000007
【図７】
0003942051.tif 000008
【図８】
0003942051.tif 000009
【図９】
0003942051.tif 000010
【図１０】
0003942051.tif 000011
【図１１】
0003942051.tif 000012