末成年小嫩xb,嫰bbb槡bbbb槡bbbb,免费无人区码卡密,成全高清mv电影免费观看

分子動力學模擬與納米尺度傳熱(一):LAMMPS模擬軟件入門

引言

分子動力學模擬是一套數(shù)值模擬方法。該方法通過數(shù)值求解牛頓運動方程的方式,來獲得系統(tǒng)中每個原子的位置及速度隨時間的變化,從而可以獲取我們所關心的物理量,如比熱容、擴散系數(shù)、熱導率等。簡單的說,我們可以把分子動力學模擬當作在計算機上面完成的物理實驗。但相比于真正的物理實驗,分子動力學模擬可以獲取更小空間尺度(nm)和時間尺度(ps)上的信息。

分子動力學模擬與納米尺度傳熱(一):LAMMPS模擬軟件入門
在分子動力學模擬中,我們把每個原子當作剛性粒子,并通過經(jīng)典作用勢函數(shù)來描述原子間的相互作用。通過選取一個足夠小的時間步長來對連續(xù)運動方程進行離散化,從而可以跟蹤系統(tǒng)中每個原子的位置和速度隨時間變化的軌跡。在實際模擬中,一個系統(tǒng)可能包含幾千到幾十萬個原子,同時可能需要模擬幾十萬步或者更多,所以我們需要用專門的可進行并行計算的仿真軟件對系統(tǒng)進行模擬。

分子動力學模擬

最常用的分子動力學仿真軟件為LAMMPS,即為Large-scale Atomic/Molecular Massively Parallel Simulator的縮寫。LAMMPS為美國Sandia國家實驗室所開發(fā)的開源仿真軟件。經(jīng)過多年的開發(fā)及完善,LAMMPS如今已具備強大的仿真功能。但對于一些比較特殊的問題,我們仍然需要自己編寫代碼或對其源代碼進行修改才可以完成。一個典型的分析動力學仿真流程如下圖所示:

分子動力學模擬與納米尺度傳熱(一):LAMMPS模擬軟件入門

需要給定的輸入信息為仿真系統(tǒng)的結構文件(包含每個原子的初始位置及速度)以及原子之間的相互作用勢函數(shù)。有了這些輸入信息之后,就可以在模擬過程中跟蹤每個原子的位置及速度隨時間變化過程。需要注意的是在具體模擬過程中,我們可能需要對系統(tǒng)的狀態(tài)進行控制,比如控制溫度、壓強、原子的受力等,以達到特定的仿真目的。有了系統(tǒng)中原子位置和速度隨時間的演變信息,我們就可以在后處理過程中運用特定的理論或定律來求解我們所關心的物理量,如系統(tǒng)的比熱容,擴散系數(shù),熱導率等等。

在上述流程圖中,最關鍵的一步是求解牛頓運動方程,得到下一時刻原子的位置和速度。在分子動力學模擬中最常用的積分算法為Velocity Verlet積分算法。因其具有精度高、穩(wěn)定性好的特點,而被廣泛的使用。其算法積分步驟如下圖所示:

分子動力學模擬與納米尺度傳熱(一):LAMMPS模擬軟件入門
  1. 獲取時刻原子的位置、速度及受力。
  2. 根據(jù)時刻原子的速度及受力,計算(半步長)時刻每個原子的速度。
  3. 通過時刻的原子的位置及時刻原子的速度,計算在(整步長)時刻原子的位置。
  4. 根據(jù)原子在時刻所在位置的受力情況,計算(整步長)時刻的速度。
  5. 更新原子在時刻的所有信息,重復上述過程。

LAMMPS輸入例程

在LAMMPS 模擬中,我們可以通過輸入script 的方式來告訴LAMMPS我們想要具體執(zhí)行的模擬過程。輸入script中每一行表示一條指令,來告訴LAMMPS執(zhí)行具體的操作。關于LAMMPS中具體指令的使用方法,可參考LAMMPS的官方網(wǎng)站。下面以一個具體的例子來簡單介紹下LAMMPS 的使用。
(注:滑動屏幕可以顯示一行中不完整的代碼信息)

 1## 基本輸入信息,一行中以# 開始的部分表示注釋
 2units metal # 定義仿真過程中用到的單位系統(tǒng) ?
 3boundary p p p # 定義邊界條件,p p p 表示在三個方向上都使用周期性邊界條件
 4atom_style atomic # 定義原子的類型及屬性
 5# 讀取結構文件“structure.d”,里面包含仿真結構模型的具體信息
 6read_data structure.d
 7## 定義原子間的作用勢函數(shù)
 8pair_style tersoff #作用勢類型,我們的仿真系統(tǒng)為Si, 所以用Tersoff三體作用勢
 9pair_coeff * * SiC_Lindsay.tersoff Si Si # 所用勢的具體參數(shù)
10## 定義不同的group,后面的仿真中可能會對不同group進行不同的操作
11group left_end id <> 1 288 ?# 我們將輸入文件中ID 為1到288 號之間的原子定義成group left_end, 后面對該group會進行具體的操作
12group left_heat id <> 289 864
13group right_end id <> 29089 29376
14group right_heat id <> 28513 29088
15group mobile subtract all left_end right_end # 定義group mobile
16timestep 0.0005 # 定義仿真步長, 單位為ps
17## 仿真過程的開始,一個"fix" 表示對系統(tǒng)進行某項控制,如控制能量、溫度等
18# 給初始結果一定的初始速度分布,使得系統(tǒng)的初始溫度為300 K
19velocity all create 300 34678 sum no mom yes rot yes dist gaussian
20# 用Langevin 控溫器對系統(tǒng)的溫度進行控制
21fix 1 all langevin 300 300 0.1 48279
22fix 2 all nve/limit 0.1
23# 對系統(tǒng)的位子信息進行輸出,可以用后期可視化軟件如VMD對其進行觀看
24dump 1 all atom 100000 initial.lammpstrj
25# 對仿真過程中的熱力學信息進行輸出監(jiān)測
26thermo_style custom step temp press pe ke etotal lx ly lz
27thermo 1000
28# 對系統(tǒng)進行仿真 1000000 步
29run 1000000
30unfix 1 # 每一個fix 過程完需要unfix
31unfix 2
32undump 1

在該系列的隨后文章中,我們將介紹怎么用LAMMPS 來計算納米尺度傳熱的一些具體問題,如怎么計算材料的熱導率、界面熱阻等,以及怎么通過分子動力學仿真的方式來獲取更深層次的物理信息,敬請關注!

原創(chuàng)文章,作者:計算搬磚工程師,如若轉載,請注明來源華算科技,注明出處:http://www.zzhhcy.com/index.php/2024/03/16/79f57fe8b3/

(0)

相關推薦

主站蜘蛛池模板: 庆城县| 黑河市| 象山县| 高平市| 辉南县| 温宿县| 新郑市| 砚山县| 固原市| 常州市| 惠来县| 伊吾县| 堆龙德庆县| 松溪县| 乐昌市| 大方县| 呼图壁县| 彰武县| 隆林| 石林| 察隅县| 迁安市| 高尔夫| 汉沽区| 密云县| 河北区| 治多县| 紫阳县| 葵青区| 长武县| 泾源县| 大关县| 巴塘县| 区。| 尉氏县| 怀安县| 洛扎县| 罗甸县| 陆川县| 荣成市| 双桥区|