Towhee-經驗分享

如下是zhang_jaj 的問題:
你好,我想用towheeNVTargon氣在surface面上nucleation過程。首先我想把potential選爲LJsurfaceparticles也是LJ做用,
php

1)問題是這個surface是須要用particlesmake嗎,若是是的話那麼構成它的particles該怎麼固定html

2 )或者,直接用towhee裏面的LJ9-3 wall嗎,想知道這種wall是與particles怎麼做用的,它不是用小粒子構成的嗎?linux

3)模擬完成後,液體與固體的結構判斷該怎麼作,有什麼程序代碼嗎?算法

4)這個nucleationrate該怎麼算(是單位時間單位體積內產生臨街晶核的個數),我想知道程序中怎麼實現,我沒發現有那個參數相關的,或者是須要本身來加東西嗎?小程序

5)還有這個nucleation barrier該怎麼來實現?windows

6towhee不能並行,那麼其實一個任務就是在一個process上處理的;若是個人我的電腦比服務器的主頻高,那麼是否是用臺式機比服務器更快呢(由於臺式機是4核的,它是否是能本身把towhee的任務來用4核一塊兒處理?)?promise

7)但願您能給點關於towhee代碼學習的經驗,就是對於我要作的這個方向的。

這是個人回答:
實在不敢當, 我如今也是學習階段, 由於沒作過相似的體系, 對於你的問題只能有一些建議.
bash

1)問題是這個surface是須要用particlesmake嗎,若是是的話那麼構成它的particles該怎麼固定服務器

可使用particle模型來模擬, 固定比較簡單, move設置中不讓這些粒子移動就好了.app

2 )或者,直接用towhee裏面的LJ9-3 wall嗎,想知道這種wall是與particles怎麼做用的,它不是用小粒子構成的嗎?

這個我之前沒有用過, 不過文獻當中確實有人這樣作. 這種勢能的使用狀況能夠參考例子Fris_Walls, 另外上網搜了一下, 這幾個帖子和文章可能對你有用.
http://jcp.aip.org/resource/1/jcpsa6/v67/i5/p2384_s1
http://jcp.aip.org/resource/1/jcpsa6/v73/i8/p4050_s1
http://lammps.sandia.gov/threads/msg24356.html
http://www.sklogwiki.org/SklogWi ... ard-Jones_potential
這種勢是粒子勢能轉化而來的, 第四個參考文獻有推導過程, 主要的優點是能夠大大提升速度. lammps 的帖子跟你的狀況有點像, 使用MD作的, 能夠借鑑.

3)模擬完成後,液體與固體的結構判斷該怎麼作,有什麼程序代碼嗎?

這個主要是分析RDF, 代碼在 utils 中有, 能夠根據你的狀況進行修改.

4)這個nucleationrate該怎麼算(是單位時間單位體積內產生臨街晶核的個數),我想知道程序中怎麼實現,我沒發現有那個參數相關的,或者是須要本身來加東西嗎?

這個是須要後處理才能獲得的吧. towhee自己不是計算成核過程的. 應該須要編寫代碼實現. 不過MC 如何計算時間呢? 若是用MC步數是否是會有問題? 是否是用MD更合適一點?

5)還有這個nucleation barrier該怎麼來實現?

這個應該是進行不一樣溫度點的模擬, 做速率-溫度關係圖, 而後經過擬合熱力學公式獲得吧.

6towhee不能並行,那麼其實一個任務就是在一個process上處理的;若是個人我的電腦比服務器的主頻高,那麼是否是用臺式機比服務器更快呢(由於臺式機是4核的,它是否是能本身把towhee的任務來用4核一塊兒處理?)?

towhee的不能用多個核並行計算一個任務, 而事實上也不須要. 通常來講, 模擬多個任務能夠等價於模擬一個大任務, MC的本質決定它是這樣的性質, MD可不行. 因此儘可能仍是使用towhee提供的並行模式. 注意選擇不一樣的隨機種子.

7)但願您能給點關於towhee代碼學習的經驗,就是對於我要作的這個方向的。

關於代碼, 其實我也沒有太多經驗. 我主要是對結果進行後處理. towhee 自己是一個general Monte Carlo code, 不是專門爲某些體系設計的, 可是對於你的體系應該是能夠勝任的. 主要針對體系的代碼, 差異也主要是建模和分析結果兩個過程, 核心代碼都是相似的. 我我的認爲若是時間有限, 不要陷到源代碼中去.固然可以多瞭解一些代碼對於軟件的使用也是很是有好處的.
towhee
的代碼因爲須要我簡單的讀過一些, 仍是比較清楚的. 能夠嘗試從整體上去學習下.
對於結果的後處理的代碼, 建議從修改towhee 提供的代碼開始. 使用語言以本身最熟悉的爲準, 若是都湊合, 推薦 fortran90.
多學習 linux bash 腳本也是頗有好處的, 我如今簡單的數據處理基本都用它.
最後強調, 不要陷到代碼中去, 可以完成本身的用途就能夠了, 越簡單越直接越好. 多多思考跟你體系相關的問題, 多查文獻.

///
望能多多向你學習towhee知識,導師無論,本身一我的摸索。擔憂畢業十大問題啊,謝謝了

你們基本都差很少, 堅決信心, 能夠作的很好. 其實模擬計算這個方向比起作實驗仍是比較透明的, 重複文獻通常沒有問題, 技術問題通常論壇上都會回答.
我也是在學習的過程, 你們多多討論, 相互學習.

————————————————————————————————————————————————————————————————————

你好,想再請教下您。關於towhee參數設置問題:

1.pm*的值是否是按照從小到大進行排列的呢。example中有個是

pmtraat 1.0 
pmtracm 0.67  
pmrotate 1.0
這種狀況,當要判斷是進行哪一種move時,是否是隻進行pmtraat呢?

2
.給體系加上一個LJ-9-3 wall時,裏面有一個參數是ljfrhothe number density of atoms in the integrateed wall potential)是wall上與體系內分子做用的點密度嗎?還有ljfsigljfeps都是人爲的指定大小嗎?很是感謝!

1. 是的,嘗試機率逐漸遞增。例如
pm1 0.1
pm2 0.5
pm3 1.0
pm4 1.0
那麼pm14的機率分別爲0.10.40.50. 只要出現1.0,那麼後面的pm機率就都爲0

2.
不是,參數的具體意義和設置看我發給你的幾個連接。

————————————————————————————————————————

你好,還想向您請教個問題關於hmatrix參數的mannul上說這個座標矩陣能夠不正交,可是必須是right hand rule的。我在想若是用其餘非正交的座標矩陣時,程序在運行過程當中是否是速度就低了不少???(由於我的認爲正交座標裏各個原子間進行距離計算時要方便的多(如我在一個面上固定一個單層石墨烯))

還有個問題是,對於NVT系宗,若是我先讓N=1000T=50K後,該怎麼選取box的大小呢(氣體),這時不一樣的box大小應該就對應不一樣的P吧。是利用PV=NRT嗎?這個box的大小是依據我想要的P用那個公式來調節嗎?,仍是normal atmosphere下算個大約的box大小?很是感謝!!!

沒有用過非正交的盒子,不過這個對速度影響應該不大吧。你能夠試試。

對於氣體的話可使用PV=NRT來估算,注意單位。壓力是根據你的體系要求指定的吧。

————————————————————————————————————————

還有關於LJ-9-3wall裏面的ljfrho參數,這個我實在是理解不了是怎麼算的,用哪些原子,除以多大的空間(和做用範圍有關嗎)?由於英語很菜,對那句話理解不清楚,很是感謝!

我看了一下LJ93wall的參數手冊,lifrho是指每立方埃內的分子數。好比你的wallSi,每一個晶胞中分子數除以晶胞體積。若是你的wallSiO2,可能就要創建位置重疊的兩個wallSiO分別創建wall,這樣的數密度分別是SiO2晶胞中Si的數目除以晶胞體積,O的數目除以晶胞體積。

——————————————————————————————————————————————

這個看了仍是不太明白。按照mannul應該是把wall當作一種通常性的surface,而這個ljfrho就是這個面上的點分佈密度。還有下面的那個sigmaepislon都是這個wall與體系中粒子的做用參數。(這個參數該怎麼定義呢),還有若是把這個wall當作Si之類的來計算ljfrho,那麼這些Si原子的排列該怎麼肯定(或者說這是一個無序的surface)?你以前給的那個文章連接我一直下不了,不知道你有嗎,能夠給我一份嗎(zhjjaj@163.com)?關於LJ9-3的文章很是感謝!http://jcp.aip.org/resource/1/jc ... _s1?isAuthorized=no

————————————————————————————————————————————————

我從頭講好了。咱們通常模擬時使用的是全粒子勢能好比UFFamber等等,這種勢能每一個原子做爲獨立的粒子,有本身的力場參數。這樣在模擬時須要計算每一對粒子的相互做用能。若是咱們的體系是氣體或者液體分子和一個表面的相互做用,固然也可使用全粒子勢能參數去模擬,可是咱們也能夠把表面全部粒子的力場參數積分使其變成一個總體。9-3 wall 勢能是從 12-6 粒子勢能進行空間積分獲得的。積分推導的過程見:http://www.sklogwiki.org/SklogWi ... ard-Jones_potential , 建議本身能夠簡單推導一下。這樣作的好處是大大減小了粒子的數目(表面當成了一個具備特定形狀的粒子),從而減小了計算量。推導過程當中,原來12-6中的參數sigma epsilon意義沒有變化,直接繼承下來,另外新加入了一個參數ljfrhho,和體系的組成相關,即體相單位體積內的粒子數目。
我只是以SiSiO2 爲例,你要根據你的體系去獲得sigma epsilonljfrhho。請問你的體系中wall的組成是什麼物質?費了這麼大勁,不知講清楚了沒有。那個文獻我也沒有,你能夠求助一下

——————————————————————————————————————————————————————

感受你講了後,確實對這個勢有了不少了解(以前特別迷糊)。我想用單層graphene和雙層graphene試着模擬Arnucleation過程。這個2D的如單層的a2.46Angstrom),那我算的時候是否是應該就是2/2.46*[sqrt3/2]*2.46=0.38....

再好比一個fcc的(111)面,加入他的a=2,那麼計算出來的是否是應該就是4/2^3=0.5?這樣的話就跟選fcc的哪一個切面無關了呀(或者我仍是理解錯了)?

還有我覺得加上一個LJ9-3wall(如graphene)就是一個虛擬的wall;但若是我再在其餘位置加一個一樣組成的如graphene-wall時,而且給出這個graphene中各原子的座標,並且這個wall不是LJ9-3的勢。或者說在towhee中模擬的只要是加了一個用來吸附的表面,那麼它就應該是當作LJ9-3wall來處理嗎。這樣他的原子排列仍是很差肯定(如模擬外延生長時要選不一樣的面)?
因此加入一個本身引入的面是否是應該和加一個LJ9-3是徹底兩個概念吧?

還有,以你的經驗,你以爲像graphene有近1000做用的碳原子,這個得當作一個獨立的大分子來創建初始文件,你以爲應該用哪一種方式建呢,這樣就得在input_style下面有1000個做用的vibration手動參數輸入,感受太恐怖了。

最近在這幾個問題上實在搞不定,就只能想到麻煩你了

——————————————————————————————————————

還有一個問題是,我用ms建了graphene的模型,導出pdb文件格式,可是他是以ATOM位頭的,pdb2towhee轉換好像只能是HETATM打頭的,這個格式轉換是個問題啊。是否是應該本身編一個轉換的腳本呢。

還有就是如Ar氣在graphenenucleation的問題,我是把Ar放在towhee_coords裏,而後把graphene放在towhee_tempalte裏面,這個石墨烯用的是trappe-ua的力場,問題是每一個碳原子都要輸入一個vibration成鍵的參數,感受工做量特別大。不知道石墨烯有沒有比較好的輸入方式。謝謝!

單層和雙層石墨烯使用9-3 Wall 勢能模擬可能不太合適,由於積分推導過程當中是認爲表面厚度無限大。1000C原子使用全原子勢能也是能夠接受的吧。
你理解密度的計算仍是不太正確。9-3 wall 積分時認爲表面厚度無限大,那麼它的密度就等於體相的密度,跟切的表面沒有關係。
沒有明白你第二段的意思。你能再簡單地講一下嗎?towhee中大分子的建模確實比較頭疼。不過,若是你的graphene在模擬過程當中是固定不動的,那就簡單了。你把1000個原子的石墨烯看成1000個獨立的分子,這樣就不須要輸入vibration 參數了。

pdb 轉化有問題能夠修改pdb2towhee.f90 ,也能夠編腳本實現

——————————————————————————————————

很是感謝啊,我今天下午去把這個大分子上的每一個原子當作獨立的分子,程序成功運行了。我想了下,其實每一個c原子在力場都是一個獨立體對待的,因此固定不動時把它當作不少歌分子也是可行的(下午給我樂的,呵呵)。其實這個LJ-9-3我發現它就是一個彌散的surface吧,我那段話說的意思主要是爲了肯定這個surface表面的原子排布很差肯定,如今我想通了,它應該沒有這個原子排列的概念吧。但願你能給我舉個例子,好比我分別用bccfcc的鐵的來作這個LJ-9-3 wall,加入他們的晶格常數都是2Angtrosm),那麼這個ljfrho分別是怎麼求的,值時多少?ljfrho下面那個ljgsigljfeps的值,是否是須要從新建個模型用Fe的勢與體系的勢進行一個cycle,而後從towhee-out中看Fe與體系中各原子的sigmaepsilon值?

還有towhee mannul中關於lj-9-3介紹下面那個公式裏的sigmaepsilon應該就是ljfntypes下面的一系列ljfsigljfeps值吧,這樣的話,若是體系有n種與surface做用的原子,那麼在積分過程當中就應該有nlj-9-3的積分式(參數不一樣)吧

關於那個pdb2towhee的我也搞定了,用":1, $s/ATOM  /HETATM  /g",而後就能夠了。

有進展值得慶賀。好比bcc的鐵,每一個晶胞的體積爲2^3=8, 包含2Fe原子,那麼它的ljrho 應該是2/8=0.25ljgsig ljfeps 你說的是對的。學習軟件最主要的仍是靠手冊學習,towhee的手冊寫得仍是挺詳細的,我當時也是一條條本身看的,而後結合例子進行學習。

——————————————————————————————————————————————————

關於涉及到石墨烯的建模,由於石墨烯是固定的,因此我按照你說的那種方法把每一個原子當作一個獨立的分子來建模。這樣存在着問題:
1.
因爲忽然分子數多了因此對於inix iniy iniz 那三個值就須要增長,可是不知道這三個值究竟是什麼意思,把盒子劃分開有意義嗎(由於原子座標都是從towhee_coords中讀取的)?

2.當我用c60試驗的時候,這種方法一切正常,可是當我用涉及到1000多碳原子的石墨烯用這方法時,運行什麼的都正常,可是在輸出文件中有問題:信息只輸出到關於各原子間勢那塊就沒了,也就是顯示了LJ公式,而後是sigma   epsilon這一列,下面沒東西了。。。不知道怎麼回事,可是程序確實還在運行中,並且還不停有box_*.pdb文件產生,好生納悶啊

但願你能幫我排除下故障,謝謝啊

我下午去試了下,好像是由於沒有算完,因此到那裏就不顯示了。。。

——————————————————————————————————————————————

樓主你好,我也是剛剛接觸到towhee軟件的,我是作三元萃取體系氣液平衡的,如今須要模擬純組分噻吩(thiophene)的氣液平衡狀況,在模擬以前看了一下要用的力場文件,發現裏面缺乏一部分我所須要的鍵長鍵角文件,請問那個力場文件是否是沒有顯示所有能夠處理的鍵長鍵角數據呢?(由於以前讀過一篇文獻說towhee鐘的Trappe-EH力場能夠處理N原子的問題,可是我進入到towhee 7.0.2版本的那個力場文件後發現裏面根本沒有N原子的數據。因此纔有這種疑問##)。若是真的沒有我該本身添加力場的數據麼?須要的話是簡單地從別的聯合原子力場中找到N原子數據,而後粘貼我如今用的這個力場中嗎?小弟初學,麻煩你了!

對這個力場我不是很熟悉,最好的辦法是找文獻中Trappe的參數,而後按照towhee的格式添加到力場文件中。若是Trappe力場確實沒有你所須要的參數,能夠從別的力場獲得參數,必定要二者的力場形式相同(好比都是LJ 12-6)。

————————————————————————————————————————————————————

樓主師兄你好,我又有幾個問題想問一下你。
1.
兩個力場的混合規則不一樣,可不能夠用什麼方法給其中一個導入一種混合規則呢?若是能夠怎麼作?
2.
對於手動輸入電荷時,若是關於力場的描述文件中的Coulombic interactions項下有電荷值,我是否是就該輸入此電荷值,若是Coulombic interactions沒有值,我是否是就不輸入電荷值呢,即爲0.0d0?入Dubb2004勢,用來創建SiO2分子時?
3,
在創建一個分子時,若是有多個unitsatom組成,那麼對於towhee_coords文件裏面是否是應該按照input_style下的unit值對應的把一種atom輸入完再輸入另外一種呢?
4
,您知道這個程序的結果文件pdb或者movie文件裏怎麼判斷材料是fcc仍是bcc之類的嗎,或者您知道那個軟件有這個功能嗎?
5.
(補充的)對於不一樣的力場文件,如argonepsilon值都不相同,是否是意味着argon在固體狀況下,對於不一樣的力場他的晶格常數不一樣呢?
6
,對於涉及同位素的,就拿HD來講吧,若是我又H的力場文件,可不能夠把Hmass修改一下當作D的立場文件來用呢?(對於LJ勢)
很是感謝!

1. 混合規則不一樣通常不推薦聯合使用,能夠測試一下看看影響是否很明顯。
2.
不考慮庫侖做用能夠把電荷寫爲0,若是所有都不考慮能夠把庫侖做用關閉
3.
不明白??舉個例子?
4.
這個須要你本身去判斷吧?我沒有發現有這樣的功能。
5.
應該是這樣的,注意也比較一下力場的形式
6.
能夠的。

————————————————————————————————————

你好:
1.
我不知道混合規則不一樣的能不能用,因此就沒用,下午能夠去試一試
2.
也就是說,只要個人體系不想考了庫倫做用,我就能夠都不寫電荷值吧
3.
問題解決,由於當時我導出來的sio2pdb文件裏sio是間隔的寫的,對於towhee須要把si的座標寫完,再寫o的座標。
4.
由於我作的是氣體低溫結晶過程,因此須要判斷究竟是凍結成了什麼結構,這個很鬱悶啊
6.
關於這個我知道對於vasp是能夠這麼修改的,可是對於LJ勢的力場文件,由於不知道參數和原子的質量有沒有關係,因此不知道這麼修改獲得的同位素力場可不能夠用。

問題:還想問一下,不知道您對形核過程瞭解嗎,我不知道該怎麼在模擬過程當中計算體系的形核勢壘。若是說是用成核時的體系總能量與初始的總能量相減的話,那麼這個勢壘是否是特別依賴與初始模型的原子排布(由於我是看您的教程用packmol生成的文件,因此不知道這個生成的排列對於計算勢壘時是否具備通常性)
towhee
裏面有umbrella samplingflux forwar sampling兩種抽樣嗎?若是沒有想要加的話是在編譯後的程序里加呢,仍是加了以後從新編譯呢?
很是感謝!!!!

6. 對於同位素:量子力學均可以使用相同的參數,分子力學固然也能夠了對於成核不太瞭解。形核勢壘能夠經過屢次模擬把初始結構的影響下降吧。umbrella sampling towhee 中是有的,後面那個不太清楚,你能夠看一下手冊。若是要修改程序,固然須要從新編譯了!

——————————————————————————————————————

若是能夠直接把力場文件修改當作同位素來用的話,那假如我須要涉及H2D2兩種氣體的混合,那我是否是須要把複製一個H2的力場修改後重命名或者放到其它目錄來調用呢?

能夠這麼作,也能夠在原來的力場中加入D原子類型

——————————————————————————————————————————————————————

你好,關於同位素力場文件,改了mass這個值就能用我有點疑問。若是說關於HD的,質量不一樣,而後其餘什麼都相同(力場),那麼他們兩個單獨進去的模擬應該表現的狀況同樣是嗎?由於mass好像對LJ中的勢能沒有影響吧。這樣的話,其實同位素就不可分了吧?

LJ 勢能確實跟質量沒有關係。不過模擬的整個過程是這個樣子的:
初始速度和座標---> 根據勢能函數求做用力 --> 根據牛頓第二定律求加速度(!!!,跟質量有關) --> 由加速度求速度 ---> 由速度求位置 --> ......循環

————————————————————————————————————————————————————————————

這個是分子動力學的吧啊,若是是蒙卡的話,那就無法區分H2D2了嗎,是吧?

很差意思弄混了。我想應該是沒有辦法區分的

——————————————————————————————————————————————

那就傻了,難道只能換lammps了嗎?我在towhee裏面的力場沒有看到有D2T2的。

不知你研究的是同位素的動力學效應仍是熱力學效應,若是是動力學效應,MC 自己是不能作的。若是是熱力學效應,說實話,我目前還理解不了它們之間有什麼差異

——————————————————————————————————————————————————————————————————————————

我是想作H2D2在低溫結晶過程的模擬,看他們的nucleation過程等,可是據我所知,他們的三相點是明顯不一樣的,因此氣體液化的溫度也不一樣。可是用同一個力場的話感受就是全同的了。。。體現不出什麼差異來?

——————————————————————————————————————————————————————————————————————————

你好,看來只能又麻煩你了啊。以前你給我說towhee裏面有umbrella sampling這個算法,可是我不會用它來肯定個人nucleation過程的勢壘,不知道這個具體該怎麼作,麻煩能給我說個大概的過程嗎?很是感謝,還有那個勢函數我不用去糾結了,目前先不讓作那個了,只作氬氣的。

——————————————————————————————————————————————————————————————————————————

你好,又要麻煩您了!以前和您討論過創建石墨烯的模型,當時是把全部的C原子當作獨立的molecular來對待,即勢函數只考慮了非鍵參數,沒有考慮鍵參數。這個的前提是讓石墨烯不參與move(這樣的話把C-C做用搞成0更好,還不知道該怎麼來作,難道要單獨由幾何法獲得C-Ar參數作一個力場?)。可是最近一個師兄說個人模型太理想了,應該讓C原子也move,若是這樣的話,就須要考慮石墨烯中的非鍵做用。若是這樣的話不知道這個石墨烯的模型該怎麼建?
若是把全部的鍵都算上的話,在towhee_input下面得輸太多太多行了。。。關於這個問題,學長,你怎麼看?

———————————————————————————————————————————————————————————————————————————————

 

首先在這裏我要衷心的感謝043114076師兄,在學習towhee過程當中他給予了我極大的幫助和指導。他不但具備豐富的學識,並且很是友善有耐心。

關於input 
首先確保格式正確無誤,而後參數設置方面,參數都是有物理意義的,重要的是對monte carlo方法自己的理解,不要侷限於towhee自己的manual(不是說不重要)。固然最初接觸要多加調試,會加深理解,最後總結的時候要與參數物理意義結合,歸結於理論。

參數的設置對於模擬時間和結果的準確性影響很大:

模擬參數的設置,如controlstyle只對輸出參數的形式有影響,可經過本身想要怎麼樣處理數據進行設置。equili product過程的差異主要在因而否去作結果分析。equili 過程是不能作分析的,主要是爲了獲得熱力學平衡的結構;product 的結果才能作RDF RMSD等等的分析。仔細比較一下不一樣controlstyle的差異,就會發現二者只是生output的差異。通常是採用manual,按照本身想要的輸出結果進行設置。

stepstyle的選擇
'cycles'
nstepmc循環。每次循環包含分子數次mc嘗試移動,因此速度慢點。在一個cycles中每一個移動的機率是不同的。
'moves'
nstepmc嘗試移動。(速度很是快,每次機率同樣)

要充分理解二者的本質區別,從而進行取捨。

初始構型的設置主要是影響平衡時間,對最終結果影響不大,但可以快速達到平衡對計算來講很是具備優點。若沒有經過其餘途徑獲得初始構型,那就直接從input裏設置;本身設置時必定要注意hmatrix,盒子大小的設置,對於平衡影響很大,通常液相盒子經過分子數和液相密度計算獲得,氣相盒子經過理想氣體狀態方程計算獲得。

如有從MCMD方法獲得的初始構型能夠轉化爲initialcoords文件進行計算,從而可以快速進行計算。

使用initial
linit(logical)       
        .TRUE.
生成初始構型。
        .FALSE.
不生成初始構型,從towhee_initial中讀入。

計算過程停電終止,若想接着前面的計算繼續下去,按照幫助文檔上說是把backup裏的內容複製到initial裏,而後再運行就能夠。但嘗試一次直接計算100000的,再嘗試一次先計算50000再利用initial計算50000,這兩次運行的結果並不太同樣,最後的結構多是不同的,可是熱力學信息應該是相似的。要麼多是運行的步數不夠多。由於monte carlo是隨機過程,每次隨機數都是不一樣的。

使用coords時:
能夠把pdb 文件轉換爲coords 文件,utils 中有這個小程序。 
coords
文件的格式比較簡單,手冊中的說明也比較清楚。注意在input中初始結構的參數(initstyle 等)也要相應的修改。
模擬移動類型比率設定,機率爲累加機率,即實際機率爲當前數值減前一項數值,必有一項機率爲1.後續項則均爲0.
pmvol(double precision)
盒子體積變化,對於很是消耗模擬時間,比例一般設置很是小,並且在NVT系綜時此項不起做用,可設爲0.
pm2boxrbswap
pm2boxcbswap
這兩項都是粒子交換,根據本身所計算體系進行選擇,在高溫時候可適當明顯減少比例會大大優化模擬結果。
各類移動的接受機率不能過高也不能過低,不然效率都是不高的。要多試試,不一樣的體系是須要經驗的。有文獻說0.3-0.5之間模擬效果最好。
電荷使用手動指定電荷的方法(manual),在input file 指定電荷。這樣就可使用文獻當中的電荷值。電荷的分佈對於模擬結果影響很大,通常不設置的話都是默認採用軟件自帶的從烷烴和烯烴等體系遷移過來的電荷值。若要修正電荷,可經過量化方法進行擬合,或者與實驗數據擬合進行不斷調整。
例如我運行中出現運行towhee ,出現assembleunknown match_style for nonbond,仔細覈查了輸入文件都沒有發現問題,總覺得是力場裏非鍵參數的問題,結果只是格式出錯了,解決辦法以下:

linux下運行:
dos2unix towhee_input
dos2unix towhee_ff_TraPPE-UAn
以後我試了這個方法,沒有轉化成功,不知道是什麼緣由,可是師兄電腦運行很好。而後師兄又給我一個建議:若是沒有dos2unix 這個命令,可使用linuxvi 打開你的上述兩個文件,把全部^M 去掉。
果真用vi打開input 文件之後,發現了不少^M,刪除之後運行正常。
這是屬於格式問題,緣由是在windows 編輯的文件與linux不兼容,有兩個解決的辦法:
1.
通常狀況下,使用dos2unix 命令是能夠進行轉換的。
2.
即便不能轉換也沒有關係,能夠在linux 下使用vi 打開你的文件,把那些不該該出現的特殊的符號刪除掉,最多見的是"^M"
另外編輯towhee_input 文件,推薦使用unicode類型的編輯器,我使用的是geany, 一個免費開源的軟件,winlinux均可以使用。
每次編寫完input,檢查完各參數的設置後必定要檢查格式,一個小小的標點符合,一個空格都會使程序運行不下去。
運行過程當中,一旦出現問題就會中斷並提示錯誤,仔細琢磨提示的錯誤,再進行修改,如我遇到過:出現 'command not found',有時候是由於命令打錯了,大小寫沒有注意,有時候是因爲命令與輸入文件不在同一個路徑內;出現'已殺死',有時候是由於終端運行任務太多,超過電腦負荷,有時候是由於運行程序所須要的輸出文件不徹底,或者終端寫代碼時候與input文件不負荷;出現 'expected string',有時候是由於輸入文件裏的參數漏了某些先後對應的,有時候是由於格式問題。。。。。。


氣液平衡確實比較難以模擬,跟目前理論方法有關,加深對monte carlo方法的理解會有很大的幫助,也會對選擇參數有指導。這些參數都是有物理意義的,重要的是對方法自己的理解,不要侷限於towhee自己的manual(不是說不重要)。多多調試也會加深理解,使偏差縮小,但要明白這些參數的調整隻是爲了更快達到平衡或者更好地收斂並不改變方法的本質。
關於output文件
計算結果output最後的block averages,裏的 block energy, density, virial press, mol fracs,這四項有時候會忽然所有變成 0.  例如最後輸出10block averages,從第5開始變成0 ,只有一直如此;還有時候是從第五個變成0到第七個,而後第八個又恢復正常值。
爲何會出現這種不正常的現象呢?
後來我仔細檢查了初始文件、結構、中間的結構、output 等等,並和例子文件對照,而後調整了盒子大小,改變一下粒子交換的比例,目標接收機率等解決了這個問題。
在系統溫度接近臨界溫度時,模擬體系的波動顯著加強,容易出現某模擬盒的粒子數爲零的狀況,致使模擬進程中斷。所以,必須當心調整模擬條件。高溫(接近臨界溫度)時候,將粒子交換步所佔的比率顯著減少,可以得到較好的模擬效果。

關於力場
若計算體系裏分子片斷在軟件裏都有定義,那就直接採用自帶力場;如有些分子片斷沒有定義,要麼從其餘分子片斷裏遷移,要麼就本身按照所要使用力場的格式要求編寫。
力場修正,有(1) 徹底擬合實驗數據。(2) 部分源於量化計算,部分源於對實驗數據的擬合。(3) 徹底擬合量化方法計算獲得的數據。
通常的分子內相互做用(如鍵長、二面角等)可徹底經過量化計算得到準確的結果,可是分子間的相互做用(如庫倫相互做用、範德華相互做用等)則很難徹底經過量化計算獲得準確通用的結果,須要不斷擬合,最好是參考實驗數據或者狀態方程計算的數據。要注意不管是經驗的仍是量子力學方法的。這些參數之間是compromise的結果,因此本身調整時要儘可能當心。除了參數,模擬體系的模型選擇也很重要,好的模型可能使得更快達到平衡。

關於Utils
towhee
utils 目錄下有一些很是有用的小程序,也能夠寫一些簡單的腳本。如pdb2towhee能夠將pdb文件轉化成其餘形式的文件從而在輸入文件中使用。Fitcoex能夠獲得臨界溫度和臨界密度。rdf2pmfair能夠獲得RDF圖(radial distribution funtion)等。
舉一例:
我按照手冊上的步驟
    cd/Utils
      make pdb2towhee
而後我也發現Utils裏有了這個可執行文件。
接下又到帶有pdb文件的計算結果文件夾裏執行這個   pdb2towhee命令
但是老是說 command not found
後來我把可執行命令pdb2towhee複製到結果文件夾裏就能夠執行
./ pdb2towhee
這個命令了,按照提示一步一步輸入代碼。都是一些簡單的小問題。
出現這個問題是因爲執行命令和結果文件不在同一個路徑。也能夠嘗試把執行命令複製到bin文件中。


關於模擬方法的改進以及與其餘方法結合

氣液相平衡的時候先用MC或者MD獲得平衡的氣相和液相,再用GEMC

若是用MC的話,towhee就能夠,關鍵是運行時只設置一個盒子,分別獲得氣相和液相的平衡結構。control style 設置我通常是使用manual 本身指定每一個參數。(這個關係不大,只是輸出的參數有差異)觀察能量和壓力等參數達到平衡之後,再運行兩個盒子的任務。通常氣相平衡很容易,液相要多運行不少步。平衡的判斷最重要的是查看MSD。若是會MD的話,也能夠試試,平衡的速度更快。

結語
氣液相平衡的模擬採用的蒙特卡洛方法,首先要理解這個方法的原理,才能加深對於軟件學習以及參數設置的理解,從而能夠避免過多無謂的調試,儘快地達到平衡進行計算縮小偏差。學習towhee 首先是input 文件,參照manual 理解每個參數的意義,各參數之間是compromise的關係,注意先後對應。可以快速達到平衡,減少偏差

而後是力場,通常體系都是使用軟件自帶力場,有些時候只須要修改一些參數就好了。可是遇到軟件沒有定義的分子基團,就要本身進行編寫力場了,格式嚴格按照手冊上的要求,注意對齊,不要有多餘的空格。目前我剛接觸towhee一個月,不少東西仍然在學習,把本身的學習經歷貼出來跟你們分享,但願獲得你們的指導。最後還要再次感謝043114076師兄

相關文章
相關標籤/搜索