地域密着型エリア広告配信リクルートの地域密着型広告ドコイク?アドネットワーク Ads by ドコイク?[無料でホームページを作成] [通報・削除依頼]
[無料でホームページを作成] [通報・削除依頼]

LAMMPS(Mac)

  (準備中)ここでは古典的な分子動力学法であるLAMMPSのセットアップから基本的な計算までを解説する(熱伝導率が計算可能なので少しずつ調査する予定)。
-------------------------------------------------------------------------------
■ LAMMPS Install (MacBook Air, OSX v10.8, 1.7GHz Intel Core i5, 4GB 1600 MHz DDR3, 11-inch, Mid 2012)

□ git
1. http://code.google.com/p/git-osx-installer/ -> Download the installers here.
2. Download git-2.0.1-intel-universal-snow-leopard.dmg (10.8 MB) 
3. Double-click
4. Double-click git-2.0.1-intel-universal-snow-leopard.pkg
5. 続ける
6. インストール
7. パスワードを入力
8. 閉じる
※ 移動 -> ユーティリティ -> ターミナル.app で which git と入力すると git がインストールされたアドレスが分かる。/usr/local/git/bin/git となる。
※ 面倒なので、ターミナル.appを押しながらデスクトップに移動させておくとよいだろう。

□ gfortran
1. http://hpc.sourceforge.net -> gcc-4.9-bin.tar.gz
2. sudo tar zxvf $HOME/Downloads/gcc-4.9-bin.tar -C /

□ make
0. Apple ID の登録をしてください。
1. https://developer.apple.com/downloads/index.action# -> Xcode 4.4
2. double-click xcode446938108a.dmg
3. double-click Xcode.app
4. 開く
5. Agree
6. Install
7. パスワードを入力
8. Start Using Xcode
9. Xcode.app -> Xcode -> Preferences... -> Downloads -> command Line Tools
10. Install
11. デスクトップにあるXcode.appをアプリケーションに入れます
12. sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer
References
[1] http://choreonoid.org/ja/install/build-macosx.html
[2] http://deepfolte.hatenablog.com/entry/20120225/1330129212

□ OpenMPI
1. http://www.open-mpi.org/software/ompi/v1.4/ -> openmpi-1.4.5.tar.gz
2. cd $HOME
3. cd Documents
4. mkdir Workspace
5. cd Workspace
6. mkdir LAMMPS
7. cd LAMMPS
8. mkdir OpenMPI
9. cd OpenMPI
10. tar zxvf $HOME/Downloads/openmpi-1.4.5.tar
11. cd open*
12. ./configure
13. make
14. make check
15. sudo make install

□ FFTW3
1. http://www.fftw.org/download.html -> fftw-3.3.4.tar.gz
2. cd $HOME/Documents/Workspace/LAMMPS
3. tar zxvf $HOME/Downloads/fftw-3.3.4.tar
4. cd fft*
5. ./configure  --enable-mpi --enable-threads
6. make
7. make check
8. sudo make install 

□ LAMMPS (git install case)
1. cd Document
2. mkdir Workspace
3. cd Workspace
4. mkdir LAMMPS
5. cd LAMMPS
6. git clone https://github.com/lammps/lammps lammps
 or git clone https://bitbucket.org/akohlmey/lammps lammps
※ネットワークは専門外なので、凄く暇な時に調べる予定。

□ LAMMPS ( I recommend this case)
1. download: LAMMPS --- Stable version (http://lammps.sandia.gov/download.html#tar)
2. Download Now
3. cd $HOME/Documents/Workspace/LAMMPS
4. tar zxvf $HOME/Downloads/lammps-30Oct14.tar
※ ○ LAMMPS --- Stable version -> ● LAMMPS --- Stable version にして、「Download Now」を押す。

□ Compiling (very simple case)
1. cd $HOME/Documents/Workspace/LAMMPS/lam*
2. cd src
3. make mpi
※ mpirun -np 4 $HOME/Documents/Workspace/LAMMPS/lam*/src/lmp_mpi < case.in

□ Compiling (lammps-stable.tar.gz, lammps-30oct14 case)
1. cd $HOME/Documents/Workspace/LAMMPS/lam*/
2. cd src
3. vi $HOME/Documents/Workspace/LAMMPS/lam*/src/MAKE/Makefile.mpi
◇ ifort case
  cp $HOME/Documents/Workspace/LAMMPS/lam*/src/MAKE/OPTIONS/Makefile.intel_cpu $HOME/Documents/Workspace/LAMMPS/lam*/src/MAKE/Makefile.mpi
◇ using fftw3 that you compiled
  cp $HOME/Documents/Workspace/LAMMPS/lam*/src/MAKE/OPTIONS/Makefile.fftw $HOME/Documents/Workspace/LAMMPS/lam*/src/MAKE/Makefile.mpi
◇ cuda (GPU) case
  cp $HOME/Documents/Workspace/LAMMPS/lam*/src/MAKE/OPTIONS/Makefile..kokkos_cuda $HOME/Documents/Workspace/LAMMPS/lam*/src/MAKE/Makefile.mpi
4. make mpi
※ Please, see $HOME/Documents/Workspace/LAMMPS/lam*/src/MAKE/MACHINES'
※ mpirun -np 4 $HOME/Documents/Workspace/LAMMPS/lam*/srclmp_mpi < input.file

□ benchmark test
1. cd $HOME/Documents/Workspace/LAMMPS/lam*
2. cd src
3. cp lmp_mpi ../bench
4. cd ../bench
5. mpirun -np 4 lmp_mpi < in.lj

□ standard (after compiling meam, etc. see below) (no check)
1. cd $HOME/Documents/Workspace/LAMMPS/lam*
2. cd src
3. make package-status
4. make yes-std
5. make no-gpu
6. make no-kim
7. make no-voronoi
8. make mpi
※ retry: make clean-all -> make or make yes-std ......

□ standard (after compiling meam, VORONOI, etc. see below)
1. cd $HOME/Documents/Workspace/LAMMPS/lam*
2. cd src
3. make no-all
4. make package-status
5. make yes-std
6. make no-gpu
7. make no-kim
8. make no-kokkos
9. make mpi
※ retry: make clean-all -> make or make yes-std ......

□ standard (after compiling meam, VORONOI, etc. see below) (unsuccess)
1. cd $HOME/Documents/Workspace/LAMMPS/lam*
2. cd src
3. make package-status
4. make yes-std
5. make no-poems
6. make no-gpu
7. make no-kim
8. make makelib
9. make makeshlib
10. make stubs
11. make mpi
※ retry: make clean-all -> make or make yes-std ......

□ standard (after compiling KIM API and VORONOI, see below)
1. cd $HOME/Documents/Workspace/LAMMPS/lam*
2. cd src
3. make package-status
4. make yes-std
5. make no-gpu
6. make mpi
※ retry: make clean-all -> make or make yes-std ......
※ (unsuccess for kim library) make clean-all -> make no-kim -> make mpi
-------------------------------------------------------------------------------
■ writer
□ vi
 使えるようになると本当に高速で書き換えたり編集できるので、是非ともマスターして欲しい。初めてプロの操作を見たとき、本当に同じソフトで人間が行える動作なのかと驚いた。MacやLinuxで既にインストールされているので是非ともプロ級まで使いこなして欲しい。
[1] http://www.envinfo.uee.kyoto-u.ac.jp/user/susaki/command/vi.html
[2] http://net-newbie.com/linux/commands/vi.html 
[3] http://www.insnet.co.jp/homepage/technical/vi/ 
[4] http://motw.mods.jp/Vim/command.html 
[5] http://d.hatena.ne.jp/language_and_engineering/20121207/p1
□ emacs
[1] http://www.wakayama-u.ac.jp/~takehiko/webprg/03.html 
[2] http://hogehoge.konjiki.jp/ 
[3] https://www.shido.info/lisp/scheme_emacs.html
[4] http://yohshiy.blog.fc2.com/blog-entry-256.html 
[5] http://sourceforge.jp/magazine/09/04/06/1138226/2
[6] http://nigohiroki.hatenablog.com/entry/2012/09/16/005841
-------------------------------------------------------------------------------
■ libraries and tools

□ libraries
  • atc (libatc.a): atomistic-to-continuum methods
     cd $HOME/Documents/Workspace/LAMMPS/lam*/lib/atc
     make -f Makefile.mpic++
  • linalg (liblinalg.a): set of BLAS and LAPACK routines needed by USER-ATC packag
     cd $HOME/Documents/Workspace/LAMMPS/lam*/lib/linalg
     make -f Makefile.gfortran
(unsuccess)
  • poems (libpoems.a): POEMS rigid-body integration package
     cd $HOME/Documents/Workspace/LAMMPS/lam*/lib/poems
     make -f Makefile.g++
     or make -f Makefile.icc
  • meam (libmean.a): modified embedded atom method (MEAM) potential
     cd $HOME/Documents/Workspace/LAMMPS/lam*/lib/meam
     make -f Makefile.gfortran
     or make -f Makefile.ifort
  • reax (libreax.a): ReaxFF potential
     cd $HOME/Documents/Workspace/LAMMPS/lam*/lib/reax
     make -f Makefile.gfortran
     or make -f Makefile.ifort
  • qmmm: quantum mechanics/molecular mechanics coupling interface
     cd $HOME/Documents/Workspace/LAMMPS/lam*/lib/qmmm
     make -f Makefile.gfortran
  • colvars (libcolvars.a): collective variable module (Metadynamics, ABF and more)
     cd $HOME/Documents/Workspace/LAMMPS/lam*/lib/colvars
     make -f Makefile.g++
  • awpmd (libawpmd.a): antisymmetrized wave packet molecular dynamics, AWPMD package
     cd $HOME/Documents/Workspace/LAMMPS/lam*/lib/awpmd
     make -f Makefile.mpicc
※ Please, see $HOME/Documents/Workspace/LAMMPS/lam*/lib/README

□ select library
1. cd $HOME/Documents/Workspace/LAMMPS/lam*
2. cd src
3. make package-status
    make no-all
    make yes-meam
    make yes-reax
4. make package-status
5. make mpi
※ retry: make clean-all -> make or make yes-std ......

□ tools
1. cd $HOME/Documents/Workspace/LAMMPS/lam*
2. cd tools
3. make

□ KIM API (kim-api-v1.6.3) (unsuccess) (金属系を扱う場合には使えるようにしておきたい)
1. download: https://openkim.org -> https://openkim.org/kim-api/#download
  "kim-api-vX.X.X.tgz"
2. cd $HOME/Documents/Workspace/LAMMPS
3. tar zxvf $HOME/Downloads/kim-api-v1.6.3.tar
4. cd kim*
5. cp Makefile.KIM_Config.example Makefile.KIM_Config
6. printf "g/^KIM_DIR/d\\ni\nKIM_DIR = `pwd`\n.\nw\nq\n" | ed Makefile.KIM_Config
7. make
8. vi $HOME/Documents/Workspace/LAMMPS/lam*/src/KIM/Makefile.lammps
  kim_SYSINC = -I/usr/local/kim-api-v1.6.3/KIM_API
  kim_SYSLIB = -lkim
  kim_SYSPATH = -L/usr/local/kim-api-v1.6.3/KIM_API
※ tar zxvf openkim-api-v1.4.1.tgz needs gfortran > 4.7.0
※ (unsuccess for now) make install -> kim_SYSINC = -I/usr/local/lib/openkim-api-v1.3.1/KIM_API, etc.

□ VORONOI (voro++-0.4.6)
1. download: http://math.lbl.gov/voro++/download/
2. cd $HOME/Documents/Workspace/LAMMPS
3. tar zxvf $HOME/Downloads/voro++-0.4.6.tar
4. cd vor*
5. vi config.mk
   (is not need to change this file)
6. make
7. sudo make install
10. vi $HOME/Documents/Workspace/LAMMPS/lam*/src/VORONOI/Makefile.lammps
   (is not need to change this file)

□ python ($HOME/Documents/Workspace/LAMMPS/lam*/python) (unsuccess)
1. cd $HOME/Documents/Workspace/LAMMPS/lam*
2. cd src
3. make makeshlib
4. make -f Makefile.shlib mpi
5. make install-python

□ xmoive
X11
1. http://xquartz.macosforge.org/landing/ -> XQuartz-2.7.7.dmg
2. double-click XQuartz-2.7.7.dmg
3. double-click XQuartz.pkg
http://macperson.net/mac-x11-xquartz/
xmovie (unsuccess)
1. $HOME/Documents/Workspace/LAMMPS/lam*/tools/xmovie
2. vi Makefile
3. LIBS    = $(XLIBDIR) -lX11 -lXaw -lm -> LIBS    = $(XLIBDIR) -lX11 -lXaw -lXt -lXext -lXmu -lXpm
4. make
Run: $HOME/Documents/Workspace/LAMMPS/lam*/tools/xmovie/xmovie -scale dump.case

[1] http://piyajk.com/archives/334
[2] http://seesaawiki.jp/qolo/d/LAMMPS%A4%CE%A5%A4%A5%F3%A5%B9%A5%C8%A1%BC%A5%EB
[3] http://opencae.gifu-nct.ac.jp/pukiwiki/index.php?LAMMPS%A4%CE%BE%F0%CA%F3
[4] http://lammps.sandia.gov/tutorials/italy14/Compiling_LAMMPS.pdf
[5] http://levlafayette.com/node/121
-------------------------------------------------------------------------------
■ GUI
  • octa (Win, Mac, or Linux)
1. download: http://www.octa.jp/index_jp.html
2. pass word: Please, see "What is OCTA (first line)" at http://www.octa.jp/OCTA/whatsOCTA.html
3. OCTA(HP) -> OCTA-BBS -> LOGIN
4. OCTA2013 -> OCTA2013 for Mac OS X 10.8 (Mountain lion)
5. download: OCTA2013 MacOSX .img
6. OCTA2013 MacOSX -> OCTA2013 MAC Binary Installer .pkg

Run
1. ターミナル -> gourmet
-------------------------------------------------------------------------------
■ graphic
  • VMD
1. download: http://www.ks.uiuc.edu/Research/vmd/ -> http://www.ks.uiuc.edu/Development/Download/download.cgi? PackageName=VMD -> Version 1.9.1 (2012-02-04) Platforms: -> MacOS X OpenGL (32-bit Intel x86)
※ Username, Password を入力 -> New User Registration になる。
2. double-click vmd191macx86nocuda.dmg
3. double-click VMD 1.9.1.app

Run
1. double-click VMD 1.9.1.app
2. VMD Main -> File -> New Molecule... 
3. Browse... -> 
4. Enable: All files
5. case.dump or dump.case
6. Determine file type: LAMMPS Trajectory -> Load
7. VMD Main -> speed (center) -> click arrow
http://lammps.sandia.gov/tutorials/italy14/VMD_Visualization_Scripting_TopoTools.pdf

download: case.pdb file 
1. double-click VMD 1.9.1.app
2. VMD Main -> File -> New Molecule... 
3. Browse... -> 
4. 1ubq.pdb
5. Load
6. VMD Main -> Graphics -> Representations
7. Drawing Method -> NewCartoon
※ case.psf or case.pdb を読み込ませる。

clear
1. VMD Main -> case.pdb
2. Molecule -> Delet Molecule 
 
  • Pizza -> Paraview
• Pizza
1. download: http://sourceforge.net/projects/pizza-py/files/ -> Download pizza-1Oct06.tar.gz (2.4 MB)
2. cd $HOME/Documents/Workspace/LAMMPS
3. tar zxvf $HOME/Downloads/pizza-1Oct06.tar
4. ln -s pizza-1Oct06 pizza
5. cd pizza/src
6. python -i pizza.py
※ エラーが出るので下記のモジュールをインストールする。
 
• PIL (Image Tk)
1. download: http://www.pythonware.com/products/pil/ -> PIL 1.1.7 -> Python Imaging Library 1.1.7 Source Kit
2. cd $HOME/Documents/Workspace/LAMMPS
3. tar zxvf $HOME/Downloads/Imaging-1.1.7.tar
4. cd Ima*
5. sudo python setup.py install

• Numeric
1. cd $HOME/Documents/Workspace/LAMMPS/pizza/src
2. vi dump.py
3. import Numeric -> import numpy.oldnumeric as Numeric

• gl (OpenGL.Tk)
私も参考HPの症状と同じになった。対策方法は見つからない。gl.pyとgl.pycをsrcから出す。
1. cd $HOME/Documents/Workspace/LAMMPS/pizza/src
2. mv gl.py ../
3. mv gl.pyc ../

• Pmw
1. download: http://pmw.sourceforge.net -> Download the latest version of Pmw as tar.gz file (with full documentation) -> Download Pmw-2.0.0.tar.gz (804.1 kB)
2. cd $HOME/Documents/Workspace/LAMMPS
3. tar zxvf $HOME/Downloads/Pmw-2.0.0.tar
4. cd Pm*
5. sudo python setup.py install

• Pizza (using) 
1. mpirun -np 4 lmp_mpi < in.case
2. python -i $HOME/Documents/Workspace/LAMMPS/pizza/src/pizza.py
3. d = dump("dump.case")
4. v = vtk(d)
5. v.many("case")

• Paraview
1. download: http://www.paraview.org/download/
  Version of ParaView: v4.2
  Type of download: Paraview binary Installers
  Perating System: Mac OS X
  File to Download: ParaView-4.2.0-Darwin-64bit.dmg
2. Download
3. double-click ParaView-4.2.0-Darwin-64bit.dmg
4. double-click paraview.app
※ セキュリティで開けない場合: システム環境設定 -> セキュリティとプライバシー -> 下の鍵を開ける -> すべてのアプリケーションを許可にチェックを入れる -> 次回から double-click paraview.app で動作する。
http://www.paraview.org/Wiki/ParaView:Build_And_Install

Paraview (Run)
1. File -> Open... -> File name: case..vtk -> files of type: Legacy VTK files(*.vtk) -> OK
※ 開くファイルは Machintosh HD -> Users -> あなたのPC名 -> Documents -> Workspace -> LAMMPS -> lammps-と進めていく。
2. Apply
3. Time: に値を入力する
※ *.dump, *.eam, *.meam, *.rigid, *.lammps も選択できる。

[1] http://www.octa.jp/index_jp.html
[2] http://lammps.sandia.gov/prepost.html
[3] http://lammps.sandia.gov/viz.html
[4] http://sourceforge.net/projects/pizza-py/files/
[5] http://nozawashinichi.sakura.ne.jp/fs/2009/07/macopengl.html
[6] http://keiorogiken.wordpress.com/2013/02/10/startopengl/
[7] http://sourceforge.net/p/pizza-py/mailman/message/30349641/
[8] http://lammps.sandia.gov/tutorials/italy14/VMD_Visualization_Scripting_TopoTools.pdf
-------------------------------------------------------------------------------
■ YouTube -------------------------------------------------------------------------------
■ tutorial
[1] http://lammps.sandia.gov/tutorials.html -> https://icme.hpc.msstate.edu/mediawiki/index.php/LAMMPS_tutorials
[2] http://lammps.sandia.gov/tutorials/italy14/italy_examples_Mar14.pdf
-------------------------------------------------------------------------------
■ potentials
 
[1] http://lammps.sandia.gov/tutorials/italy14/italy_overview_Mar14.pdf
[2] http://atsimpotentials.readthedocs.org/en/latest/potentials/eam_tabulation.html
-------------------------------------------------------------------------------
■ Input files
  • potential file
  • in.case (or case.in)
  • data.case (or case.data)
  • case.pbs

□ in.case (or case.in)
◇入力ファイルの構成 (詳細はManual.pdf を参照すると良い)
 概ね下記の順番で計算条件を記述していく(examples にある入力ファイルと見比べながら勉強していくとよい)。
※ # を付けるとその後がコメントになります(examplesの入力ファイルでよく見かけますので注意してみてください)。

1. 空間の次元・粒子の定義
・ 無記入(ディフォルト)では3次元空間
二次元にする場合は dimension 2、三次元にする場合は dimension 3 にする。
・ units AA
  物理量の尺度をAAで指定した単位系にする。
AAには、lj =「Lennard-Jones」単位系 , real=「real」単位系、などがある。
unitsが無記入(ディフォルト)であると lj =「Lennard-Jones」単位系となる。
※ AA = lj or real or metal or si or cgs or electron or micro or nano
・ boundary x y z
各x, y, z軸方向の境界をどのようにするかを設定する。
x, y, zは、それぞれ p か f, s, m、またはこれらの二つの組み合わせになる。
pは周期的な構造になる
fは非周期で固定された境界
sは非周期で収縮包装される
mは非周期で最小の体積で収縮包装される。
※ 主に、pかsが用いられる。結晶であれば boundary p p p にすればよいだろう。
・ atom_style BB
計算での粒子の属性をBBの指定にする。BBはatomic や bond, sphere, full がある。
・ atomicでは「位置、速度、番号、型」の情報を各粒子が持つ。
・ bondでは「位置、速度、番号、型、ボンドでの粒子の番号」の情報を各粒子が持つ。
・ spheredでは「位置、速度、番号、型、直径、質量、角運動量」の情報を各粒子が持つ。
・ full では、「位置、速度、番号、型、ボンドでの粒子の番号、結合角での粒子の番号、二面角での粒子の番号、通常以外での二面角での番号、電荷」の情報を各粒子が持つ。
※ どのような系にBBを設定すれば良いかはManual.pdf(p.289)の表に記載されている。
※ atomic では ディフォルトの値のみが用いられる。これが用いられる系は coarse-grain liquidsや固体、金属である。

2. 初期条件
・ read_data data.case
data.caseに記載されている原子座標のデータが読み込まれる。
・ 層を積み重ねる場合には、replicate nx ny nz を用いる。replicate 1 1 2とすると z方向に2個積み重ねられる。 
・ lattice AA B.BBB
AAは格子の種類(fccやbcc, hcp, scなど)、B.BBBは規格化密度(充填率)である。充填率は格子点に半径rの球を詰めたときに、格子定数が目的の値になるように決める。
・ region box block a0 a1 b0 b1 c0 c1
名称boxでの直方の領域を定義する。
領域の範囲は a軸の範囲[a0, a1]、b軸の範囲 [b0, b1]、c軸の範囲 [c0, c1] と設定される。
・ create_box 1 box
名称boxの領域に型1の粒子を使って計算する。
・ create_atoms 1 box
名称boxの領域に型1の粒子を配置する。配置される位置は、latticeで定義した格子点上。
・ mass 1 A.A
型1の粒子の質量をA.Aにする。

3. 相互作用の定義 (LJ や COLLOID などを定義する)
・ pair_style AA B.B 
粒子間の相互作用のポテンシャルを設定する。
AAにはlj や collid などがある。/を入れてさらに詳細なポテンシャルの指定が可能になる(例えば、lj/cut など)。
/を入れて詳細なポテンシャルの指定をした分、それに関するパラメータを(例えば、B.Bのように)AAの後に記述する。
※ どのような記述が可能かは Manual.pdf の「pair_style command」に記述がある。沢山の種類があるので驚くが、高分子であれば lj の付いたもの、金属であればeamやmeam, kim関連を調べれば良いだろう。pair_styleに対応したpair_coeffの設定の仕方も記述されている。
・ pair_coeff A B C
型Aの粒子と型Bの粒子の間のポテンシャルのパラメーターC(ときにはポテンシャルファイルのアドレスと原子)を設定する。
Bの後にpair_styleで設定した粒子間の相互作用のポテンシャルに関するパラメーターCを設定する。
A B を * * にすると、全ての粒子対に対してパラメーターの設定が行われる(*は「任意」とか「全ての」という意味)。例えば、A * にすると型Aの粒子と全ての型の粒子の間のという設定にしたりできる。
※ meamの場合
-----
units metal
pair_style meam
pair_coeff * * library.mean 元素名1 元素名2 etc parameter.meam 元素名1 元素名2 etc
-----
meam では パラメーターファイル(=parameter.mean=case.mean)をNULLにして使用しないようにできる。しかし、NULLにすると、libraryファイルでの情報から得られなかった元素の相互作用を考慮できないために、化合物のような系ではがっかりした結果になる。
※ KIMの場合(Ref. https://openkim.org/files/TD_887699523131_000/lammps.in.template)
-----
pair_style kim LAMMPSvirial sed_model_string
pair_coeff * * sed_species_string
-----
・ bond_style harmonic
ボンドポテンシャルを harmonic にする。
・ bond_coeff A K r0
型 A のボンドポテンシャルを harmonic にする。他のパラメーターは、E = K ( r - r0 )2 に関係したものとなる。
・ angle_style charmm
結合角のポテンシャルを charmm にする。E = K(θ- θ0)2 + KUB (r -rUB)2
・ dihedral_style charmm
二面角のポテンシャルを charmm にする。E = K[1 + cos(nφ-d)]
・ improper_style harmonic
通常以外の二面角のポテンシャルを harmonic にする。 E = K (χ - χ0)2
・ kspace_style pppm A.AAAA
荷電粒子の受けるクーロン力を「particle-particle particle-mesh法」で求める。
計算精度は相対(1Å離れた単位点電荷が及ぼしあう力の大きさに対しての)誤差がA.AAAA以下となるように設定する。
・ velocity all create A.AA BBBBB
全て(=all)の粒子に規格化した運動エネルギーがA.AAになるように速度を割り当てる。割り当て方は乱数の初期値はBBBBBによる。
・ neighbor A.A B
ある粒子について、カットオフ半径 rc から A.A * σ の 距離内になる粒子で neighbor-list を構成する。A.A * σの領域はskinと呼ばれる。
B には bin や multi がある。
bin = binning の構成アルゴリズムを用いることを示す。このアルゴリズムは計算時間が全粒子数/CPU数に比例する。
multi = binning法の改良版。カットオフ長に大きなバラツキがあるときに有効。
・ neigh_modify every AA delay B check no
neighbor-listの最後の構成からBステップまで再構成をせず、BステップからAA ステップ後にneighbor-listの再構成を行う。
check yes にすると、skinの厚さの半分の距離を粒子が移動したら再構成を行う。一度構成したら、そのシミュレーション中には再構成を行わない。
・ comm_modify mode multi
粒子は、相手の粒子の型により複数のneighbor-listを構成する。これにより、短いカットオフ長の粒子の数えすぎを防ぐことができる。

4. 時間積分の定義 (NVE や NPT を定義する)
・ fix A all nve
A(は通常数値が記入されている)という名称で、全て(=all)の粒子に対して、NVE(=nve)積分で位置と速度を更新する。ここで、Nは粒子数、Vは体積、Eはエネルギーとなる。全系はミクロカノニカルの軌道を生成する。
・ fix A all npt temp AAA.A BBB.B C.C iso 3.0 3.0 10.0
Aという名称で、全て(=all)の粒子に対して、NPT積分を行う。温度(=temp)は、計算開始時はAAA.A、終了時はBBB.B、温度制御の強さは無次元時間でC.Cに達するようにする。
・ fix A all temp/rescale BB C.CC D.DD F.FF G.G
Aという名称で、全て(=all)の粒子に対して、BBステップ毎に、速度をスケールし直すかを検討する。目標の温度は、計算開始時 C.CC、終了時にD.DDとなるようにする。目標値からF.FFズレていたらスケールし直す。ズレの大きさの割合G.Gだけ修正する。
・ fix A all adapt BB pair soft a * * v_prefactor
Aという名称で、全て(=all)の粒子に対して、BBステップ毎に、全て(* *)の粒子対の相互作用ポテンシャル soft のパラメーター a を変数 prefactor にする。
・ fix A all enforce2d
Aという名称で、全て(=all)の粒子に対して、z方向の速度と力を0にする。
dimension 2 を設定したときによく用いられる。
・ unfix A
Aの名称の操作を取り消す
・ variable AAA equal ramp(x, y)
変数名 AAA を関数 ramp(x, y)で定義する。このramp関数は、シミュレーション中にxからyまで滑らかに変化する。

5. 出力の定義
・ group AAA type <= BB
AAAという名称で、型 BB以下の粒子をグループ化する。
・ dump id all atom AA dump.lammpstrj 
id という名称で、全て(=all)の粒子に対して、粒子の位置と型の情報を、AAステップ毎に、dump.lammpstrj という名称でファイルに書き込む。
※ dump.lammpstrj としているのはVMDで読み取りやすくするため。exampleファイルにある入力ファイルも dump.lammpstrj に変えると良い。
・ timestep AA
無次元化した時間ステップをAAとする。時間分解能を上げるにはこの値を小さくする。ディフォルトは0.005
・ run XXX
シミュレーションをXXXステップの行う。単位は無次元化した時間ステップとなる
・ thermo_style AA
出力する熱力学量をAAに設定する。AAにはmultiがある。
multiでは「運動エネルギー、温度、ポテンシャルエネルギー、結合エネルギー、二面角エネルギー、通常以外の二面角エネルギー、ファンデルワールス力、クーロン力、長距離のk空間エネルギー、圧力」が出力される。
・ thermo YY 
最初と最後、そして、YYステップ毎に、熱力学量(温度、エネルギー、圧力など)を出力する

□ data.case (or case.data)
 計算に必要な粒子の属性や相互作用の種類を定義する。ヘッダーとボディーから構成される。ヘッダーで構成要素を与え、ボディでそれらを詳述する。

・ ヘッダー:
最初の行は飛ばされる。
ヘッダーの部分は、数値、データの種類、 の順に並び、数値が先に来る。
データの種類のキーワードが空白を含む場合は、スペース1個分だけの空白にする。
ヘッダーではシミュレーション領域も定義可能。下記のAAAやBBBなどには数値が入る。
・AAA atoms : 粒子数 AAA
・AAA bonds : ボンド数 AAA
・AAA angles : 結合角数 AAA
・AAA dihedral : 二面角数 AAA
・AAA impropers : 通常以外の二面角数 AAA
・AAA atom types : 粒子の型の数 AAA
・AAA bond types : ボンドの型の数 AAA
・AAA angle types : 結合角の型の数 AAA
・AAA dihedral types : 二面角の型の数 AAA
・AAA improper types : 通常以外の二面角の型の数 AAA
・A.AA B.BB xlo xhi : x方向の計算領域 [A.AA, B.BB]
・A.AA B.BB ylo yhi : y方向の計算領域 [A.AA, B.BB]
・A.AA B.BB zlo zhi : z方向の計算領域 [A.AA, B.BB]

・ ボディー:
データの種類、数値の順に並び、文字が先に来る。
データの種類のキーワードを読み込んだら、その次の行を飛ばし、残りの行で数値を読む(下記の例でのAやB, C, D, x, y, zなどは数値)。キーワードの最初は大文字。
・Masses
A B.BBB
型Aの粒子の質量がB.BBB
・Atoms
A B C x y z
番号Aの粒子が分子Bに属し、粒子の型はCで、座標はx, y, zとなる。
・Velocities
A vx vy vz
粒子Aの速度をx, y, z方向に対して、それぞれ、vx、vy、vzに設定する。
・Bonds
A B C D
番号Aのボンドがボンドの型Bに属し、粒子Cと粒子Dを結びつける。
・Angles
A B C D E
結合角Aが型Bに属し、粒子Cと粒子Dと粒子Eを結びつける。
・Dihedrals
A B C D E F G
二面角Aが型Bに属し、粒子Dと粒子Eと粒子Fと粒子Gを結びつける。
・Impropers
A B C D E F G
通常以外の二面角Aが型Bに属し、粒子Dと粒子Eと粒子Fと粒子Gを結びつける。
・Pair Coeffs
A B C D E
型Aの相互作用のポテンシャルで、パラメーターをB, C, D, Eに設定する。
・Bond Coeffs
A B C
型Aのボンドポテンシャルで、パラメーターをB, Cに設定する。
・Angle Coeffs
A B C D E
型Aの結合角のポテンシャルで、パラメーターをB, C, D, Eに設定する。
・Dihedral Coeffs
A B C D E
型Aの二面角のポテンシャルで、パラメーターをB, C, D, Eに設定する。
・Improper Coeffs
A B C
型Aの通常以外の二面角のポテンシャルで、パラメーターをB, Cに設定する。
 
□ potential file
  • case.eam
1行目: コメント
2行目: 原子番号、質量、格子定数、格子タイプ(FCCなど)
3行目: Nrho, drho, Nr, dr, cutoff
  • case.meam
ファイルの構造については Manual.pdfの「pair_style meam command」の「Other parameters in the MEAM library file correspond to single-element potential parameters」に書かれている。
examples/meamでのparameterファイルであるSiC.meamと比べれば良い。
----------
■ 単位系 (units) (Manual.pdfの「units command」(p.1319)に記述がある)

・lj 単位系
質量: m
長さ: σ
時間: τ = √(mσ2/ε)
エネルギー: ε
速度: σ/τ
力: ε/σ
トルク: ε
温度: ε/kB
圧力: ε/σ3
動粘性率: ετ/σ3
電荷: √(4πσε0ε)
電気双極子モーメント: √(4πσ3ε0ε)
電場: ε/√(4πσ3ε0)
密度: 1/σ3
ステップ時間: dt = 0.005τ
skinの厚さ: 0.3σ

・real 単位系
質量: g/mol
長さ: Å
時間: fs
エネルギー: Kcal/mol
速度: Å/fs
力: Kcal/mol/Å
トルク: Kcal/mol
温度: K
圧力: atom
動粘性率: Poise
電荷: +e
電気双極子モーメント: +e * Å
電場: V/Å
密度: g/cm3
ステップ時間: dt = 1 fs
skinの厚さ: 2Å

・metal 単位系
質量: g/mol
長さ: Å
時間: ps
エネルギー: eV
速度: Å/ps
力: eV/Å
トルク: eV
温度: K
圧力: bars
動粘性率: Poise
電荷: +e (=multiple of electron charge (1.0 is a proton))
電気双極子モーメント: 電荷 * Å
電場: V/Å
密度: g/cm3

・si 単位系 (=SI単位系)
質量: kg
長さ: m
時間: s
エネルギー: J
速度: m/s
力: N (=Newtons)
トルク: Nm
温度: K
圧力: Pa
動粘性率:Pa * s
電荷: C (=Coulombs (1.6021765e-19 is a proton))
電気双極子モーメント: C * m
電場: V/m
密度: kg/m3
 
[1] https://icme.hpc.msstate.edu/mediawiki/index.php/LAMMPS_Help
[2] http://lammps.sandia.gov/doc/Section_commands.html
[3] http://wolverton.northwestern.edu/classes/458/lammps-input
[4] LAMMPS研究会での配布資料(詳細を知りたい場合は LAMMPS研究会に参加すると良い)
-------------------------------------------------------------------------------
■ 収束
・ 低分子系: 格子上に分子を配置し、温度を高めにして緩和時間の数倍待てばおおよそ緩和する。
・ 高分子系: 緩和時間が分子量に強く依存。Kremer-Grest mode では、粒子数 N < 100までなら格子上に並べて長時間緩和でなんとかなる場合もあるが、N > 1000はほぼ無理。温度や圧力を上げてから下げてもだめ。
※ 分子量の3.4乗に比例するとして収束を見極める。からみあいなどがあるため、エネルギーの収束だけで判断するのは危険。
・平衡初期構造は必要だが難しい。局所か大域的構造のどちらかで、両方を満たすのは難しい。
・高分子メルト(ビーズ:液体的な局所的構造、バネ:大域的にはランダムウォーク的構造)
-------------------------------------------------------------------------------
■ using

□ thermal conductivity (kappa)
  The NEMD methods use the formula kappa = dQ * dZ/dTemp where dQ =
energy flux, and dTemp/dZ = temperature gradient.
  The NEMD systems have 8000 atoms with a box length 2x larger in z, the
non-equilibrium direction.
※ timestep (default) = 0.005
 
◇ Non-equilibrium methods (NEMD case):
  • Direct thermosatting method ($HOME/Documents/Workspace/LAMMPS/lam*/examples/KAPPA/in.langevin)
mpirun -np 4 $HOME/Documents/Workspace/LAMMPS/lam*/src/lmp_mpi < in.langevin
・ log.lammps file (# setup problem)
    Lattice spacing in x,y,z -> dZ
・ log.lammps file
    Loop time of 39.8134 on 4 procs (4 MPI x 1 OpenMP) for 20000 steps with 8000 atoms
    XXX = ave of total in/out energy for 2 regions normalized by # of atoms (Step Temp Thot Tcold hot cold tdiff ave -> ( XXX = (cold - hot)/2 at last step)
    run time in tau = 20,000 steps at 0.005 tau timestep =  100
    # setup problem
    x = Lattice spacing in x
    y = Lattice spacing in y
    atoms * XXX / (run time in tau) / (x * y) / 2 -> dQ
    # thermal conductivity calculation
    Step Temp Thot Tcold tdiff ave -> ave -> dTemp
・kappa = dQ * dZ/dTemp
  • Muller-Plathe reverse perturbation method ($HOME/Documents/Workspace/LAMMPS/lam*/examples/KAPPA/in.mp)
mpirun -np 4 $HOME/Documents/Workspace/LAMMPS/lam*/src/lmp_mpi < in.mp
・ log.lammps file (# setup problem)
    Lattice spacing in x,y,z -> dZ
・ log.lammps file
    Loop time of 39.8134 on 4 procs (4 MPI x 1 OpenMP) for 20000 steps with 8000 atoms
    XXX = cumulative delta energy, tallied by fix thermal/conductivity (Step Temp E_pair TotEng 3 tdiff ave  -> XXX = value for 3 at last step)
    run time in tau = 20,000 steps at 0.005 tau timestep =  100
    # setup problem
    x = Lattice spacing in x
    y = Lattice spacing in y
    XXX / (run time in tau) / (x * y) / 2 -> dQ
    # thermal conductivity calculation
    Step Temp Thot Tcold tdiff ave -> ave -> dTemp
・kappa = dQ * dZ/dTemp
  • Variant of Muller-Plathe reverse perturbation method ($HOME/Documents/Workspace/LAMMPS/lam*/examples/KAPPA/in.heat)
mpirun -np 4 $HOME/Documents/Workspace/LAMMPS/lam*/src/lmp_mpi < in.heat
・ log.lammps file (# setup problem)
    Lattice spacing in x,y,z -> dZ
・ log.lammps file
    # 2nd equilibration
    fix heat = [fix             hot all heat 1 100.0 region hot] = 100.0
    # thermal conductivity calculation
    Loop time of 39.8134 on 4 procs (4 MPI x 1 OpenMP) for 20000 steps with 8000 atoms
    run time in tau = 20,000 steps at 0.005 tau timestep =  100
    # setup problem
    x = Lattice spacing in x
    y = Lattice spacing in y
    (run time in tau) * (fix heat) / (run time in tau) / (x * y) / 2 = (fix heat) / (x * y)  / 2 -> dQ
    Step Temp Thot Tcold tdiff ave -> ave -> dTemp
・kappa = dQ * dZ/dTemp
 
◇ Equilibrium method
  • Green-Kubo equilibrium method ($HOME/Documents/Workspace/LAMMPS/lam*/examples/KAPPA/in.heatflux)
mpirun -np 4 $HOME/Documents/Workspace/LAMMPS/lam*/src/lmp_mpi < in.heatflux
tail log.lammps or vi log.lammps
running average conductivity: 3.2000083037132
 
-------------------------------------------------------------------------------
■ 熱伝導度

 分子動力学法による熱伝導度の計算は、解析的方法とは異なり、取り込む非調和項の次数を決定することなく、またフォノン散乱の独立性を仮定することなく(原子間ポテンシャルを仮定するのみで)熱伝導度を定量的に計算できる。
  • セル内に温度勾配を設ける直接法
人工的なフォノン散乱が生じるため過小評価される性質がある。
  • Green-Kubo公式を用いた平衡法
イオン性固体の場合には熱的な揺動によるノイズが大きく、正確な値を評価する為には非常に長い時間のシミュレーションが必要。
  • 摂動法
上記2つの手法の問題が解決される。

Reference:
[1] http://ci.nii.ac.jp/els/110002188027.pdf?id=ART0002441111&type=pdf&lang=jp&host=cinii&order_no=&ppv_type=0&lang_sw=&no=1412212064&cp=
[2] http://ir.library.osaka-u.ac.jp/dspace/bitstream/11094/787/1/25491_%E8%AB%96%E6%96%87.pdf
[3] http://www.jim.or.jp/journal/j/pdf3/69/01/61.pdf
[4] http://lammps.sandia.gov/tutorials.html -> http://lammps.sandia.gov/tutorials/italy14/italy_kappa_viscosity_Mar14.pdf
-------------------------------------------------------------------------------
■ その他
Free Energy: http://www.utdallas.edu/~son051000/comp/FreeE.pdf 
ICME Workshop: Molecular Dynamics witl LAMMPS by Andrew Ferguson: https://www.youtube.com/watch?v=TTDXJXJJi18
Introduction to Molecular Dynamics: https://www.youtube.com/watch?v=_TiQYNWJwYg , https://www.youtube.com/watch?v=1y4qDhzmWPw
VMD Tutorial for Beginners: https://www.youtube.com/watch?v=Fl3hmqCHYU4
GULP: https://nanochemistry.curtin.edu.au/gulp/
  http://accelrys.co.jp/resource-center/datasheets/Materials-Studio/gulp-jp.pdf
GROMOS: http://www.gromos.net/
  https://www.youtube.com/watch?v=vOJsmtFeSGk
  https://www.youtube.com/watch?v=BZNzYt_DUB0
Atomeye: http://li.mit.edu/Archive/Graphics/A/
  http://d.hatena.ne.jp/sumoak/20120615/1339769817
  http://www.fml.t.u-tokyo.ac.jp/~izumi/CMS/AtomEye_Jpn.pdf
  http://mm4.scitec.kobe-u.ac.jp/~yashiro/edu/atomeye/atomeye.html
-------------------------------------------------------------------------------
 
QRコード
携帯用QRコード
アクセス数
ページビュー数