| 查看: 16054 | 回復(fù): 63 | |||||||
| 【有獎(jiǎng)交流】積極回復(fù)本帖子,參與交流,就有機(jī)會(huì)分得作者 luyaobao 的 765 個(gè)金幣 ,回帖就立即獲得 5 個(gè)金幣,每人有 1 次機(jī)會(huì) | |||||||
[交流]
分子動(dòng)力學(xué)模擬及其LAMMPS實(shí)現(xiàn)
|
|||||||
|
(課程尚未完成,持續(xù)更新中)(三萬字超長文預(yù)警) 前言 1. 分子動(dòng)力學(xué)基礎(chǔ) 1.1 原理. 1.2 勢能 1.3 溫度、壓強(qiáng) 2. linux系統(tǒng)常見命令和操作 3. lammps介紹和并行版安裝(linux版) 4. lammps模擬基本流程 5. 建模和后處理軟件概述 6. 出錯(cuò)解決思路 7. 專題一:納米流動(dòng)(部分內(nèi)容) 8. 專題二:納米流體(待更新) 9. 專題三:潤濕(部分內(nèi)容) 9.1建模 10. 專題四:拉伸、壓縮、彎曲、扭轉(zhuǎn)、剪切(待更新) 11. 專題五:傳熱(待更新) 12. 專題六:粘度和擴(kuò)散(待更新) 13. 專題八:摩擦和磨損(待更新) 14. 專題九:反應(yīng)分子動(dòng)力學(xué)reaxff(待更新) 15. 專題十:耗散粒子動(dòng)力學(xué)(待更新) 16. 專題十一:自由能(待更新) 17. 專題十二:原子沉積和鍍膜(待更新) 前言 分子動(dòng)力學(xué)模擬在科研中的使用越來越廣泛。lammps作為分子動(dòng)力學(xué)中一款優(yōu)秀的開源軟件,使用率非常高。大量高水平的論文都是采用lammps完成的,其中不乏nature,science,prl,jacs,nature communication,pnas等頂刊。但是對(duì)于零基礎(chǔ)的同學(xué),特別是本科生和低年級(jí)碩士生,lammps的學(xué)習(xí)曲線還是比較陡峭的。很多同學(xué)都是課題組內(nèi)第一個(gè)使用分子動(dòng)力學(xué)模擬和lammps,其困難可想而知。如果能有一個(gè)針對(duì)lammps的系列教程對(duì)學(xué)生掌握這個(gè)工具會(huì)大有裨益。本教程就是希望能夠在學(xué)生使用lammps初期降低學(xué)習(xí)難度,少走彎路,快速上手,將自己的精力集中在具體的科學(xué)問題上,而不是軟件的學(xué)習(xí)上。本教程假設(shè)你之前對(duì)linux,分子動(dòng)力學(xué)和lammps一無所知,從頭開始講,因此比較淺顯,并未就某些問題進(jìn)行深入介紹(其實(shí)是深入的我也不會(huì),哈哈)。 我將分子動(dòng)力學(xué)研究科學(xué)問題分為三個(gè)部分:軟件使用,分子動(dòng)力學(xué)理論,科學(xué)問題發(fā)現(xiàn)。如果把分子動(dòng)力學(xué)比作武林,那么軟件的使用僅僅是招式,分子動(dòng)力學(xué)理論則是內(nèi)功心法,而科學(xué)問題則是對(duì)手。要想成為一名武林高手,在江湖上闖出一番事業(yè),既要熟練掌握各種招式,也要有很深的內(nèi)功修為,同時(shí)也要有一些值得尊敬的對(duì)手。只有用深厚的內(nèi)功催動(dòng)精妙的招式,才能打敗可敬的對(duì)手,受到江湖傳頌。本教程只是lammps的使用教程,它會(huì)教給你使用lammps的一招一式,但要將招式練得熟練,還需要自己在科研中積累大量模擬經(jīng)驗(yàn)。而內(nèi)功心法的修煉則需要長時(shí)間的學(xué)習(xí)經(jīng)典教材和文獻(xiàn)。好的對(duì)手必須要廣泛閱讀文獻(xiàn),與導(dǎo)師深入溝通確定具有很好學(xué)術(shù)價(jià)值的科學(xué)問題。那么有沒有一種方法像武俠小說中的主角,掉下懸崖然后打通任督二脈,迅速成為高手。答案是當(dāng)然是沒有的。但是作為物理學(xué)分支,我推薦閱讀《費(fèi)曼物理講義》第一卷,可以起到類似的作用?傊,科研沒有坦途,靜心學(xué)習(xí),努力思考必有所成。 “l(fā)ammps即large-scale atomic/molecular massively parallel simulator,可以翻譯為大規(guī)模原子分子并行模擬器,主要用于分子動(dòng)力學(xué)相關(guān)的一些計(jì)算和模擬工作,一般來講,分子動(dòng)力學(xué)所涉及到的領(lǐng)域,lammps代碼也都涉及到了。lammps由美國sandia國家實(shí)驗(yàn)室開發(fā),以gpl license發(fā)布,即開放源代碼且可以免費(fèi)獲取使用,這意味著使用者可以根據(jù)自己的需要自行修改源代碼。lammps可以支持包括氣態(tài),液態(tài)或者固態(tài)相形態(tài)下、各種系綜下、百萬級(jí)的原子分子體系,并提供支持多種勢函數(shù)。且lammps有良好的并行擴(kuò)展性!薄园俣劝倏。lammps的官網(wǎng)是https://www.lammps.org/。在lammps的官網(wǎng)中有大量關(guān)于軟件的信息,可以好好探索一番。有幾個(gè)地方可以經(jīng)?纯。第一是publication部分https://www.lammps.org/papers.html,記錄引用lammps的所有文章,多看看對(duì)自己的研究有所啟發(fā)。maillist部分https://www.lammps.org/mail.html是lammps的支持社區(qū)。當(dāng)你有問題的時(shí)候可以檢索maillist,你遇到的問題別人也遇到過。所以查看開發(fā)者對(duì)這些問題的解答。 如何學(xué)習(xí)lammps?你可以把本教程當(dāng)做一個(gè)開始。lammps的手冊中詳細(xì)介紹了軟件的各個(gè)方面。一定要好好閱讀手冊。手冊的前四章要認(rèn)真閱讀。經(jīng)常使用的命令也要仔細(xì)閱讀。當(dāng)你要實(shí)現(xiàn)某種功能的時(shí)候就把手冊打開看看命令。仔細(xì)閱讀學(xué)習(xí)lammps官方手冊是成為lammps高手的必經(jīng)之路,閱讀學(xué)習(xí)一本分子動(dòng)力學(xué)模擬經(jīng)典教材是增加修為的關(guān)鍵。希望本教程能教會(huì)你lammps的基本招式。祝你好運(yùn)! lammps官網(wǎng)推薦了幾本分子動(dòng)力學(xué)模擬教材: books about molecular dynamics generally or lammps specifically note that these are not endorsements of particular books. we simply want to make the lammps user community aware of them as potentially useful resources. general md books: allen & tildesley - computer simulation of liquids frenkel & smit - understanding molecular simulation: from algorithms to application griebel, knapek, zumbusch - numerical simulation in molecular dynamics: numerics, algorithms, parallelization, applications tuckerman - statistical mechanics: theory and molecular simulation books about lammps specifically: mubin & li - extending and modifying lammps (see below) 1. 分子動(dòng)力學(xué)基礎(chǔ) 1.1 原理 本節(jié)只是簡要介紹分子動(dòng)力學(xué)的原理,如果要深入學(xué)習(xí)相關(guān)內(nèi)容,可閱讀前言中推薦的教材。 分子動(dòng)力學(xué)的基礎(chǔ)是牛頓力學(xué),也即經(jīng)典力學(xué)。經(jīng)典力學(xué)中有三個(gè)主要內(nèi)容:質(zhì)點(diǎn)、力和運(yùn)動(dòng)。牛頓第二定律是經(jīng)典力學(xué)的核心,下面兩個(gè)質(zhì)點(diǎn)的方程大家一定不陌生。 我們把他寫成離散的形式,也稱為差分形式: 如果delta_t足夠小那么離散形式可以以足夠的精度近似連續(xù)形式。首先我們假設(shè)質(zhì)點(diǎn)的受力之依賴于它的位置,也就是說只是位置的函數(shù)。事實(shí)上這是一個(gè)很普遍成立的假設(shè),比如重力或者萬有引力,在質(zhì)量確定的情況下只依賴于兩個(gè)物體之間的相對(duì)距離。在比如靜電力,在電荷確定的情況下只依賴于兩個(gè)帶電質(zhì)點(diǎn)的相對(duì)距離。有了這個(gè)假設(shè),我們考慮一個(gè)一維的簡單情形。有兩個(gè)質(zhì)點(diǎn)放置在光滑的地面上,如下圖。 在t=0時(shí)刻,質(zhì)量為m_a位于x_0^a的質(zhì)點(diǎn)a以速度v_0^a朝質(zhì)量為m_b位于x_0^b且靜止(即v_0^b=0)的質(zhì)點(diǎn)b運(yùn)動(dòng)。兩個(gè)質(zhì)點(diǎn)之間的受力f_ab只是質(zhì)點(diǎn)a與質(zhì)點(diǎn)b之間距離x_ab的函數(shù),也即只要知道x_ab,我們就能計(jì)算出來f_ab。然后,我們要問的問題是在后續(xù)的時(shí)間中兩個(gè)質(zhì)點(diǎn)是怎么運(yùn)動(dòng)的?我們這時(shí)設(shè)定一個(gè)很小的delta_t。我們知道初始速度那么有 這樣我們就知道了t_0+delta_t時(shí)刻,質(zhì)點(diǎn)a和b的位置和速度。由新的位置又可以得到新的受力。重復(fù)上述公式就可以知道后續(xù)所有時(shí)刻兩個(gè)質(zhì)點(diǎn)的位置和速度,也就是知道兩個(gè)質(zhì)點(diǎn)的運(yùn)動(dòng)細(xì)節(jié)。總結(jié)一下我們結(jié)算所有時(shí)刻質(zhì)點(diǎn)的運(yùn)動(dòng)細(xì)節(jié)要提前知道哪些信息。質(zhì)點(diǎn)的質(zhì)量、初始速度、初始位置和依賴于位置的受力函數(shù)。如果我們再選一個(gè)足夠小的delta_t,那么我們就能夠準(zhǔn)確的得到質(zhì)點(diǎn)a和b的所有運(yùn)動(dòng)信息。 我們把情形擴(kuò)展到二維。在一個(gè)光滑的臺(tái)球桌面上,白球在初始時(shí)刻以確定的速度撞向其他擺好的臺(tái)球。如果我們把臺(tái)球都看成質(zhì)點(diǎn),又知道所有臺(tái)球的質(zhì)量、初始速度、初始位置和依賴于位置的受力函數(shù),我們就能預(yù)測擊球后所有時(shí)刻臺(tái)球的運(yùn)動(dòng)軌跡,從而判斷臺(tái)球是否能夠進(jìn)袋。我們再把情形擴(kuò)展到三維。考慮宇宙中只存在太陽和太陽系的八大行星。我們是否能夠通過萬有引力去預(yù)測所有行星的軌跡。答案當(dāng)然是可以的。只是此時(shí)我們知道某個(gè)行星除了來自太陽的引力,還有來自其他行星的應(yīng)力。我們在計(jì)算某個(gè)行星的受力時(shí),要考慮該行星與其余所有天體之間的受力。這就是經(jīng)典力學(xué)能夠告訴我們的東西。 在這個(gè)概念上,拉普拉斯提出了一個(gè)想法。如果存在一只神奇的動(dòng)物,它能基于經(jīng)典力學(xué)解算出世界上所有東西的位置和速度并能加以分析,那么世界上發(fā)生的一切及其背后的原因都一覽無余的呈現(xiàn)在它眼前。這就是經(jīng)典力學(xué)的世界觀和認(rèn)識(shí)論。分子動(dòng)力學(xué)的理論就是基于這樣的認(rèn)識(shí)方法。像上面的例子一樣,分子動(dòng)力學(xué)的目的就是為了求解任意時(shí)刻所有組成物體原子的位置和速度,從而認(rèn)識(shí)物質(zhì)世界。 為什么這個(gè)方法具有很大的威力呢?這是多年科學(xué)實(shí)踐告訴我們的。事實(shí)上著名物理學(xué)家理查德·費(fèi)曼對(duì)這個(gè)問題有著精彩的描述。理查德·費(fèi)曼在其傳世物理教材《費(fèi)曼物理講義》中提出這樣一個(gè)有意思的問題:“假如由于某種大災(zāi)難,所有的科學(xué)知識(shí)都丟失了,只有一句話傳給下一代,那么怎樣才能用最少的詞匯來表達(dá)最多的信息呢?”費(fèi)曼認(rèn)為這句話應(yīng)該是原子假設(shè):“所有物體都是用原子構(gòu)成的——這些原子是一些小小的粒子,它們一直不停地運(yùn)動(dòng)著,當(dāng)彼此略微離開地時(shí)互相吸引,當(dāng)彼此過于靠近時(shí)又相互排斥。”這句話之所以重要是因?yàn)榛谶@個(gè)原子假設(shè)我們能解釋巨量自然界中的現(xiàn)象。比如,氣體壓強(qiáng)來自于大量氣體分子對(duì)壁面撞擊;水蒸發(fā)吸熱來自于水分子從體相水中逃逸至外界環(huán)境而帶走能量所致。。。。。更多詳細(xì)例子可閱讀《費(fèi)曼物理講義》第一卷的相關(guān)內(nèi)容。 費(fèi)曼把原子假設(shè)放在如此高度的原因總結(jié)起來就是——掌握組成物體內(nèi)部原子的行為就可解釋和理解物體的性質(zhì)和行為。只是這個(gè)時(shí)候我們關(guān)注的是大量原子在一起表現(xiàn)出來的整體特性,而不是關(guān)注具體某個(gè)原子的運(yùn)動(dòng)細(xì)節(jié)。事實(shí)上,實(shí)踐告訴我們大量原子在一起就會(huì)表現(xiàn)出某些特定的確定的性質(zhì)和行為,也就我們實(shí)際生活生產(chǎn)中能直接測量和感受的性質(zhì)和行為。到這里我們可以看到分子動(dòng)力學(xué)實(shí)際上就是一只拉普拉斯獸。分子動(dòng)力學(xué)的基本任務(wù)就是獲取物體在任意時(shí)刻組成原子的所有位置和動(dòng)量然后利用統(tǒng)計(jì)力學(xué)知識(shí)理解物體的性質(zhì)和行為。如果這樣還不能說服你分子動(dòng)力學(xué)的實(shí)力。就講一個(gè)事實(shí)——2013年諾貝爾化學(xué)獎(jiǎng)?lì)C給了創(chuàng)立跨尺度分子模擬的三位科學(xué)家。通過分子動(dòng)力學(xué)模擬我們可以深刻理解我們所研究的對(duì)象。目前各種硬件超強(qiáng)的計(jì)算能力為分子動(dòng)力學(xué)創(chuàng)建了一個(gè)大有可為的時(shí)代! 分子動(dòng)力學(xué)的基本任務(wù)就是獲得研究對(duì)象不同時(shí)刻的位置和動(dòng)量,然后基于統(tǒng)計(jì)力學(xué)知識(shí)獲得想要的物理量,解釋對(duì)象的性質(zhì)和行為。因此,分子動(dòng)力學(xué)的模擬流程超級(jí)簡單。第一步,設(shè)置研究對(duì)象組成原子或者粒子(下面統(tǒng)一稱為粒子)初始位置和速度;第二步,基于粒子的位置計(jì)算每個(gè)粒子受到的合力,并基于牛二定律計(jì)算粒子的加速度;第三步,基于加速度計(jì)算粒子下一時(shí)刻的速度;第四步,基于下一時(shí)刻的速度計(jì)算下一時(shí)刻的位置;第五步,循環(huán)第二步到第四步的過程,得到一系列時(shí)刻粒子的位置和速度;第六步,基于位置和速度信息得到描述對(duì)象性質(zhì)和行為的物理量。 分子動(dòng)力學(xué)的基本原理就是這么簡單,正因?yàn)楹唵嗡杂行。需要指出的是在?shí)際編程求解的過程考慮到計(jì)算精度等原因上述過程在某些細(xì)節(jié)上會(huì)略有改動(dòng)。但是,基本上你可以認(rèn)為這就是分子動(dòng)力學(xué)的原理和流程。上述過程由lammps幫你實(shí)現(xiàn),你需要做的就是設(shè)置研究對(duì)象的基本信息,告訴給lammps,然后開始模擬。 1.2 勢能 前面我們知道要獲得所有原子的軌跡,需要知道原子的質(zhì)量,初始位置,初始速度和依賴于位置的受力函數(shù)。原子的質(zhì)量,初始速度和初始位置都是我們?nèi)藶樵O(shè)定的值。不同研究對(duì)象的原子質(zhì)量,初始速度和位置很容易獲得。不同研究對(duì)象更本質(zhì)的差別在于依賴于位置的受力函數(shù),這個(gè)函數(shù)又被稱為相互作用。相互作用的形式和參數(shù)決定了研究對(duì)象的性質(zhì)和行為。在分子動(dòng)力學(xué)中,這個(gè)相互作用通過原子之間的勢能進(jìn)行描述,因此又稱為勢能函數(shù)或勢函數(shù)。而受力是勢能對(duì)位置的負(fù)梯度,因?yàn)閷?shí)踐表明原子之間的受力都是保守力。舉個(gè)例子,重力和重力勢能。取豎直向上為正方向,則重力表達(dá)式為 重力勢能的表達(dá)式是 即重力勢能對(duì)位置的負(fù)梯度就是重力 為什么要用勢能,而不是受力來表達(dá)相互作用呢?這是因?yàn)樵诮^大多數(shù)模擬中采用的是笛卡爾坐標(biāo)。勢能是標(biāo)量,而力是矢量,數(shù)學(xué)上處理起來更容易。在計(jì)算受力的時(shí)候,直接用勢能對(duì)兩個(gè)原子之間的相對(duì)位置進(jìn)行求導(dǎo),然后將這個(gè)力乘以方向余弦就能得到三個(gè)方向上的受力。舉例說明,在三維空中有兩個(gè)原子 兩個(gè)原子之間的距離 那么原子對(duì)原子的受力就為 這樣不管是程序的簡潔性還是計(jì)算效率都會(huì)很好。所以要開展分子動(dòng)力學(xué)計(jì)算,首先必須確定所有原子之間的勢能函數(shù),即勢能關(guān)于兩個(gè)原子之間相對(duì)位置的函數(shù)。確定函數(shù)分為兩個(gè)部分:函數(shù)表達(dá)式和表達(dá)式中的常數(shù)值。對(duì)于一個(gè)對(duì)象,描述其相互作用的勢能函數(shù)表達(dá)式和表達(dá)式中常數(shù)值的集合稱為該對(duì)象的力場。通常一種力場可以用來描述一類對(duì)象。分子動(dòng)力學(xué)模擬一般研究的對(duì)象可以分為:惰性氣體,分子物質(zhì),金屬晶體和非金屬晶體。分子動(dòng)力學(xué)模擬絕大多數(shù)情況用來研究固體和液體,即凝聚態(tài)。對(duì)于氣體分子動(dòng)力學(xué)模擬效率太低,有更好的辦法進(jìn)行研究。簡單液體原子之間相互作用只具有范德瓦爾斯作用的物質(zhì)。描述范德瓦爾斯作用最常用的表達(dá)式是lennard-jones12/6勢能。通常用lj12/6描述的物質(zhì)也稱為簡單液體。 上圖是lj/126勢函數(shù)的圖像。對(duì)于該勢函數(shù)有幾個(gè)重要的點(diǎn)要說一下。勢能的最低點(diǎn)的到零點(diǎn)之間的絕對(duì)值為ε,稱為勢能函數(shù)的特征能量,勢能的零點(diǎn)位于處r=σ,稱為勢能函數(shù)的特征長度。勢能函數(shù)的最低點(diǎn)位于處r=2^1/6σ,在該點(diǎn)處勢能對(duì)位置的導(dǎo)數(shù)是零,所以該點(diǎn)處受力也為零。該點(diǎn)也稱為平衡位置,我們可以看到在平衡位置出勢能是負(fù)的。所以當(dāng)體系處于平衡狀態(tài)時(shí),原子之間的相對(duì)距離大概也在平衡位置附近,所以勢能為負(fù)的。這也就是為什么大多數(shù)情況分子動(dòng)力學(xué)算出來的勢能都是負(fù)的。在r<2^1/6σ,兩個(gè)原子之間表現(xiàn)為相互排斥,在r>2^1/6σ,兩個(gè)原子之間表現(xiàn)為相互吸引。從勢函數(shù)的圖像上可以看出在較大的時(shí)候,勢能趨于零,其導(dǎo)數(shù)也趨于零。也就是當(dāng)兩個(gè)原子距離很遠(yuǎn)的時(shí)候,原子之間的相互作用可以忽略不計(jì)。因此在實(shí)際計(jì)算的時(shí)候都會(huì)使用截?cái)嗟膌j/126。截?cái)嗑嚯x成為截?cái)喟霃,其值大概在。就像重力勢能一樣,勢能的?jì)算需要一個(gè)參考位置。lj/126的參考位置選擇在了無限遠(yuǎn)處。類似lj/126勢能以及其他拓展的lj勢能,都稱為對(duì)勢,其含義是兩個(gè)原子之間的相互作用只由這一對(duì)原子決定,與其它相鄰原子沒有關(guān)系。分子物質(zhì)原子之間有化學(xué)鍵連接的物質(zhì)。比如常見的水,甲烷,乙醇,醋酸,氯化鈉,聚乙烯,酯類,氨基酸,rna,dna等。分子物質(zhì)是分子動(dòng)力學(xué)模擬應(yīng)用最廣的對(duì)象之一。為了描述分子物質(zhì)研究者開發(fā)出了一系列力場。值得說明的是力場是一個(gè)經(jīng)驗(yàn)性的東西。研究者通過自己的物理直覺和反復(fù)試驗(yàn),最終建立起適合某一類物質(zhì)的力場。對(duì)于分子物質(zhì),相互作用包括兩類:非鍵結(jié)勢能和鍵結(jié)勢能。非鍵結(jié)用來描述沒有化學(xué)鍵連接原子之間的相互作用,鍵結(jié)勢能用來描述有化學(xué)鍵連接原子之間的相互作用,如下圖。 在一個(gè)體系中任意兩個(gè)非鍵結(jié)的原子,如果其距離小于截?cái)喟霃侥敲炊家紤]它們之間的非鍵結(jié)相互作用。對(duì)于大多數(shù)力場非鍵結(jié)勢能用lj12/6描述。對(duì)于鍵結(jié)原子之間的相互作用則通過鍵結(jié)勢函數(shù)進(jìn)行描述。鍵結(jié)相互作用分為鍵能(bond),鍵角能(angle),二面角能(dihedral),離平面能(improper)。兩個(gè)以化學(xué)鍵相連的兩個(gè)原子都具有鍵能相互作用,當(dāng)化學(xué)鍵偏離平衡長度的時(shí)候兩個(gè)原子就會(huì)出現(xiàn)相互作用。三個(gè)化學(xué)鍵連接的相鄰原子之間均具有鍵角能,當(dāng)三個(gè)原子之間的角度偏離平衡角度的時(shí)候就會(huì)產(chǎn)生鍵角能。四個(gè)化學(xué)鍵連接的相鄰原子之間會(huì)存在二面角能相互作用,當(dāng)四個(gè)原子構(gòu)成的二面角偏離平衡二面角的時(shí)候四個(gè)原子之間會(huì)出現(xiàn)二面角相互作用。四個(gè)相鄰化學(xué)鍵連接的相鄰原子之間有時(shí)還會(huì)存在離平面勢能作用,當(dāng)?shù)谒膫(gè)原子偏離前三個(gè)原子所構(gòu)成平面的平均夾角時(shí),四個(gè)原子之間會(huì)存在離平面能相互作用。不同的分子會(huì)具有不同的鍵結(jié)勢能。如氧氣分子就只具有鍵能相互作用,水分子具有鍵能和鍵角相互作用,十二烷分子具有鍵能,鍵角能和二面角相互作用分子。元素構(gòu)成較為復(fù)雜的分子,如rna,就會(huì)同時(shí)具有四種鍵結(jié)相互作用。具體一個(gè)分子具有哪些鍵結(jié)能相互作用,由描述該分子的力場所定義。你只需要使用合適的軟件在建模的時(shí)候會(huì)自動(dòng)定義好各種鍵結(jié)信息和勢能函數(shù)的參數(shù)。值得指出的是,在分子體系中原子一般都帶有電荷,所以非鍵結(jié)原子之間會(huì)存在靜電相互作用。在大多數(shù)力場中,原子的電荷都是部分電荷,也就是電荷一般都是零點(diǎn)幾幾幾。這是由于在共價(jià)鍵中任何一個(gè)原子都并沒有完全得到或失去一個(gè)電子,只是部分的得到或失去電子,因此在描述其電荷的時(shí)候都是零點(diǎn)幾幾幾。少數(shù)強(qiáng)電解質(zhì)會(huì)有整數(shù)電荷,比如氯化鈉中的氯離子和鈉離子,分別是-1和+1電荷。這里的電荷單位是一個(gè)電子或質(zhì)子所帶的電荷量,也就是單位電荷量。 為什么會(huì)采用多種鍵結(jié)勢能函數(shù)來描述分子體系呢?這是因?yàn)殒I結(jié)的原子之間電子云的相互作用會(huì)對(duì)分子的構(gòu)型進(jìn)行限制,導(dǎo)致分子會(huì)具有特定的幾何形狀。分子動(dòng)力學(xué)為描述這種情形就采用這樣鍵能組合的形式。這是一種經(jīng)驗(yàn)的方法。實(shí)踐表明這是一種很好的辦法。只要有合適的勢函數(shù)形式和參數(shù),采用的力場就能夠準(zhǔn)確描述分子的構(gòu)型和之間的相互作用。目前研究者針對(duì)分子體系已經(jīng)開發(fā)出多套力場。 金屬晶體和非金屬晶體 這兩類物質(zhì)具有特殊的結(jié)構(gòu),研究者為它們開發(fā)了額外的勢函數(shù),稱為多體勢函數(shù),來描述原子之間的作用。所謂多體就是說兩個(gè)原子之間的相互作用不僅取決于這兩個(gè)原子還與其周圍的原子有關(guān)系。針對(duì)某種物質(zhì)研究者已經(jīng)開發(fā)出相應(yīng)的力場參數(shù),只需要搜索一般就能找到對(duì)應(yīng)的勢函數(shù)參數(shù)或文件。我對(duì)這些勢函數(shù)不太了解,就不在這里贅述了。 以上就是關(guān)于勢能和勢函數(shù)的內(nèi)容。需要指出的是為了提高模擬精度,研究者還針對(duì)開發(fā)出了針對(duì)某一種物質(zhì)的勢函數(shù)。當(dāng)你要模擬這些物質(zhì)時(shí),直接查找原始文件中的參數(shù)就行。關(guān)于力場的選擇,當(dāng)然是選針對(duì)要研究體系的力場。但是對(duì)于lammps來說建模是個(gè)很麻煩的事。如果你能找到一種力場描述的體系,并且成功建模,那你就偷著樂吧。不同力場之間的差別并不是那么明顯。事實(shí)上,分子動(dòng)力學(xué)模擬最大的價(jià)值就在于給出研究對(duì)象的一般性規(guī)律和背后的機(jī)理,而不是計(jì)算出某些精確的數(shù)值。而大多數(shù)力場能夠捕捉研究對(duì)象的本質(zhì)特征,這就基本上能夠保證這個(gè)力場能夠再現(xiàn)研究對(duì)象的本質(zhì)規(guī)律,這對(duì)于我們來說就已經(jīng)足夠了。當(dāng)然,力場的開發(fā)一直在發(fā)展中以越來越精確的描述研究對(duì)象。比如幾年來發(fā)展出來的機(jī)器學(xué)習(xí)力場就能夠以量子的精度開展分子動(dòng)力學(xué)模擬。這是分子動(dòng)力學(xué)模擬方法中的一大進(jìn)展。當(dāng)你要驗(yàn)證一個(gè)力場的時(shí)候,計(jì)算研究對(duì)象你所關(guān)心的物理量的數(shù)值和實(shí)驗(yàn)或者文獻(xiàn)對(duì)比,如果接近,力場就能用。 1.3 溫度、壓強(qiáng)(這里寫的有點(diǎn)簡單了,先就這樣吧) 溫度對(duì)于分子動(dòng)力學(xué)模擬是一個(gè)很重要的物理量,因?yàn)榉肿觿?dòng)力學(xué)一般用來模擬凝聚態(tài),如果溫度過高就氣化了。初中物理告訴我們溫度是原子熱運(yùn)動(dòng)劇烈程度的度量。原子熱運(yùn)動(dòng)越劇烈,溫度越高。也就是說溫度和原子的熱運(yùn)動(dòng)速度是直接相關(guān)的。根據(jù)統(tǒng)計(jì)力學(xué)三維系統(tǒng)中溫度和原子速度具有以下對(duì)應(yīng)關(guān)系 其中,是n原子總個(gè)數(shù),k_b是玻爾茲曼常數(shù)。通過調(diào)整原子的速度就可以實(shí)現(xiàn)控制系統(tǒng)的溫度。 壓強(qiáng)是另一個(gè)重要的物理量。壓強(qiáng)在分子動(dòng)力學(xué)中這樣定義的 其中,v是系統(tǒng)體積。第一項(xiàng)來自原子熱運(yùn)動(dòng)的貢獻(xiàn)。第二項(xiàng)來自原子之間相互作用的貢獻(xiàn),稱為維里項(xiàng)。通過調(diào)整系統(tǒng)的體積和原子的位置就可以實(shí)現(xiàn)控制系統(tǒng)的壓強(qiáng)。對(duì)于液體來說壓強(qiáng)就等于我們平時(shí)所接觸到的壓強(qiáng)。而對(duì)于固體來說這里的壓強(qiáng)實(shí)際上就是內(nèi)應(yīng)力。事實(shí)上,壓強(qiáng)其實(shí)就是系統(tǒng)內(nèi)部應(yīng)力張量的對(duì)角線分量。壓強(qiáng)和溫度都是強(qiáng)度量,就是說其值與系統(tǒng)規(guī)模無關(guān)。與之相對(duì)應(yīng)的是廣延量,比如能量,當(dāng)系統(tǒng)規(guī)模增大時(shí),系統(tǒng)能量增加。 更多分子動(dòng)力學(xué)的細(xì)節(jié)將結(jié)合lammps使用過程進(jìn)行介紹。 2. linux系統(tǒng)常見命令和操作 lammps是在針對(duì)linux系統(tǒng)開發(fā)的。雖然windows系統(tǒng)也能用但是會(huì)出現(xiàn)很多問題,所以強(qiáng)烈推薦你使用linux系統(tǒng)運(yùn)行l(wèi)ammps。要搞模擬你一定要熟悉linux的命令行操作邏輯,要習(xí)慣使用腳本來寫lammps命令。很多軟件包括開源的和商業(yè)的都是采用腳本控制的方式來執(zhí)行的。 在linux系統(tǒng)中使用最多的不是鼠標(biāo)點(diǎn)點(diǎn)點(diǎn),而是在終端中輸入命令行來執(zhí)行操作。執(zhí)行一條命令是指在終端中輸入該命令,然后回車執(zhí)行。在ubuntu系統(tǒng)中可以使用ctrl+alt+t來打開終端,其他linux操作系統(tǒng)可以在軟件列表中點(diǎn)擊打開終端。這里只列舉最常用的命令。 cd命令用來進(jìn)入某個(gè)目錄,比如cd /home就是進(jìn)入home文件夾。在linux中.表示當(dāng)前目錄,..表示上一級(jí)目錄。ls命令列出當(dāng)前目錄下的所有文件和文件夾。pwd命令返回當(dāng)前目錄的路徑。mkdir創(chuàng)建文件夾,如mkdir software表示在當(dāng)前目錄下創(chuàng)建software文件夾,mkdir /home/softeare,表示在/home文件夾下創(chuàng)建software文件夾。rm命令刪除文件或文件夾。tar解壓縮命令當(dāng)壓縮文件的擴(kuò)展名是.tar.gz時(shí)可以使用tar -xvzf 壓縮文件名,將壓縮文件解壓。which命令,查找可執(zhí)行文件的路徑,如which lmp_g++_mpich就是查找可執(zhí)行文件lmp_g++_mpich的所在路徑,如果返回路徑那么這個(gè)命令就可以被系統(tǒng)找到,如果什么也沒返回就是找不到。echo命令返回變量的值,如echo $path就是返回path的值。環(huán)境變量是指系統(tǒng)或軟件定義的變量,一般用于文件查找。最常見的環(huán)境變量就是path,該變量記錄了眾多可執(zhí)行文件的位置。如果一個(gè)可執(zhí)行文件的路徑被添加到path中了,那么在運(yùn)行該文件時(shí)可以直接在終端中寫該文件的名字,如果沒有被添加那么就要寫出該文件的絕對(duì)路徑才能執(zhí)行該文件。將一個(gè)路徑添加到path中需要修改.bashrc文件。輸入執(zhí)行vim ~/.bashrc,就可以打開.bashrc文件,按i鍵進(jìn)入編輯模式,將光標(biāo)定位在文件末尾并添加以下一行 path=$path:<路徑名>,按esc鍵退出編輯模式,輸入:wq后回車,這樣就保存好了剛才的編輯,并退出了.bashrc文件回到了終端。在終端輸入source ~/.bashrc就可以是剛才的操作發(fā)生作用。sudo是臨時(shí)取得root權(quán)限命令,當(dāng)你要在系統(tǒng)目錄中添加或修改文件的時(shí)候就需要把sudo加到執(zhí)行命令前面,如sudo cp ./lmp /usr/bin就是把當(dāng)前目錄下的lmp文件拷貝到系統(tǒng)目錄/usr/bin中。帶有sudo的命令回車執(zhí)行后需要輸入用戶密碼,當(dāng)你在輸入密碼的時(shí)候終端上不會(huì)顯示密碼,但是確實(shí)是輸進(jìn)去了,輸完回車如果密碼正確就開始執(zhí)行命令了。其他命令可以百度能夠找到大量資料。當(dāng)你在使用linux系統(tǒng)時(shí)需要問一個(gè)問題,你就百度,一定能找到答案。 3. lammps介紹和并行版安裝(linux版) 這里介紹在ubuntu在編譯并行版lammps并執(zhí)行。首先假設(shè)你已經(jīng)有了一臺(tái)安裝了ubuntu系統(tǒng)的電腦。你的用戶名叫me。電腦聯(lián)網(wǎng)。分別在lammps官網(wǎng),mpich2官網(wǎng)和fftw官網(wǎng)下載對(duì)應(yīng)的lammps,mpich和fftw的最新版源代碼,然后 第一步按ctrl+alt+t打開一個(gè)終端,輸入執(zhí)行以下命令 sudo apt-get update sudo apt-get install build-essential sudo apt-get install vim 第二步輸入執(zhí)行 mkdir /home/me/software mkdir /home/me/software/mpich mkdir /home/me/software/fftw 第三步將下載好的三個(gè)源代碼的壓縮文件拷貝進(jìn)/home/me/software目錄下 第四步輸入執(zhí)行 tar -xvf <lammps壓縮文件的名稱> tar -xvf <mpich壓縮文件的名稱> tar -xvf <fftw壓縮文件的名稱> 第五步進(jìn)入解壓出來的mpich的目錄執(zhí)行 ./configure -prefix=/home/me/software/mpich --disable-fortran make make install 第六步進(jìn)入解壓出來的fftw的目錄執(zhí)行 ./configure -prefix=/home/me/software/fftw make make install 第七步輸入執(zhí)行 vim ~/.bashrc 打開.bashrc文件后按i鍵進(jìn)入邊界模式,將光標(biāo)定位在文件末尾并添加以下一行 path=$path:/home/me/software/mpich/bin 按esc鍵退出編輯模式,輸入:wq后回車,這樣就保存好了剛才的編輯,并退出了.bashrc文件回到了終端。在終端輸入 source ~/.bashrc which mpirun 若輸出了mpirun的目錄則mpich安裝配置成功 第八步終端輸入執(zhí)行以下命令 cd /home/me/software/解壓出來lammps文件夾名稱/src 第九步打開目錄/home/me/software/解壓出來lammps文件夾名稱/src/make/options下的makefile.g++_mpich文件。在文件以下位置修改為 mpi_inc = -dmpich_skip_mpicxx -dompi_skip_mpicxx=1 -i/home/me/software/mpich/include mpi_path = -l/home/me/software/mpich/lib mpi_lib = fft_inc = -i/home/me/software/fftw/include fft_path = -l/home/me/software/fftw/lib fft_lib = 保存退出。 第十步在終端依次執(zhí)行 make yes-molecule make yes-kspace make yes-rigid make yes-manybody make g++_mpich 等待編譯完成src目錄下會(huì)生成lmp_g++_mpich的可執(zhí)行文件,將此可執(zhí)行文件拷貝至你的in文件所在的位置輸入 mpirun -np <并行核數(shù)> ./lmp_g++_mpich -in <in文件名字> 運(yùn)行正常則編譯成功。 4. lammps模擬基本流程 lammps的模擬需要寫一個(gè)腳本,稱之為in文件。我將一個(gè)典型的in文件書寫分為六個(gè)部分:1、定義模擬的基本規(guī)則,2、定義對(duì)象的幾何模型,3、定義對(duì)象的力場參數(shù),4、定義分組信息,5、弛豫部分,6、正式模擬過程。 第一部分 定義模擬的基本規(guī)則 根據(jù)前面說的分子動(dòng)力學(xué)原理,那么第一步就是設(shè)置粒子的初始位置和速度?等等。在這之前我們還需要做一些前期準(zhǔn)備工作。首先是設(shè)置單位制,即涉及到的物理量的單位都是什么。為什么要這么做呢?就是為了能夠定量描述我們的對(duì)象。回想在高中的著名實(shí)驗(yàn)——小球平拋。我們怎么描述小球的運(yùn)動(dòng)呢?我們會(huì)說小球經(jīng)過多少秒,向前運(yùn)動(dòng)了多少米,下落了多少米。這里就采用了國際制單位描述小球的運(yùn)動(dòng)。只有先確定了單位制,我們才好定量描述研究對(duì)象。不同的研究對(duì)象,為了描述方便會(huì)采用不同的單位制。比如描述高鐵的速度我們會(huì)用km/h,而不是m/s。同樣,在lammps中面對(duì)不同的研究對(duì)象,lammps內(nèi)置了不同的單位制。所以in文件中的 第一條命令要寫的就是設(shè)置單位制,即寫units命令。語法就是、 units <style> #舉例:units real lammps所有的單位制可在手冊中查到。常見的單位系統(tǒng)有,描述分子體系的real,描述金屬體系的metal,描述簡單液體的lj。 第二條命令是設(shè)置邊模擬維度,即你模擬的是三維問題還是二維問題。通常我們的模擬都是三維的。語法是 dimension <n> #舉例:dimension 3 第三條命令是設(shè)置邊界條件,即boundary命令。通常我們希望描述對(duì)象的體相性質(zhì)。但是,看看阿佛加德羅常數(shù)的值我們就可以知道實(shí)際的對(duì)象都會(huì)包含超級(jí)多的粒子。這么多的粒子的愛計(jì)算機(jī)無法承受。那怎么辦呢?分子動(dòng)力學(xué)中采用了有限代替無限的做法。就是取對(duì)象的一部分然后加上周期性邊界條件來代替幾乎無限大的對(duì)象。如圖中所示所謂周期性邊界條件就是粒子如果從邊界穿出去,就會(huì)從對(duì)面穿回來。這樣就實(shí)現(xiàn)了以有限的粒子數(shù)代替了無限大的對(duì)象。由邊界所圍起來的區(qū)域通常稱為模擬盒子。模擬盒子的形狀最常用的就是長方體。之所以采用長方體是因?yàn)榫幊倘菀滋幚怼?br /> 設(shè)置邊界條件在分子動(dòng)力學(xué)模擬中優(yōu)先級(jí)很高,所以第二條命令要寫邊界條件,語法是 boundary <x> <y> <z> #舉例:boundary p p p boundary p p p就是指三個(gè)方向上都是周期性邊界條件。這個(gè)設(shè)置在lammps中最常用。lammps中還提供了其他類型的邊界條件,常用的有固定邊界條件(f)和縮放邊界條件(s)。當(dāng)我們需要在某個(gè)方向上不想采用周期性時(shí)就可用f或s。f作用就是粒子從邊界跑出去就回不來了,計(jì)算就把它丟掉了。s的作用是邊界的位置會(huì)隨著粒子的位置而縮放,當(dāng)最靠近邊界的粒子往外移動(dòng)時(shí)邊界位置也跟著移動(dòng),反之亦然。需要指出的是每個(gè)方向上都有兩個(gè)邊界,當(dāng)寫一個(gè)參數(shù)是如p就表示該方向上兩個(gè)邊界都是周期性,f和s也如此。但是,還可以這么寫boundary p fs p,這就表示在x和z方向上是周期性邊界,在y方向上下面是f,上面是s。因此寫該條命令時(shí)根據(jù)需要進(jìn)行設(shè)置。 第四條命令是設(shè)置建立鄰居列表的,即neighbor命令。根據(jù)分子動(dòng)力學(xué)原理我們需要計(jì)算每個(gè)原子的受力。而任何一個(gè)粒子的受力都來自于其周圍粒子給它的合力。但是,我們知道只有距離較近的粒子才會(huì)對(duì)該粒子產(chǎn)生受力,距離較遠(yuǎn)的粒子給與的力可以忽略不計(jì)。這就是鄰居的含義。所以要計(jì)算一個(gè)粒子所受的合力,首先要找到該粒子周圍有哪些鄰居,即建立鄰居列表。每一個(gè)粒子都有自己的鄰居列表。neighbor的語法是 neighbor <skin> <style> #舉例:neighbor 3 bin 所謂鄰居就是距離中心粒子一定范圍內(nèi)的粒子,這個(gè)范圍稱之為作用力的截?cái)喟霃剑╮_c)。也就是以中心粒子為球心,r_c為半徑內(nèi)的所有粒子都是鄰居。skin是比r_c多出來的一部分,所以建立鄰居列表的時(shí)候是以r_c+skin為半徑進(jìn)行尋找的。為什么要這么做呢?這是因?yàn)榻⑧従恿斜硎峭M(fèi)時(shí)間的一件事,那么好不容易建立起來那就盡可能多用幾次。而事實(shí)上由于分子動(dòng)力學(xué)模擬的時(shí)間步長較短,粒子在一個(gè)時(shí)間步長內(nèi)走不了多少距離。那么只要鄰居列表中的原子移動(dòng)距離都小于skin,那么這個(gè)列表就可以在下一步中繼續(xù)使用。這就是skin的含義。后面style指的是建立鄰居列表的方法,最常用的就是bin方法。這個(gè)方法的具體含義可以查看分子動(dòng)力學(xué)教材。入門只需要知道bin在大多數(shù)情況下都是最快的,用它就沒錯(cuò)了。而r_c在后面的命令中設(shè)置。 第五條命令是設(shè)置鄰居列表的更新頻率,即neigh_modify命令。lammps提供了很多方式設(shè)置鄰居列表的更新頻率。如果鄰居中的粒子已經(jīng)不在r_c+skin范圍內(nèi)了,那么鄰居列表就必須要更新了。當(dāng)需要更新而未更新時(shí)就會(huì)出現(xiàn)dangerous builds。當(dāng)算完之后lammps輸出的dangerous builds不為零,那么你就要修改neigh_modify命令了,或者加大skin的值。這條命令使用比較復(fù)雜,需要根據(jù)模擬經(jīng)驗(yàn)和具體的模擬測試確定最優(yōu)值。對(duì)于新手,可以直接使用以下設(shè)置: neigh_modify every 1 delay 0 check yes 以上都是計(jì)算設(shè)置,每個(gè)模擬這些設(shè)置都大同小異。下面開始就是針對(duì)模擬對(duì)象的設(shè)置。 第六條命令設(shè)置原子類型,即atom_style命令。我們模擬的基本構(gòu)成是原子。不同的對(duì)象粒子所具有的屬性是不同的。對(duì)于某個(gè)對(duì)象,粒子不需要的屬性就不需要設(shè)置,以節(jié)省內(nèi)存加速計(jì)算。比如研究對(duì)象是分子(如水分子),那么構(gòu)成分子的粒子(style為full)就需要具有以下屬性:粒子編號(hào),粒子所屬分子的編號(hào),粒子類別(atom type),帶電量,x坐標(biāo),y坐標(biāo),z坐標(biāo)。如果研究對(duì)象是惰性氣體(如氬)或金屬單質(zhì)(如鐵),那么粒子(style為atomic)的屬性就是:粒子編號(hào),粒子類別,x坐標(biāo),y坐標(biāo),z坐標(biāo)。lammps中內(nèi)置了相當(dāng)多的原子類型可以查看手冊尋找自己需要的類型。這里要說的是atom style和atom type中文翻譯都一樣,具體是啥意思。簡單來說atom style定義了大類,atom type定義了大類中的小類。比如一個(gè)水分子中,所有粒子的atom_style都是full,但是在這個(gè)style下,又區(qū)分為氧原子type和氫原子type。一個(gè)模擬中可以由多個(gè)type,但是只能有一個(gè)style。atom_style定義好后就約束了data文件中具體內(nèi)容。atom_style的語法是 atom_style <style> #舉例:atom_style full 粒子屬性定義完后,就可以定義粒子之間相互作用的方式了。所謂相互作用其實(shí)就是粒子之間作用力的計(jì)算公式。計(jì)算公式是通過勢能來表述的。因?yàn)閯菽茉诳臻g上的梯度就是力,即f=-divu。比如重力勢能對(duì)高度求導(dǎo)就是重力。為什么要用勢能表述呢?因?yàn)閯菽苁菢?biāo)量而力是矢量,因此使用標(biāo)量在構(gòu)建或者擬合相互作用表達(dá)式時(shí)就容易的多。而在實(shí)際計(jì)算中只需要對(duì)勢能進(jìn)行求導(dǎo)就能獲得受力。任何對(duì)象的組成粒子之間相互作用都分為非鍵結(jié)和鍵結(jié)。非鍵結(jié)就是不同通過化學(xué)鍵的相互作用,鍵結(jié)就是通過化學(xué)鍵的相互作用。有些對(duì)象只有非鍵結(jié)相互作用,如液態(tài)氬或單質(zhì)鐵。有些對(duì)象兩種都有,比如水或蛋白質(zhì)。非鍵結(jié)相互作用包括范德華和靜電。在lammps非鍵結(jié)相互作用即范德華和靜電通過pair_style和pair_coeff命令設(shè)置。pair_style和pair_coeff定義了短程相互作用,即相互作用具有截?cái)喟霃。范德華僅有短程相互作用,而靜電是既有短程又有長程作用,如果體系中有靜電作用,那么定義完pair_style和pair_coeff,還要定義長程靜電求解類型kspace_style。用在分子體系的鍵結(jié)相互作用分為鍵(bond),鍵角(angle),二面角(dihedral),離平面(improper)。不同的對(duì)象會(huì)包含不同的鍵結(jié)作用,比如水分子就只包括鍵和鍵角,而分子量稍大的分子會(huì)需要全部的鍵結(jié)相互作用來描述。這些相互作用構(gòu)成描述體系的力場。這些力場是從量子力學(xué)出發(fā)而得到的經(jīng)典近似。以下為定義相互作用的命令: 第七條命令設(shè)置pair_style。首先定義非鍵結(jié)相互作用。不同的力場有不同的pair_style,模擬中要根據(jù)對(duì)象選擇合適的pair_style。lammps集成了目前幾乎所有的pair_style。模擬時(shí)只需要根據(jù)對(duì)象進(jìn)行選擇即可。pair_style對(duì)于絕大多數(shù)模擬都需要定義。不同的pair_style具有不同的語法,具體可查閱手冊。pair_style中一般會(huì)定義截?cái)喟霃降拇笮。以最簡單的包含范德華的pair_style為例,其語法是 pair_style lj/cut <cutoff> #舉例:pair_style lj/cut 9.0 第八條命令設(shè)置bond_style。這條命令是可選的,根據(jù)不同的對(duì)象可定。其設(shè)置簡單,沒啥好說的,就是計(jì)算兩個(gè)粒子通過化學(xué)鍵的相互作用,其語法為 bond_style <style> #舉例:bond_style harmonic 第九條命令設(shè)置angle_style。這條命令是可選的,根據(jù)不同的對(duì)象可定。其設(shè)置簡單,沒啥好說的,就是計(jì)算相鄰三個(gè)粒子的相互作用,其語法為 angle_style <style> #舉例:angle_style harmonic 第十條命令設(shè)置dihedral_style。這條命令是可選的,根據(jù)不同的對(duì)象可定。其設(shè)置簡單,沒啥好說的,就是計(jì)算四個(gè)相鄰粒子之間的相互作用,其語法為 dihedral_style <style> #舉例:dihedral_style opls 第十一條命令設(shè)置improper_style。這條命令是可選的,根據(jù)不同的對(duì)象可定。其設(shè)置簡單,沒啥好說的,就是計(jì)算四個(gè)相鄰粒子之間的相互作用,其語法為 improper_style <style> #舉例:improper_style opls 第十二條命令設(shè)置special_bonds。這條命令是可選的,當(dāng)有鍵結(jié)作用出現(xiàn)時(shí),設(shè)定有鍵結(jié)相互作用的粒子之間是否還具有pair相互作用。一般來說,是沒有的,所以這條命令一般寫作: special_bonds lj/coul 0.0 0.0 0.5 第十三條命令設(shè)置kspace_style。這條命令是可選的,當(dāng)有靜電作用出現(xiàn)時(shí),需要加上。不同的pair_style對(duì)應(yīng)不同的kspace_style,其語法: kspace_style <style> <value> #舉例:kspace_style pppm 0.0001 以上就是第一部分的內(nèi)容。對(duì)于不同的研究對(duì)象力場設(shè)置部分會(huì)有所不同。如簡單液體只需要pair_style就行了,分子物質(zhì)一般都會(huì)設(shè)置,晶體也一般只需要pair_style。如果你的對(duì)象有多種物質(zhì)還可以使用hybrid類的力場命令進(jìn)行組合設(shè)置。 第二部分 定義對(duì)象的幾何模型 第十四條命令read_data。這條命令用來讀取粒子的初始位置,鍵結(jié)信息等。這些信息寫在一個(gè)data文件中。建立data文件稱為lammps的建模過程。lammps的建模是個(gè)非常重要的步驟。我們可以在in文件中利用creat_box和create_atoms命令建立。但是這兩條命令只能用來創(chuàng)建晶體結(jié)構(gòu)。對(duì)于分子結(jié)構(gòu)需要自己使用第三方工具或者編程建立data文件實(shí)現(xiàn)。我習(xí)慣于自己寫data文件建立模擬對(duì)象的構(gòu)型。lammps的data文件建立比較麻煩,一般要使用多個(gè)工具聯(lián)合建模。這里不再贅述,后面會(huì)專門講lammps建立data文件的教程。data文件中的信息要根據(jù)atom_style和分子的拓?fù)浣Y(jié)構(gòu)進(jìn)行建立。以一個(gè)由分子構(gòu)成的模擬對(duì)象,也即atom_style是full為例data文件內(nèi)容為: lammps description #第一行寫描述信息 116803 atoms #共多少個(gè)atoms 70386 bonds #共多少個(gè)bonds 41643 angles #共多少個(gè)angles 13700 dihedrals #共多少個(gè)dihedrals 2550 impropers #共多少個(gè)impropers 191 atom types #共多少個(gè)atoms types 195 bond types #共多少個(gè)bonds types 356 angle types #共多少個(gè)angles types 548 dihedral types #共多少個(gè)dihedrals types 102 improper types #共多少個(gè)angles types 0 97.92 xlo xhi #x方向的上下邊界 0 97.92 ylo yhi #y方向的上下邊界 -15.0 160 zlo zhi #z方向的上下邊界 masses 1 15.9994 # 1號(hào)atom type的質(zhì)量 2 1.008 # 2號(hào)atom type的質(zhì)量 ...... atoms 1 1 1 0.0 0.0 0.0 145.0 #粒子編號(hào),粒子所屬分子的編號(hào),粒子類別(atom type),帶電量,x坐標(biāo),y坐標(biāo),z坐標(biāo) 2 1 1 0.0 0.0 2.04 147.04 ...... bonds 1 2 13825 13826 #bond的編號(hào),bond type,組成bond的第一個(gè),第二個(gè)的原子編號(hào) 2 3 13826 13827 ....... angles 1 2 13825 13826 13827 #angle的編號(hào),angle type,組成angle的第一個(gè),第二個(gè),第三個(gè)的原子編號(hào) 2 3 13825 13826 13828 ...... dihedrals 1 1 13825 13826 13828 13829 #dihedral的編號(hào),dihedral type,組成dihedral的第一個(gè),第二個(gè),第三個(gè),第四個(gè)的原子編號(hào) 2 2 13826 13828 13829 13830 ...... impropers 1 1 13826 13825 13827 13828 #improper的編號(hào),improper type,組成improper的第一個(gè),第二個(gè),第三個(gè),第四個(gè)的原子編號(hào) 2 2 13835 13834 13836 13837 ...... 第三部分 定義對(duì)象的物理模型 這部分命令用來指定勢函數(shù)中的具體參數(shù)是多少。 第十五條命令pair_coeff。根據(jù)定義的pair_style和粒子type的個(gè)數(shù)來決定pair_coeff的內(nèi)容和條數(shù)。具體書寫時(shí)可查看手冊中對(duì)應(yīng)的pair_style的例子。如pair_style是lj/cut,粒子type個(gè)數(shù)為2,則該命令寫為 pair_coeff 1 1 0.1553 3.166 9.0 pair_coeff 1 2 0.1423 3.125 9.0 pair_coeff 2 2 0.2753 3.196 9.0 第十六條命令bond_coeff。根據(jù)定義的bond_style和bond type的個(gè)數(shù)來決定bond_coeff的內(nèi)容和條數(shù)。具體書寫時(shí)可查看手冊中對(duì)應(yīng)的bond_style的例子。 第十七條命令angle_coeff。根據(jù)定義的angle_style和angle type的個(gè)數(shù)來決定angle_coeff的內(nèi)容和條數(shù)。具體書寫時(shí)可查看手冊中對(duì)應(yīng)的angle_style的例子。 第十八條命令dihedral_coeff。根據(jù)定義的dihedral_style和dihedral type的個(gè)數(shù)來決定dihedral_coeff的內(nèi)容和條數(shù)。具體書寫時(shí)可查看手冊中對(duì)應(yīng)的dihedral_style的例子。 第十九條命令improper_coeff。根據(jù)定義的improper_style和improper type的個(gè)數(shù)來決定improper_coeff的內(nèi)容和條數(shù)。具體書寫時(shí)可查看手冊中對(duì)應(yīng)的improper_style的例子。 第四部分 定義分組信息 很多情況下我們需要對(duì)研究對(duì)象的不同部分施加不同的操作。lammps中通過對(duì)對(duì)象中的原子進(jìn)行分組實(shí)現(xiàn)。 第二十條命令 group。group命令可以采用多種方式進(jìn)行分組定義 region fix block inf inf inf inf inf 10.0 units box group fix region fix group thermos type 1 group a1 id >= 76 group sub id 100:10000:10 group big molecule 123 group polya molecule <> 50 250 group boundary subtract all a2 a3 group boundary union lower upper group boundary intersect upper flow group boundary delete group mine dynamic all region myregion every 100 第五部分 弛豫 在弛豫部分我們首先需要定義基本輸出日志信息,這是為了監(jiān)控我們的模擬是否正確。一般輸出的都是系統(tǒng)量,如溫度、壓強(qiáng)、總動(dòng)能、總勢能等。所以 第二十一條命令thermo。thermo命令控制每多少步輸出一次。如果不設(shè)置lammps默認(rèn)只在第一步和最后一步輸出日志信息。語法是 thermo <n> #舉例:thermo 1000 第二十二條命令thermo_style。thermo_style控制究竟要輸出哪些全局量。具體能夠輸出哪里量可查閱手冊thermo_style命令描述。如果不設(shè)置該條命令,那么lammps就會(huì)輸出默認(rèn)信息。其語法是 thermo_style <style> <args> 第二十三條命令dump。該條命令用來每隔一段時(shí)間輸出系統(tǒng)所有原子的信息,這些信息可以是原子的位置,受力,速度,質(zhì)量,編號(hào)等。當(dāng)你要輸出所有原子的信息時(shí)就是用這條命令。將這條命令的輸出文件進(jìn)行可視化可以初步判斷你的模擬是否正確。以下是最常用的設(shè)置 dump 1 all custom 10000 dump.lammpstrj id mol type mass x y z 第二十四條命令minimize。這條命令是可選的。如果你的幾何模型和物理模型都設(shè)置正確,那么可以不用這條命令。這條命令執(zhí)行的是能量最小化。為什么要執(zhí)行能量最小化呢?這是因?yàn)槲覀冊诮5臅r(shí)候,有時(shí)幾何模型和物理模型不是那么完美,經(jīng)常出現(xiàn)的就是某些原子之間的位置靠得太近,這就會(huì)導(dǎo)致系統(tǒng)的能量很大,容易出現(xiàn)運(yùn)行錯(cuò)誤。執(zhí)行能量最小化就是將系統(tǒng)的能量調(diào)節(jié)至盡可能小。lammps實(shí)現(xiàn)這個(gè)命令的方式是通過計(jì)算原子之間的受力和能量,通過一些優(yōu)化算法,移動(dòng)原子的位置從而是體系總能量達(dá)到盡可能小。所以如果你發(fā)現(xiàn)你的體系中能量超級(jí)大,壓強(qiáng)超級(jí)大而運(yùn)行出錯(cuò),那么你可以試試能量最小化命令。一般使用下面這些參數(shù)設(shè)置就能實(shí)現(xiàn)你的目的,如果能量最小化后還出錯(cuò),那么你就要排查你的幾何模型和物理模型是不是太差了,能量最小化也無能為力了。至于能量最小化采用什么算法,用默認(rèn)的就行了,也就是說你不用有額外的設(shè)置,直接minimize就行了,花里胡哨的沒啥用。 minimize 0.0 1.0e-8 1000 100000 第二十五條命令compute。該命令是lammps中極其重要的一類命令。當(dāng)你需要計(jì)算某個(gè)量時(shí)你就可以考慮使用compute命令。lammps提供了豐富的compute命令,具體使用時(shí),根據(jù)你的需求,查閱手冊看lammps中有沒有實(shí)現(xiàn)你需要的功能的compute。compute和dump一樣可以針對(duì)某個(gè)group的粒子進(jìn)行計(jì)算。一個(gè)in文件中可以有多個(gè)compute,但每個(gè)compute的id不能重復(fù)。計(jì)算出來的值可以被很多命令使用,如dump,fix等。最常用的就是計(jì)算溫度,如 compute myt all temp 第二十六條命令velocity。velocity命令有不少功能,最常用的功能就是根據(jù)目標(biāo)溫度創(chuàng)建粒子的初始速度。最常用的形式為 velocity all create 300.0 4928459 rot yes dist gaussian 第二十七條命令timestep。該命令設(shè)定求解牛頓差分方程中時(shí)間步的大小。不同體系會(huì)要求不同大小的時(shí)間步長 。一般來說分子體系會(huì)要求時(shí)間步長為1fs。簡單液體體系可放寬至5fs。晶體體系可以是2fs。反應(yīng)力場reaxff體系會(huì)要求更小的時(shí)間步,0.1-0.5fs。時(shí)間步長的選取原子是,要足夠小以準(zhǔn)確捕捉體系中最快的動(dòng)力學(xué)過程,又要足夠大以節(jié)省計(jì)算時(shí)間。通常你的時(shí)間步長大小參考文獻(xiàn)設(shè)置就行了;虬凑丈厦媾e的例子進(jìn)行設(shè)置,就沒啥問題了。 第二十八條命令fix。fix是lammps中另一類極其重要的命令。其實(shí)現(xiàn)功能就是對(duì)某個(gè)組的粒子施加某種操作。最重要的功能就是用來更新某個(gè)組的粒子的速度和位置,因此每個(gè)in文件中都必然會(huì)有fix命令。我們通常所說的系綜就是通過fix命令實(shí)現(xiàn)。如fix nve實(shí)現(xiàn)nve系綜,fix nvt實(shí)現(xiàn)nvt系綜,fix npt實(shí)現(xiàn)npt系綜。關(guān)于系綜這里要多說一點(diǎn)。系綜是統(tǒng)計(jì)力學(xué)的基本概念。所謂系綜,簡單來說就是系統(tǒng)無限個(gè)副本的集合。但是分子動(dòng)力學(xué)中的系綜和統(tǒng)計(jì)力學(xué)上的系綜有聯(lián)系又有區(qū)別。比如在lammps中nve系綜就是只直接求解牛頓方程而不對(duì)速度和位置做任何干涉的系綜。把fix nve與溫度控制fix聯(lián)用就實(shí)現(xiàn)nvt系統(tǒng),把fix nve與溫度控制的fix和壓強(qiáng)控制的fix同時(shí)聯(lián)用就實(shí)現(xiàn)了npt系綜。也可以只使用fix nvt命令直接實(shí)現(xiàn)nvt,只使用fix npt命令實(shí)現(xiàn)npt系綜。系綜當(dāng)你的邊界條件是p或f時(shí)系統(tǒng)體積是不變的。當(dāng)你使用s邊界時(shí)系統(tǒng)體積是可變得,此時(shí)也就沒有什么nvt或nve了。但是需要強(qiáng)調(diào)的是npt是通過改變盒子體積來實(shí)現(xiàn)控壓的所以在控壓的方向上只能使用p邊界條件。所以基本上你可以忘記系綜的概念。把fix nve或fix nvt或fix npt當(dāng)做更新原子位置和速度的命令,fix nve直接根據(jù)牛二進(jìn)行更新,fix nvt在更新的時(shí)候會(huì)對(duì)速度進(jìn)行干涉以達(dá)到設(shè)定的溫度,fix npt會(huì)對(duì)速度和位置同時(shí)進(jìn)行干涉以達(dá)到設(shè)定的溫度和壓強(qiáng)。至于nvt和nve下體積變不變?nèi)Q于你的邊界條件。同一個(gè)系統(tǒng)中可能同時(shí)存在fix nve和fix nvt,這是因?yàn)橛行┠M要求一部分原子的位置和速度直接根據(jù)牛二進(jìn)行更新,而另一部分卻要求在更新原子速度時(shí)保持溫度不變。但是不會(huì)同時(shí)出現(xiàn)fix nve和fix npt,因?yàn)閒ix npt在根據(jù)設(shè)定的壓強(qiáng)在更新原子位置和速度時(shí),計(jì)算的是所有原子對(duì)壓強(qiáng)的貢獻(xiàn)。所以fix npt不適合局部控壓。 某個(gè)組的粒子只有使用了fix+系綜的命令才會(huì)更新位置和速度。因此如果你想保持某組的粒子在模擬過程中固定不動(dòng),最簡單的辦法就是不對(duì)它施加任何fix命令。通常我們在使用fix時(shí)都會(huì)使用先來一條fix+系綜,然后調(diào)用其他fix實(shí)現(xiàn)某些目的,如要讓模擬對(duì)象發(fā)生一定變形,就用fix deform,要讓對(duì)對(duì)象施加一個(gè)電場就用fix efield。當(dāng)你想用實(shí)現(xiàn)某種操作時(shí),打開手冊查看fix的一些命令看有沒有實(shí)現(xiàn)你功能的fix命令。fix的某些命令也可以用于輸出信息,如fix ave/chunk輸出模擬盒子不同位置處的原子屬性的時(shí)間平均值;fix ave/time輸出某些全局量的平均值。 第二十九條命令 run。終于要開始跑了。這個(gè)命令最常用的就是你要run多少步。在弛豫階段一般會(huì)run 1ns的長度,通常是1000000步。這里可以控制采用什么算法對(duì)牛二進(jìn)行求解。采用默認(rèn)的就行,也就是說你不用額外設(shè)置,直接run就行了。花里胡哨的沒啥用,默認(rèn)的往往是最好的。其設(shè)置是 run 1000000 以上就是弛豫部分。為什么要進(jìn)行弛豫呢?這是因?yàn)橄到y(tǒng)中原子的初始位置和初始速度都是認(rèn)為設(shè)定的,這是系統(tǒng)的狀態(tài)并不在熱力學(xué)平衡狀態(tài)。通常我們希望在正式模擬時(shí)系統(tǒng)的起點(diǎn)在熱力學(xué)平衡狀態(tài)。只有經(jīng)過弛豫后系統(tǒng)才會(huì)達(dá)到熱力學(xué)平衡狀態(tài)。在弛豫開始的時(shí)候你會(huì)看到系統(tǒng)的溫度和壓強(qiáng)會(huì)有非常劇烈的變化,這是正常的。經(jīng)過一段時(shí)間后溫度和壓強(qiáng)這些量就會(huì)在一個(gè)值附近小幅振蕩。那么怎么判斷系統(tǒng)是否達(dá)到平衡了呢?這是個(gè)挺麻煩的事,不同的體系有不同的標(biāo)準(zhǔn)。通常我們會(huì)看系統(tǒng)的溫度,壓強(qiáng),能量這些值不會(huì)在持續(xù)上升或下降就差不多平衡了。但是這個(gè)事很難說。所以為了保險(xiǎn)起見,通常模擬中會(huì)設(shè)置冗余的弛豫步數(shù)來確保系統(tǒng)達(dá)到平衡。這個(gè)值一般是1000000步。需要說明的是,系統(tǒng)溫度是根據(jù)系統(tǒng)動(dòng)能算出來的,一般很快就不咋變了。但是壓強(qiáng)是根據(jù)受力算出來的振蕩會(huì)很大。一般要看溫度或壓強(qiáng)的時(shí)間平均值,也就是不同時(shí)間步的平均值來判斷系統(tǒng)的溫度或壓強(qiáng)是否達(dá)到了設(shè)定值。 第三十條命令write_restart。這個(gè)命令可以寫出restart文件,以便后續(xù)從這個(gè)點(diǎn)接著算。restart文件是一個(gè)二進(jìn)制文件。使用這條命令是個(gè)好的習(xí)慣,可以讓你省很多事,又不會(huì)額外增加計(jì)算量。其語法是 write_restart <filename> #舉例write_restart restart.equ 最后一部分 正式模擬 這部分其實(shí)才是模擬的核心。不同的研究對(duì)象和目的設(shè)置和使用的命令都會(huì)不同。無法在基本流程中寫,將在后面的專題中介紹。 5. 建模和后處理軟件概述 本節(jié)介紹了包裝 lammps 的商業(yè)和免費(fèi)軟件,為開發(fā)模型、運(yùn)行仿真和分析結(jié)果提供了一個(gè)用戶友好的環(huán)境。 materials design, inc. materials design, inc. 開發(fā)了medea®,這是一種原子模擬和建模環(huán)境,可提供與lammps一起使用的生產(chǎn)力、模型構(gòu)建和分析工具。medea®使用流程圖簡化了lammps模擬。生成的lammps模擬很容易在同事之間共享、編輯以供將來重復(fù)使用,并且可以由lammps專家進(jìn)行定制。 使用medea®,可以使用各種晶體系統(tǒng)方法構(gòu)建原子模型,并使用medea®非晶和熱固性構(gòu)建器,這是為lammps創(chuàng)建輸入的工具。它們還為預(yù)測機(jī)械性能提供了經(jīng)過驗(yàn)證的方法,包括基于lammps模擬的彈性常數(shù)、擴(kuò)散率、傳輸性能和內(nèi)聚能。medea®還有助于管理用于模擬有機(jī)、無機(jī)和金屬系統(tǒng)的力場;材料設(shè)計(jì)團(tuán)隊(duì)在為有機(jī)和金屬系統(tǒng)開發(fā)精確力場方面擁有良好的記錄。 scienomics scienomics公司開發(fā)了一個(gè)lammps接口,作為其材料和工藝模擬 (maps) 平臺(tái)的一部分,該平臺(tái)允許lammps新手和專家快速有效地創(chuàng)建lammps輸入文件-用于原子模擬和dpd模擬。scienomics為 lammps用戶提供完整的電話和電子郵件支持。maps中的lammps插件還允許用戶為lammps創(chuàng)建輸入文件,對(duì)lammps模擬的輸出進(jìn)行可視化和分析。maps也有許多力場可供選擇(用于原子建模和粗粒度建模)與 lammps。他們還有一個(gè)名為amorphous builder和crosslink builder的工具,可用于為lammps創(chuàng)建輸入幾何圖形,以及用于分析reaxff模擬結(jié)果的工具和其他強(qiáng)大的功能,用于計(jì)算彈性屬性、結(jié)構(gòu)屬性、傳輸屬性等關(guān)鍵屬性. maps是一個(gè)綜合性的軟件平臺(tái),結(jié)合了構(gòu)建-模擬-分析的工作流程。這使用戶能夠以高效和無縫的方式對(duì)復(fù)雜材料系統(tǒng)進(jìn)行建模,從包括lammps在內(nèi)的一系列仿真引擎中進(jìn)行選擇以對(duì)過程進(jìn)行建模,并分析輸出以提取許多屬性,例如機(jī)械、熱、傳輸、流變等. 有關(guān)所有這些工具和服務(wù)的更多詳細(xì)信息,請參見scienomics網(wǎng)頁。 xenoview 由sergei shenogin倫斯勒納米技術(shù)中心)開發(fā)。該軟件對(duì)非商業(yè)用戶免費(fèi)。 xenoview是基于windows的分子動(dòng)力學(xué)模擬軟件。它的界面為從頭開始構(gòu)建結(jié)構(gòu)提供了廣泛的工具。此外,您可以從多種格式(例如pdb格式)導(dǎo)入結(jié)構(gòu)。 鍵可以自動(dòng)定義,力場可以自動(dòng)分配。xenoview可以導(dǎo)出可在lammps中用于大規(guī)模模擬的數(shù)據(jù)文件和輸入腳本。有關(guān)詳細(xì)信息,請參閱xenoview主頁。 atomman atomman 工具是由nist的lucas hale開發(fā)的開源(免費(fèi))軟件。它是一個(gè)用于與大規(guī)模原子系統(tǒng)交互的python包。它允許用戶完全從python中準(zhǔn)備、運(yùn)行和分析md模擬。 l 允許對(duì)數(shù)百萬個(gè)原子進(jìn)行高效和快速的計(jì)算,每個(gè)原子都有許多自由定義的每個(gè)原子屬性。 l 生成包含缺陷的原子系統(tǒng),例如點(diǎn)缺陷和位錯(cuò)單極子。 l 用于缺陷分析的內(nèi)置函數(shù),例如滑移向量和 nye 張量。 l 直接從 python 調(diào)用 lammps 并立即檢索結(jié)果數(shù)據(jù)或 lammps 錯(cuò)誤語句。 l 輕松將系統(tǒng)與 ase 和 pymatgen 的其他 python 原子環(huán)境相互轉(zhuǎn)換。 l 可以加載基于 cif 晶體結(jié)構(gòu)文件、poscar 和 lammps 原子和轉(zhuǎn)儲(chǔ)文件的系統(tǒng)。 l 內(nèi)置單位轉(zhuǎn)換工具。 l 獨(dú)立于平臺(tái):適用于 linux、windows 和 mac。 loos = lightweight object-oriented structure analysis library loos是一個(gè)用于分析分子動(dòng)力學(xué)模擬的軟件包。 它與包無關(guān)、開源,可在所有主要的linux發(fā)行版以及osx上運(yùn)行。它分發(fā)了大約150個(gè)預(yù)打包的分析工具,范圍從標(biāo)準(zhǔn)任務(wù)(軌跡操作、主成分分析等)到新工具(評(píng)估模擬收斂、測量膜和膜蛋白的特性)。 此外,它專為快速開發(fā)新的分析工具而設(shè)計(jì),尤其是在使用python包裝器時(shí)。loos可從https://github.com/grossfieldlab/loos下載 freud = analysis library for post-processing md and mc data freud是一個(gè)python庫,由sharon glotzer的小組(密歇根大學(xué))開發(fā)和支持,它提供了一套簡單、靈活、強(qiáng)大的工具,用于分析從分子動(dòng)力學(xué)或蒙特卡羅模擬中獲得的軌跡。 高性能、并行化 c++ 用于計(jì)算標(biāo)準(zhǔn)工具,例如徑向分布函數(shù)、相關(guān)函數(shù)、階參數(shù)和聚類,以及包括平均力和扭矩 (pmft)勢和局部環(huán)境匹配在內(nèi)的原始分析方法。freud庫支持多種輸入格式和輸出numpy數(shù)組,支持與許多典型材料科學(xué)工作流程的科學(xué)python生態(tài)系統(tǒng)集成。 教程:g(r) 分析 文檔:https://freud.readthedocs.io 源代碼:https://github.com/glotzerlab/freud molecular builders 要模擬分子系統(tǒng),lammps要求您輸入分子拓?fù)浣Y(jié)構(gòu)(鍵、角、二面體等列表)以及適合您的模型的力場系數(shù)。因此,構(gòu)建分子系統(tǒng)的任務(wù)是一個(gè)預(yù)處理步驟,并且本身可能是一項(xiàng)復(fù)雜的任務(wù)。 本節(jié)介紹有助于自動(dòng)化此過程的工具。 一般來說,封裝可以從鍵拓?fù)渫茢嘟嵌、二面角和不正確的相互作用。 他們有生成分子幾何的命令。他們可以從packmol和其他pdb文件生成器生成的文件中讀取坐標(biāo)。 enhanced monte carlo (emc) 由位于https://verizon.net的't veld (basf)的pieter j.開發(fā)和維護(hù)。 增強(qiáng)型monte carlo或簡稱emc為使用compass、charmm、opls、martini、dpd或膠體力場創(chuàng)建和操作粒子模擬的輸入結(jié)構(gòu)提供了環(huán)境。為此,腳本語言管理對(duì)其功能的訪問。當(dāng)前版本通過smiles字符串提供對(duì)分子或粗粒度結(jié)構(gòu)的操作,在需要時(shí)為選定的力場鍵入這些結(jié)構(gòu),并應(yīng)用蒙特卡羅原理構(gòu)建構(gòu)象以不重疊原子。emc提供lammps、pdb和xyz格式的輸出端口?梢栽https://montecarlo.sourceforge.net上找到適用于linux、macos或windows的編譯版本。 moltemplate 由andrew jewett (ucsb) 開發(fā)和維護(hù)。 該工具與 lammps 一起在tools/moltemplate目錄中分發(fā)。有關(guān)更多詳細(xì)信息,請參見該目錄和moltemplate主頁。 moltemplate專為構(gòu)建粗粒度生物分子模型而設(shè)計(jì)。moltemplate可以同時(shí)創(chuàng)建:lammps data文件(包含幾何和拓?fù)洌┖蚻ammps input腳本(包含力場、修復(fù)和組)。與其他轉(zhuǎn)換工具生成的文件不同,moltemplate允許用戶訪問 lammps中可用的所有力場。用戶可以將分子保存為moltemplate緊湊、可讀的模板文件格式(“.lt”),并與他人共享。分子可以用作更大分子的構(gòu)建塊。 “罐裝”力場(例如 dreiding、gaff、trappe 和用戶創(chuàng)建)也可以(原則上)以這種格式保存并稍后應(yīng)用于分子。 分子可以被復(fù)制、組合和鏈接在一起以定義新分子。(這些可用于定義更大的分子。支持無限級(jí)別的對(duì)象組合、嵌套和繼承。)一旦構(gòu)建,可以自定義單個(gè)分子和子單元(原子和鍵,以及子單元可以移動(dòng)、刪除和替換)。 vmd topotools 由axel kohlmeyer(temple u開發(fā)和維護(hù)。 有關(guān)詳細(xì)信息,請參閱 topotools 主頁。 topotools是一個(gè)分子生成器,它利用vmd和tcl的強(qiáng)大功能創(chuàng)建lammps data文件并將它們轉(zhuǎn)換為其他格式或從其他格式轉(zhuǎn)換。topotools有兩個(gè)組件:一個(gè)可以提取和操作拓?fù)湫畔⒌闹虚g件腳本,以及在它之上構(gòu)建的幾個(gè)高級(jí)應(yīng)用程序,例如可以使其能夠讀取/寫入數(shù)據(jù)文件、復(fù)制和合并系統(tǒng)。 與vmd一起,topotools可以從pdb文件、psf文件和原子對(duì)距離推斷拓?fù)浣Y(jié)構(gòu),使蛋白質(zhì)溶劑化。 intermol a conversion tool for molecular dynamics simulations intelmol是用python編寫的,可以在intermol中本地進(jìn)行 desmond<=>gromacs<=>lammps轉(zhuǎn)換;amber->x 是通過將amber 轉(zhuǎn)換為 gromacs,然后使用parmed 轉(zhuǎn)換為其他程序來執(zhí)行的。amber->charmm 由parmed直接執(zhí)行。 avogadro 作為開源項(xiàng)目開發(fā)和維護(hù)。有關(guān)詳細(xì)信息,請參閱 avogadro 主頁。 avogadro是一款先進(jìn)的分子編輯器和可視化工具,專為計(jì)算化學(xué)、分子建模、生物信息學(xué)、材料科學(xué)和相關(guān)領(lǐng)域的跨平臺(tái)使用而設(shè)計(jì)。 它提供靈活的高質(zhì)量渲染和強(qiáng)大的插件架構(gòu)。 packmol 作為開源項(xiàng)目開發(fā)和維護(hù)。有關(guān)詳細(xì)信息,請參閱 packmol 主頁。 packmol通過在定義的空間區(qū)域中包裝分子來創(chuàng)建分子動(dòng)力學(xué)模擬的初始點(diǎn)。包裝保證短程排斥相互作用不會(huì)破壞模擬。 atomsk 作為開源項(xiàng)目開發(fā)和維護(hù)。有關(guān)詳細(xì)信息,請參閱 atomsk 主頁。 atomsk旨在創(chuàng)建、操作和轉(zhuǎn)換原子系統(tǒng)。它支持多種文件格式,其中包括 lammps文件格式,還支持vasp、quantum espresso、imd、dl_poly、atomeye cfg格式或xcrysden xsf格式,可以輕松轉(zhuǎn)換文件以進(jìn)行從頭計(jì)算、經(jīng)典勢模擬或可視化。 此外,atomsk還可以對(duì)原子位置進(jìn)行一些簡單的變換,如旋轉(zhuǎn)、變形、插入位錯(cuò)。 octa 和j-octa octa是一個(gè)開源軟件包,由模擬引擎(分子動(dòng)力學(xué)、流變模擬、自洽場理論、有限元方法等)和用于建模軟物質(zhì)系統(tǒng)的gui(可視化、簡單分子構(gòu)建器和分析工具)組成。 octa還為多種模擬器的協(xié)作使用提供了環(huán)境,即多物理場和多尺度模擬。 lammps和cognac(md 引擎)文件之間的轉(zhuǎn)換程序也包括在內(nèi)。此功能使lammps用戶能夠使用octa gui并結(jié)合其他理論(如 scft)運(yùn)行經(jīng)典的md模擬。 通過使用商業(yè)版本的j-octa,還可以進(jìn)行全原子和粗粒度md的復(fù)雜分子構(gòu)建。 molecular simulation design framework (mosdef) mosdef提供了一組可擴(kuò)展的python工具,旨在促進(jìn)使用分子模擬對(duì)軟物質(zhì)系統(tǒng)進(jìn)行初始化、原子分型和篩選。 automated topology builder (atb) and repository - molecular topology building blocks for organic molecules atb項(xiàng)目由alan e. mark教授(澳大利亞昆士蘭大學(xué))領(lǐng)導(dǎo);atb網(wǎng)站上有一份其他貢獻(xiàn)者的列表。 atb以與lammps和其他分子動(dòng)力學(xué)軟件包兼容的格式提供有機(jī)分子的拓?fù)湮募。lammps拓?fù)湮募С质褂胢oltemplate工具(隨lammps分發(fā))構(gòu)建復(fù)雜系統(tǒng)。moltemplate允許結(jié)合力場參數(shù)和分子模板文件來構(gòu)建復(fù)雜的系統(tǒng),從而實(shí)現(xiàn)類似于在生物分子md模擬包(例如gromos、amber、charmm等)中構(gòu)建系統(tǒng)拓?fù)涞墓ぷ髁鞒獭?br /> atb 站點(diǎn)為各種分子(> 20,000并且還在增長)提供拓?fù)浣Y(jié)構(gòu)。可以使用基于名稱或化學(xué)式的內(nèi)部搜索工具并從結(jié)果列表中選擇分子來找到分子。一旦進(jìn)入感興趣分子的頁面,您可以選擇“molecular dynamics (md) files”并選擇“l(fā)ammps”作為輸出“格式”如果數(shù)據(jù)庫中不存在分子,可以通過提交新的要處理的分子。 data sites 本節(jié)列出了提供可與lammps一起使用的數(shù)據(jù)的www站點(diǎn)。例如,原子配置,可用于初始化lammps模擬的模型。或者使用lammps完成的計(jì)算存檔,可以瀏覽以獲取物理或模型。 jarvis database for md potential calculations on dft geometries jarvis for force-fields (jarvis-ff)是一個(gè)高通量計(jì)算數(shù)據(jù)庫,用于對(duì)具有各種力場/原子間勢的密度泛函理論 (dft)優(yōu)化的幾何結(jié)構(gòu)進(jìn)行l(wèi)ammps計(jì)算。 該項(xiàng)目的目標(biāo)是通過網(wǎng)絡(luò)界面為評(píng)估力場提供一個(gè)簡單的查找表,并提高數(shù)據(jù)的可重復(fù)性。jarvis-ff是美國國家標(biāo)準(zhǔn)與技術(shù)研究院 (nist)材料基因組計(jì)劃(mgi)的一部分。 orsi group at queen mary university of london mario orsi的小組為各種水系統(tǒng)(不同的力場)收集了很好的lammps輸入腳本和數(shù)據(jù)文件。他們也在為蛋白質(zhì)和脂質(zhì)膜系統(tǒng)添加文件。 [ Last edited by 月只藍(lán) on 2022-5-22 at 17:11 ] |
缺陷計(jì)算 | 科研軟件 | 分子動(dòng)力學(xué)模擬相關(guān) | lammps |
» 搶金幣啦!回帖就可以得到:
+3/480
+1/193
+1/188
+1/89
+1/88
+1/81
+1/79
+1/63
+1/25
+1/20
+1/7
+1/7
+1/5
+1/5
+1/5
+1/4
+1/2
+1/2
+1/2
+1/1
|
本帖內(nèi)容被屏蔽 |






送紅花一朵
| 最具人氣熱帖推薦 [查看全部] | 作者 | 回/看 | 最后發(fā)表 | |
|---|---|---|---|---|
|
[考研] 學(xué)碩材料275調(diào)劑 +6 | 路三三 2026-03-03 | 6/300 |
|
|---|---|---|---|---|
|
[考研]
085600 英一數(shù)二272求調(diào)劑
5+6
|
vida_a 2026-03-01 | 45/2250 |
|
|
[考研] 一志愿西工大材料學(xué),英一數(shù)二總分321分,求調(diào)劑。 +3 | zz05zz 2026-03-02 | 5/250 |
|
|
[考研] 085600求調(diào)劑 +4 | LRZZZZZZ 2026-03-02 | 6/300 |
|
|
[考研]
|
15779376950 2026-03-01 | 6/300 |
|
|
[考研] 085700資環(huán)求調(diào)劑,初始279,六級(jí)已過,英語能力強(qiáng) +3 | 085700資環(huán)調(diào)劑 2026-03-03 | 4/200 |
|
|
[考研]
材料270求調(diào)劑
6+6
|
Eiiiio 2026-03-01 | 11/550 |
|
|
[考研] 一志愿天津大學(xué)085600 319分 材料與化工 金屬方向 求調(diào)劑 +4 | 青科11 2026-03-02 | 4/200 |
|
|
[考研] 268求調(diào)劑 +6 | 好運(yùn)連綿不絕 2026-03-02 | 6/300 |
|
|
[考研] 環(huán)境工程專碩307 一志愿211 四六級(jí)已過 求調(diào)劑 +3 | ccc! 2026-03-03 | 3/150 |
|
|
[考研] 化學(xué)0703求調(diào)劑 學(xué)碩 理/工科均可 總分279 +3 | 1一11 2026-03-03 | 5/250 |
|
|
[考研]
材料工程專碩283求調(diào)劑
5+8
|
,!? 2026-03-02 | 10/500 |
|
|
[考研]
|
好好好1233 2026-02-28 | 16/800 |
|
|
[考研] 261求調(diào)劑 +3 | 陸lh 2026-03-01 | 3/150 |
|
|
[考研] 一志愿中石油(華東)本科齊魯工業(yè)大學(xué) +3 | 石能偉 2026-03-02 | 3/150 |
|
|
[考博] 誠招農(nóng)業(yè)博士 +3 | 心欣向榮 2026-02-28 | 3/150 |
|
|
[考研] 291 求調(diào)劑 +3 | 化工2026屆畢業(yè)?/a> 2026-03-02 | 3/150 |
|
|
[考研] 299求調(diào)劑 +3 | Y墨明棋妙Y 2026-02-28 | 5/250 |
|
|
[考研] 化工299分求調(diào)劑 一志愿985落榜 +5 | 嘻嘻(*^ω^*) 2026-03-01 | 5/250 |
|
|
[論文投稿]
求助coordination chemistry reviews 的寫作模板
10+3
|
ljplijiapeng 2026-02-27 | 4/200 |
|