第1回lammps初心者向け講習会...2017/11/21 · 第1回lammps初心者向け講習会...
TRANSCRIPT
第1回LAMMPS初心者向け講習会
高度情報科学技術研究機構(RIST)利用支援部 吉澤香奈子
2017年11月21日(火) RIST東京事務所
1
Outline• MateriAppsLIVE!の設定• LAMMPSについて
– 力場(ポテンシャル)について– 実行時エラー
• LAMMPSのexamplesの実行– melt,micelle,colloidを実行する– 計算結果をVMDで可視化する
– micelleと colloidを3次元化する
• サイズを大きくした計算• restartを行う• 付録
2
MateriApps, 2013-2017. All rights reserved.
MateriApps LIVE! とは? • 仮想マシンでの利用やUSBメモリから直接ブートできる Live Linux
• Windows、Mac などで利用可 • インストール作業なしで物質科学アプリを実行できる
• バージョン1.12公開 (2017年7月17日) • 計算物質科学系の公開アプリ・ツールを収録
• abinit, AkaiKKR, ALPS, CP2K, Feram ,ERmod, DSQSS, Gromacs, HΦ, LAMMPS, mVMC, OpenMX, Quantum Espresso, SMASH, xTAPP 等
• ParaView, Tapioca, VESTA, VMD, XCrysDen… • GAMESS, VMDには自動インストーラーを準備
• MateriApps LIVE! サイトからダウンロード可能 • 2013年7月以来、3000+ コピーを配布
MateriApps, 2013-2017. All rights reserved. 3
MateriApps, 2013-2017. All rights reserved.
• VirtualBox インストーラ: VirtualBox-*-OSX.dmg, VirtualBox-*-Win.exe(https://www.virtualbox.org/wiki/Downloads からダウンロード可)
• MateriApps LIVE! VitualBox 仮想ディスクイメージ: MateriAppsLive-*-i386.ova(http://sourceforge.net/projects/materiappslive/files/ からダウンロード可)
• ドキュメントREADME.html, README-en.htmlhttps://github.com/cmsi/MateriAppsLive/wiki/MateriAppsLive-ova
必要なファイルのダウンロード
MateriApps, 2013-2017. All rights reserved. 4
MateriApps, 2013-2017. All rights reserved.
VirtualBox からの起動方法 ✓ USB メモリのファイルをパソコンに差し込む ✓ インストーラをダブルクリックして VirtualBox をインストール
• Windows版: VirutalBox-5.*-Win.exe • Mac版: VirtualBox-5.*-OSX.dmg • 途中の質問には適当に答える
✓ MateriApps LIVE! のインポート • MateriAppsLive-*-i386.ova をダブルクリック • VirtualBox が起動してインポート画面が開くので、「インポート」ボタンを押す
• 2~3分かかるが完了するとマネージャーが起動
• ホスト (ホストOS) : もともと動いている OS (Windows、Mac OS X など)のこと • 仮想マシン (ゲストOS) : VirtualBox の中で動いている OS (= MateriApps LIVE!)
MateriApps, 2013-2017. All rights reserved. 5
MateriApps, 2013-2017. All rights reserved.
VirtualBox の設定 ✓ 設定: 不要なポップアップメッセージを非表示にする
• Windows: USBメモリからコピーした vbconfig.bat をダブルクリック • Mac OS X: vbconfig.command をダブルクリックあるいはターミナルで「sh vbconfig.command」を実行
✓ 設定: ホストOSのディスクに仮想マシンからアクセスできるように 1. VirtualBox マネージャー画面で MateriAppsLive-* を選択し「設定」 2. 「共有フォルダー」タブを開き、右側の「+」(新規共有フォルダーを追加します)をクリック
3. 「フォルダーのパス」の右側の「v」マークをクリックし、「その他」を選択。さきほどUSBメモリからコピーしたフォルダーを選択する
4. 「自動マウント」をチェックし「OK」⇒ さらに「OK」 5. 仮想マシンを起動すると、3で選択したフォルダが、/media/sf_... の下に見える
MateriApps, 2013-2017. All rights reserved. 6
MateriApps, 2013-2017. All rights reserved.
VirtualBox からの起動 1. 「MateriAppsLive…」を選択
2. 起動ボタンを押す
3. ログイン画面がでるまでそのまま待つ
MateriApps, 2013-2017. All rights reserved. 7
MateriApps, 2013-2017. All rights reserved.
MateriApps LIVE! へのログイン • しばらするとログイン画面が表示される • 下記の情報を使ってログイン
• ユーザ名(login): user • パスワード(password): live
• 右の画面が出れば成功 • 重要なボタン
• スタートメニュー • 終了
MateriApps, 2013-2017. All rights reserved. 8
MateriApps, 2013-2017. All rights reserved.
ターミナル の起動 • スタートメニュー「Accessories」の中の「LXTerminal」を選択
MateriApps, 2013-2017. All rights reserved. 9
MateriApps, 2013-2017. All rights reserved.
日本語キーボード、コピー&ペースト • 日本語キーボード(「@」が「P」の右にあるタイプ)では、記号が正しく入力できません。その場合、以下の設定を行ってください • 「スタートメニュー」⇒「Accessories」⇒「LXTerminal」 • ターミナル(端末)が立ち上がるので「setxkbmap -layout jp」と入力しリターン • 「@」が正しく入力できることを確認 • (英語配列に戻したいとき: 「setxkbmap -layout us」)
• ホストOSでPDFファイルからコピーした文字列を、仮想マシンの端末でペーストする方法 • 端末上で右クリック ⇒「Paste」 • あるいは、「shift」と「control」を同時に押しながら「V」 • 文字列のコピーは、右クリック ⇒「Copy」あるいは「shift + control + C」
MateriApps, 2013-2017. All rights reserved. 10
LAMMPSについて• Large-scaleAtomic/MolecularMassivelyParallelSimulator
hDp://lammps.sandia.gov/
• 並列計算機のために設計された分子動力学シミュレータ
– 物質系を構成する原子や分子の1つ1つに対する運動方程式を数値的に計算している
– 高並列計算のため2007年にC++でオブジェクト指向で完全に、rewriteされているオブジェクト指向 àコード拡張・公開 à多分野・多スケールに渡る計算
– 現在、粒子系統合シミュレータとして高い支持
• ソースコードダウンロードhDp://lammps.sandia.gov/download.htmlStableversion(11Aug2017):2017年11月21日現在ソースファイル名:lammps-stable.tar.gz(注)Stable以外の最新のコードもある 過去のメジャーなコード:hDp://lammps.sandia.gov/tars/
• ドキュメントhDp://lammps.sandia.gov/doc/Manual.html 何か不明なことがあったら
このページを見る11
力場(ポテンシャル)について(1)• LAMMPSForceFields
hDp://lammps.sandia.gov/doc/99/force_fields.html• まずは、パッケージにある examples や potenXalsを参考にする。
(例)LAMMPSのパッケージ(lammps-stable.tar.gz)のlammps-11Aug17/potenXalsを参考にする。
• 目安としては、計算対象の物性が正しいものを選ぶ。(例)常温常圧の鉄は、体心立方格子構造(bcc構造)lammps-11Aug17/potenXals/Fe_mm.eam.fsを用いる#InteratomicpotenXal−EmbeddedAtomMethodpairstyleeam/fs#interacXonpairs,filename,Elementparameterspaircoeff∗∗Femm.eam.fsFe
• 自分でカスタマイズできるが、初心者には難しい。(à 専門家に相談)
• 力場(ポテンシャル)にこだわっても、結局は古典計算?経験的に決めるà過去の成功例、論文になっているポテンシャルを用いる。 (非経験的に決めるなら第一原理計算)
入力ファイルの書式例
物性が正しいように決める
12
力場(ポテンシャル)について(2)• ポテンシャルのデータベース
InteratomicPotenXalsRepositoryProjecthDps://www.ctcms.nist.gov/potenXals/(例)Al-NI:hDps://www.ctcms.nist.gov/potenXals/Al-Ni.html Mishin-Ni-Al-2009.eam.alloyを用いる
• 分子モデリングソフトウェアで設定する 下記のURLなどを参考にする Winmostar:hDps://winmostar.com/jp/manual_jp.html Molby:hDp://molby.osdn.jp/doc/ja/index.html
13
実行時エラー(1)• 実行時にエラーが出た場合
ホームページhDp://lammps.sandia.gov/doc/SecXon_errors.html#error12.4.Errors:1-3bondcountisinconsistent
AninconsistencywasdetectedwhencompuXngthenumberof1-3neighborsforeachatom.Thislikelymeanssomethingiswrongwiththebondtopologiesyouhavedefined.
1-4bondcountisinconsistentAninconsistencywasdetectedwhencompuXngthenumberof1-4neighborsforeachatom.Thislikelymeanssomethingiswrongwiththebondtopologiesyouhavedefined.
AcceleratorsharingisnotcurrentlysupportedonsystemMulXpleMPIprocessescannotsharetheacceleratoronyoursystem.ForNVIDIAGPUs,seethenvidia-smicommandtochangethissecng.
AllanglecoeffsarenotsetAllanglecoefficientsmustbesetinthedatafileorbytheangle_coeffcommandbeforerunningasimulaXon.
…を参考にする。
14
実行時エラー(2)• 経験を積むとエラーの原因がわかりやすくなる。• (例)colloidのパッケージが入ってない場合
examplesのcolloidを実行しようとすると、ERROR:Unknownpairstylecolloid(../force.cpp:246)Lastcommand:pair_style colloid12.5のエラーが出る。hDp://lammps.sandia.gov/doc/SecXon_errors.html#error12.4.Errors:のページには、UnknownpairstyleThechoiceofpairstyleisunknown.àmakeyes-colloidにように、 colloidのパッケージを入れれば解決する。 (パッケージのインストールについては、付録を参照)
入力ファイル(in.colloid)において、“pair_stylecolloid12.5”という指定が許されていない
15
LAMMPSのexamplesについて
• 2次元系(ビジュアル重視)– colloid,crack,flow,fricXon,micelle,nemd,obstacle,shear
• 3次元系(簡単なもの)– melt,pepXde
• 力場– dreiding,kim,reax
• 高速化機能– cuda,gpu,intel
例 説明
melt rapidmeltof3dLJsystem
micelle self-assemblyofsmalllipid-likemoleculesinto2dbilayers
colloid bigcolloidparXclesinasmallparXclesolvent,2dsystem
pepXde dynamicsofasmallsolvatedpepXdechain(5-mer)
高分子物理向けのExamples
Ø LAMMPSのexamplesLAMMPSパッケージ: lammps-11Aug17/examples(MateriAppsLIVE!:/usr/share/doc/lammps-doc/examples)
Ø examplesの解説hDp://lammps.sandia.gov/doc/SecXon_example.html
16
高分子物理向けのexamples
• melt:FCC格子状に並んだLJ粒子が溶けて拡散• micelle:3要素からなるミセル系。会合していく
2次元の計算(à 3次元への拡張を考える)
• colloid:大きいコロイド粒子と小さいLJ粒子の系 2次元の計算(à 3次元への拡張を考える) ※COLLOIDpackageのインストールが必要 (本日の講習では、インストールされているもの を用いる。)
17
examples/melt(1)
melt:FCC格子状に並んだLJ粒子が溶けて拡散
# 3d Lennard-Jones melt
units ljatom_style atomic
lattice fcc 0.8442region box block 0 10 0 10 0 10create_box 1 boxcreate_atoms 1 boxmass 1 1.0
velocity all create 3.0 87287
pair_style lj/cut 2.5pair_coeff 1 1 1.0 1.0 2.5
neighbor 0.3 binneigh_modify every 20 delay 0 check no
fix 1 all nve
入力ファイル: in.melt
力場パラメータの設定
速度の設定
Lennard-Jones(LJ)古典粒子
格子定数:FCC0.8442シミュレーションボックスの指定à今は、4,000原子の計算
NVEアンサンブル
fixで系の制御
18
#dump id all atom 50 dump.melt#dump2allimage25image.*.jpgtypetype&#axesyes0.80.02view60-30#dump_modify2pad3#dump3allmovie25movie.mpgtypetype&#axesyes0.80.02view60-30#dump_modify3pad3thermo50run250
入力ファイル: in.melt (続き)
# は、コメントアウトdump:出力形式の指定
計算実行(step)数
examples/melt(2)
19
実行準備
• ホームディレクトリに作業ディレクトリを作る。(例:$HOME/lammps)$mkdirlammps
• 作成した作業ディレクトリへ移動する。 ($HOME/lammps)$cdlammps
• exmapleファイルのコピー(melt,micelle,colloid)$cp-r/usr/share/doc/lammps-doc/examples/melt./$cp-r/usr/share/doc/lammps-doc/examples/micelle./$cp-r/usr/share/doc/lammps-doc/examples/colloid./
20
meltの実行(1)• meltへ移動
$cdmelt
• meltの中のファイルの確認$ls�in.meltlog.5Oct16.melt.g++.1log.5Oct16.melt.g++.4
• in.meltの実行$lammps<in.melt�LAMMPS(11Aug2017)OMP_NUM_THREADSenvironmentisnotset.DefaulXngto1thread.(../comm.cpp:90)using1OpenMPthread(s)perMPItask…�Total#ofneighbors=151513Aveneighs/atom=37.8783Neighborlistbuilds=12DangerousbuildsnotcheckedTotalwallXme:0:00:00
• log.lammps というログファイルも出力される。
エラーメッセージなしでTotalwallXmeが表示されれば正常終了
21
meltの実行(2)• MPIプロセス数=4での実行
$mpirun-n4lammps<in.melt�LAMMPS(11Aug2017)…1by2by2MPIprocessorgrid…�Performance:90089.282tau/day,208.540Xmesteps/s22.1%CPUusewith4MPItasksx1OpenMPthreads…
マシンに4コア以上ある場合
22
meltの実行(3)• スレッド数=4での実行
$�exportOMP_NUM_THREADS=4$echo$OMP_NUM_THREADS4$lammps<in.melt���LAMMPS(11Aug2017)using4OpenMPthread(s)perMPItask…��Performance:115561.777tau/day,267.504Xmesteps/s97.6%CPUusewith1MPItasksx4OpenMPthreads…(補足)OMP_NUM_THREAD指定の削除$�unsetOMP_NUM_THREADS$echo$OMP_NUM_THREADS
マシンに4コア以上ある場合
23
micelle と colloid の実行• micelleへ移動
$cd$HOME/lammps/micelle$gzip-ddata.micelle.gz$lammps<in.micelle
• colloidへ移動$cd$HOME/lammps/colloid$lammps<in.colloid
melt と同様の操作
melt,micelle と同様の操作
(注) MateriAppsLIVE!では、ファイルが gzになっているものがあるので、その時は解凍してから使う。
24
VMDで可視化する(1)• LAMMPSでdumpファイルの出力 à入力ファイルの編集• $HOME/lammpas/meltへ移動
$cd$HOME/lammpas/melt
• in.meltのバックアップを取る$cpin.meltin.melt.org :(例)
• meltの入力ファイルをエディタ(emacs)で編集$emacsin.melt&
25
VMDで可視化する(2)• emacs の起動
① ②
① チェックを入れる② ここ(青字)をクリック
③
26
VMDで可視化する(3)• meltの入力ファイル(in.melt)の編集
#を取る
27
VMDで可視化する(4)• 保存して、emacsを閉じる
保存
28
VMDで可視化する(5)• 編集した in.melt の実行
$lammps<in.melt
• dump.melt というファイルができているか確認する。$ls�dump.melt in.melt.org log.5Oct16.melt.g++.4in.melt log.5Oct16.melt.g++.1 log.lammps
エラーメッセージなしでTotalwallXmeが表示されれば正常終了
29
VMDで可視化する(6)• VMDの起動
「MateriApps」 の 「VMDSetup」 を選択
30
VMDで可視化する(7)• 「VMDSetup」 において、usernameとpasswordを入力
username:ristと password:rist1121
① usernameと passwordを入力
③ setupが終わったら「StartVMD」ボタンを押す
ß これは、この講習会用のアカウントなので、講習会以外でSetupするときは各自アカウントを作成する。
31
② 「install」ボタンを押す
VMDで可視化する(8)• VMDのウィンドウ
• Macの場合opXonを押しながらドラッグ
• Windowsの場合 ALTを押しながらドラッグ
すると、赤で囲まれたウィンドウを移動できる。
32
VMDで可視化する(9)• dump.melt を開く
①
②
33
VMDで可視化する(10)• ファイルタイプの選択 à 「LAMMPSTrajectory」
①
②
34
VMDで可視化する(11)• ディスプレイの起動(Linesの表示)
35
VMDで可視化する(12)• 表示形式の調整
①
②
④
③ 0.2くらいに調整
36
VMDで可視化する(13)• ディスプレイ(VDWの表示)
37
VMDで可視化する(14)• MDスタート
ここをクリック
38
micelle と colloidの可視化の課題
1. micelleとcolloidに対しても dumpファイルを出力2. micelleと colloidの dumpファイルをVMDで可視化
39
micelle の可視化(1)# 2d micelle simulation
dimension 2
neighbor 0.3 binneigh_modify delay 5
atom_style bond
# Soft potential push-off
read_data data.micellespecial_bonds fene
…
fix 1 all nve
…
thermo 1000
dump 1 all atom 2000 dump.micelle…
2次元の計算
NVEアンサンブル
データファイル data.micelleを読み込む
#を取る40
micelle の可視化(2)• 編集した in.micelle の実行
$lammps<in.micelle
• dump.micelleというファイルができているか確認する。$ls��data.micelledump.micellelog.5Oct16.micelle.g++.1.gzlog.lammpsdef.micellein.micellelog.5Oct16.micelle.g++.4.gz
エラーメッセージなしでTotalwallXmeが表示されれば正常終了
41
micelle の可視化(3)• dump.micelleを開く
可視化をすると計算している系がわかりやすい。
42
micelleとcolloidの3次元化の課題
1. 2次元のmicelleとcolloidが、3次元になるように入力ファイルを編集する
2. こられの結果をVMDで可視化する
• 作業ディレクトリを作る。(例:$HOME/lammps/micelle3dなど)$cd$HOME/lammps$mkdirmicelle3d$mkdircolloid3d
• micelle(colloid)ディレクトリから in.micell(in.colloid) をコピーする$cp./micelle/in.micelle./micelle3d$cp./micelle/data.micelle./micelle3d$cp./colloid/in.colloid./colloid3d
43
micelleの3D化について(1)
1. 変更点(inファイル)– Dimension文 コメントアウト– Replicateコマンド (read_dataの下)
replicate1136– NPT計算に変更
fix1allnpttemp1.01.01.0iso3.03.010.0(計算時間がかかるようなら、run60000の回数を減らす)
2. 変更点(dataファイル)– PBC-boxの大きさ
0.0000000E+00 0.996023889 zlozhiここで、0.996023889=35.85686/36
44
micelleの3D化について(2)
#3dmicellesimulaXon#dimension2neighbor0.3binneigh_modifydelay5atom_stylebond#SowpotenXalpush-offread_datadata.micellereplicate1136special_bondsfenepair_stylesow1.12246pair_coeff**0.01.12246bond_styleharmonic
bond_coeff150.00.75velocityallcreate0.452349852variableprefactorequalramp(1.0,20.0)fix1allnpttemp1.01.01.0iso3.03.010.0fix2alltemp/rescale1000.450.450.021.0fix3alladapt1pairsowa**v_prefactor#fix4allenforce2dthermo50run1000unfix3à続く
in.micelle(入力ファイル)
Z方向に36個複製する
2次元の設定のコメントアウトà3次元
1(=ID)という名称で、全て(=all)の粒子に対して、NPT積分を行う。
温度(=temp)は、計算開始時は1.0、終了時
は1.0、時間単位1.0でdampする。isoは、外圧を指定する。
data.micelleのデータファイルが読み込まれる
45
コメントアウト
micelleの3D化について(3)
à 続く
#Mainrunpair_stylelj/cut2.5#solvent/head-full-sizeandlong-rangepair_coeff111.01.02.5pair_coeff221.01.02.5pair_coeff121.01.02.5#tail/tail-size-averagedandlong-rangepair_coeff331.00.752.5pair_coeff441.00.502.5pair_coeff341.00.672.5#solvent/tail-full-sizeandrepulsive
pair_coeff131.01.01.12246pair_coeff141.01.01.12246thermo1000dump1allatom2000dump.micelle#dump2allimage2000image.*.jpgtypetypezoom1.6#dump_modify2pad5adiam10.5adiam21.5adiam31.0adiam40.75#dump3allmovie2000movie.mpgtypetypezoom1.6#dump_modify3pad5adiam10.5adiam21.5adiam31.0adiam40.75reset_Xmestep0run60000
in.micelle(入力ファイル)
計算時間がかかるようなら減らす 46
micelleの3D化について(5)
LAMMPS3dmicelledatafile1200atoms300bonds0angles0dihedrals0impropers4atomtypes1bondtypes0angletypes0dihedraltypes0impropertypes0.0000000E+0035.85686xloxhi0.0000000E+0035.85686yloyhi0.0000000E+000.996023889zlozhiMasses
11.00000021.00000031.00000041.000000Atoms113920.0000.0000.0002011.1950.0000.0003012.3900.0000.0004013.5860.0000.0005014.7810.0000.000...
data.micelle(データファイル)
47
データファイルのフォーマット
48
LAMMPSDescripXon5atoms4bonds1 atomtypes1bondtypes-10.010.0xloxhi-10.010.0yloyhi-10.010.0zlozhiMasses11Atoms1110.00.00.02110.00.01.03110.00.02.04110.00.03.05110.00.04.0Bonds1112212331344145
データファイル
Massesatomtype番号,質量
Atoms粒子番号,Mol-ID,atomtype,x,y,z,wx,wy,wzVelociXes粒子番号,vx,vy,vzBondsボンド番号,bondtype,bond1,bond2
データフォーマット
※MassesとAtomsの間に、力場 パラメータを記録する場合もある。
※Bondsの後に、Angles,Dihedrals,Impropersを記録する
場合もある。
※速度データを含む場合 (AtomsとBondsの間)VelociXes10.50.50.5
周期境界条件 のwrap数
micelleの3D化について(4)• in.micelleと data.micelleの編集後、実行
$lammps<in.micelle• dump.micelleを開く
VMDで可視化すると、3D になったことが確認出来る
49
colloidの3D化について(1)
1. 変更点(inファイル)– Dimension文 コメントアウト– Lacceコマンド → laccesc0.001
濃度を下げて、オーバラップを解除– Regionコマンドを変更。
regionboxblock030030030– Fix-enforce2dを、コメントアウト(計算時間がかかるようなら、 run50000の回数を減らす)
50
colloidの3D化について(2)
#BigcolloidparXclesandsmallLJparXclesunitsljatom_stylesphere#dimension2laccesc0.001regionboxblock030030030create_box2boxcreate_atoms1boxsetgroupalltype/fracXon20.9623984settype1mass9settype2mass1velocityallcreate1.4487287loopgeom#mulXneighborandcommforefficiency
neighbor1mulXneigh_modifydelay0comm_modifymodemulX#colloidpotenXalpair_stylecolloid12.5pair_coeff111.01.05.05.012.5pair_coeff125.01.05.00.07.0pair_coeff2210.01.00.00.02.5fix1allnpttemp2.02.01.0iso0.01.010.0drag1.0&mtknopchain0tchain1#fix2allenforce2ddump1allatom1000dump.colloidà続く
in.colloid(入力ファイル)
51
colloidの3D化について(3)
à 続く#dump2allimage1000image.*.jpgtypetype&#zoom1.5centerd0.50.50.5#dump_modify2pad5adiam15.0adiam21.5#dump3allmovie1000movie.mpgtypetype&#zoom1.5centerd0.50.50.5#dump_modify3pad5adiam15.0adiam21.5thermo_stylecustomsteptempepairetotalpressvolthermo1000Xmestep0.005run50000
in.colloid(入力ファイル)
計算時間がかかるようなら減らす 52
サイズを大きくした計算(1)• 作業ディレクトリを作る。(例:$HOME/lammps/melt2)
$cd$HOME/lammps$mkdirmelt2
• 作成した作業ディレクトリへ移動する。($HOME/lammps/melt2)$cdmelt2
• meltディレクトリから in.meltをコピーする$cp../melt/in.melt./
• meltの入力ファイルを開く$emacsin.melt
53
サイズを大きくした計算(2)
# 3d Lennard-Jones melt
units ljatom_style atomic
lattice fcc 0.8442region box block 0 40 0 40 0 40create_box 1 boxcreate_atoms 1 boxmass 1 1.0
velocity all create 3.0 87287
pair_style lj/cut 2.5pair_coeff 1 1 1.0 1.0 2.5
neighbor 0.3 binneigh_modify every 20 delay 0 check no
fix 1 all nve
256,000原子になる
54
サイズを大きくした計算(3)• 編集した in.melt の実行
$lammps<in.melt
• ログファイルの確認$catlog.lammps…Created256000atoms…
55
サイズを大きくした計算(4)
実行時間(時:分:秒)
手持ちのPC(iMac) FX10
プロセス数 1 4 16 256 576
4000原子1,000ステップ 0:00:02 0:00:01 0:00:01 0:00:05
4000原子10,000ステップ 0:00:29 0:00:11 0:00:12 0:00:03
256,000原子1,000ステップ 0:03:06 0:01:13 0:01:11 0:00:04 0:00:02256,000原子10,000ステップ 0:31:15 0:12:48 0:11:47 0:00:44 0:00:212,048,000原子1,000ステップ 0:27:04 0:10:06 0:08:56 0:00:36 0:00:152,048,000原子10,000ステップ 1:46:38 1:28:35 0:05:55 0:02:30
• 主にプロセス数当たりの粒子数減少に伴う実行時間の減少à計算規模(原子数など)が小さくて、プロセス数を増やすと、通信等により実行時間が増加する場合がある。
• 計算規模が大きくなる àHPCの利用へ
フラットMPIiMac:2.8GHzIntelCorei7
examples/melt
56
サイズを大きくした計算(5)examples/meltフラットMPI(原子数:4,000、256,000、2,048,000)
0 0.002 0.004 0.006 0.008
0.01 0.012 0.014 0.016
0 2 4 6 8 10 12 14 16
elap
sed
time
[sec
/ste
p]
Number of processes
4,000 atoms
4,000原子:〜16プロセス256,000原子:〜600プロセス2,048,000原子:600プロセス以上
性能測定はRISTの高度化支援へ
0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09
0.1
0 100 200 300 400 500 600
elap
sed
time
[sec
/ste
p]Number of processes
256,000 atoms2,048,000 atoms
57
restartを行う(1)コマンドの紹介• write_restart/restart:計算途中ファイル出力する。• read_restart:計算を再開する。• clear:リセット
このコマンドを使用すると、1つの入力ファイルで複数のジョブを順番に実行できる。(例)(commandsfor1stsimulaXon)clear(commandsfor2ndsimulaXon)
• log:LAMMPSのログファイル(log.lammps)をクローズして、指定されたログファイルにログを取る。
58
restartを行う(2)• examplesの hugoniostatを実行する
exmapleファイルのコピー(hugoniostat)$cp-r/usr/share/doc/lammps-doc/examples/hugoniostat./(注)in.hugoniostatの実行には、SHOCKパッケージが必要。SHOCKパッケージがないと、ERROR:Unknownfixstylenphug(../modify.cpp:854)Lastcommand:fixmyhugallnphugtemp1.01.010.0z40.040.070.0drag0.0tchain1pchain0のエラーが出る。
• hugoniostatディレクトリの中を確認する$ls�in.hugoniostat.gzlog.5Oct16.hugoniostat.g++.1log.5Oct16.hugoniostat.g++.4$gzip-din.hugoniostat.gz
(注) MateriAppsLIVE!では、in.hugoniostatファイルが gzになっているので、解凍してから使う。
59
restartを行う(3)in.hugoniostat(入力ファイル)
# This script reproduces stress trajectories from Fig. 1 in# Ravelo, Holian, Germann, and Lomdahl, PRB 70 014103 (2004)…
units ljboundary p p p
atom_style atomic …
# Define initial velocity
velocity all create 0.01 87287 mom yes rot yes dist gaussianwrite_restart restart.equil
# Start Run #1
log log.nodrag
clearread_restart restart.equil …
restartファイルの出力
restartファイルの入力
clearによってリセットを行い、read_restartで、保存しておいた restart.equilの構造から計算を再開する
60
restartを行う(4)
…# Start Run #1
log log.nodrag
clearread_restart restart.equil
…
# Start Run #2
log log.drag
clearread_restart restart.equil
…
# Start Run #3
log log.nhchains
clearread_restart restart.equil…
in.hugoniostat(入力ファイル)
保存しておいた restart.equil(write_restartrestart.equilで出力した)の構造をRun1〜3の計算条件で計算する。ログファイルは、Run1:log.nodragRun2:log.dragRun3:log.nhchainsにそれぞれ保存
61
restartを行う(5)• in.hugoniostatの実行
$lammps<in.hugoniostat>log.hugoniostat(log.hugoniostatには標準出力の結果が保存される。)
• log.nodrag,log.drag,log.nhchainsというファイルができているか確認する。$ls��in.hugoniostat log.drag log.nodraglog.15Feb16.hugoniostat.g++.1 log.lammpsrestart.equillog.15Feb16.hugoniostat.g++.4 log.nhchainsstress_vs_t.datlog.hugoniostat
• それぞれのログファイルの中身を確認する。$catlog.nodragなど
• log.hugoniostatには、Run1〜3(log.nodrag,log.drag,log.nhchains)の結果が出力されている。
62
付録
63
(1)Windowsでの利用(バイナリが配布されている)l LAMMPS-ICMSWindowsInstallerRepository
hDp://rpm.lammps.org/windows.html例) バイナリファイル名(32ビット):lammps-32bit-latest.exe(注)64ビット版のバイナリもあるCygwin(hDps://www.cygwin.com/)を用いて実行(MPIを用いるときは、hDp://www.mpich.org/staXc/tarballs/1.4.1p1/mpich2-1.4.1p1-
win-ia32.msiをインストール)実行例(個人の環境によって異なる可能性あり)• lammps-32bit-latest.exeをダウンロードして実行(インストール)• Cygwinを起動
サンプルのあるディレクトリ (デフォルトのままインストールした場合)/cygdrive/c/Program\Files/LAMMPS\32-bit\20160124/Examples実行ファイルのあるディレクトリ/cygdrive/c/Program\Files/LAMMPS\32-bit\20160124/bin$lmp_serial.exe<(inputfile) ßシリアルで実行$lmp_mpi.exe<(inputfile) ßMPIで実行 64
(2)Linuxでの利用l ソースをコンパイル
実行例(個人の環境によって異なる可能性あり)
ターミナルを起動
ソース(lammps-stable.tar.gz)を解凍
à ディレクトリ lammps-11Aug17 を作る
$tarzxvflammps-stable.tar.gz
必要に(利用したい機能に)応じてパッケージの追加
http://lammps.sandia.gov/doc/Section_packages.html
$cdlammps-11Aug17/src$makepackage-statusß パッケージの一覧の表示$makeyes-colloid :(例)COLLOIDパッケージを追加
• シリアルで実行$cd./lammps-7Dec15/src$makeserial$./lmp_serial<(inputfile)
• MPIで実行(OpenMPIなどが必要)$cd./lammps-7Dec15/src$makempi$./lmp_mpi<(inputfile) 65
(3)Macでの利用(ソースをコンパイル:コンパイラが必要)OSXElCapitan での実行例(個人の環境によって異なる可能性あり)ターミナルを起動ソース(lammps-stable.tar.gz)を解凍 àディレクトリ lammps-11Aug17を作るl シリアルでコンパイル
$cdlammps-11Aug17/src$makeserial$lmp_serial<(inputfile)
l MPIでコンパイル(OpenMPIなどが必要)$cdlammps-11Aug17/src$makempi$lmp_mpi<(inputfile)
(注)Mac用のmakefile:lammps-11Aug17/src/MAKE/MACHINES/Makefile.mac もある。
66
LAMMPSのGUIアプリ(1)• J-OCTA hDps://cae.jsol.co.jp/product/material/jocta/– 2005年 JSOL(日本総研)が開発 OCTAの商用版
※ Student Edition(機能制限付きの無償版)がある
– LAMMPSをマルチスケールシミュレーション統合環境に拡張でき、多機能なプリポストが利用可能
ü COGNACのデータに基づいて、LAMMPSデータと相互に変換
ü LAMMPSの入力ファイルが自動生成され、手動修正も可能
ü 結果ファイルは自動的にCOGNACデータに変換される
Copyright © 2016 JSOL Corporation All Rights Reserved
JSOLについて
1
材料シミュレーション
電磁場解析 構造解析、成形シミュレーション
社員数1300人、計算科学分野は150人 20以上のシミュレーション,
CAE(Computer Aided Engineering)ソフトウェア ミクロからマクロまで、幅広いソリューション
67
LAMMPSのGUIアプリ(2)• Winmostar hDps://winmostar.com/– 株式会社クロスアビリティが開発・販売– 企業ユースで15万円より(トライアル版あり)
– サポート、講習会(関東・関西)、個別カスタマイズあり– 平均20ダウンロード/日– 国内外にシングルライセンス593ユーザ、機関ライセンス41契約– LAMMPSの簡易設定、高度な結果処理が可能– Gromacs、Amber、MODYLASにも対応– 古典だけでなくCPMD、ReaxFF、DC-DFTB、QM/MMMDにも対応
68
LAMMPSのGUIアプリ(3)• その他のツール
Pre/PostProcessingToolsforusewithLAMMPS(紹介サイト)hDp://lammps.sandia.gov/prepost.html可視化ツール– VMD hDp://www.ks.uiuc.edu/Research/vmd– OVITO hDp://www.ovito.org
OVITO
69
LAMMPSのベンチマークについて(1)
• LAMMPSのベンチマークhDp://lammps.sandia.gov/bench.htmlホームページで、ベンチマークの結果と、ベンチマーク用の入力ファイルの公開 (cf.Gromacs:hDp://www.gromacs.org/About_Gromacs/Benchmarks)
à自身の環境でのベンチマークと比較する
70
LAMMPSのベンチマークについて(2)
• 力場による性能の違いhDp://lammps.sandia.gov/bench.html#potenXals
àホームページで公開されている情報を活用する
≈71
(注)LAMMPSの開発グループが公開している情報 hDp://lammps.sandia.gov/bench.html ホームページで、公開されている入力ファイルについて (LAMMPSのパッケージlammps-11Aug17/bench/POTENTIALS にも同じファイルが置いてある。)
– 書式が古い à 最新版のLAMMPSで動かすには、変更が必要(例)“InteratomicpotenXalcomparisons“hDp://lammps.sandia.gov/bench.html#potenXalsにあるin.granular LAMMPS(30Jun2012)版、ならそのまま動くが、最新版では、communicate―>comm_modifymodeなどの変更の必要 72
LAMMPS@MateriApps LIVE! のアップデート
$sudoapXtudeupdate$sudoapXtudeupgradelammpslammps-doc
73