分子のおもちゃ箱 bbs 06 No.601...700 ( 2003.10.24 - 2003.12.16 )
 ( prev | index | next )

●700 バグです mike- 2003/12/16 17:44 -
Noriさん、こんばんは。

>ところで話は変わりますが、初期値の設定で、
>setInitialPosition()とsetInitialCondetion()の二つがありますが、
>なぜ二つあるのでしょう?
>fbx[i] = 0.0;
>fby[i] = 0.0;
>があるかないかとvAjustment()を呼び出すかの違いですが・・・
すみません。これは、No.19のテンプレートを使い編集したときの消し忘れです。setInitialPosition()が使われていて、setInitialCondetion()はどこからも呼ばれておらず、消しても影響ありません。
また、バグを見つけられて、ありがとうございます。
後ほど、バグフィックス版をアップロードします。

●699 ありがとうございます Nori- 2003/12/16 00:27 -
助言を参考にして拡大してみます。
そんなに昔のパソコンを使っているわけじゃないんですが、今のままだと粒子数は200個くらいが限度のようですね(笑)
20回計算してから表示するところを40回くらいにしてみても同じでした。
粒子登録法というのも試してみます。

ところで話は変わりますが、初期値の設定で、
setInitialPosition()とsetInitialCondetion()の二つがありますが、
なぜ二つあるのでしょう?
fbx[i] = 0.0;
fby[i] = 0.0;
があるかないかとvAjustment()を呼び出すかの違いですが・・・

●698 粒子数と計算時間 mike- 2003/12/15 20:12 -
Noriさん、こんばんは。

>それと同時に、領域の拡大も行ないたいとおもっているのですが・・・
>例えば今の粒子の大きさのまま領域を拡大するにはどうすればよいでしょう?
>Xmax、ymaxを2倍にし、面積が4倍になったので、粒子数4倍にし、、setInitialPosotion()の11で割っているところを22にすると、領域いっぱいに広がったものの、動きがものすごく遅いです。
粒子数を増やさなければ、領域を拡大しても、それほど遅くならないと思います。

>粒子数が増えたため、計算に時間がかかるのでしょうか?
その通りです。粒子数Nが4倍になると、相互作用の計算はN^2に比例して増加しますので、約16倍の時間がかかることになります。
>CPUが限界なんですかね(笑)
粒子登録法という手法を用いると計算量はN^2ではなく、Nにほぼ比例してしか増加しませんので、いくぶん粒子数を増やしてもだいじょうぶです。アプレットNo.306はこの粒子登録法を採用したもので、400個の粒子でも動いて見えます。(ただ、ポテンシャルのカットオフという近似を用いる必要があり、正確さが損なわれます。)
粒子登録法については「初心者のための分子動力学法」p.88をご覧ください。

●697 拡大 Nori- 2003/12/15 19:43 -
ご返答ありがとうございます。
スケールを大きくすると見やすくなりました。
それと同時に、領域の拡大も行ないたいとおもっているのですが・・・
例えば今の粒子の大きさのまま領域を拡大するにはどうすればよいでしょう?
Xmax、ymaxを2倍にし、面積が4倍になったので、粒子数4倍にし、、setInitialPosotion()の11で割っているところを22にすると、領域いっぱいに広がったものの、動きがものすごく遅いです。
粒子数が増えたため、計算に時間がかかるのでしょうか?
CPUが限界なんですかね(笑)

●696 暴走 mike- 2003/12/15 19:16 -
Noriさん、こんばんは。

>水素のMorseポテンシャルなんですが、物理吸着のみを扱うとはどういうことでしょうか?
H2の場合、稀ガスと異なり、化学吸着する場合があるようです。H2は金属表面で解離し、Me-Hのような化学結合を形成することがあります。今回のポテンシャルではこのような解離は扱えませんので、物理吸着(ファンデルワールス力)のみ扱うことになります。
>近距離での斥力が発生しないということでしょうか?
近距離の斥力は、Morseポテンシャルに組み込まれていますので、発生します。

>あと水素の暴走ですが、これには悩まされました(笑)
>もう少し大きく表示させようといろいろアプレットの設定を変えると、暴走してしまい、結局元に戻すという繰り返しで・・・
>時間刻みを小さくするとは、単に変数dtを小さく設定すればいいのでしょうか?
その通りです。
H2はNeの質量の1/10程度ですので、その平方根比で小さくすればいいと思います。
dt=1.0*1.0e-15;程度ではないでしょうか。

>また、枠の大きさをデスクトップくらいにしようと、xmax=40.0*sgm
>ymax=40.0*sgm
>と設定すると、動きが遅くなりどうもうまく拡大できません。
>粒子数を増やしてもあまり動きは変わりません。
>拡大するいい方法はないでしょうか?
表示のみを大きくするのであれば
dispScale = 10.0/sgm; を 20.0/sgm; とかにしてみて下さい。
あるいは scale = 1.0; のところを変えてみてください。
(アプレットNo.306のscaleのスクロールバーで拡大するイメージになります。)

●695 リンク追加 mike- 2003/12/15 18:49 -
リンクに「アインシュタインの相対性理論 TACラボ」を追加しました。
タクさんはアニメ、図、数式を用いて(または、数式なしで)、特殊相対性理論をわかりやすく解説されています。

●694 ありがとうございます Nori- 2003/12/15 18:49 -
No3のアプレットにNo11の吸着表面を追加し、また21種類目の原子として水素を追加して、
だんだん僕のイメージに近いシミュレーションができるようになってきました。
それと同時に分子動力学についての理解も深まってまいりました。
本当にmikeさんの御指導のおかげです。 どうもありがとうございます。

前回の質問ですが、細かいご返答どうもありがとうございます。
水素のMorseポテンシャルなんですが、物理吸着のみを扱うとはどういうことでしょうか?
近距離での斥力が発生しないということでしょうか?
r0とσの単位換算の質問にかんしては、僕の見間違いでした。
申し訳ございません。

あと水素の暴走ですが、これには悩まされました(笑)
もう少し大きく表示させようといろいろアプレットの設定を変えると、暴走してしまい、結局元に戻すという繰り返しで・・・
時間刻みを小さくするとは、単に変数dtを小さく設定すればいいのでしょうか?
また、枠の大きさをデスクトップくらいにしようと、xmax=40.0*sgm
ymax=40.0*sgm
と設定すると、動きが遅くなりどうもうまく拡大できません。
粒子数を増やしてもあまり動きは変わりません。
拡大するいい方法はないでしょうか?

●693 アプレット追加 mike- 2003/12/14 18:12 -
アプレット追加しました。
(388) template - homo Morse 2D 1種類のモース原子MDテンプレート

●692 アプレット2本追加 mike- 2003/12/13 06:45 -
アプレット2本追加しました。
(386) lattice gas model 格子ガス(HPPモデル)
(387) density LGM 密度流(格子ガスモデル)

●691 H2の分子間ポテンシャル mike- 2003/12/13 06:10 -
Noriさん、こんにちは。

>もうかなりの夜更けですが、がんばっております。
夜中まで、ごくろうさまです。

>mikeさんのアドバイスを参考に設定しようと単位変換をしているのですが、DについてNo15とNo19のアルゴンの値の比をとって、No19のH2の値を用いると、0.00279*EEとなりました。
この値は妥当でしょうか?
>他の原子に比べ、かなり小さめですが・・・
Dはポテンシャルの谷の深さでエネルギーの単位(J)ですが、MorseではeV単位(1.6e-19)、L-JではkB単位(1.38e-23)の単位で表しています。したがって33.3*kB/eV=33.3*1.38e-19/1.6e-23=0.0029となります。
この値はファンデルワールス力の値として、稀ガスのNeと同程度であり、妥当だと思います。
(したがって、このポテンシャルでは物理吸着のみを扱うことになります。)

>Aはmikeさんのアドバイス通り、Aは、NeのA=1.65を用いたいと思います。
一度、MorseとLJのポテンシャルをグラフにして比べてみるといいかもしれません。

>そしてr0=1.16*σということなんですが、この1.16という数字はどういった意味があるのでしょうか?
Morseポテンシャルの谷の位置はr=r0にありますが、L-Jでr=σの位置はポテンシャルが0となる位置です。L-Jでポテンシャルの谷の位置はおよそr=1.16*σの位置にきます。mikesRoomの「(経験的)分子動力学法とは」のところをご覧ください。

>またMorseポテンシャルの方では○/AAで、L-jポテンシャルの方では、△*AAですよね?
>ここでは単位は気にせずに、○=1.16*△とすればいいのでしょうか?
「Morseポテンシャルの方では○/AA」はAの欄ではないでしょうか?r0(A)とsigma(A)は共に△*AAですね。

なお、H2の場合、質量が小さいので、分子の速度が大きくなり、時間刻みdtが現状では1回の計算で長い距離を進むため、粒子同士がが急に接近し、大きな力を受けて暴走する可能性があります。そのため、時間刻みを小さくする必要があると思います。

●690 こんばんわ Nori- 2003/12/13 03:47 -
ありがとうございます。
もうかなりの夜更けですが、がんばっております。
今、水素のMorseポテンシャルをNo3のアプレットに追加するために、D、A、r0を設定しているところです。
mikeさんのアドバイスを参考に設定しようと単位変換をしているのですが、DについてNo15とNo19のアルゴンの値の比をとって、No19のH2の値を用いると、0.00279*EEとなりました。
この値は妥当でしょうか?
他の原子に比べ、かなり小さめですが・・・
Aはmikeさんのアドバイス通り、Aは、NeのA=1.65を用いたいと思います。
そしてr0=1.16*σということなんですが、この1.16という数字はどういった意味があるのでしょうか?
またMorseポテンシャルの方では○/AAで、L-jポテンシャルの方では、△*AAですよね? ここでは単位は気にせずに、○=1.16*△とすればいいのでしょうか?

●689 速度スケーリング mike- 2003/12/12 20:03 -
Noriさん、こんばんは。

>Tscaleではどういったアルゴリズムで温度調整しているのでしょうか?
vAjustment()をもちいて、速度スケーリング(後述)という方法で温度制御を行っています。 >なぜWallcontではなかなか落ち着かないのに、Tscaleに変えると温度が急激に下がっていくのでしょう?
速度スケーリングは1回の操作で温度を設定値にしてしまいます。

>またvAjustment()というメソッドがありますが、このメソッドはどういった役割をしているのでしょうか?
>温度によって速度調整をしているようですが、このメソッドの持つ意味を教えていただけないでしょうか?
vAjustment()は速度スケーリングのメソッドです。「初心者のための分子動力学法」のp.22あります。
まず現在の系の温度tmp=temperature()と、設定温度contTempからr = Math.sqrt(contTemp/tmp)から平均速度(kT=(1/2)mv^2)の比を計算し、その比をかけることで、系の温度を強制的に設定温度にしてしまいます。この方法は個々の粒子を見たときには運動方程式に従っているわけではないので、いくぶん不自然ですね。

●688 Wallcont Nori- 2003/12/12 18:18 -
ご返答ありがとうございます。
Wallcontではなかなか温度が一定になりませんね。
説明文に凝集エネルギーを開放するため超高温になるとありますが、
それに比べTscaleではすぐに温度が300K付近に落ち着きます。
こういうところがすごくおもしろいと思います。
Tscaleではどういったアルゴリズムで温度調整しているのでしょうか?
なぜWallcontではなかなか落ち着かないのに、Tscaleに変えると温度が急激に下がっていくのでしょう?

またvAjustment()というメソッドがありますが、このメソッドはどういった役割をしているのでしょうか?
温度によって速度調整をしているようですが、このメソッドの持つ意味を教えていただけないでしょうか?

●687 sleeptimeについて mike- 2003/12/12 17:49 -
Noriさん、こんばんは。

>このアプレットで、tempModeとして「Wallcont」や、「Tscale」などと選ぶところがありますが、これはどういう意味なのでしょうか。
>いろいろ変えてみると、温度が一定になったりするので、アンサンブルを決定するようなものなのかと思ったのですが・・・
使い方の説明もなしにコントロールを付けてしまって、すみません。ご指摘のように「adiabatic」は断熱条件(NVE)、「Wallcont」と「Tscale」はNVTですが、「Wallcont」はNo.11のアプレットと同じように、壁で跳ね返るときの反発係数を調節して温度制御し、Tscaleは分子の速度を直接スケーリングして温度を制御します。

>また基本的な質問なんですが、sleeptimeという変数がありますが、この変数はどういう役割をするものでしょうか?
sleeptimeはrun()の中で、
Thread.sleep(sleepTime);
スレッドthを一時停止するものでms単位で停止します。これによって実行速度を調整することができます。また、アプレット外に制御が渡るタイミングがありますので、アプレット以外の部分を操作したときの応答性に関係します。あまりsleeptimeが小さいと、応答性が落ちると思います。

●686 No3のアプレット Nori- 2003/12/12 16:58 -
mikeさんこんにちは
今No3のアプレットを最初から見ながらがんばって理解しているところです。
このアプレットで、tempModeとして「Wallcont」や、「Tscale」などと選ぶところがありますが、これはどういう意味なのでしょうか。
いろいろ変えてみると、温度が一定になったりするので、アンサンブルを決定するようなものなのかと思ったのですが・・・

また基本的な質問なんですが、sleeptimeという変数がありますが、この変数はどういう役割をするものでしょうか?
これもいろいろ変えてみると、動きが早くなったりするので、時間の進み具合などを調整する変数でしょうか?

●685 Re No19のアプレット mike- 2003/12/11 20:25 -
Noriさん、こんばんは。

>このアプレットでは粒子の種類を選べますが、一度に表示できるのは1種類だけだと思われますので、平均をとる必要はなく、選ばれた粒子のDやAなどを用いればいいのではないかと思うのですが・・・
ご指摘の通りです。 ただ、このアプレットはMorseポテンシャルのアプレットのテンプレートにするつもりで書いたため、2種類以上の粒子の種類も考慮して、この形を採りました。実際、今晩アップしたNo.3のアプレットではNo.19をテンプレートとし、2種類の粒子を使っています。

●684 No19のアプレット Nori- 2003/12/11 20:02 -
こんばんわ
ではNo19のMorseポテンシャルを用いたアプレットでも
MorseD[i][j] = Math.sqrt(Morse[i][2]*Morse[j][2])
と平均をとっていますよね。
このアプレットでは粒子の種類を選べますが、一度に表示できるのは1種類だけだと思われますので、平均をとる必要はなく、選ばれた粒子のDやAなどを用いればいいのではないかと思うのですが・・・

ポテンシャルというのはどうもイメージがわきにくく、相互作用を決定する関数という感じにしか理解できてませんので、
もし見当違いの質問でしたら申し訳ございません。

●683 Re 水素のMorseポテンシャル mike- 2003/12/11 18:56 -
>では水素-鉛間ではMorseポテンシャルを用いてみようと思い、水素の結合エネルギーDや原子間距離r0がまだ見つからずにいます。
>もしご存知でしたら教えていただけないでしょうか。
私も探しているのですが、なかなか見つかりませんね。
代案として、H2分子を1つの粒子として考えたLJのεとσを用い、D=ε(もちろん、単位をそろえる必要があります)、r0=1.16*σとおけますので、AはLJとMorseのフィッチングから求めるか、形の近い、NeのA=1.65を用いれば近似としては使えると思います。

>ところで、No3のアプレットを見てて思ったのですが、
>f=force(rij)
>でforce()で粒子間の力を計算してますが、ここでは同じ種類の粒子から受ける力と、違う種類の粒子からの力を分けて考えなくてもいいのでしょうか?
>例えば、f=force1(rij)+force2(rij)のように分けて計算しなくてはならないとイメージしていたのですが・・・
>もしよろしければ詳しく教えていただけないでしょうか?
No.11の中ではforceCalc()の中では
f = force(rij);
として力を計算するメソッドを呼んでいますが、No.3のアプレットではforceCalc()の中では
f = force(rij,i,j);
としてi,jを指定し、force(rij,i,j)の中で大域変数kind[]を参照して原子の種類を区別して使っています。

●682 バグフィックス mike- 2003/12/11 18:55 -
バグフィックスしました。
(03) binary alloy - Morse potential 2種類の原子の混合(合金) ver 0.0.3

●681 水素のMorseポテンシャル Nori- 2003/12/11 18:07 -
ありがとうございます。
では水素-鉛間ではMorseポテンシャルを用いてみようと思い、水素の結合エネルギーDや原子間距離r0がまだ見つからずにいます。
もしご存知でしたら教えていただけないでしょうか。
またそのような一覧があるサイトなどご存知でしたら教えていただきたく思います。

ところで、No3のアプレットを見てて思ったのですが、
f=force(rij)
でforce()で粒子間の力を計算してますが、ここでは同じ種類の粒子から受ける力と、違う種類の粒子からの力を分けて考えなくてもいいのでしょうか?

例えば、f=force1(rij)+force2(rij)のように分けて計算しなくてはならないとイメージしていたのですが・・・

もしよろしければ詳しく教えていただけないでしょうか?

●680 書き込み、ありがとうございます mike- 2003/12/11 17:13 -
みなさま、こんにちは。書き込み、ありがとうございます。

>アナログさん
>...ということはそのポテンシャルの全エネルギーを表す式も当然あるわけですよね?
>mikeさんはその式をご存知ですか?
オリジナルの文献はDaw先生のホームページ(下記URL)に公開されていて、直接ダウンロードできますので、読まれることをお勧めします。
http://hubcap.clemson.edu/~daw/daw.somepubs.html

>Noriさん
>鉛間はMorseポテンシャルを用いるとして、では水素、鉛間の相互作用はどのように表現すればよいのでしょう?
Pb-Hの結合エネルギーと原子間距離を与える必要がありますが、該当する異原子間のポテンシャルが不明のとき、経験的には、結合エネルギの幾何平均sqrt(D1*D2)、原子間距離の代数平均(r01*r02)/2を使うのが良いとされています。

>No3のアプレットを拝見させていただきましたが、あのアプレットでは二種類の粒子が衝突しあってるため、表現可能なのだとは思いますが・・・
>まだソースまではじっくり見てないのですが、あのアプレットでは2種類の粒子間の相互作用をどのように表現されているのでしょうか?
No.3のアプレットを見直しましたら、結合エネルギと原子間距離の両方で代数平均を使っていました。No.19の方をご覧ください。No.3のアプレットは、No.19をベースに書き換えたいと思います。
この機会にバグを見つけることができました。ありがとうございます。

●679 ありがとうございます Nori- 2003/12/11 11:23 -
アドバイスありがとうございます。
おっしゃるとおり、MorseやL-Jなどのポテンシャルと用いてみたいて自分なりにやってみようと思います。

それで、水素間の相互作用はMorse、もしくはL-Jポテンシャル、
鉛間はMorseポテンシャルを用いるとして、では水素、鉛間の相互作用はどのように表現すればよいのでしょう?

No3のアプレットを拝見させていただきましたが、あのアプレットでは二種類の粒子が衝突しあってるため、表現可能なのだとは思いますが・・・
まだソースまではじっくり見てないのですが、あのアプレットでは2種類の粒子間の相互作用をどのように表現されているのでしょうか?

●678 ありがとうございます アナログ- 2003/12/11 00:40 -
なるほど。でも僕もなんとなくmikeさんと同じように解釈していました。Daw and BaskesとFoilesのポテンシャルがあるというのも何かの本を読んだときちょこっと書いてありました。ということはそのポテンシャルの全エネルギーを表す式も当然あるわけですよね?mikeさんはその式をご存知ですか?

●677 EAMって mike- 2003/12/10 19:03 -
アナログさん、こんにちは。お久しぶりです。

>僕はというと、まぁ、それなりにコツコツとやっています(^^;
私も少しづつアプレットを作っています。でも、最近、アプレットのアイデアが枯渇ぎみです。...まあ、あきらめずに、続けていこうと思っています。

>ところで、EAMを勉強していていまだにはっきりしないことがあります。根本的なことなんですが、「EAM」というのはあくまでもMDで原子間力を求めたりするための方法・手段なのですか?それとも「EAMポテンシャル」というポテンシャルがあるのですか?
>僕は前者だと思って、それにFSだのジョンソンだのというポテンシャルを用いるものだと考えていました。実際のところはどうなのでしょうか?
私も、まだ全貌が見えたわけではありません。調べた範囲では、アナログさんと同じで前者だと思っています。狭義にはオリジナルのDaw and Baskes(Phys. Rev B vol.29 p.6443 (1984) )とFoiles(Phys. Rev B vol.32 p.7685 (1985) )のポテンシャルを指すようです。広義にはペアポテンシャルV(r)と電子密度関数f(r)、埋め込み関数F(ρ)のスキームだと理解しています。この考え方ではFSポテンシャルもEAMの一種だと言えると思います。ただ、このような分類に意味があるかどうかはわかりません。

●676 お久しぶりです アナログ- 2003/12/10 11:10 -
mikeさん、お久しぶりです。順調にアプレット増えてますね。ビックリです。僕はというと、まぁ、それなりにコツコツとやっています(^^;
しかしなにせ頭が悪いものでなかなか順調にはいかず…って感じです。

ところで、EAMを勉強していていまだにはっきりしないことがあります。根本的なことなんですが、「EAM」というのはあくまでもMDで原子間力を求めたりするための方法・手段なのですか?それとも「EAMポテンシャル」というポテンシャルがあるのですか?
僕は前者だと思って、それにFSだのジョンソンだのというポテンシャルを用いるものだと考えていました。実際のところはどうなのでしょうか?

●675 バージョンアップ mike- 2003/12/09 18:09 -
バージョンアップ(画面のチラツキと力の計算の改良)しました。
(28) Maxwell's demon マックスウェルの悪魔 ver 0.0.2

●674 Re ポテンシャル mike- 2003/12/09 18:05 -
Noriさん、こんばんは。

>No3の分子混合のアプレットではMorseポテンシャルを用いているのでしょうか?
はい。そうです。MorseポテンシャルのテンプレートはNo.19で、こちらを見ていただく方がわかりやすいかも知れません。

>私はこの分子の混合のアプレットと吸着のアプレットの組み合わせたようなものをつくりたいと考えています。
>鉛などの重金属が吸着している表面に、例えば水素分子などを吸着させることによって重金属が除去できるような・・・
>そのようなシミュレーションではMorseポテンシャルでも可能でしょうか?
興味深い内容ですね。H2は表面で解離する場合があり、この場合は難しそうですが、解離しないとして、水素分子を1つの粒子としてあつかうときは、Morseポテンシャルもしくはレナード・ジョーンズ(LJ)ポテンシャルでシミュレーションできると思います。(LJポテンシャルはNo.15にテンプレートがあります)
MDではポテンシャルの変更はコードの一部変更ですみますので、後により有効なポテンシャルが見つかるまでは、簡単なポテンシャルを用いて検討していけばいいのではないでしょうか。

●673 ポテンシャル Nori- 2003/12/09 17:19 -
mikeさんこんばんわ

御指導ありがとうございます。
他のアプレットもいろいろ拝見させていただきました。
No3の分子混合のアプレットではMorseポテンシャルを用いているのでしょうか?
私はこの分子の混合のアプレットと吸着のアプレットの組み合わせたようなものをつくりたいと考えています。

鉛などの重金属が吸着している表面に、例えば水素分子などを吸着させることによって重金属が除去できるような・・・
そのようなシミュレーションではMorseポテンシャルでも可能でしょうか?

なかなかイメージ通りのものを作るのは難しいものですね。

●672 ポテンシャルについて mike- 2003/12/08 19:42 -
Noriさん、こんばんは。

>私の考えるシミュレーションは、水素と鉛など重金属の2原子を扱って、同じように吸着のシミュレーションを行ないたいと思っております。
>今、水素間、水素ー鉛間の適当なポテンシャルを探しているところなんですが、
>もし何か適しているものをご存知でしょうか?
経験的な分子動力学は結局、どんなポテンシャルを用いるかで結果が決まってしまうようなところがありますね。私も、まだ、一部のポテンシャルを学んでいるだけで、とても全貌はわかりません。鉛(fcc)はEAMが結晶構造や弾性率など物性をよく再現するポテンシャルと言われていますが、ポテンシャルがかなり複雑になります。どのような物性を再現したいのかによってポテンシャルを決めるのが良いと考えます。吸着熱などは、たぶん、モースポテンシャルのような簡単なポテンシャルでも再現できますが、表面再構成のような構造に関わることは、EAMのような環境依存型のポテンシャルでないと難しいと思います。
(PbのEAMポテンシャルについては、たとえばNo.367をご覧ください)

>S-HポテンシャルやZPポテンシャルなどというのを発見したのですが適用できるのかどうかはまだ・・・
これらのポテンシャルについては、使用経験がなく、知りません。 すみません。

●671 ベルレの速度式 Nori- 2003/12/08 18:54 -
参照HPの方拝見させていただきました。
ありがとうございます。 速度式の導出の仕方がよくわかりました。

今はmikeさんのアプレットをいろいろ試しながら自分なりに改良させていただいております。
私の考えるシミュレーションは、水素と鉛など重金属の2原子を扱って、同じように吸着のシミュレーションを行ないたいと思っております。
今、水素間、水素ー鉛間の適当なポテンシャルを探しているところなんですが、
もし何か適しているものをご存知でしょうか?
S-HポテンシャルやZPポテンシャルなどというのを発見したのですが適用できるのかどうかはまだ・・・

●670 アプレット2本追加 mike- 2003/12/06 18:41 -
アプレット2本追加しました。
(384) plasma model in magnetic field 磁場中のプラズマモデル
(385) plasma in B 3D 磁場中のプラズマモデル 3D

●669 アプレット追加 mike- 2003/12/06 07:36 -
アプレット追加しました。
(383) view shift FM2D 視界変更

●668 Re ベルレ法の速度式 mike- 2003/12/05 18:31 -
Noriさん、こんにちは。

>速度の計算の式
>vi(t+Δt) = vi(t) + ( Fi(t+Δt) + Fi(t) )/2mi) Δt
>の導出がわかりません。
ベルレ法、速度ベルレ法の導出については慶大の横井康平先生の講議ノート
http://www.yokoi.inst.keio.ac.jp/yokoi/compphys.pdf
を参照ください。
v = v0 + a tの式でa=f/mなのですが、fの時間平均(fn+fn-1)/2で考えたのが速度ベルレ法と考えたらいいと思います。

アンサンブルはNo.11の場合、温度を制御して一定に近付けようとしていますので、ご指摘のようにNTVアンサンブルとしてよいと思います。

(2回目の書き込みは消しときました。)

●667 ベルレ法の速度式 Nori- 2003/12/05 16:44 -
こんばんわ

また質問なんですが、
速度の計算の式
vi(t+Δt) = vi(t) + ( Fi(t+Δt) + Fi(t) )/2mi) Δt
の導出がわかりません。
「初心者のための分子動力学」のP10〜P13を読むと
v(t)={r(t+Δt)-r(t-Δt)}/2Δt
とありますがここから導出できるのでしょうか?
それともF/m=a であるので、
単にv=v0+at
の式でしょうか?
位置を求める式は速度式から導出できたのですが・・・

あと、よく分子動力学でアンサンブルという話がでてきますが、
この吸着シミュレーションではどのようなアンサンブルを考慮されてるのでしょうか?
粒子数、体積一定で温度はT0近傍でゆらいでいるので
NTV(定温法)なのかと思うのですが・・・

●666 力の総和 mike- 2003/12/05 06:08 -
Noriさん、こんにちは。

つたないコードをていねいに見ていただき、ありがとうございます。

>mikeさんのソースを参考にしながら、分子動力学の吸着シミュレーションを行なっていきたいと思います。
>このソースにいろいろ自分なりに手を加えて、シミュレーションを行なっていきたいのですが、よろしいでしょうか?
自由に使っていただいてOKです。学会等で発表される場合、「分子のおもちゃ箱のアプレットNo.xxx」を参照してくだされば幸いです。

>最後のforcecalcでffx[i] += fxij
>という式がありますが、この式は「iにはたらく力の総和」だと認識しているのですが、
>正しいでしょうか?
その通りです。

>ffx[j] += -fxij
>という式は粒子jに働く力の総和でしょうか?
その通りです。計算の回数を減らすため、j>iの条件で総和をとっています。i-j間に働く力は、iにかかる力がfxijとすると、jにかかる力は、-fxijとなります。

また、なんでもお尋ねください。

●665 あと1つ Nori- 2003/12/04 20:48 -
聞きたいことがありました。

最後のforcecalcでffx[i] += fxij
という式がありますが、この式は「iにはたらく力の総和」だと認識しているのですが、
正しいでしょうか?
その後の
ffx[j] += -fxij
という式は粒子jに働く力の総和でしょうか?
バージョンアップする前のソースですと2次元の配列になっていて、
相互作用であるため、マイナスになっていると理解できたのですが、
今回は1次元なのでちょっとイメージができなくて・・・
申し訳ございません。

●664 本当に何度も Nori- 2003/12/04 20:37 -
663と同じ内容

●663 本当に何度も Nori- 2003/12/04 20:24 -
ありがとうございます。
timeEvolution()の中で粒子間の相互作用が計算されているので、
アプレットでも自然に衝突しているように見えるのですね。

ようやく、ソース全体が理解できたような気がいたします。
しかしベルレ法などについても理解が浅く、自分の勉強不足をつくづく感じます。
僕はこれだけ質問して、ようやく1つのソースを理解できたのに、
mikeさんは自分で何百個も作られているので、本当に尊敬いたします。

mikeさんのソースを参考にしながら、分子動力学の吸着シミュレーションを行なっていきたいと思います。
このソースにいろいろ自分なりに手を加えて、シミュレーションを行なっていきたいのですが、よろしいでしょうか?

●662 すみません mike- 2003/12/04 20:15 -
Noriさん、こんばんは。

すみません、わすれてました。
>アプレット上で自然に衝突しているようになってるのはどうしてなんでしょうか?
>ソース上ではそのような部分はないと思うのですが・・・
>もしあるのならどの部分になるか教えていただけませんか?
分子同士が力を及ぼしあいながら相互作用するのは、時間発展の計算そのものです。timeEvolution()のxx[i]とvx[i]の計算部分でこの衝突は考慮されていることになります。

●661 同じ質問になりますが・・・ Nori- 2003/12/04 20:01 -
同じ内容でたびたび申し訳ないのですが、アプレット上で自然に衝突しているようになってるのはどうしてなんでしょうか?
ソース上ではそのような部分はないと思うのですが・・・
もしあるのならどの部分になるか教えていただけませんか?

●660 初期速度 mike- 2003/12/04 19:54 -
Noriさん、こんばんは。

>壁にぶつかったときに加速するという話がでましたが、分子同士の衝突はどういった制御で行なわれてるのでしょうか?
>見たところ、そのような部分はなかったように思われますが、アプレット上では、ちゃんと自然に衝突しています。
>これは完全弾性衝突なのでしょうか?
その通りです。他のエネルギーに変わらない場合、系の力学的エネルギーは保存され、完全弾性衝突になります。

>また、初期速度なんですが、ランダム関数を用いていますが、500をかけて、250をひいてますが、
>これは単に値の調整として理解してよろしいのでしょうか?
そうです。速度は向きがあり、0を中心として分布するので、-250<vx[i]<250(m/s)となるようにしています。初期の分布は一様分布ですが、時間発展とともに、Maxwell分布に近づきます。

●659 衝突 Nori- 2003/12/04 19:31 -
壁にぶつかったときに加速するという話がでましたが、分子同士の衝突はどういった制御で行なわれてるのでしょうか?
見たところ、そのような部分はなかったように思われますが、アプレット上では、ちゃんと自然に衝突しています。
これは完全弾性衝突なのでしょうか?

また、初期速度なんですが、ランダム関数を用いていますが、500をかけて、250をひいてますが、
これは単に値の調整として理解してよろしいのでしょうか?

●658 バージョンアップ mike- 2003/12/04 18:45 -
バージョンアップ(表示コードの改善)しました。
(197) elecrtric field イオン結晶の周りの電界強度 ver 0.0.2

●657 温度の制御 mike- 2003/12/04 16:52 -
Noriさん、こんにちは。

>vx[i] += 0.5*dt*(ffx[i]+fbx[i])/mas
>という式がよくわかりません。
速度ベルレ法では(mikesRoomの「(経験的)分子動力学法とは」のところを参照ください)
速度の計算はvi(t+Δt) = vi(t) + ( Fi(t+Δt) + Fi(t) )/2mi) Δtとなります。
0.5*(ffx[i]+fbx[i])は力の時間平均で、これを質量で割って加速度aをだし、これにdtをかけて速度の変化分となります。

>またrrは、sqrt(contTemp/tmp)ということなんですが、この変数は何を意味しているのでしょうか?
>0.5 >ということなんですが、どうしてこの範囲なのかもちょっとわからなくて・・・
timeEvolution()の中で、
tmp = temperature();
rr = Math.sqrt(contTemp/tmp);
if (rr<0.5) { rr = 0.5; } else if (rr>1.2){ rr=1.2; };
としているところですね。これは系の温度を一定値にするための制御部分です。contTempは温度の目標値でtmpは現在の温度です。この平方根比は分子の速度比になります。
箱の壁にぶつかったとき、この比で速度を増減することで系の温度が目標値に近づくようにようにしています。
 for (i=0; i   if (xx[i] < 0.0) {
   xx[i] = 0.0; vx[i] = -rr*vx[i]; vy[i] = rr*vy[i];
  }
  .....
 }
0.5

●656 こんにちは Nori- 2003/12/04 12:50 -
詳しい説明をどうもありがとうございます。
その中の
vx[i] += 0.5*dt*(ffx[i]+fbx[i])/mas
という式がよくわかりません。
xx[i] += vx[i]*dt+0.5*dt*dt*ffx[i]/mas
は物理の
x=v0t+1/2at^2
なのかなと思うのですが・・・

またrrは、sqrt(contTemp/tmp)ということなんですが、この変数は何を意味しているのでしょうか?
0.5 ということなんですが、どうしてこの範囲なのかもちょっとわからなくて・・・

●655 時間発展の計算 mike- 2003/12/04 06:48 -
Noriさん、こんにちは。

>ではその流れにそっていくと、ffx[i]の初期値は0なので、
>ffx[i]=fbx[i]=0
>となり、その後fbx[i]は出てこないので、1回目のループではずっと0でよいのでしょうか?
>注釈に、x-force before dt とあるので、それでよいのかもしれませんが・・・
>これはcalcposition()の20回あるうちの2回目以降に意味のでてくる変数と理解してよろしいのですか?
その通りです。速度ベルレ法による時間発展の計算では、
まず、速度vx[i]と力ffx[i]から位置xx[i]の更新を行い、
xx[i] += vx[i]*dt+0.5*dt*dt*ffx[i]/mas;
次に、この位置xx[i]から力ffを計算(forceCalc())し、
ffと更新前の力fbの平均から速度を計算します。
vx[i] += 0.5*dt*(ffx[i]+fbx[i])/mas;
このときのため、前の力を記憶しておく必要があるのです。
(20回あるうちの2回目以降に意味のでてくる変数というより、timeEvolution()の2回目以降の呼び出しで使う変数と考えた方がいいかもしれません)

>また、forcecalc()の中の
>fx[i][j]=f*(xx[i]-xx[j])/rij
>という式がありますが、これはforceで求めたfの符号(向き)を決める式でしょうか?
力fijのx成分を求める式です。力fijのx成分はfij cos(θ)=f*(xx[i]-xx[j])/rijとなります。

●654 ありがとうございます Nori- 2003/12/03 20:17 -
ありがとうございます。プログラム上の形式的なものだったのですね。
ではその流れにそっていくと、ffx[i]の初期値は0なので、
ffx[i]=fbx[i]=0
となり、その後fbx[i]は出てこないので、1回目のループではずっと0でよいのでしょうか?
注釈に、x-force before dt とあるので、それでよいのかもしれませんが・・・
これはcalcposition()の20回あるうちの2回目以降に意味のでてくる変数と理解してよろしいのですか?

また、forcecalc()の中の
fx[i][j]=f*(xx[i]-xx[j])/rij
という式がありますが、これはforceで求めたfの符号(向き)を決める式でしょうか?

一日に何度も大変申し訳ございません

●653 Re プログラムの流れ mike- 2003/12/03 19:43 -
Noriさん、こんばんは。

プログラムの流れは、まず、
init()からsetInitialPosition()が呼ばれます。
次にrun()-update()-paint()のループの中のrun()から
run()からcalcposition()が呼ばれ、
calcposition()の中からforceCalc()が呼ばれ、
forceCalc()の中からforce()が呼ばれます。
calcposition()の呼び出し後にoffPaint()が呼ばれ、
その中でrmsV()やtemperature()が呼ばれます。
このループがスレッドが生きているかぎり続きます。

>start()とstop()の中でどういう作業をしているのかいまいちわかりません
この中でどういう作業をしているか、私も正確に理解していません。ここは決まり文句のようなものと解釈しています。javaのサンプルプログラムをまねて書いてみて、動いたのでそのまま使っているというところです。

●652 プログラムの流れ Nori- 2003/12/03 18:56 -
mikeさんこんばんわ
では上からプログラムは流れていき、run()でrmsV以下のメソッドが呼び出され、分子の運動が計算され、 その後表示の設定を行なうpaint()がプログラムの終わりということでしょうか?
それともrun()で終わりなのでしょうか?
あと今、javaのマニュアルを読んでますが、start()とstop()の中でどういう作業をしているのかいまいちわかりません
プログラムを走らせる形式的なものだとは思うのですが、Threadいうのも、クラスなのか、インスタンスなのか・・・
分子動力学とは関係なくて申し訳ございません

●651 バージョンアップ mike- 2003/12/03 18:34 -
バージョンアップ(表示コードの改善)しました。
(199) polarized plasma model 電界によるプラズマの分極モデル ver 0.0.2

●650 プログラムの流れ mike- 2003/12/03 16:28 -
Noriさん、こんにちは。

javaについてのお尋ねですが、私自身、javaについてはまだ全体像が見えるところまで理解しているわけではありませんので、誤ったことを書くかも知れません。理解している範囲で書いてみます。

アプレットではメインルーチンは書かなくても、デフォールトのルーチンが処理してくれて、必要なものだけを書けばいいようになっています(ユーザのメソッドが優先処理されます)
プログラムの流れは、まずメインから、
init()-start()-stop()が呼び出され、start()でスレッドがたてられ、
run()-update()-paint()でループになります。
スクロールバーなどのイベント処理は、その都度、処理ルーチンが呼び出されます。
本アプレットではinit()のところで初期化し、run()の中で分子の運動の時間発展calcposition()と表示
offPaint()を呼び出しています。
mikesRoomのテンプレートを見ると、流れがわかりやすいかもしれません。

●649 ありがとうございます Nori- 2003/12/03 15:53 -
mikeさんこんにちは ご返答どうもありがとうございます。
微分形だったんですね。

ほんとに質問ばかりして申し訳ないのですが、JAVAはまだちょっと理解が浅く、プログラムの流れというのがいまいちよくわかりません。
どのような流れになっているのでしょうか?
Cでいうところのメインとサブルーチンと考えていいのはどこなのでしょうか?
僕はrmsV()以下がサブルーチンのような役割を果たすメソッドだと考えているのですが・・・
しかし、そのように追っていくと、ffx[i]=0であるのでfbx[i]も0となり、fbx[i]の意味がわかりません
よろしければプログラムの流れについて詳しく教えていただけませんか?

●648 バージョンアップ mike- 2003/12/02 18:09 -
バージョンアップ(チラツキの改善)しました。
appletの原型とその ソースコード

●647 ポテンシャルの微分形 mike- 2003/12/02 17:13 -
Noriさん、こんばんは。

>壁に向かうplateSurfaceEnergy/sgmの力を与えているところまでは分かりましたが、
>その後の積分、運動エネルギーがポテンシャルの坂を登るというところがまだ少しわかりません。ソースにはその部分はありますか?
ソースにはこの部分はありません...というより、分子間と壁の近くで壁に引かれる力の下で、timeEvolution()によって、たくさんの分子の運動を追いかけると壁にぶつかって、そのときの運動エネルギーがポテンシャルより大きければ坂を登るということです。

>また、ポテンシャルという話が出てきましたが、前に分子間相互作用としてレナード・ジョーンズポテンシャルを用いているということでしたが、それはソースではforce(rij)の部分になるのでしょうか?
その通りです。
>最後のreturn(24.0*eps*r6*(2.0*r6-1.0)/r)というところがよくわからないのですが・・・
レナード・ジョーンズの場合 φ(r) = 4 ε[ (σ/r)^12 - (σ/r)^6 ] ですが、力はF=-dφ(r)/drですので、φ(r)をrで微分した形になります。
ri = sgm/r; r3 = ri*ri*ri; r6 = r3*r3; として、24.0*eps*r6*(2.0*r6-1.0)/rがこれに相当します。
(いくつか置換しているのは計算回数を減らすためで、ちょっと見づらいかもしれません)

●646 ポテンシャルエネルギー Nori- 2003/12/02 16:20 -
壁に向かうplateSurfaceEnergy/sgmの力を与えているところまでは分かりましたが、
その後の積分、運動エネルギーがポテンシャルの坂を登るというところがまだ少しわかりません。ソースにはその部分はありますか?
また、ポテンシャルという話が出てきましたが、前に分子間相互作用としてレナード・ジョーンズポテンシャルを用いているということでしたが、それはソースではforce(rij)の部分になるのでしょうか?
最後のreturn(24.0*eps*r6*(2.0*r6-1.0)/r)というところがよくわからないのですが・・・

●645 吸着力の部分 mike- 2003/12/01 18:45 -
Noriさん、こんばんは。ご質問、ありがとうございます。

>それでそのあとに力の計算を行なってますが、簡潔には吸着がおきる条件というのはどういった条件でしょうか?
>ソースでいうとそれはどの部分になるでしょうか?
ソースの中で、forceCalc()の最後の部分で、吸着力を与えています。
void forceCalc() {
int i,j;
double rij,f,fxij,fyij;

....

for(i=0;i if (xx[i]<1.0*sgm) {
ffx[i] -= plateSurfaceEnergy/sgm;
}
}
}
各分子のx座標xx[i]がsgm(=0.34nm)より小さいとき、壁に向かってplateSurfaceEnergy/sgmの力を与えています。0からsgmまでこの力を積分すると壁のポテンシャルエネルギーplateSurfaceEnergyになります。各分子の運動エネルギーがこのポテンシャルの坂を登れないと吸着されることになります。

また、なんでもお尋ねください。

●644 ご返答ありがとうございます Nori- 2003/12/01 16:26 -
初期位置として格子状に配置する設定なんですね。
わかりました。ありがとうございます。

それでそのあとに力の計算を行なってますが、簡潔には吸着がおきる条件というのはどういった条件でしょうか?
説明には壁近くに分子が来たときに吸着が起きるとありますが・・・
分子の運動エネルギーが吸着エネルギーよりも小さいと吸着が起きるということでしょうか?
ソースでいうとそれはどの部分になるでしょうか?
本当にたびたびすいません。
他のアプレットも見させてもらってますが、すごいの一言です。
僕も早くもっと分子動力学のことを理解しなければとと思います。

●643 アプレット2本追加 mike- 2003/11/29 18:52 -
アプレット2本追加しました。
(381) template - dynamics 2D 躍る梁(動力学のテンプレート)
(382) bounding balls D2D 跳ねるボール

●642 MDテンプレートの更新 mike- 2003/11/28 17:47 -
分子動力学法appletの原型とその ソースコードを更新しました(mikesRoom)

●641 バージョンアップ mike- 2003/11/26 18:13 -
バージョンアップ(チラツキを改善)しました。
(219) dynamics 2D ダイナミックス ver 0.0.2

●640 バージョンアップ mike- 2003/11/25 18:27 -
バージョンアップ(チラツキを改善)しました。
(220) fragile 落下で破砕 ver 0.0.3

●639 初期の分子の配置 mike- 2003/11/25 18:13 -
Noriさん、こんばんは。つたないCodeを読んでいただき、ありがとうございます。
>xx,yの数式
>sgm*3.0*(double)(i%6)+2.5*sgm
>などといった式はどういった意味でしょうか?
xx[i] = sgm*3.0*(double)(i%6)+2.5*sgm;
yy[i] = sgm*3.0*(double)(i/6)+2.5*sgm;
は初期の分子の配置で、分子を格子状に配置するものです。(i%6)はiを6で割った余りで、0から5の値をとります。また、(i/6)はiを6で割った商であり、整数演算なので(Nmt=36ですので)0から5の値をとります。sgmは0.34nmで分子の大きさ程度です。上式の意味は、「左辺と上辺から2.5*sgmづつ離れた位置に、3*sgm間隔で格子状に配置する」ということです。

>また、その後のcalcposition()でループを20回まわしてますが、この20という数字には何か意味があるのですか?
20という数字は、特に意味はありません。ただ、毎回、計算ごとに表示すると動きが少なすぎるので、動画として見える程度に動いた後、表示することにしました。

●638 ありがとうございます Nori- 2003/11/25 17:48 -
ご返答ありがとうございます。
ようやく、分子の動きの計算のところまでなんとか理解することができました。
ここから分子動力学に大きく関係してくると思うのですが、
setInitialPosition()のvx,yはrandom()を使ってるので、
初期速度を任意に設定したと理解できるのですが、xx,yの数式
sgm*3.0*(double)(i%6)+2.5*sgm
などといった式はどういった意味でしょうか?
また、その後のcalcposition()でループを20回まわしてますが、この20という数字には何か意味があるのですか?
たびたび申し訳ございません

●637 バグフィックス mike- 2003/11/23 18:40 -
バグフィックス(Trの計算部分にバグがあり修正)しました。
(354) bcc crystal AFS コア補正FSポテンシャル ver 0.0.3
(355) periodic AFS コア補正FSポテンシャル(周期的境界条件) ver 0.0.3

●636 アプレット追加とバグフィックス mike- 2003/11/22 18:34 -
アプレット追加しました。mmさんのご提案の潮汐力のアプレットを作ってみました。どうも、ねらい通りはいかないようです。
(380) tidal Force FM2D 潮汐力

バグフィックス(Trの計算部分にバグがあり修正)しました。
(370) deep impact AFS ナノ結晶と壁の衝突 ver 0.0.2

●635 バージョンアップ mike- 2003/11/21 18:54 -
バージョンアップ(表示コードの改良)しました。
(168) W(FS) - Morse atom sputtering タングステンのモース原子スパッタリング ver 0.0.5

●634 緑のプレート mike- 2003/11/20 19:51 -
Noriさん、こんばんは。 さっそくですが、
>では、その中で10をかけて、10で割ったりといった作業を行なっていますが、それは分子動力学とは関係なく、値の調整と考えてよろしいのでしょうか?
その通りです。10をかけてMath.floor()で切り捨てし、10で割って小数1位までの数とするための処理です。

>表面の緑のプレートはどういった物質を想定しているのでしょうか
>PlateSurfaceEnergy=0.2*1.6e-19という初期値と関係があるのでしょうか?
特に特定の物質を想定したのではないのですが、たとえばステンレスの表面に水分子が吸着する場合、この程度(0.2eV)の吸着熱を考えました。Arのような稀ガスの場合、物理吸着の吸着熱はもう少し小さいようです。

●633 すみません Nori- 2003/11/20 19:08 -
間違えて2回送信してしまいました。
申し訳ありません

●632 ご返答ありがとうございます Nori- 2003/11/20 19:07 -
では、その中で10をかけて、10で割ったりといった作業を行なっていますが、それは分子動力学とは関係なく、値の調整と考えてよろしいのでしょうか?
また、表面の緑のプレートはどういった物質を想定しているのでしょうか?
PlateSurfaceEnergy=0.2*1.6e-19という初期値と関係があるのでしょうか?

●631 ご返答ありがとうございます Nori- 2003/11/20 18:55 -
では、その中で10をかけて、10で割ったりといった作業を行なっていますが、それは分子動力学とは関係なく、値の調整と考えてよろしいのでしょうか?
また、表面の緑のプレートはどういった物質を想定しているのでしょうか?
PlateSurfaceEnergy=0.2*1.6e-19という初期値と関係があるのでしょうか?

●630 バージョンアップ mike- 2003/11/20 18:25 -
バージョンアップ(表示コードの改良)しました。
(171) sputtering Ba(Morse) on W(FS) タングステン上のバリウムのスパッタリング ver 0.0.4

●629 statisticsのメソッドたち mike- 2003/11/20 17:07 - Noriさん、こんにちは。書き込みありがとうございます。
前にも書きましたように、私のjavaコードはcのスタイルを脱することができずにいますので、たいへん読み難いと思います。
>statictics と区切られてるところがありますが、その部分ではどういったことをしているのでしょうか?

double rmsV() {
***
}
は速度の2乗平均平方根を返すメソッドです。速度成分、vx[],vy[]は大域的に宣言しています。運動の時間発展を計算した後、表示のところでこのメソッドを用いています。戻すときに小数2桁に切り捨てています。

double temperature() {
***
}
は温度を返すメソッドです。温度は(1/2)mv^2 = (2/2)kTとして求めています(2次元なので)。また、戻すときに小数1桁に切り捨てています。表示のところでこのメソッドを用いています。

double marume3(double u) {
***
}
は3桁の切り捨てメソッドで、引数uを小数点3桁で切り捨てて返しています。

わかり難いと思われますので、また、何でも聞いてください。

●628 ご無沙汰しております Nori- 2003/11/20 11:42 -
お久ぶりです。
3ヶ月ほど前に書き込みさせていただきましたNoriです。
のりさんという方もいらっしゃるみたいで、ややこしくてすみません。
ここ数ヶ月で分子動力学やJAVAについて自分なりに勉強してみました。
そしてmikeさんのアプレットを参考にさせていただき、吸着シミュレーションをしようと思うのですが、11番の吸着シミュレーションなんですが、いくつか質問させていただいてもよろしいでしょうか?
statictics と区切られてるところがありますが、その部分ではどういったことをしているのでしょうか? もしよろしければ教えていただけませんか?

●627 バージョンアップ mike- 2003/11/19 18:31 -
バージョンアップ(表示コードの改良と温度制御の改良)しました。
(15) Lennard-Jones gas 2D レナード・ジョーンズ気体 ver 0.0.4

●626 ありがとうございます mike- 2003/11/18 18:03 -
のりさん、わざわざ、ありがとうございます。
前にも書きましたように、のりさんの作品は完成度が高く、目標であり、また多くのことを学ばせていただいております。
「物理の基礎概念を直感的に学べるアプレット」はたいへん興味深いテーマで、どんなアプローチをされるのか、新作がたのしみです。
今後とも、よろしくお願いいたします。

●625 書き込みありがとうございました のり- 2003/11/17 18:11 -
mikeさん。私のHPについての感想をいつもありがとうございます。それにしてもmikeさんの作品数,テーマの多様さ,質の高さには驚かされるばかりです。新たな作品を楽しみにしております。私の方は,最近は物理の基礎概念を直感的に学べるアプレットをつくろうと試みています。今後ともよろしくお願いいたします。
http://www2.biglobe.ne.jp/~norimari/sciencenori.html

●624 アプレット2本追加とバージョンアップ mike- 2003/11/16 07:32 -
アプレット2本追加しました。
(378) pressure tensor PAFS 圧力テンソル(bcc結晶)
(379) bcc(110) crystal PAFS 体心立方晶の(110)方位の周期境界条件NPT
バージョンアップ(表示コードの改良と温度制御の改良)しました。
(19) Morse molecules in the Box 箱の中のMorse分子 ver 0.0.6

●623 アプレット追加 mike- 2003/11/15 07:12 -
アプレット追加しました。
(377) surface diffusion on W タングステンW(100)面上の表面拡散

●622 分野別 index更新 mike- 2003/11/13 18:27 -
分野別 indexを更新しました。
thermal physics 熱、気体の分子運動(熱、統計力学)
(360) NVT ensemble FM3D 粒子数-体積-温度一定下の圧力
(361) NPT ensemble FM3D 粒子数-圧力-温度一定下のMD
(376) thermal expansion NaCl 塩化ナトリウムの熱膨張率

●621 Re はじめまして mike- 2003/11/13 18:16 -
佐藤さん、本HPをご覧いただき、ありがとうございます。

私も、MDの初心者で、始めてから2年弱です。MDを学びながら、励みにするため、習作をアプレットの形で公開しています。アドバイスできるような立場ではありませんが、いっしょに考えたり、議論することはできると思いますので、気軽に何でも書き込んで下さい。

>よろしかったらまず研究するにあたって何を勉強すればよいか、また、
>どの文献を読んだらいいか教えていただけないでしょうか?
私が最初に読んだのは、北川浩他著「初心者のための分子動力学法」養賢堂1997です。「これがいい」と言えるほど多くの本を読んだわけではありませんが、この本だけで、MDを始めることができると思います。
また、ご研究の対象がイオン性の結晶、金属、半導体か、あるいはバルクか表面かなどによって、考慮すべきポテンシャルが異なりますので、予め決めておいた方が早いように思えます。
カノニカル(NPT)アンサンブルの体系で温度、圧力の制御方法も上記の本に書かれています。

具体的な内容に関して、なんでも書き込んで下さい。

●620 はじめまして 佐藤- 2003/11/13 12:14 -
今、大学で分子動力学とアンサンブルについて研究しているのですが、
このHPを見て非常に感銘をうけ目標となるだろうと思いました。
私はMDにアンサンブルを組み込む式や手順が全くわかりません。
よろしかったらまず研究するにあたって何を勉強すればよいか、また、
どの文献を読んだらいいか教えていただけないでしょうか?
よろしくお願いします。

●619 投稿者により削除

●618 バージョンアップとバグフィックス mike- 2003/11/11 17:59 -
バージョンアップ(圧力計算方法の改良)しました。
(357) periodic Morse and Tungsten AFS モース原子とタングステン(周期的境界条件)ver 0.0.2
バグフィックス(圧力計算方法のバグの訂正)しました。
(366) bcc crystal periodic AFS 圧力、温度一定下のbcc結晶(周期的境界条件) ver 0.0.3

●617 バージョンアップ mike- 2003/11/09 18:03 -
バージョンアップ(圧力制御方法の改良)しました。
(366) bcc crystal periodic AFS 圧力、温度一定下のbcc結晶(周期的境界条件) ver 0.0.2

●616 バージョンアップ mike- 2003/11/08 07:56 -
バージョンアップ(表示コードの改良)しました。
(310) template - fast Morse 3D モースポテンシャルの高速化MD ver 0.0.6
(311) periodic FM3D モースポテンシャルの高速化MD - 周期的境界条件 ver 0.0.6
(338) nickel EAM ニッケル fcc結晶 ver 0.0.3

●615 バージョンアップ mike- 2003/11/05 18:25 -
バージョンアップ(表示コードの改良)しました。
(306) template - fast Morse 2D 高速化MDのテンプレート ver 0.0.5
(307) periodic FM2D 高速化MDのテンプレート - 周期的境界条件 ver 0.0.4

●614 アプレット追加 mike- 2003/11/04 18:04 -
アプレット追加しました。
(376) thermal expansion NaCl 塩化ナトリウムの熱膨張率

●613 アプレット2本追加 mike- 2003/11/03 08:22 -
アプレット2本追加しました。
(374) NVT ensemble - PSX1S イオン結合のN-V-T一定MD(周期的境界条件)
(375) NPT ensemble - PSX1S イオン結合のN-P-T一定MD(周期的境界条件)

●612 アプレット3本追加 mike- 2003/11/02 07:14 -
アプレット3本追加しました。
(371) NVT ensemble - SX1S イオン結合のN-V-T一定MD
(372) NPT ensemble - SX1S イオン結合のN-P-T一定MD
(373) NaCl crystallization SX1S 塩化ナトリウムの結晶化

●611 アプレット追加 mike- 2003/11/01 07:14 -
アプレット追加しました。
(370) deep impact AFS ナノ結晶と壁の衝突

●610 潮汐力 mike- 2003/11/01 07:08 -
mmさん、こんにちは。リクエストありがとうございます。MDを使って物理現象をシミュレートする題材のアイデアが底をついてきているので、このようなご提案は、たいへん助かります。
潮汐力による摩擦熱ですが、興味深いですね。潮汐力は、たとえば月が地球の月に近い側と遠い側で重力の違いと回転運動の遠心力(地球の上に乗ってみた場合)のバランスから地球が引き伸ばされる方向に力が働くように見える力ですね。
余談ですが、月ができた40数億年前、ジャイアントインパクト説では衝突後に形成される月は約2万kmのところに形成されるようで、できた当時の潮汐力はものすごかったと想像されます。その後、潮汐力による相互作用の結果、月は遠くになり、回転のエネルギーは、月の位置エネルギーと地球を暖めるのに使われたと考えられます。
MDでシミュレートできる大きさでは、重力より電磁気力が支配的ですので、原子の大きさ程度のミニブラックホールでも想定しないと、潮汐力が影響するようにはならないと思います。むしろ、「物体にくり返しかかる外力によって温度が上がる」というシミュレーションなら実現しやすいと思います。少し検討させて下さいませ。

●609 りくえすと mm- 2003/10/31 19:17 -
 ご無沙汰しています。
 ふと思いました。
 地球の内部が高温である理由について、
  1.魔法瓶効果で地球創生時の熱が保たれている
  2.放射性物質の崩壊熱
  3.潮汐力による摩擦熱
とはいわれているものの・・・

 1.は、そうですか、という感じです。
 2.も、まぁ考えられんこともないな、と思います。
 しかし、3.はその威力がピンと来ません。

 そういえば、木星のイオの火山活動は、木星による強烈な潮汐力によって生み出されている、と聞いたことがあったっけ?
 潮汐力で発生する熱エネルギーは、シミュレーション的に面白いのではないかと思うのですが、いかがでしょう。

●608 バージョンアップ mike- 2003/10/31 18:11 -
バージョンアップ(表示コードと表参照コードの改良)しました。
(333) periodic SX1S イオン結合のポテンシャル(周期的境界条件)ver 0.0.2

●607 バージョンアップ mike- 2003/10/30 18:01 -
バージョンアップ(表示コードと表参照コードの改良)しました。
(313) template - SX1S potential イオン結合のMDテンプレート ver 0.0.2

●606 バージョンアップ mike- 2003/10/28 18:00 -
バージョンアップ(表示コードの改良)しました。
(323) bcc crystal periodic FS 高速化FSポテンシャルMD(周期的境界条件)ver 0.0.5
また、過去ログ501-600分をアップしました。

●605 バージョンアップ mike- 2003/10/27 18:31 -
バージョンアップ(表示コードの改良)しました。
(312) bcc crystal - FS pitential 高速化FSポテンシャルMD bcc結晶 ver 0.0.6

●604 アプレット2本追加 mike- 2003/10/25 07:45 -
アプレット2本追加しました。
(368) fcc crystal - Rosato potential 周期的境界条件下のTB-SMAポテンシャル
(369) hcp crystal - Rosato potential 六方稠密(hcp)構造の金属(周期的境界条件)

●603 Σαがなくなる理由 mike- 2003/10/24 18:18 -
アナログさん、こんにちは。私もまだ導出できていません。
Σαがなくなる理由ですが、物理的にはつぎのようなことではないでしょうか。
全エネルギーEtotをαの粒子のx座標について微分するとき、rαβが出てこない項はrαβについて変化しないので0となるためと考えられます。

●602 投稿者により削除

●601 そうですか アナログ- 2003/10/24 16:55 -
わざわざすみません。僕もなんとか自力でやってみます。
ところでΣαがなくなる理由はわかりませんか?


 ( prev | index | next )
(created 2003.10.24, last updated 2006.07.13)
inserted by FC2 system