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

A 回答 (3件)

この前にも少しお話しましたがポテンシャル関数というのが非常に重要なところです。


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

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

お礼日時:2000/12/15 19:20

自分も今年から分子動力学のシミュレーションをやってます。


プログラム自体はc言語を使用しています。
ですがあまり変わりはないと思いますのでお答えできればと思います。
はじめに重要なのがポテンシャル関数です。
これによって動き方がかなり変わってきます。
次にアルゴリズムです。アルゴリズムは計算方法がいろいろあり、ステップ数つまりは時間に依存したりするので最適なものを選ぶことが重要であると考えられます。
自分のプログラムの流れてきには
1.原子を配置(速度分布などの条件を与える)

2.ポテンシャル関数を用いた力の計算

3.計算アルゴリズム

4.値の更新
2.3.4をステップ分(時間)繰り返し計算することでさまざまな物性値などを得ることができます
かなり大雑把ではあったのですがこんな感じでやってます。
また何かあれば答えれる範囲で回答したいと思います。

この回答への補足

早速の御返答ありがとうございました。

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

補足日時:2000/12/14 12:01
    • good
    • 0

これって物理の質問じゃないように思いますが?



シミュレーションのやりかたの問題ではないとして、また幾ら何でも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は数値計算には時々使います。

この回答への補足

早速のお返事ありがとうございました。
プログラムはCとfortranのみで、それすら満足に理解してない状況ですが、文法については手元にある本で勉強していこうとおもっています。

初歩的な質問になりますが、「分子動力学シミュレーションとは分子の動きを追跡しその影響について調べる。」と、記載されているのですがその「影響」とは金属のシミュレーションにおいては何について求めることができるのでしょうか?ご存知でしたら教えてください。

補足日時:2000/12/14 11:50
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q分子動力学における応力の定義について

現在分子動力学について勉強しており、下記URLにあるパワーポイントを見つけました。
http://www.fml.t.u-tokyo.ac.jp/lecture/lecture_6/lecture_MD.pdf
その中の12ページに応力の定義が紹介されており、
σ = 1 / V * {"(K + Φ)をひずみテンソルで微分したもの"}  
分かりづらくてすみません、画像を添付したのでそちらをご覧ください。
Vは体積、Kは運動エネルギー、Φはポテンシャルエネルギーです。
この式について、なぜ体積で力を除しているのかが分かりません。
また、詳しく書かれている本などがありましたら教えて頂きたいです。
よろしくお願いします。

Aベストアンサー

>なぜ体積で力を除しているのかが分かりません。
力を除しているわけではありません。総エネルギーをひずみテンソルで微分したもので次元そのものが違います。

この式をわかりやすく説明します。
ひずみを与えた時のエネルギーの変化=∫応力×面積 d(変形量)
となります。
変形量=ひずみテンソル×厚さ
ですので
ひずみを与えた時のエネルギーの変化=∫応力×面積×厚さ d(ひずみテンソル)
=∫応力×体積 d(ひずみテンソル)

両辺をひずみテンソルで微分すると
応力×体積=d(エネルギー)/d(ひずみテンソル)
となります。

Q気体分子運動論 2原子分子 3原子分子 なぜ振動は

こんにちは、気体の分子運動論について確認させてください。また質問をさせてください。どうぞ宜しくお願いします。

気体の運動エネルギーを考える際、
単原子分子の場合、内部エネルギーの変化 ΔU = 3/2 nRΔT
となりますが、この3の意味は単原子分子のとる自由度の数だと教わりました。
そしてその自由度とは、XYZ方向への並進運動とのことですね。

二原子分子の場合、これら3自由度の並進運動に加え、回転の自由度を加えるとのことでした。
回転は、二原子分子の線分をたとえば、z軸にそろえて載せた場合、X軸を回転軸とする回転、Y軸を回転軸とする回転の二つが加えられる。したがって、合計5の自由度があり、ΔU = 5/2 nRΔT
となる。

Q1: もうひとつZ軸を軸とした回転(つまり鉛筆を両方の掌ではさんで回すような回転)については、他の二回転に比べて運動エネルギーが小さいため考えない、と理解しているのですが、いかがでしょうか。

Q2:並進、回転運動の他にも、自由度として振動が考えられますが、なぜこれは加えないのでしょうか。

また、三原子分子の場合は、二通りあり、直線分子の場合、非直線分子の場合に分けられると知りました。ただ、三原子分子の場合の内部自由エネルギー変化についての式が与えられておらず、考えてみました。
Q3: 直線分子の場合、二原子分子と同じ考えで、並進、回転運動の自由度の合計は5となりそうですが、どうでしょうか。ただ、ここでも振動をどう扱うのか分かりません。振動の自由同は、三原子直線型分子の場合、4つあるようですが、これらの振動は考慮しなくて良いのでしょうか。

Q4: 非直線分子の場合、回転の自由度は一つ増えて合計3になるそうですが、これは、先程、二原子分子の際に考慮に入れなかった回転、Z軸を回転軸とする回転、が無視できなくなった、ということでしょうか。すると、ΔU = 6/2 nRΔT となりそうですが、いかがでしょうか。

また、しつこいようですみませんが、振動はどうなのでしょうか。非直線分子の場合、振動の自由度は3あるそうですが、このことは内部エネルギー変化を考える場合に考慮に入れる必要はないのでしょうか?

以上となるのですが、私の理解があっているかどうかも含め、是非質問に回答頂ければ幸いです。どうか宜しくお願いします。

分かり難い記述があるようでしたら、訂正いたしますゆえ、どうか重ねて宜しくお願いします。

こんにちは、気体の分子運動論について確認させてください。また質問をさせてください。どうぞ宜しくお願いします。

気体の運動エネルギーを考える際、
単原子分子の場合、内部エネルギーの変化 ΔU = 3/2 nRΔT
となりますが、この3の意味は単原子分子のとる自由度の数だと教わりました。
そしてその自由度とは、XYZ方向への並進運動とのことですね。

二原子分子の場合、これら3自由度の並進運動に加え、回転の自由度を加えるとのことでした。
回転は、二原子分子の線分をたとえば、z軸にそろえて載せた場合、X軸...続きを読む

Aベストアンサー

>振動は含めないと言うことは、考慮すべきは並進運動と回転運動ですが、並進運動
>は常にXYZの三つ、回転については直線型分子だと2、屈曲した分子ならば3と、「常
>に」考えてもよいでしょうか。
>
>『Q4:これも、ご推察のとおりです。3個以上の原子からなる"剛体"としての
>分子の場合、古典物理学的には自由度は最大6なのですね。』
>ということは、この考えは正しいかと存じますが、いかがでしょうか。
>例えば、4原子分子の場合でも、直線ならば回転は2、屈曲ならば3でしょうか。
>
>複雑な形をした分子、例えば、人間のように四肢があるような形をした分子の場合、
>右手だけの回転、左足だけの回転、など複雑な回転機構が考えられそうですが、剛
>体と考えるならば、このような回転の自由度は考慮しなくてよさそうですが、いか
>がでしょうか。

 はい、そのとおりです。
 3原子分子以上の多原子分子でも、直線状の分子なら、回転の自由度は2、それ以外の形状なら回転の自由度は3となります。どんなに複雑な形状を持つ分子の場合でも、剛体なら、回転の自由度は2または3となります。これは、次のように説明されます。
 多数の粒子が、互いの相対的な位置関係を崩さないで、まとまり(粒子系)を作っているとします。つまり"剛体"を、極く小さな構成粒子の集団と見なしてしまおうということですね。
 任意の座標系を用意して、粒子系の全ての粒子の座標を確定するには、何種類の情報が必要なのかを数え上げたのが、自由度と呼ばれる数値です。
 そのうち、特に、粒子系の中の任意の1つ(Pとしましょう)に固定した座標系(Pは座標の原点に在るものとします)を考え、物体系が任意の回転をしたとき、他のすべての粒子(Qi)の位置を表そうとすれば一体いくつの情報量が有れば済むのかを数え上げたものを、回転の自由度と呼ぶのです。剛体の回転を考える時には、粒子間の相対的な位置が確定しています(互いの相対的な距離は変わりません)から、必要な情報は、Qiが、Pから見て、x軸周りにθ、y軸周りにφ、z軸周りにδ回転した、という情報だけです。
 たとえば、地球から見ると、各星座は一斉に同じ方向に日周・年周運動しているように見えます。これは、地球と星座を作っている恒星とが、相対的な位置関係を保ったままになっているので、或る天体(地球)から見て、任意の恒星(ペテルギウス)の回転さえ知ることができれば、他の任意の恒星位置が確定されるのと同じことです。
 つまり、θ,φ,δの3つの情報を知ることができれば、全てのQiの、Pに対する相対的な位置を確定できるわけです。このことを、回転の自由度が3であるというのです。
 ただし、物質系の粒子の位置関係によっては、θ,φ,δのどれかが何°であっても位置関係確定には影響しないこともあります。たとえば、x軸上に全ての粒子が配置されているとき、x軸周りの回転角度θがいくつかという情報は価値がありません。無意味ですね。このような場合は、回転の自由度がθの分だけ、1つ減ることになります。しかし、多粒子系なら、2方向の軸周りの回転情報が同時に無意味になることはありえません(x軸上とy軸上の2つの軸方向にすべての粒子が並ぶというようなことはあり得ません)から、剛体の回転の自由度は最低でも2、最大でも3なのです。

>振動は含めないと言うことは、考慮すべきは並進運動と回転運動ですが、並進運動
>は常にXYZの三つ、回転については直線型分子だと2、屈曲した分子ならば3と、「常
>に」考えてもよいでしょうか。
>
>『Q4:これも、ご推察のとおりです。3個以上の原子からなる"剛体"としての
>分子の場合、古典物理学的には自由度は最大6なのですね。』
>ということは、この考えは正しいかと存じますが、いかがでしょうか。
>例えば、4原子分子の場合でも、直線ならば回転は2、屈曲ならば3でしょうか。
>
>複雑な形をした分...続きを読む

Q分子動力学 NVE法について

古典力学初心者です。分子動力学についての質問なのですが、NVE(もしくはNEV)アンサンブルでverlet法を使って原子や分子の動きを追うとき、計算間隔を狭くすれば、近似的に内部エネルギーは一定となりますが、そうでない場合一定とならないのに、なぜこれをNEVアンサンブルと呼んでいるんですか?

Aベストアンサー

分子動力学というより、熱学(統計力学)的な解説になりますので、ご了承ください。

計算間隔を狭くすると、単分子群もしくは単原子群は、相互に運動量を交換しますよね。m1v1+m2v2=m1'v1'+m2'v2'。この事によって、エネルギー等分配の法則が成立し、熱平衡状態になる。よって、内部エネルギーは一定になる。

ところが、計算間隔を大きくしてしまうと、原子・原子同士や分子・分子同士は衝突しませんから、運動量を交換しなくなります。

アンサンブル法とは、計算を行いたい系(格子でもかまわない)を極小化することによって、誤差を最小に抑えたい時に用いる計算法の総称なのです。

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

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

剛体球を用いて固液相転移を再現したことまではわかりました.

Aベストアンサー

http://stat.fm.nitech.ac.jp/~isobe/alder_interview.pdf

ここに参考文献もあるようです

Q単原子分子で比熱比γが5/3の気体Aと2原子分子で

単原子分子で比熱比γが5/3の気体Aと2原子分子で比熱比が7/5の気体Bがある。
最初、圧力、体積、温度が等しい状態から断熱圧縮で体積を最初の体積の1/2にした。
このときAとBの気体について、気体がした仕事の比、最後の状態の圧力の比、温度の比を求めよ。

仕事の比は1.10、圧力の比は1.20、温度の比は1.20になるそうなんですが、わかりません。

計算の過程を教えてください。
おねがいします。

Aベストアンサー

断熱変化では
 P・V^γ=一定
という関係が成り立っています。

出発時の圧力をP,体積をV,絶対温度をTとします。
体積が(V/2)になった時の圧力をP',絶対温度をT'とします。

P・V^γ=P'・(V/2)^γ
ですから
P'/P=((V/2)^γ)/(V^γ)=2^γ
∴求める圧力比は 2^(γ-γ')=2^(5/3-7/5)=1.20

状態方程式が成り立つとして
PV=nRT
P'・(V/2)=nRT'
P'=P・2^γ でしたから
nRT'=(P・2^γ)・(V/2)=PV・2^(γ-1)=2^(γ-1)・nRT
∴T'/T=2^(γ-1)
∴求める絶対温度の比は 2^((γ-1)-(γ'-1))=2^(γ-γ')=1.20

断熱変化の場合、仕事は、p・dVから計算するのではなく、熱力学第1法則から求めた方がスッキリします。

断熱変化なので、外部から出入りした熱量Q=0ですから、ΔU-W=Q
気体がされた仕事Wは、 W=ΔU と評価できます。
気体がした仕事なら -Wですが、今問題にしている仕事の比率では、した仕事で評価しても、された仕事で評価しても同じ結果になりますから、どちらで計算しても構わないはずです。

ΔU=nCv・ΔT
です。
T'/T=2^(γ-1) でしたから ΔT=T'-T=(2^(γ-1)-1)・T です。
一方、 Cp-Cv=R , γ=Cp/Cv でしたから
Cv=R(γ-1)なので Aでは Cv=3/2, Bでは Cv=5/2 であることがわかります。

∴求める仕事の比は
 {n・Cv・(2^(γ-1)-1)T}/{n・Cv'・(2^(γ'-1)-1)T}
= {(γ-1)・(2^(γ-1)-1)}/{(γ'-1)・(2^(γ'-1)-1)}
=1.10

断熱変化では
 P・V^γ=一定
という関係が成り立っています。

出発時の圧力をP,体積をV,絶対温度をTとします。
体積が(V/2)になった時の圧力をP',絶対温度をT'とします。

P・V^γ=P'・(V/2)^γ
ですから
P'/P=((V/2)^γ)/(V^γ)=2^γ
∴求める圧力比は 2^(γ-γ')=2^(5/3-7/5)=1.20

状態方程式が成り立つとして
PV=nRT
P'・(V/2)=nRT'
P'=P・2^γ でしたから
nRT'=(P・2^γ)・(V/2)=PV・2^(γ-1)=2^(γ-1)・nRT
∴T'/T=2^(γ-1)
∴求める絶対温度の比は 2^((γ-1)-(γ'...続きを読む


人気Q&Aランキング

おすすめ情報