lammpsメモ
をテンプレートにして作成
AND検索
OR検索
開始行:
*lammpsメモ(2023/06/15:更新2024/6/21更新)
#image(https://mkanzaki.sakura.ne.jp/images/OVITO_cristob...
#contents
**概要
lammpsは非常にポピュラーな分子動力学法(MD)のプログラム...
2023年8月にlammpsの「Virtual Workshop and Symposium 202...
**インストール
lammpsは、[[lammpsのサイト:https://www.lammps.org/]]か...
OVITOのことを知ったのはlammpsの「Virtual Workshop and S...
**結晶構造ファイルの作成
金属やダイヤモンドなどの簡単な構造については結晶構造フ...
まずは必要な構造のcifファイルをCODなどから探してダウン...
cifファイルを得たら、OVITOからLoad Fileでcifファイルを...
なお、実際に計算を試すにはポテンシャルが必要なので、lam...
**計算のスクリプト(構造最適化)
lammpsの計算では、計算の条件などを書いた入力ファイル(...
# test Tesoff SiO2 potential for cristobalite
units metal
boundary p p p
atom_style atomic
read_data cristobalite.lmp
replicate 4 4 4
pair_style tersoff
pair_coeff * * SiO.tersoff Si O
thermo_style custom step etotal vol
thermo 10
fix 1 all box/relax aniso 0.0
minimize 0.0 1.0e-12 1000 10000
write_data cristobalite-4x4x4-min.lmp
最初の行はコメントです。
2行目のunitsは使う単位系の指定で、metalって変ですが、こ...
3行目は境界条件で、pは周期境界条件で、ここではxyz全ての...
4行目は原子スタイル。これも無機結晶構造のMDの場合はatom...
5行目は使う結晶構造ファイルの指定です。この場合はcristo...
6行目はsupercellの指定で、上の行で指定した構造の4x4x4の...
7、8行目はポテンシャルの指定で、今回はTersoffタイプを使...
9行目のthermo_styleは計算時の出力指定で、ここで指定した...
10行目のthermoは出力を何ステップ毎にするかの指定です。...
11行目はfixで、計算中の制約や計算方法を指定するものです...
12行目は構造最適化で使うコマンドminimizeで、収束条件と...
13行目は計算終了後の構造を出力させるコマンドです。4x4x4...
以上はミニマムなものですが、今回は構造最適化自体が主目...
このスクリプトをin.cristobaliteとしてセーブして(exampl...
% lmp_serial < in.cristobalite
% mpirun -np 2 lmp_mpi < in.cristobalite
この計算はすぐ終わります。体積やエネルギーが収束してい...
% mpirun -np 2 lmp_mpi -in in.cristobalite
とすればOKです。
**計算のスクリプト(NVT MD計算)
次はNVTアンサンブルでMD計算をさせてみます。NVTは体積と...
# test Tesoff SiO2 potential for cristobalite
units metal
boundary p p p
atom_style atomic
read_data cristobalite-4x4x4-min.lmp
#replicate 4 4 4
pair_style tersoff
pair_coeff * * SiO.tersoff Si O
thermo_style custom step etotal temp press
thermo 10
velocity all create 300 345678 dist gaussian
timestep 0.001
dump 1 all atom 50 cristobalite-4x4x4-nvt.lammpstrj
#dump 2 all cfg 100 *.cfg mass type xs ys zs vx vy vz fx...
fix 1 all nvt temp 300.0 300.0 0.1
run 10000
write_data cristobalite-4x4x4-nvt.lmp
構造最適化の最初の方とほぼ同じです。ただ、今回は構造最...
thermo_styleは今回はNVTなので、圧力を表示するように指定...
ここで出てくる新しいコマンドは、1つ目がvelocityです。M...
その次は時間ステップで、metalの場合はps(ピコ秒)単位な...
dumpは途中の計算結果をファイルに書き込ませるコマンドで...
その次のコメントアウトしているdumpは別の条件で構造など...
fixは今回はNVTアンサンブル(体積と温度一定)を指定して...
runが計算を実施させるコマンドで、数値は計算する総ステッ...
最後は計算最後の構造を出力するコマンドです。
計算は以下のようにして実施します。上のファイルをin.cris...
% lmp_serial < in.cristobalite-nvt
% mpirun -np 2 lmp_mpi < in.cristobalite-nvt
ターミナルに出てくる温度や圧力が収束していることを確認...
**計算のスクリプト(NPT MD計算)
最後にNPTアンサンブルでMD計算をさせてみます。NPTは温度...
# test Tersoff SiO2 potential for cristobalite
units metal
boundary p p p
atom_style atomic
read_data cristobalite-4x4x4-nvt.lmp
pair_style tersoff
pair_coeff * * SiO.tersoff Si O
thermo_style custom step etotal temp density press lx ly...
thermo 10
#velocity all create 300 456789 dist gaussian
timestep 0.001
dump 1 all atom 20 cristobalite-4x4x4-npt.lammpstrj
#dump 2 all cfg 10 *.cfg mass type xs ys zs vx vy vz fx ...
fix 1 all npt temp 300.0 300.0 $(100.0*dt) aniso 1 1 $(1...
run 20000
write_data cristobalite-4x4x4-npt.lmp
NVT計算とほぼ同じです。最初に前のNVT計算結果の構造を読...
thermo_styleは今回はNPTなので、温度以外に密度や格子定数...
前回のNVTはMD計算なので、その出力には原子毎の速度も含ま...
fixは今回はNPTアンサンブル(圧力と温度一定)を指定して...
計算は以下のようにして実施します。in.cristobalite-nptと...
% lmp_serial < in.cristobalite-npt
% mpirun -np 2 lmp_mpi < in.cristobalite-npt
この計算は前よりは少し時間がかかります。温度や圧力が制...
今の計算はテスト計算ですが、実際の計算ではもっとステッ...
msd(平均二乗変位)は以下のようにすれば出力させることがで...
compute 1 Si msd
compute 2 O msd
fix 1 all npt temp 300.0 300.0 $(100.0*dt) aniso 1 1 $(1...
fix 2 all ave/time 1 1 5 c_1[4] file Si.msd
fix 3 all ave/time 1 1 5 c_2[4] file O.msd
そうすると計算実施後にSi.msd, O.msdのファイルが出来てい...
**OVITOによるMD trajectoryファイルの表示
MD計算で作られた*.lammpstrjをOVITOで読み込みます。中央...
右側のカメラタブをクリックすると動画を出力できます。Com...
#image(https://mkanzaki.sakura.ne.jp/images/cristobalite_...
**格子常数
いまだdumpで格子常数をうまく出力する方法が分かりません...
OVITOで見えている構造を出力して、VESTAで眺めようとxyz, ...
**ポテンシャル
現状、lammpsでは金属系ポテンシャル(EAM)が多く、無機化...
**kimを使う
実行版ではkimパッケージは最初から入っているようで、特に...
使い方はexamples/kimの入力ファイルを見れば分かりますが...
ちなみにexamples/kimにあるin.kim-pm.meltはこのStilinger...
なお、実行版に付属しているkim用のファイル(*.soになって...
**NISTのポテンシャルリポジトリ
[[NIST:https://www.ctcms.nist.gov/potentials/]]もポテン...
**reaxFFを使う
実行版ではreaxFFは有効になっているので、すぐ使えます。e...
# test reaxxff potential for poldervaartite
units metal
boundary p p p
atom_style charge
read_data poldervaartite.lmp
replicate 2 2 2
pair_style reaxff NULL safezone 3.0 mincap 150
pair_coeff * * ffield-CaSiOH-lammps.reax.txt Ca Si ...
neighbor 0.5 bin
neigh_modify every 1 delay 0 check yes
thermo_style custom step etotal vol
thermo 10
fix 1 all qeq/reaxff 1 0.0 10.0 1.0e-6 reaxff maxiter 400
minimize 0.0 1.0e-10 1000 10000
write_data poldervaartite-2x2x2-min.lmp
前と違うところはatom_styleがchargeになっていることで、r...
# test reaxff CaSiOH potential for poldervaartite
units metal
boundary p p p
atom_style charge
read_data poldervaartite-2x2x2-min.lmp
pair_style reaxff NULL safezone 3.0 mincap 150
pair_coeff * * ffield-CaSiOH-lammps.reax.txt Ca Si ...
neighbor 2.0 bin
neigh_modify every 10 delay 0 check yes
thermo_style custom step etotal temp press
thermo 10
velocity all create 300 345678 dist gaussian
timestep 0.0002
dump 1 all atom 50 poldervaartite-2x2x2-nvt.lammpstrj
fix 1 all qeq/reaxff 1 0.0 10.0 1.0e-6 reaxff maxiter ...
fix 2 all nvt temp 300.0 300.0 1
run 1000
write_data poldervaartite-2x2x2-nvt.lmp
次にNPTアンサンブルの計算へ。
# test reaxff CaSiOH potential for poldervaartite
units metal
boundary p p p
atom_style charge
read_data poldervaartite-2x2x2-nvt.lmp
pair_style reaxff NULL safezone 3.0 mincap 150
pair_coeff * * ffield-CaSiOH-lammps.reax.txt Ca Si ...
neighbor 2.0 bin
neigh_modify every 10 delay 0 check yes
thermo_style custom step etotal temp density press lx ly...
thermo 10
timestep 0.0002
#compute 1 Si msd
dump 1 all atom 50 poldervaartite-2x2x2-300K-1bar.lammps...
#dump 1 all cfg 100 *.cfg mass type xs ys zs vx vy vz fx...
fix 1 all qeq/reaxff 1 0.0 10.0 1.0e-6 reaxff maxiter ...
fix 2 all npt temp 300.0 300.0 $(100.0*dt) aniso 1 1 $(1...
run 10000
write_data poldervaartite-2x2x2-300K-1bar.lmp
これはNVTからNPTにして、圧力指定(1 bar)が追加されている...
#image(https://mkanzaki.sakura.ne.jp/images/poldervaartit...
次に同じReaxFFポテンシャルを使って、SiOSUB{SIZE(9){2}}-...
ちなみにSiOSUB{SIZE(9){2}}-HSUB{SIZE(9){2}}O系メルトの...
その後、もう少し初期構造を自分でカスタマイズしたいので...
#image(https://mkanzaki.sakura.ne.jp/images/SiO2-H2O-5000...
**Linux版ソースからインストール(2023/12/26)
既にコンパイルされている実行版は便利なのですが、色々と...
ソース(tarボール)は同じく[[lammpsページ:https://www.l...
デフォルトでは全てNOになっているので、必要なパッケージ...
パッケージを選択したら、コンパイルします。私はopenmpiを...
make mpi
シリアル版を作る場合は以下を実行します。lmp_serialができ...
make serial
.bashrcにsrcへのパスを書き込んでおきます。lammpsの実行は...
mpirun -np 8 lmp_mpi < in.cristobalite-npt
**Macの実行版
M3のMacBookAirを買ったので、lammpsをAnacondaでupdateし...
-MacBookAir Intel core i5 1.1 GHz CPU 2core使用:184 s
-MacBookAir M3 CPU 2core使用:119 s
-MacBookAir M3 CPU 4core使用:74 s
-Linux PC Intel i7 13700 8core使用:40 s
M3で走らせても多少早くなってました。
OVITOはApple Silicon対応版があったのでインストール。VESTA...
**注意
最初、石英を扱おうとしたのですが、途中でエラーが出まし...
単斜晶系等でbeta角度が120度近いと計算中にセルが変換され...
atom_styleがatomicの場合は、先に述べたようにOVITOから出...
unitsがrealとmetalでは単位が色々と異なります。特にtimes...
水素のような軽い元素は移動が速いので(温度が非常に高い...
ポテンシャルを指定するところ(pair_coeff)に書き込む元素...
COD等で拾ってくる構造には固溶体、原子が部分的にしか席を...
最近のIntelのCPUではパーフォーマンスコアとエフィシェン...
終了行:
*lammpsメモ(2023/06/15:更新2024/6/21更新)
#image(https://mkanzaki.sakura.ne.jp/images/OVITO_cristob...
#contents
**概要
lammpsは非常にポピュラーな分子動力学法(MD)のプログラム...
2023年8月にlammpsの「Virtual Workshop and Symposium 202...
**インストール
lammpsは、[[lammpsのサイト:https://www.lammps.org/]]か...
OVITOのことを知ったのはlammpsの「Virtual Workshop and S...
**結晶構造ファイルの作成
金属やダイヤモンドなどの簡単な構造については結晶構造フ...
まずは必要な構造のcifファイルをCODなどから探してダウン...
cifファイルを得たら、OVITOからLoad Fileでcifファイルを...
なお、実際に計算を試すにはポテンシャルが必要なので、lam...
**計算のスクリプト(構造最適化)
lammpsの計算では、計算の条件などを書いた入力ファイル(...
# test Tesoff SiO2 potential for cristobalite
units metal
boundary p p p
atom_style atomic
read_data cristobalite.lmp
replicate 4 4 4
pair_style tersoff
pair_coeff * * SiO.tersoff Si O
thermo_style custom step etotal vol
thermo 10
fix 1 all box/relax aniso 0.0
minimize 0.0 1.0e-12 1000 10000
write_data cristobalite-4x4x4-min.lmp
最初の行はコメントです。
2行目のunitsは使う単位系の指定で、metalって変ですが、こ...
3行目は境界条件で、pは周期境界条件で、ここではxyz全ての...
4行目は原子スタイル。これも無機結晶構造のMDの場合はatom...
5行目は使う結晶構造ファイルの指定です。この場合はcristo...
6行目はsupercellの指定で、上の行で指定した構造の4x4x4の...
7、8行目はポテンシャルの指定で、今回はTersoffタイプを使...
9行目のthermo_styleは計算時の出力指定で、ここで指定した...
10行目のthermoは出力を何ステップ毎にするかの指定です。...
11行目はfixで、計算中の制約や計算方法を指定するものです...
12行目は構造最適化で使うコマンドminimizeで、収束条件と...
13行目は計算終了後の構造を出力させるコマンドです。4x4x4...
以上はミニマムなものですが、今回は構造最適化自体が主目...
このスクリプトをin.cristobaliteとしてセーブして(exampl...
% lmp_serial < in.cristobalite
% mpirun -np 2 lmp_mpi < in.cristobalite
この計算はすぐ終わります。体積やエネルギーが収束してい...
% mpirun -np 2 lmp_mpi -in in.cristobalite
とすればOKです。
**計算のスクリプト(NVT MD計算)
次はNVTアンサンブルでMD計算をさせてみます。NVTは体積と...
# test Tesoff SiO2 potential for cristobalite
units metal
boundary p p p
atom_style atomic
read_data cristobalite-4x4x4-min.lmp
#replicate 4 4 4
pair_style tersoff
pair_coeff * * SiO.tersoff Si O
thermo_style custom step etotal temp press
thermo 10
velocity all create 300 345678 dist gaussian
timestep 0.001
dump 1 all atom 50 cristobalite-4x4x4-nvt.lammpstrj
#dump 2 all cfg 100 *.cfg mass type xs ys zs vx vy vz fx...
fix 1 all nvt temp 300.0 300.0 0.1
run 10000
write_data cristobalite-4x4x4-nvt.lmp
構造最適化の最初の方とほぼ同じです。ただ、今回は構造最...
thermo_styleは今回はNVTなので、圧力を表示するように指定...
ここで出てくる新しいコマンドは、1つ目がvelocityです。M...
その次は時間ステップで、metalの場合はps(ピコ秒)単位な...
dumpは途中の計算結果をファイルに書き込ませるコマンドで...
その次のコメントアウトしているdumpは別の条件で構造など...
fixは今回はNVTアンサンブル(体積と温度一定)を指定して...
runが計算を実施させるコマンドで、数値は計算する総ステッ...
最後は計算最後の構造を出力するコマンドです。
計算は以下のようにして実施します。上のファイルをin.cris...
% lmp_serial < in.cristobalite-nvt
% mpirun -np 2 lmp_mpi < in.cristobalite-nvt
ターミナルに出てくる温度や圧力が収束していることを確認...
**計算のスクリプト(NPT MD計算)
最後にNPTアンサンブルでMD計算をさせてみます。NPTは温度...
# test Tersoff SiO2 potential for cristobalite
units metal
boundary p p p
atom_style atomic
read_data cristobalite-4x4x4-nvt.lmp
pair_style tersoff
pair_coeff * * SiO.tersoff Si O
thermo_style custom step etotal temp density press lx ly...
thermo 10
#velocity all create 300 456789 dist gaussian
timestep 0.001
dump 1 all atom 20 cristobalite-4x4x4-npt.lammpstrj
#dump 2 all cfg 10 *.cfg mass type xs ys zs vx vy vz fx ...
fix 1 all npt temp 300.0 300.0 $(100.0*dt) aniso 1 1 $(1...
run 20000
write_data cristobalite-4x4x4-npt.lmp
NVT計算とほぼ同じです。最初に前のNVT計算結果の構造を読...
thermo_styleは今回はNPTなので、温度以外に密度や格子定数...
前回のNVTはMD計算なので、その出力には原子毎の速度も含ま...
fixは今回はNPTアンサンブル(圧力と温度一定)を指定して...
計算は以下のようにして実施します。in.cristobalite-nptと...
% lmp_serial < in.cristobalite-npt
% mpirun -np 2 lmp_mpi < in.cristobalite-npt
この計算は前よりは少し時間がかかります。温度や圧力が制...
今の計算はテスト計算ですが、実際の計算ではもっとステッ...
msd(平均二乗変位)は以下のようにすれば出力させることがで...
compute 1 Si msd
compute 2 O msd
fix 1 all npt temp 300.0 300.0 $(100.0*dt) aniso 1 1 $(1...
fix 2 all ave/time 1 1 5 c_1[4] file Si.msd
fix 3 all ave/time 1 1 5 c_2[4] file O.msd
そうすると計算実施後にSi.msd, O.msdのファイルが出来てい...
**OVITOによるMD trajectoryファイルの表示
MD計算で作られた*.lammpstrjをOVITOで読み込みます。中央...
右側のカメラタブをクリックすると動画を出力できます。Com...
#image(https://mkanzaki.sakura.ne.jp/images/cristobalite_...
**格子常数
いまだdumpで格子常数をうまく出力する方法が分かりません...
OVITOで見えている構造を出力して、VESTAで眺めようとxyz, ...
**ポテンシャル
現状、lammpsでは金属系ポテンシャル(EAM)が多く、無機化...
**kimを使う
実行版ではkimパッケージは最初から入っているようで、特に...
使い方はexamples/kimの入力ファイルを見れば分かりますが...
ちなみにexamples/kimにあるin.kim-pm.meltはこのStilinger...
なお、実行版に付属しているkim用のファイル(*.soになって...
**NISTのポテンシャルリポジトリ
[[NIST:https://www.ctcms.nist.gov/potentials/]]もポテン...
**reaxFFを使う
実行版ではreaxFFは有効になっているので、すぐ使えます。e...
# test reaxxff potential for poldervaartite
units metal
boundary p p p
atom_style charge
read_data poldervaartite.lmp
replicate 2 2 2
pair_style reaxff NULL safezone 3.0 mincap 150
pair_coeff * * ffield-CaSiOH-lammps.reax.txt Ca Si ...
neighbor 0.5 bin
neigh_modify every 1 delay 0 check yes
thermo_style custom step etotal vol
thermo 10
fix 1 all qeq/reaxff 1 0.0 10.0 1.0e-6 reaxff maxiter 400
minimize 0.0 1.0e-10 1000 10000
write_data poldervaartite-2x2x2-min.lmp
前と違うところはatom_styleがchargeになっていることで、r...
# test reaxff CaSiOH potential for poldervaartite
units metal
boundary p p p
atom_style charge
read_data poldervaartite-2x2x2-min.lmp
pair_style reaxff NULL safezone 3.0 mincap 150
pair_coeff * * ffield-CaSiOH-lammps.reax.txt Ca Si ...
neighbor 2.0 bin
neigh_modify every 10 delay 0 check yes
thermo_style custom step etotal temp press
thermo 10
velocity all create 300 345678 dist gaussian
timestep 0.0002
dump 1 all atom 50 poldervaartite-2x2x2-nvt.lammpstrj
fix 1 all qeq/reaxff 1 0.0 10.0 1.0e-6 reaxff maxiter ...
fix 2 all nvt temp 300.0 300.0 1
run 1000
write_data poldervaartite-2x2x2-nvt.lmp
次にNPTアンサンブルの計算へ。
# test reaxff CaSiOH potential for poldervaartite
units metal
boundary p p p
atom_style charge
read_data poldervaartite-2x2x2-nvt.lmp
pair_style reaxff NULL safezone 3.0 mincap 150
pair_coeff * * ffield-CaSiOH-lammps.reax.txt Ca Si ...
neighbor 2.0 bin
neigh_modify every 10 delay 0 check yes
thermo_style custom step etotal temp density press lx ly...
thermo 10
timestep 0.0002
#compute 1 Si msd
dump 1 all atom 50 poldervaartite-2x2x2-300K-1bar.lammps...
#dump 1 all cfg 100 *.cfg mass type xs ys zs vx vy vz fx...
fix 1 all qeq/reaxff 1 0.0 10.0 1.0e-6 reaxff maxiter ...
fix 2 all npt temp 300.0 300.0 $(100.0*dt) aniso 1 1 $(1...
run 10000
write_data poldervaartite-2x2x2-300K-1bar.lmp
これはNVTからNPTにして、圧力指定(1 bar)が追加されている...
#image(https://mkanzaki.sakura.ne.jp/images/poldervaartit...
次に同じReaxFFポテンシャルを使って、SiOSUB{SIZE(9){2}}-...
ちなみにSiOSUB{SIZE(9){2}}-HSUB{SIZE(9){2}}O系メルトの...
その後、もう少し初期構造を自分でカスタマイズしたいので...
#image(https://mkanzaki.sakura.ne.jp/images/SiO2-H2O-5000...
**Linux版ソースからインストール(2023/12/26)
既にコンパイルされている実行版は便利なのですが、色々と...
ソース(tarボール)は同じく[[lammpsページ:https://www.l...
デフォルトでは全てNOになっているので、必要なパッケージ...
パッケージを選択したら、コンパイルします。私はopenmpiを...
make mpi
シリアル版を作る場合は以下を実行します。lmp_serialができ...
make serial
.bashrcにsrcへのパスを書き込んでおきます。lammpsの実行は...
mpirun -np 8 lmp_mpi < in.cristobalite-npt
**Macの実行版
M3のMacBookAirを買ったので、lammpsをAnacondaでupdateし...
-MacBookAir Intel core i5 1.1 GHz CPU 2core使用:184 s
-MacBookAir M3 CPU 2core使用:119 s
-MacBookAir M3 CPU 4core使用:74 s
-Linux PC Intel i7 13700 8core使用:40 s
M3で走らせても多少早くなってました。
OVITOはApple Silicon対応版があったのでインストール。VESTA...
**注意
最初、石英を扱おうとしたのですが、途中でエラーが出まし...
単斜晶系等でbeta角度が120度近いと計算中にセルが変換され...
atom_styleがatomicの場合は、先に述べたようにOVITOから出...
unitsがrealとmetalでは単位が色々と異なります。特にtimes...
水素のような軽い元素は移動が速いので(温度が非常に高い...
ポテンシャルを指定するところ(pair_coeff)に書き込む元素...
COD等で拾ってくる構造には固溶体、原子が部分的にしか席を...
最近のIntelのCPUではパーフォーマンスコアとエフィシェン...
ページ名: