20170731-學習日記
昨天在20170730-學習筆記中最後,講了一些ASE的基本操作。那麼今天主要是學習以下ASE當中個人認為最重要的兩個module(模塊):build模塊與lattice模塊。
build模塊為了在ASE當中建立分子、晶體、表面結構。它當中的方法有:
但是build當中的函數也不能滿足我們所有的需求。例如如果我們想建立一個nanoparticle的模型,那麼就必須選擇其他的模塊(例如cluster)來進行操作。在ASE的官網上也給出了相應的信息:
因此,lattice模塊的目的是建立各種晶胞結構的晶體(可以是任意方向的),而軟體會生成其最小原胞。運用lattice模塊我們即可以創建晶體(bulk)也可以創建表面(surface)。當然對lattice模塊的討論我們在build模塊之後會進行深入研究。
在build當中,我們可以建立分子和固體。那麼在ASE中內置的分子有多少呢?我們可以運用以下代碼來找到:
from ase.collections import g2ng2.namesn
最後的結果如下:
可以看出來許多的分子都已經被內置好了。我們想調用的時候可以直接進行調用。
那麼下面我們就開始依次說明在build模塊當中的函數:
這裡需要注意的點是:
- Name是一個字元串,包含了化學元素的名稱。例如MgO或者NaCl
- crystalstructure可以有以下選擇:sc, fcc, bcc, hcp, diamond, zincblende, rocksalt, cesiumchloride, fluorite or wurtzite。當然這些都必須是字元串。例如fcc, diamond。
- a與c都是晶格常數(lattice constant)
- orthorhombic和cubic的作用都是讓函數生成非primitive cell(原胞)的晶胞結構。
當我們生成了晶胞和分子以後,下面我們需要生成表面。在研究催化劑的催化性能當中,表面是不可缺少的。因此我們需要有足夠好的工具來幫助我們建立任何我們想要研究的表面。
在ASE中提供的工具如下:
對於special surfaces我們選擇fcc111()作為例子:
在這裡,我們可以看到用內置的表面函數有一個極大的好處:在加吸附物的時候,我們可以選擇ontop, bridge, fcc, hcp。這樣可以極大的節省我們的時間,提高建立slab模型的效率。
如果選擇orthogonal,那麼最後生成的晶胞就是長方體。否則是四方稜柱?(我也不知道具體應該叫什麼。。)
MX2材料現在特別的火,那麼我們看看在ASE中如何建立這些結構:
下面我們要看看如何建立任意的surface結構,這就要用到surface()函數了:
在使用surface函數時,我們需要知道:(1)晶胞結構【而且是conventional cell而不是原胞,在建立lattice的時候一定要注意】(2)Miller指數(3)slab中表面的層數(4)真空層(vacuum slab)的大小。
ASE官網上的例子如下:
在這裡直接將lattice用Au代替。則說明我們要使用Au的實驗晶格常數來建立Au(111)的表面。
如果我們想看看建立後的表面是什麼樣的,我們可以使用s1.view()來表示。這時的窗口為:
好,我們的表面已經建立完畢。光有表面是不行的,我們還需要在表面上添加吸附物。那麼這時我們可以運用add_adsorbate()函數做到這點。
讓我們看看ASE是怎麼說的:
畫紅線的兩個地方是我個人認為比較重要的。那麼我們如何對分子進行旋轉與平移操作呢?在ASE中有沒有這樣的函數?答案是有的。
對一個分子進行旋轉操作,我們需要用到的函數是:
在看這些模塊的時候,一個好的思路是不光要看函數的documentation,對於具體函數的底層代碼也要有所了解。那麼下面我們就看看rotate函數的底層代碼是怎樣的:
其中最重要的是R矩陣的寫法。就是從(a1,b1)轉到(a2,b2)。那麼如果我們以xy平面做旋轉,那麼(a1,b1)只有(x,y,0)的形式。如果我們以xz,yz平面做旋轉,則可以以此類推。因此根據這個函數我們不僅可以在二維平面中將分子做旋轉,我們也可以在三維空間中進行此類操作。
當我們建立好表面結構、在上面加上了吸附分子了以後。那麼我們有可能想擴大以下這個晶胞(可能為了研究覆蓋度的影響),這時我們可以用make_supercell()函數:
如果我們想建立一個3*3*1的supercell,那麼我們可以將P寫成如下形式:
[[3, 0, 0], [0, 3, 0], [0, 0, 1]]。
到此為止,有關build模塊的相關內容我們就總結這麼多。下面我們來看看lattice的內容。
lattice主要是建立晶胞結構的。關於晶胞結構我們知道總共有14種Bravais Lattice,我們將它們展示如下:
因此lattice當中的函數也和這14種晶格所對應:
其實建立lattice最重要的就是lattice constant。在lattice模塊當中,晶胞函數使用的是Dictionary的數據結構:
那麼在Dictionary中的Keyword有哪些呢?
在slab計算中,還有一點十分重要:contrain的加入。一般情況下,在選擇4層表面時,我們都會讓最下面兩層原子固定,而放開上層原子讓其弛豫。關於這個操作我們可以運用ASE中的contrain模塊進行設置。
在contrain當中最常用的是FixAtom函數:
我們可以從官網提供的例子中學到這個函數的相關用法:
這是使用indices的方法來加constrain:
這是使用mask的方法來加constrain。【mask的方法要比indicies方法來的簡單一些】
到目前為止,我們學會了建立:(1)原子【Atom函數】(2)分子【Atoms / ase.build.molecule函數】(3)表面【ase.build.surface函數】(4)slab模型【表面+吸附物+supercell】。下面我們想輸出它們的結果。例如我用VASP軟體進行計算,那麼我希望最後輸出的內容是POSCAR的內容。關於這部分功能,我們會在io模塊當中找到。
ASE中的io模塊是輸入/輸出模塊。也是將不同結構文件進行互相轉換的地方。
關於io模塊的操作,相信大家根據上面的學習方法可以自己去看了。具體的網址如下:
File input and output。
------------------------關於ASE部分今天就先說到這裡,下面要換學習目標了--------------
在網上發現了一個「discover yourself」的問卷調查,分享給大家:
ULTIMATE QUESTIONNAIRE - Patrick Bet-David
如果有感興趣的可以下載來嘗試著自己回答一下。做完之後會對你自己有嶄新的了解。
-------------------------COMSOL相關知識-------------------------
不知道大家是否知道COMSOL這個軟體。它的全稱是Computer Solution。是一個多物理場有限元分析的模擬軟體,現在廣泛應用在各種科學、工程計算當中。先看看軟體的LOGO是怎樣的:
以及一些比較炫酷的效果(可以在軟體當中顯示出來的):
看到這裡,是不是想去學習這個軟體呀?先別急。在學這個軟體之前,我們需要了解一下該軟體的基礎——有限元方法。
有限元方法來自於一個最簡單的概念:將微分變成差分。然後我們就可以將一個微分方程的問題變成線性代數的問題。然後對線性方程組進行求解,再根據時間迭代就可以將我們的解一步一步得到了。具體的理論可以參見相關教科書。
那我們在使用COMSOL中的具體流程應該是怎樣的?
(1)建立幾何結構(1D、2D、3D等)
(2)建立物理場-->加入耦合(具體耦合的方式可以在方程中、也可以在多物理場【Multiphysics】中進行)。在這一步我們需要對描述體系所需要的微分方程有充分的了解後才能找到正確的Model。如果不事先了解好方程,不了解其中的物理,那麼COMSOL是無法幫助得到正確答案的。
(3)添加邊界條件/初始條件
(4)建立網格(Meshing)
(5)點擊計算(Computing)
(6)後數據處理。
其實用軟體最主要的難點是在第二部分。也就是對於體系所要使用的物理場搞不清楚。以及當中的耦合方式不清楚。這不是軟體學習的難點,而是自己的物理知識背景要足夠的強大。
COMSOL的界面是這個樣子的:
在COMSOL當中我們的好幫手是:右鍵!!
當我們選中了導航區(Navigation Region)中的一個節點(node)時,我們點擊右鍵就會出現一系列的選項。那麼我們就能看到在這個節點下可以做什麼樣的操作。在這裡我們舉一個例子,比如我右擊Geometry則可以得到這個列表:
當中涵蓋了所有幾何操作(因為我選擇的是2D,因此只會顯示與2D有關的圖形操作)
了解了COMSOL的基本原理和操作重點後。大家可以去看的參考資料有以下幾個:
- COMSOL英文官網【博客以及不定期的web教程與webinar】
- COMSOL中文官網
- COMSOL軟體本身的實例庫(Library)
還有就是多和知乎上的COMSOL大神們多交流^_^。本人是COMSOL菜鳥,寫這些東西是希望給不知道怎麼上手的童鞋一點指引。如有錯誤,歡迎指出。
-----------------------------------思考一下如何學物理-----------------------------------
-----------------------------------化學小談-----------------------------------
在化學中,我個人認為最重要的幾個內容是:(1)合成方法(2)分析方法【檢測手段】(3)本質理解(原子、分子層面上的)。但是這些方法之間有一個LET的Gap(L:Length;E:Energy;T:Time)。因此我們可以藉助原子/分子層面上的理解來加深我們對化學體系的認識。但這不等於說原子/分子層面的內容就等同於宏觀的化學反應(或者製備)。
化學在1927年量子化學建立之前一直都是一個經驗學科,是通過觀察、分類、總結而得出「規律」的現象學。這並不是一種很壞的手段,它也幫助我們得到了許多正確的對於化學基本過程的理解。但我們現在有了更卓越的工具——理論化學手段,可以讓我們在一定程度上從理論計算的角度來理解化學反應的中間過程(例如表面反應中中間物吸附構型、金屬簇合物的結構等等),但我們不能「期望」理論計算的結果就可以預測實驗結果【在現在,可能在以後都是不太現實的事情】。
對化學理論的態度我認為應該是這樣的:我們從理論計算得到一些insight,我們通過這些insight去設計更好的催化劑/分子來幫助我們達到某一個目標。然後通過化學本身的方法【合成技術、表徵】來對我們的預測進行判斷。如果符合,則說明理論計算目前是站得住腳的;如果不符合,那麼我們就需要根據新的到的實驗現象重新修改我們的理論模型,以得到與實驗符合的結論。在這個過程中我們可以積累建立Model的經驗,這樣對於新的體系我們就可以建立更符合實際的Model了。
【下午可能會將看的幾篇文獻整理一下】
剪了個頭,回來開始學習。。。。。。
------------------------------------MOF的簡單介紹------------------------------------
剛剛看了一個視頻,是與MOF有關的(地址在此)。講座者是Berkeley大學的Omar Yaghi教授。他講述了MOF的誕生、發展以及未來可能的進展。下面就簡要總結下Yaghi教授講的重點。
MOF其實是結合了無機化學和有機化學的一門學科。它主要研究的是如何通過化學中的building block來形成更複雜、更有功能性的化學物質。
MOF最早的文章可以追溯到1959年在日本的化學期刊上發表的一篇文章:
這篇文章是使用有機小分子和金屬離子(銅離子)形成了類似於鑽石(Diamond)之類的結構,結構圖如下:
緊接著1995年Yaghi教授將有機分子變化了一下,得到了一種新型的鑽石結構的MOF:
那麼MOF究竟是基於什麼樣的科學靈感而誕生的呢?答案蘊含在對化學的理解當中。化學是由分子以及它們之間的相互作用而組成。分子是由原子而組成。因此科學家們就在思考:可不可以用一些分子/分子片段/團簇作為基本的building block,在此基礎上搭建化學結構(chemical structure)?如果我們合成出這些化學結構,它們會有什麼樣的應用前景?MOF就是利用有機化合物和金屬原子/團簇作為building block,形成各式各樣的porous structure。
MOF最重要的特點是它有極大的多孔效應(porous),因此它有極大的活性面積可以用來吸附小分子(例如CO2,甲醇等有機小分子)。那麼MOF的活性面積可以使用BET面積/g或者Langmuir面積/g來進行表徵。目前的state-of-the-art為(從視頻中找到的,現在可能會比視頻中的更好):
但製造MOF不僅僅是為了讓幾何面積更大,科學家還希望其中的hole能裝下越來越大的物體,因此一個想法是:將有機分子的鏈增加(越長越好),然後試試能否搭建出來合適的MOF結構。【因為MOF結構的穩定性很難控制】結果非常的好。Yaghi教授和西北大學的Fraser Stoddard教授合作,採用了這一類的有機連接體(struts):
通過實驗,隨著有機分子鏈長的增加,MOF的空隙體積也在不斷增加。下面是具體的增加過程:
因此通過將有機鏈的長度增加到11個苯環(我也不知道具體的中間結構叫什麼。。。),那麼可以得到的空隙的大小將近100nm,這和一些蛋白質的大小已經基本相當了。
在有六個苯環的結構中,已經可以使得蛋白質裝到hole當中而不會發生folding。
Yaghi教授提出了一個概念「Multivariate metal-organic frameworks」。這個概念是說,在搭建MOF的過程中,我們可以將擁有許多不同functionality的基團組合起來形成MOF。在許多化學領域中,當把眾多的物質都投入一起反應時往往會產生phase-separation。但是在MOF中不會。
根據這個idea,下面有一個示意圖,表現了當有幾種不同特徵的基團形成MOF時,它的結構會是怎麼樣:
最後,Yaghi教授提出了一個新名詞:
當然,MOF當中的化學鍵可能是中心原子-配體形成的配位鍵,也有可能是共價鍵。氫鍵不知道能不能形成MOF。。。。
當然現在MOF是一大研究熱點。關於MOF的資料非常的多。論文也汗牛充棟。在這裡知識簡要的介紹了以下MOF是個啥,有啥研究。沒有很專業的論述,希望大家諒解~~
Yaghi教授還說到了「Why do we do science?」,他給出了兩種理解:
(1)Do science in order to solve big problems in our society
(2)Do science in order to inspire others
可能MOF在更大程度上屬於第二種科研。
關於MOF是如何製備的?在Youtube上不知道有沒有相關資料。【是有的,參加此視頻:How to make MOF?】
關於MOF我們可以探索的問題有哪些呢?我給出自己的一點拙見:
(1)改變MOF的Building block。以及building block之間的化學鍵類型
(2)改變MOF的空隙大小【做到可控(可能非常困難)】
(3)有序MOF-->無序MOF
(4)MOF的生成機理
(5)使用MOF來做電催化劑(大量的空洞、以及可以design的active site geometry)
(6)Changing MOFs structure。【可逆調控MOF結構】
推薦閱讀:
※原創乾貨 | 產品經理快速成長必備的6大神器
※生活工作中經常因為粗心大意而犯錯,如何才能成為一個細心的人?
※信息大爆炸的時代,如何靜心學習?
※從陳道明「扇學生耳光」看家庭教育的第一原則