• ベストアンサー

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

学校の実験で、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

  • モンテカルロシミュレーションのプログラムについて

    モンテカルロシミュレーションを用いたタンパク質と低分子の結合実験を行えるプログラム(使用言語:FORTRAN77)を作ろうと考えています。 結合実験の目的はタンパク質上で低分子が結合しやすい部分をさがすことです。 タンパク質上のそれぞれの部分に乱数を振り分けて確率的な試行(低分子をタンパク質に結合させる操作)を何回も繰り返すことで結合しやすい部分を見つけ出そうと考えています。 しかしプログラミングを本格的に始めてまもないということもあり、プログラムを作るための糸口がいま一つ見つかりません。 (例えばタンパク質上の各部分での乱数のふりかた、パソコンによる操作でタンパク質と低分子を結合できるようなプログラムの書き方など) プログラム完成にいたるまでの手順、方法等についてのアドバイスを頂けませんか?

  • 分子動力学の歴史について

    分子動力学の歴史について調べていてAlderという方が始めてMDを行ったことはわかったのですが,その内容について詳しく書いてある本やサイトをご存知でしたら教えてください. 剛体球を用いて固液相転移を再現したことまではわかりました.

  • FORTRANによるシミュレーション

    今年の4月に卒業研究でシリコンの変形・破壊機構をFortranを用いた分子動力学法で研究するんです。研磨モデル・研削モデルの動画の作成の方法で行き詰まりです。1月8日にFORTRANの入門書(高校生のためのFORTRAN)勉強始めるところです。研磨モデル・研削モデルの動画の作成ができるまでにどの位時間がかかるのでしょうか?後、モデルの動画の作成で何か知っていることがあれば、お知らせ下さい。

  • 分子動力学計算ってどうやって勉強したら良いですか?

    分子動力学計算ってどうやって勉強したら良いですか? よく分子動力学計算、モンテカルロ計算、といった計算方法の名前を耳にします。 図書館で計算物理学系の書籍を全て借りて読んでみたのですが、 単純に運動方程式を解けば良い、みたいな方法論は書かれてあるのですが、 実際にどうやって境界条件を決めるかや、どうやってアルゴリズムが組むかといった 方法がどの本にも書かれていません。 恐らく、一度計算をしたことがある人に聞くのは手っ取り早いのではないかと思うのですが、 周りにそのような人はいません。 一体どうやってこういった計算の手法を勉強すれば良いのでしょうか?

  • 固体高分子

    学校の授業で燃料電池についての実験をすることになりました。 私は、発電に使う水素をとりだす実験をするのですが、実験をするにあたって、固体高分子を電解液とするといいということがわかりました。 が、固体高分子が何か(構造?)、固体高分子の効果的な使い方など、わからないことがたくさんあります。 固体高分子について詳しく、わかりやすくのっているサイトなどあれば、教えてください。

  • 簡単な動力計の原理・作り方を教えてください!

    大学の卒業研究でバイオディーゼルの実験をしようと考えているのですが、エンジンの出力を測定する動力計などが予算の都合で購入できないため自作の動力計を作成しようとしています。 簡単に作成できる動力計などがあれば原理・作製方法について教えてください。できるだけ詳しく教えていただけると助かります。 ちなみに、シャシダイナモ・エンジンダイナモどちらで測定するかはまだ未定です。そのため、どちらについてもアドバイスをいただけると嬉しいです。 ※実験はエコランカーのような車体にエンジンを積んで、動力計・タコメーターなどで測定した数値からバイオディーゼルについての性能を評価しようと考えています。また、実験に適した小型のディーゼルエンジンなどがあれば教えてください。 いろいろと質問してしまいましたが、よろしくお願いします。ご回答お待ちしております。 ※追記です。 本実験では上記のようにエコランカー(車体は以前研究室で使用したもので、エンジンは50ccのガソリンエンジンを積んでいた車体)を使用する予定です。 実験はバイオディーゼル燃料の実験のため、一応車体が無くてもエンジン本体だけで実験可能なのですが、振動の対策や軸合せなどが大変だと教授から聞き、実際に車体(エコランカー)に積んで実験を行いたいと思っております。 エコランカーは大体こんな感じです。http://www.asaka-koubou.co.jp/eco/ 正直この車体に積める小型のディーゼルエンジンがあるかあまり自信がありません… この実験の本来の目的はバイオディーゼル燃料(学内で精製したもの・自作のもの)の性能の違いを確かめるというものです。そのため車体などは正直二の次で、バイオディーゼル燃料を入れたエンジンの性能試験がメインになります。 質問内容が少し変わってしまいましたが、上記の内容の実験を行うにあたり、できるだけ安価で行える実験方法、また使う燃料の性能を評価するために必要な項目などがあれば教えてください。

  • 【高分子と低分子の関係】

    以前、同タイトルで質問しましたが、せっかくのお詳しいご回答の数々に私の理解力が追いつきませんでしたので、新たに質問し直させて頂きました。 私は義務教育は終えていますが、おそろしいことに化学の知識はゼロ以下です。 小学生にも分かるご回答が出来る方がいらっしゃいましたら、お願い致します。 最近、高分子化学の本を読みました。 上で述べました通り、私の化学の知識はとても浅いので、内容のほとんどを理解していないのですが、その本の一文に『原子間の握手でできた低分子が、分子間で握手してつながると高分子になる』とありましたので、『原子と原子で出来た分子=低分子』『分子と分子で出来た分子=高分子』なのかな?と思いました。 しかし、同書の別ページで『多くの分子は、分子量が100か200程度の低分子か、分子量1万以上の高分子かのどちらかである』と記載されていました。 これは、例え分子と分子で出来た分子であっても、100か200程度しか分子量が無ければ『低分子』になるということなのでしょうか? それともそもそも『原子と原子で出来た分子=低分子』『分子と分子で出来た分子=高分子』という理解の仕方が間違っているのでしょうか? 無い知恵を絞り考えてみましたが、どうにも分かりません。 小学生にも分かるご回答が出来る方がいらっしゃいましたら、ごくごく簡単にご説明お願い致します。

  • 実験レポート

    今、初めて実験レポートを作成しているところです。 作成している際、わからない点がありました。 レポートに実験の概要、手順を書くようにとなっているのですがこれは 実験指導書に書かれていることをそのまま書いていいのでしょうか?? 実験概要はなんとか自分で考えて作ることができますが実験の手順は考えるにも実験指導書に書かれていることをそのまましたので… アドバイスください。

  • 気体の分子量

    実験をしました 実験の目的:ライター用ガスとして用いられているブタン(C4H10)の分子量を気体の情報方程式を応用することによって実験的に求める。 仮説:分子量=58(ブタンの真の分子量) ということで 実験は数回行いました。 (1)水温13.5℃  水蒸気圧(hPa)15.4989  大気圧 762.2mmHg 体積 0.196リットル  質量1.55グラム  分子量 ?? (2)水温14℃  水蒸気圧(hPa)16.0054  大気圧 762.2mmHg 体積 0.152リットル  質量0.39グラム  分子量 ?? 2回分を記載しましたが 分子量はどちらも約58になるはずですよね?? 何回計算をしても100近い誤差がでてしまいます。 これは実験失敗してるのでしょうか?? 計算間違っているのでしょうか?? 回答お願いします(>_<)

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

    分子動力学シミュレーションでは、荷電粒子の間の相互作用としてローレンツ力が考慮されていないと思うのですが、考慮する必要はないのでしょうか?