- restart作用restart命令是lammps提供的重啟動(dòng)命令,用于重啟lammps計算。這樣可以省去一些共有的計算,從而節省計算時(shí)間,特別是對于比較大的體系。 比如原子弛豫一般是各種計算都必須要做的,那么就可以先單獨弛豫一下,生成restart文件,供其他計算直接調用,從而避免每一個(gè)計算都進(jìn)行弛豫。 restart原理重啟動(dòng)的原理很簡(jiǎn)單,就是寫(xiě)一個(gè)中間restart文件,在這個(gè)文件中記錄某個(gè)狀態(tài)的絕大部分信息,在重啟動(dòng)時(shí),只需要讀入這個(gè)文件,接著(zhù)完成剩下的計算即可。restart文件是二進(jìn)制文件。 restart命令restart相關(guān)的命令有三個(gè):restart, write_restart, read_restart。還有一個(gè)相關(guān)的腳本在lammps的tools目錄下restart2data,可以用來(lái)將二進(jìn)制的restart文件轉換成可識別的文文文件,即data file文件,可以由read_data讀入。 restart命令和write_restart命令是用來(lái)寫(xiě)重啟動(dòng)文件的,區別是前者用來(lái)周期性地將系統狀態(tài)寫(xiě)入不同的restart文件,而后者則是寫(xiě)出該命令使用前的系統狀態(tài)。 read_restart命名是用來(lái)讀入restart文件,開(kāi)始新的計算。 tools目錄下的restart2data工具提供的是cpp源文件,需要編譯后才可使用。 下面以lammps/bench目錄下的輸入文件為例進(jìn)行簡(jiǎn)要介紹。 寫(xiě)restart文件# FENE beadspring benchmarkunits ljatom_style bondspecial_bonds feneread_data data.chainneighbor 0.4 binneigh_modify every 1 delay 1bond_style fenebond_coeff 1 30.0 1.5 1.0 1.0pair_style lj/cut 1.12pair_modify shift yespair_coeff 1 1 1.0 1.0 1.12fix 1 all nvefix 2 all langevin 1.0 1.0 10.0 904297thermo 100timestep 0.012restart 50 tmp.restart # write restart file periodicllyrun 100#write_restart tmp*.restart # write restart file of the current state 注意restart和write_restart命令的使用位置是不同的。這里使用restart命令,會(huì )產(chǎn)生兩個(gè)文件tmp.restart.50, tmp.restart.100. 轉換restart文件首先編譯restar2data.cpp,如下: $ g++ restart2data.cpp -o restart2data 這時(shí)就會(huì )在當前目錄下產(chǎn)生可執行的restart2data文件,cp到bench目錄下,轉換上面例子產(chǎn)生的tmp50.restart文件。 restart2data tmp50.restart data.tmp50 這時(shí)就會(huì )在bench目錄下產(chǎn)生data.tmp50文件,它是可直接辨識的文本文件。 讀入restart文件把in.chain文件拷貝成in.chain.restart文件,用來(lái)測試restart。由于restart文件中包含了很多的命令,所以需要重新設置的命令不多,這里如下: read_restart tmp.restart.50neighbor 0.4 binneigh_modify every 1 delay 1fix 1 all nvefix 2 all langevin 1.0 1.0 10.0 904297timestep 0.012run 50 這里實(shí)際就是接著(zhù)timestep等于50的那個(gè)狀態(tài)重啟計算的。 |

