Lammps命令與in文件
文章來源:“分子動(dòng)力學(xué)”公眾號(hào)
鏈接:https://mp.weixin.qq.com/s/lYRYV4h7PZkWppGxalqc9w
in 文件描述一個(gè)符合牛頓定律的模擬過程,內(nèi)容大致包含三個(gè)部分:
構(gòu)建所模擬的體系,創(chuàng)造一個(gè)模擬環(huán)境的以及最后輸出想得到的數(shù)據(jù)
一、各類文件
in :程序?qū)懭?br>log :寫入狀態(tài)信息(if the switch is used?)
screen : 決定結(jié)果的是否進(jìn)行屏幕輸出
var name : 定義一個(gè)變量,name指變量名,可為字母也可為字符串,形式$x / $ {abc}
二、指令系統(tǒng)介紹
1.一般來說指令的順序并不重要,但在以下幾種情況中必須注意:1. LAMMPS并不是全部讀完所有指令才執(zhí)行,而是讀一行執(zhí)行一次,因此下面的兩組語(yǔ)句是不同的:
timestep 0.5 ? #以下的兩個(gè)模擬其步長(zhǎng)均為0.5 fmsec
run 100
run 100
run 100 ? ? ? ? #第一個(gè)模擬采用缺省值步長(zhǎng)為1 fmsec
timestep 0.5
run 100 ? ? ? ? #第二個(gè)采用步長(zhǎng)為0.5 fmsec
2. 某些指令只在其他指令之后才生效,如要得到系統(tǒng)溫度必須先進(jìn)行各種定義
3 .若A指令在B之前,B可以引用A定義的變量
三、in語(yǔ)法規(guī)則
1.在LAMMPS中要區(qū)分大小寫,一般指令名稱用小寫字母,文件及用戶定義ID Strings 用大寫。
2.LAMMPS對(duì)每行語(yǔ)句的語(yǔ)法要求如下:
當(dāng)語(yǔ)句太長(zhǎng)一行放不下時(shí),在語(yǔ)句一行結(jié)束的時(shí)候輸入字符 “&” 表示下一行的語(yǔ)句接著上一行繼續(xù)。
#注釋,但有例外
緊跟在$后的為定義變量
單詞間用空格隔開
第一個(gè)詞為指令名,后面的字段都是相關(guān)的參數(shù)
四、 語(yǔ)句結(jié)構(gòu)
1.Lammps官網(wǎng)命令,寫in data文件時(shí)注意看:https://lammps.sandia.gov/doc/Commands_all.html
http://2.in文件包括四個(gè)部分:初始值,定義原子和盒子,設(shè)定條件,run
大致了解這些命令如下:



lattice(晶格參數(shù)),region(選擇一個(gè)而區(qū)域),create_box(創(chuàng)建一個(gè)盒子),create-atoms(創(chuàng)建原子)——通過這四個(gè)命令創(chuàng)建原子(按晶格的方式),這種方式適合沒有分子拓?fù)湫畔⒌木w,如金屬,鹽等有規(guī)則晶體信息的物質(zhì)。
五、撰寫data,in文件并計(jì)算
以TIP4P水分子為例。#用in文件撰寫簡(jiǎn)單的小分子模擬
水分子模型參數(shù)(看下面in文件對(duì)照著來看):Lammps官網(wǎng)-教程-8.5節(jié)howto discussions:https://lammps.sandia.gov/doc/Howto.html
#強(qiáng)力安利軟件:UltraEdit——超強(qiáng)大的文本編輯器,編輯in data文件。(真的超好用,之后遇到很多更復(fù)雜的文件,如力場(chǎng),記事本已經(jīng)無法滿足了,會(huì)亂序)
data ?file for tip4p
3 atoms
2 bonds
1 angles
? ? ? ? ? ? ? ?#非剛體結(jié)構(gòu)in文件中不能寫masses,剛體的話要寫。full中read_data格式無masses
Coords ? ? ? ? ?#坐標(biāo) x y z
1 ? 1.360 ? 1.39 ? ?0.570
2 ? 1.770 ? 0.81 ? ?1.220
3 ? 0.430 ? 1.31 ? ?0.740
Types ? ? ? ? ?#原子編號(hào) 類型
1 ?1
2 ?2
3 ?2
Charges ? ? ? ?#電荷
1 ? -1.0484 ?
2 ? 0.5242 ?
3 ? 0.5242
? ? ? ? ? ? ? #下面時(shí)拓?fù)湫畔?可看最開頭總數(shù)
Bonds ? ? ? ? ?#鍵的編號(hào) 鍵的類型 誰(shuí)和誰(shuí)連在一起
1 ?1 ?1 2
2 ?1 ?1 3
Angles ? ? ? ?#一個(gè)角
1 ?1 ?2 1 3
# in file for tip4p model
echo ? ? ? ? ? screen ? ? ? ? #調(diào)試用,打印到屏幕或log文件。none or screen or log or both
units ? ? ? ? ?real ? ? ? ? ? #lj or real or metal or si or cgs or electron or micro or nano
dimension ? ? ?3 ? ? ? ? ? ? ?#2 or 3
boundary ? ? ? p p p ? ? ? ? ?#p f s m
atom_style ? ? full ? ? ? ? ? #重要 ?full:molecular + charge; atomic:only the default values;charge:charge
bond_style ? ? harmonic
angle_style ? ?harmonic
#創(chuàng)建一個(gè)box,并選擇一個(gè)區(qū)域把水放進(jìn)去
region ? ? ? ? box block 0 10 0 10 0 10 ? #規(guī)劃區(qū)域:定義一個(gè)長(zhǎng)方體區(qū)域叫box,長(zhǎng)寬高 單位angstrom
create_box ? ? 2 box bond/types 1 angle/types 1 ?extra/bond/per/atom 2 extra/angle/per/atom 1 ? #create_box N region-ID keyword value .....;box支持多少種(大于等于實(shí)際最大值):原子類型 鍵 角 每個(gè)原子包含鍵和角
molecule ? ? ? tip4 mol.data ? ?#導(dǎo)入模型,需要molecule安裝包才支持。
#read_data ? ? tip4.data ? ? ? ?#計(jì)算完后,生成restart.data,再把in文件改一下并且下面的設(shè)置部分改一下繼續(xù)算。
#region ? ? ? ?w2 block 10 30 10 30 10 30 ? #可定義一個(gè)之間空的區(qū)域w2
lattice ? ? ? ?sc 5.0 ? ? #設(shè)置晶格:晶胞類型,晶格常數(shù)。讓加入的原子分子在個(gè)點(diǎn)上。注意邊界也有分子
create_atoms ? 0 region w1 ?mol tip4 515 ?units box ?#從0開始,實(shí)際上沒有0這種原子類型。設(shè)1之后,加上分子就有三種原子類型,上面create_atoms可改為3
#create_atoms ?0 random 10 1234 w1 mol tip4 12 3units box ?#random不用在格點(diǎn)上,故lattice可不用。隨機(jī)生成,前面部分是生成原子,如果后面跟了分子,則是生成以隨機(jī)點(diǎn)為質(zhì)心的分子,前面注意要對(duì)應(yīng)box要支持這種分子的拓?fù)浣Y(jié)構(gòu),要對(duì)應(yīng)。如果沒跟分子,不能從0開始
mass ? ? ? ? ? ?1 15.9994 ? #原子類型,質(zhì)量
mass ? ? ? ? ? ?2 1.008
neighbor ? ?2.0 ? ?bin ? #截?cái)喟霃较嚓P(guān)的東西
neigh_modify ? ?delay 0 ? ?every 1 check yes ? ? ?#鄰近原子列表更新速度
pair_style ? ? ?lj/cut/tip4p/long 1 2 1 1 0.125 8.5 ? ?#相互作用勢(shì):原子編號(hào)類型, 鍵和角的相互作用勢(shì):OM距離 ,截?cái)?pair_coeff ? ? ?1 1 ?0.1852573718 3.1589 ? ? ? ? ? ? ?
pair_coeff ? ? ?1 2 ?0.0000000000 1.5795
pair_coeff ? ? ?2 2 ?0.0000000000 0.0000
bond_coeff ? ? ?1 1000 0.9572
angle_coeff ? ? 1 3000 104.52
kspace_style ? ?pppm/tip4p ? ?1.0e-5 ? #計(jì)算長(zhǎng)程庫(kù)侖項(xiàng),需要kspace安裝包才支持
dump ? ? ? ? ? ? ? 1 all ? ?custom 10 tip4.lammpstrj id type x y z ? ?#將信息寫入tip4.lammpstrj,此后可用vmd打開視圖
dump_modify ? ? 1 sort id
#dielectric ? ? ?80.0
fix ? ? ? ? ? ? 1 all ?shake 0.0001 ? ?2 ?0 ?b ? ?1 a 1 ? #設(shè)置偏差控制精度提示,步數(shù),步數(shù),鍵和角
fix ? ? ? ? ? ? 2 all nve ?#系綜,后面可跟定義的參數(shù)
fix ? ? ? ? ? ? 3 all temp/rescale 1 ?300 300 1 1.0 ?1.0
#minimize 1.0e-12 1.0e-12 1000 1000 ? #能量最小化參數(shù),指數(shù)越大最小化成都越深
thermo ? ? ? ? ?1000
timestep ? ? ? ?0.05 ? ?#步長(zhǎng)fs
run ? ? ? ? ? ?100000
write_data ? ? ?tip41.data ? ?#輸出
write_restart ? tip41.restart