• ベストアンサー

分子動力学シミュレーションについて

学校の実験で、fortranを用いて分子動力学シミュレー ションのプログラムを作成中なのですが、手元の本では おおまかな概要しか記載されていないためまったく 進んでいません。 どなたかfortranのプログラムの作成の手順について 教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • moleculer
  • ベストアンサー率100% (2/2)
回答No.3

この前にも少しお話しましたがポテンシャル関数というのが非常に重要なところです。 代表的なものとしてレナードジョーンズポテンシャルというものがあります。 状態温度を考えたとき原子は温度に依存して振動してますからそのときの速度和が温度になっているということであり作用する力を見積もり速度に換算し動きの”影響”を捉えることにより考えていくことです。 このポテンシャルのεが物質の沸点に一致するように作られています。 0.3εが融点ぐらいだといわれているようです。 ですから速度和によって物質の状態を捉えることができます。 ちなみにそれは動径分布というものを考えるともう少し明確に見えてくるのではないでしょうか? 結晶を形成しているかどうかなどを捕らえることができると思います。 また距離σはその距離が一番安定になるように作られています。

vore-k
質問者

お礼

回答していただきありがとうございました。 とりあえず、このポテンシャルについて詳しく調べてみようと思います。 また分からなくなったらここに質問しようと思っていますが、その時はまた教えてください。 ありがとうございました。

その他の回答 (2)

  • moleculer
  • ベストアンサー率100% (2/2)
回答No.2

自分も今年から分子動力学のシミュレーションをやってます。 プログラム自体はc言語を使用しています。 ですがあまり変わりはないと思いますのでお答えできればと思います。 はじめに重要なのがポテンシャル関数です。 これによって動き方がかなり変わってきます。 次にアルゴリズムです。アルゴリズムは計算方法がいろいろあり、ステップ数つまりは時間に依存したりするので最適なものを選ぶことが重要であると考えられます。 自分のプログラムの流れてきには 1.原子を配置(速度分布などの条件を与える) ↓ 2.ポテンシャル関数を用いた力の計算 ↓ 3.計算アルゴリズム ↓ 4.値の更新 2.3.4をステップ分(時間)繰り返し計算することでさまざまな物性値などを得ることができます かなり大雑把ではあったのですがこんな感じでやってます。 また何かあれば答えれる範囲で回答したいと思います。

vore-k
質問者

補足

早速の御返答ありがとうございました。 手元の本には初期速度を求める式が記載されてあったのですが、金属のシミュレーションにおいては融点以下と以上、つまり固体から液体に変化するときの区別はどのようにしてつければよいのでしょうか? また、初歩的な質問になりますが、「分子動力学シミュレーションとは分子の動きを追跡しその影響について調べる。」と、記載されているのですがその「影響」とは金属のシミュレーションにおいては何について求めることができるのでしょうか?ご存知でしたら教えてください。

  • stomachman
  • ベストアンサー率57% (1014/1775)
回答No.1

これって物理の質問じゃないように思いますが? シミュレーションのやりかたの問題ではないとして、また幾ら何でもFortranの文法書はお持ちと考えて良いでしょうか?Fortranのバージョン(Fortran90とか)は何でしょう? Basicに慣れてれば、だいたい一緒と言っても良いようなものですがね。 ●Cに慣れちゃった方にとって混乱するとすれば、Fortranのsubroutine, functionはcall by valueではなくcall by referenceである、という点でしょうか。 つまり、Fortranにはポインターという概念がなく、 A=2 CALL SUB(A,1) : SUBROUTINE SUB(X,Y) とやると、呼び出し側でメモリをひとつ確保して1を入れます。 Subroutineの中ではXはAとおなじアドレスを指し、Yは呼び出し側が確保した(名前のない)アドレスを指します。従って X.EQ.2, Y.EQ.1 になります。ここで X = X+10 Y = Y+10 RETURN END とやれば、 呼び出し側に戻ると A.EQ.11 しかしYに対応するアドレスは参照のしようがないのでその値(12)は取り出せない。 ●入出力のREAD, WRITE, FORMATは、はっきり言ってややこしいです。 Fortranはポインターがない分、数式をそのまま書く、という感覚で使えるのが楽で、Stomachmanは数値計算には時々使います。

vore-k
質問者

補足

早速のお返事ありがとうございました。 プログラムはCとfortranのみで、それすら満足に理解してない状況ですが、文法については手元にある本で勉強していこうとおもっています。 初歩的な質問になりますが、「分子動力学シミュレーションとは分子の動きを追跡しその影響について調べる。」と、記載されているのですがその「影響」とは金属のシミュレーションにおいては何について求めることができるのでしょうか?ご存知でしたら教えてください。

関連するQ&A