■
2) 10K以上の弾性波伝播で,detectorが波を受けるまでの間にゆっくりと座標を変化させている(右にずれている)。弾性波を流さずに長いタイムステップnveで放置したらどうなるか見て,この現象についても考える。10Knve_doNothing(nve_relax)など
→前も書いたけど、nveでrelaxしたらめちゃくちゃ座標ずれていくことが判明。nptでやるしかなさそうな気もするけど、タイムステップがなあ。とりあえず、もう1回さらに長いタイムステップで見てみる。
→おわた。永遠にずれていく。体積は変わってない(そりゃnveだから当たり前!)
3) nptでやるにあたって,afterExp.latから読み込んでnptでシミュレーションを始動したら,最初いつものえぐいfluctuationが出るのか?要確認。 →expresumeがどこに行ったのかわかんない。 →やってみた。大丈夫そう。
新しい問題
4) pulse-inversionするとギザギザだし平行移動するし。クソか?
これ10Kでやったやつだから、とりあえず0.1Kで再チャレンジしてみる。そこでもぐじゃぐじゃだったら、考え直す。
1108
前回の問題点
- 20K以上の昇温で,セルサイズは収束しているように見えるが,温度変化がおかしい。より長いタイムステップをかけて移ろいを見ないといけない。20Kexp_longなど →15000 temp/rescale, 15000 relaxで以下のグラフ。
とりあえず1K前後の温度変動はしょうがないっぽいな。
- 10K以上の弾性波伝播で,detectorが波を受けるまでの間にゆっくりと座標を変化させている(右にずれている)。弾性波を流さずに長いタイムステップnveで放置したらどうなるか見て,この現象についても考える。10Knve_doNothing(nve_relax)など
→前も書いたけど、nveにでrelaxしたらめちゃくちゃ座標ずれていくことが判明。nptでやるしかなさそうな気もするけど、タイムステップがなあ。とりあえず、もう1回さらに長いタイムステップで見てみる。
- nptでやるにあたって,afterExp.latから読み込んでnptでシミュレーションを始動したら,最初いつものえぐいfluctuationが出るのか?要確認。 →expresumeがどこに行ったのかわかんない。
今日の問題点
20K以上の昇温で,セルサイズは収束しているように見えるが,温度変化がおかしい。より長いタイムステップをかけて移ろいを見ないといけない。20Kexp_longなど
10K以上の弾性波伝播で,detectorが波を受けるまでの間にゆっくりと座標を変化させている(右にずれている)。弾性波を流さずに長いタイムステップnveで放置したらどうなるか見て,この現象についても考える。10Knve_doNothing(nve_relax)など →nveにでrelaxしたらめちゃくちゃ座標ずれていくことが判明。nptでやるしかなさそうな気がしてきた。
nptでやるにあたって,afterExp.latから読み込んでnptでシミュレーションを始動したら,最初いつものえぐいfluctuationが出るのか?要確認。
LAMMPSのif文のクォーテーション内では論理演算子以外の演算子は使えない
M1で初飲み会した。みんな研究モチベないよね~~という話。
店員さん優しかった。
LAMMPSのif文でやられるのもうn回(nは十分大きい自然数)なので,いい加減メモ。
LAMMPSのif構文は論理演算子は使えても,(加減乗除などの)演算子は使えないといううんこ仕様らしい。 だから,下のifはエラーを返される。
if "${current_time} < $Q + ${initialSteps}*dt" then "jump loopBreak"
以下ならいける。なお,variableの宣言の際は,イコールの右側にスペースがあってはいけない。
variable totalTime equal $Q+${initialSteps}*dt if "${current_time} < ${totalTime}" then "jump loopBreak"
これを考慮してもう一度in_1103.lammpsをつくったので,さしあたりそれを使ってくださいという感じ。ちなみにdtはデフォルト変数で,タイムステップ幅を表す。LAMMPSのデフォルト変数もマジでわかりにくいので探したら怪しい中華サイトにチートシートあった。
こまったらここを見よう。と思ったけど,こういうサイトいつつぶれるかわかんないから転記。
step = timestep elapsed = timesteps since start of this run elaplong = timesteps since start of initial run in a series of runs dt = timestep size time = simulation time cpu = elapsed CPU time in seconds since start of this run tpcpu = time per CPU second spcpu = timesteps per CPU second cpuremain = estimated CPU time remaining in run part = which partition (0 to Npartition-1) this is timeremain = remaining time in seconds on timer timeout. atoms = # of atoms temp = temperature press = pressure pe = total potential energy ke = kinetic energy etotal = total energy (pe + ke) enthalpy = enthalpy (etotal + press*vol) evdwl = van der Waals pairwise energy (includes etail) ecoul = Coulombic pairwise energy epair = pairwise energy (evdwl + ecoul + elong) ebond = bond energy eangle = angle energy edihed = dihedral energy eimp = improper energy emol = molecular energy (ebond + eangle + edihed + eimp) elong = long-range kspace energy etail = van der Waals energy long-range tail correction vol = volume density = mass density of system lx,ly,lz = box lengths in x,y,z xlo,xhi,ylo,yhi,zlo,zhi = box boundaries xy,xz,yz = box tilt for triclinic (non-orthogonal) simulation boxes xlat,ylat,zlat = lattice spacings as calculated by lattice command bonds,angles,dihedrals,impropers = # of these interactions defined pxx,pyy,pzz,pxy,pxz,pyz = 6 components of pressure tensor fmax = max component of force on any atom in any dimension fnorm = length of force vector for all atoms nbuild = # of neighbor list builds ndanger = # of dangerous neighbor list builds cella,cellb,cellc = periodic cell lattice constants a,b,c cellalpha, cellbeta, cellgamma = periodic cell angles alpha,beta,gamma
照射研究会のポスターセッション準備が進まなすぎて鬱。修士やめて就職したい(けど,You can't spell しゅうしょく without しゅうし)。
あとM100のQOSGrpMemLimitみたいなやつは放置してればそのうち処理してくれるから気にしないでいい。
M100でLAMMPSをアンイストール
LAMMPSを一度makeでビルドしちゃったあとで、入れたいパッケージが増えたりした場合、一度LAMMPSを消して入れ直す必要がある。 Reference:
消し方
cd lammps/src/ make clean make clean-all make clean-mpi make purge
よくわかんない。make cleanで消えるっぽい。包含関係があって、make clean > make clean-all > make clean-mpi なんじゃないかと思うけど、とりあえず全部ぶっこんどきゃいいと思う。 make purgeはQSTのヘルプデスクが言ってた。 てかこれ全部やってもlmp_mpi残ってるけどいいのかな。
6SBの解説かくのしんどいな。
M100にLAMMPSのインストール
ソースコードをgit
cd $WORK git clone -b stable https://github.com/lammps/lammps.git lammps
モジュールのload
- MPI環境のモジュールとしてspectrum-MPI
- コンパイラとしてxl
をそれぞれロード。
module load spectrum[+tab] module load xl[+tab]
makefileを書き換え
コンパイラオプションを書き換える。ディレクトリはMAKEのなか。
cd lammps/src/MAKE vi Makefile.mpi
1 # mpi = MPI with its default compiler 2 3 SHELL = /bin/sh 4 5 # --------------------------------------------------------------------- 6 # compiler/linker settings 7 # specify flags and libraries needed for your compiler 8 9 #CC = mpicxx 10 CC = mpixlC #HERE!! 11 CCFLAGS = -g -O3 12 SHFLAGS = -fPIC 13 DEPFLAGS = -M 14 15 #LINK = mpicxx 16 LINK = mpixlC #HERE!! 17 LINKFLAGS = -g -O3 18 LIB = 19 SIZE = size
10行目と16行目のとこ。mpi環境でxlコンパイラ使うときはmpixlCって書いてあった: https://wiki.u-gov.it/confluence/display/SCAIUS/UG3.2%3A+MARCONI100+UserGuide#UG3.2:MARCONI100UserGuide-Compilers mpicxxとかでも動くんだと思うけど、推奨環境で行きましょう。
make yes-[package name]
cd src make yes-manybody #example
make-yes のコマンドによって予め入れたいパッケージをすべてyesにしとかないとだめ。とりあえずmake yes-basicとmake yes-MANYBODY、make yes-MEAMだけやっといた。 yes/noの一覧はmake psで出せる。
make
cd lammps/src make mpi
長い。あとtcmalloc: large allocうんちゃらっていうのが出て一時的に(10分弱?)動かなくなるけど、そのうちまた再開するから焦らないで。Ctrl+Cしちゃだめ。
以上で完了。頑張れ自分