log mmt.log #目前的筆記,正在studying,不一定全對
in文件很好解釋的鏈接:https://www.docin.com/p-680967917.html
# 一、初始化(邊界條件);前兩行不要寫東西,第一行默認,不用改
echo screen #如果腳本有錯誤可以記錄下來,可有可無
units real
atom_style full #要與read_data中atom的格式嚴格對應,否則出現錯誤
dimension 3
boundary p p p
# LJ potentials:lj對、鍵、角、庫倫等(相互作用類型)
pair_style lj/cut/coul/long 12.5 #非鍵相互作用:LJ與12.5A截止和長距離庫侖,一般取10-15A,<0.5L(L最小盒子的邊長)
bond_style harmonic
angle_style harmonic
kspace_style ewald 1.0e-4 #長程力算法:長距離庫侖的ewald求和法
#讀入data文件
read_data mmt.data
pair_modify mix arithmetic
bond_coeff 1 80.0 1.2
angle_coeff 1 1.0 104.52
#二、能量最小化:實現較好的初始結構(主要目的),排除非常不理想的構象,避免分子丟失
min_style cg #能量最小化的模式(方法),cg/spin/fire/sd,選用默認即可,如cg
minimize 1.0e-4 1.0e-6 100 1000 #能量最小化參數,指數越大,最小化程度越深;依次為:能量、力、最大迭代步數、
dump 1 all atom 1000 dump1.lammpstrj #收集數據(輸出),每隔1000步收集一次數據
#實現較好的初始結構的方式除了能量最小化外,還有以下兩種方式:
#1.把相互作用勢改為軟勢:
# pair_style soft 1.0
# pair_coeff * * 10.0
#2.限制的算法:
# fix nve/limit 0.1 #0.1代表原子在一個時間時長能移動的最大距離
#寫fix語句,實現分子動力學-郎之萬動力學
#neighbor選取的大小對實際的計算結果影響很小,但對計算速度應該會有一定影響。
neighbor 0.5 bin #意思是每個原子在所取對勢(即pair style)的截斷半徑以外,計算機還會在0.5bin的額外范圍每一時間步檢測其原子間的相互作用力。
neigh_modify every 1 delay 0 check yes
#NVT系綜:nve+T~~nvt
velocity all create 298.0 105112 dist gaussian #由初溫度來獲得初速度,使用高斯分布生成原子的初始速度
fix 1 all nve #更新位置和速度,e和V保持不變。只有這個命令,就只nve系綜,如果和控溫命令一起,就是nvt系綜。
fix 2 all langevin 298.0 298.0 1000 699411 #控溫,fix ID group-ID langevin Tstart Tstop damp seed keyword values 這里溫度不變,恆溫298k。1000表示摩擦系數。
#熱力學數據的收集
thermo 1000 #輸出熱力學每隔1000(N)個時間步長
thermo_style custom step dt spcpu temp press #選擇輸出內容(看官網),根據自己的需要
#三、弛豫過程
dump 2 all atom 100 dump2.lammpstrj
run 10000
#四、結果數據輸出 data collection
undump 2 #把前邊弛豫2終止掉
dump 3 all custom 1000 dump3.lammpstrj id mol type x y z vx vy vz
#dump myDump all custom 100 dump.myforce.* id mol type x y z vx vy vz fx fy fz 根據自己需要收集什么數據來設置(這里是坐標和速度的收集,沒有熱力學數據的收集,需要用thermo命令)