簡介
使用VNL您可以導入、可視化和分析由其他多種模擬代碼(如VASP,Quantum ESPRESSO等等)產(chǎn)生的輸出文件。也可以導入由LAMMPS產(chǎn)生的經(jīng)典分子動力學軌跡文件,并且通過Movie Tool、3D Viewer和MD Analyzer等工具進一步分析您的模擬結(jié)果。
LAMMPS是一個經(jīng)典分子動力學代碼,輸出的分子動力學軌跡格式可以非常靈活[Pli95],大部分的輸出文件為文本文件。將LAMMPS軌跡導入VNL有兩種選擇:
導入為Trajectory對象,僅可以用3D Viewer可視化和拖拽入Builder;
導入為MDTrajectory,可以進一步使用Movie Tool或者MDAnalyzer進行分析。
為了完整的使用VNL的MD分析功能,在進行LAMMPS模擬的時候,您需要遵守一些小的規(guī)則(在本教程中會說明)。
您想學到如何將LAMMPS模擬軌跡文件導入Virtual Nanolab和如何使用可視化和分析工具,以及如何建立基于輸入構(gòu)象的進一步模擬的輸入文件。
準備LAMMPS腳本
LAMMPS模擬是由輸入腳本控制的,所有的模擬參數(shù)列在輸入腳本中。輸出軌跡文件是通過 dump 命令來詳列的。VNL目前能夠閱讀寫成 atom或者 custom模式的軌跡文件。對于VNL來講,軌跡文件的擴展名不需要是某一明確的類型,只要和其他沒有沖突就好。 (1) 導入為基本的Trajectory格式 只需選定atom格式,額外的指定就不需要了。命令也會變得非常簡單,例如:
dump d_trajectory all atom 100 trajectory.dat
它會每100步將所有原子的坐標寫入trajectory.dat 文件。atom模式不寫入速度,這樣得到的軌跡文件不能導入為MDTrajectory,僅可以導入為Trajecto ry對象。 (2)要導入為MDTrajectory對象格式,除了原子坐標之外,如果要作為MDTrajectory,軌跡文件還需要寫入原子速度,這可以通過這條命令實現(xiàn):
dump d_trajectory all custom 100 trajectory.dat id type x y z vx vy vz
MDTrajectory對象還需要提取出勢能數(shù)據(jù)。這些可以從模擬過程中創(chuàng)建的log文件中的熱力學輸出中讀取。為此,LAMMPS中的熱力學輸出一定要和軌跡文件輸出頻率同步。您可以通過關(guān)鍵詞 thermo 來指定這個輸出的頻率。而且您必須確保勢能在熱力學輸出文件中列出,這可以通過使用 thermo_style 關(guān)鍵詞來選擇。典型例子如下(與上面的軌跡dump命令一致):
thermo 100
thermo_style custom step temp pe etotal press
這里pe指出勢能將被寫入log文件。 如果滿足了以上所有要求,VNL可以將軌跡文件作為MDTrajectory來讀取。
說明:
在LAMMPS custom格式允許你去明確地設(shè)定記錄哪些量。與VNL一致的是,至少type, index和坐標(x,y,z,或者 xs,ys,zs)需要在軌跡文件中列出。
運行LAMMPS
LAMMPS提供格式明確的輸出文件和初始結(jié)構(gòu),VNL首先直接讀取包含了所有計算設(shè)置的log文件。基于log文件中的信息,才會進一步讀取輸出文件和其他的輸入文件。所以您需要確保LAMMPS正確輸出log文件,這可以在運行LAMMPS的命令行中加入-log選項來指定log文件輸出:
lmp_serial -in in.settings -log log_simulation_1.lammps
注意:
您一定要使用以.lammps結(jié)尾的文件名,因為只有這種擴展名才能被VNL識別為LAMMPS的log文件。如果您是從一個獨立的文件(典型的由data.*開始的)讀入的輸入結(jié)構(gòu),也需要保證這個文件在您的當前目錄中,因為VNL要從這個文件中讀取原子量。
導入VNL
如果您按照先前的段落操作,在LAMMPS模擬之后,軌跡對象應(yīng)該直接出現(xiàn)在VNL的LabFloor中。軌跡對象將會按照log文件命名(不含擴展名)。log_simulation_1.lammps文件導入后的對象將會被命名為log_simulation_1。如果您點擊它的圖標,將會在右手邊的側(cè)欄中看到哪些分析插件工具可以用于您的軌跡對象。對于一個MDTrajectory您可以使用Viewer、Movie Tool和MDAnalyzer。對于常規(guī)的Trajectory,您只能使用Viewer。
在接下來的例子里,一個硅晶體在0壓力下,在200ps時間內(nèi)溫度由300K線性上升到3000K,從而融化。硅原子之間的相互作用使用Stillinger-Weber勢函數(shù)描述。最終得到的LAMMPS軌跡文件將會展現(xiàn)在LabFloor中,并使用Movie Tool進行可視化。
[img][/img]
注釋:
LAMMPS模擬有時被用于無量綱單元中的體系,這可以通過關(guān)鍵詞units lj和一般的原子類型來實現(xiàn)。這些軌跡文件也可以導入VNL。但是因為沒有與速度和能量相關(guān)的物理單位,軌跡文件將會被按照基本的Trajectory形式導入。下面的例子展示了在一個由一般的Lennard-Jones原子構(gòu)成的二維系統(tǒng)中裂縫的初始和增大。 點擊查看動圖
處理LAMMPS軌跡文件
如果您將LAMMPS的軌跡文件導入VNL LabFloor,您當然能夠單獨提取某個結(jié)構(gòu),并做進一步分析或者使用VNL和ATK計算。下面的例子向您展示了如何計算已經(jīng)用LAMMPS模擬過的多晶體銅的結(jié)構(gòu)。如果您想學習在VNL-ATK中產(chǎn)生和模擬多晶體結(jié)構(gòu),可以參考手冊 模擬多晶體銅的蠕變實驗。
用Movie Tool打開LAMMPS軌跡文件。切換至想要的結(jié)構(gòu),比如最后的一個結(jié)構(gòu),并且使用Movie Tool窗口中右下角的 按鈕將這個結(jié)構(gòu)發(fā)送給 Script Generator 。
在Script Generator中,添加 Analysis 中LocalStructure 塊。通過雙擊打開塊,選著合適的文件名,例如Polycrystal_local_structure.nc,不要勾選 Print的框(這個結(jié)構(gòu)非常大,如果選擇將會生成很大的文本輸出),并且點擊OK來關(guān)閉 LocalStructure設(shè)置。
使用Job Manager來運行計算。
在計算完成之后,當前的結(jié)構(gòu)文件將會出現(xiàn)在LabFloor中。
局域結(jié)構(gòu)分析(LocalStructure)
在Viewer中打開它并在Viewer的面板欄中找到Local Structure插件。點開它您將獲得當前晶體結(jié)構(gòu)的表單。在這個例子中,我們可以高亮顯示多晶體的晶界結(jié)構(gòu):
選擇除了FCC之外所有的結(jié)構(gòu)類型,F(xiàn)CC是在硅晶粒中原始的晶體結(jié)構(gòu)。
點擊 Properties 插件用于打開屬性界面。在 Atoms 標簽里變化選擇原子的顏色,例如白色,用于區(qū)別這些原子與晶粒原子。
另外您可以點擊 Ball,用于關(guān)閉晶界內(nèi)部的鍵顯示。這樣可以增加多晶體的透明效果。
關(guān)閉Properties窗口將激活您作的改變,并且晶界也變得清晰可見。
進一步進行其他計算
除了當前結(jié)構(gòu)分析,您還能夠進行其他模擬,例如使用ATK-DFT引擎對提取的某個結(jié)構(gòu)進行密度泛函計算:這只需要在Script Generator中加入 New Calculator 塊 ,這為您的經(jīng)典的LAMMPS模擬提供量子力學計算接口。
參考文獻
[Pli95] Steve Plimpton. Fast parallel algorithms for short-range molecular dynamics. Journal of Computational Physics, 117(1):1 – 19, 1995. doi:10.1006/jcph.1995.1039.
鏈接:LAMMPS網(wǎng)站
鏈接:LAMMPS官方手冊 |