亚洲欧美日本视频在线观看-国产精品粉嫩一区二区-欧美高清在线不卡视频-日韩乱码在线高清观看

    快捷下單入口 關(guān)于 合作 招聘 新人手冊 會員中心

    熱線:400-152-6858

    測試狗科研服務(wù)

    預(yù)存 免費試測 登錄
    Document
    當(dāng)前位置:文庫百科 ? 文章詳情
    ASE原子環(huán)境模擬之原子構(gòu)建和計算單元
    來源: 時間:2022-12-16 16:33:54 瀏覽:2905次

    ASE允許指定不同的計算代碼作為原子尺度的計算單元。在這個入門練習(xí)中,我們通過ASE的基本概念和工作流程,最終計算N2的結(jié)合曲線。

    這些教程經(jīng)常使用電子結(jié)構(gòu)代碼GPAW。使用其他受支持的代碼也可以很好地完成它們,但需要稍作調(diào)整。




    Python


    在ASE中,通過編寫和運行Python腳本來執(zhí)行計算。在ASE文檔中可以找到一個非常簡短的Python入門教程。如果你是Python新手,最好了解一下基本語法、數(shù)據(jù)類型和導(dǎo)入之類的東西。




    Atoms


    我們建立一個分子,進行DFT計算。我們可以手動輸入原子的化學(xué)符號,并且猜測原子的坐標(biāo)(以?ngstr?m為單位),來建立簡單分子。比如N2:

    
    

    from ase import Atoms

    atoms = Atoms('N2', positions=[[0, 0, -1], [0, 0, 1]])

    為了防止錯誤,我們使用ASE GUI可視化我們的分子:

    
    

    from ase.visualize import view

    view(atoms)

    同樣地,我們以某種格式保存原子,通常是ASE自己的trajectory格式:

    
    

    from ase.visualize import view

    view(atoms)

    然后在終端上運行GUI:

    
    

    ase gui myatoms.traj

    ASE支持相當(dāng)多的不同格式。對于完整的列表,運行:

    $ ase info --formats



    Calculators


    接下來讓我們進行一個電子結(jié)構(gòu)計算。ASE使用calculators模塊進行計算。calculators模塊為進行實際計算的不同后端提供抽象接口。通常,calculators通過調(diào)用外部電子結(jié)構(gòu)代碼或力場代碼來工作。要運行計算,我們必須首先創(chuàng)建一個calculator,然后將其附加到Atoms對象。這里我們使用GPAW并設(shè)置一些計算參數(shù):

    from gpaw import GPAW

    calc = GPAW(mode='lcao', basis='dzp', txt='gpaw.txt', xc='LDA')

    atoms.calc = calc

    不同的電子結(jié)構(gòu)軟件具有不同的輸入?yún)?shù)。GPAW可以使用實空間網(wǎng)格(mode='fd')、平面波(mode='pw')或局部原子軌道(mode='lcao')來表示波函數(shù)。在這里,我們調(diào)用更快但不太精確的LCAO模式,以及標(biāo)準(zhǔn)雙zeta極化基組('dzp')。GPAW和許多其他代碼也需要一個基本原胞(或模擬盒子)。因此,我們把原子放在一個盒子的正中間,在每個原子周圍留下3  ?的空間:

    atoms.center(vacuum=3.0)

    print(atoms)

    輸出將顯示模擬框(或cell)的坐標(biāo),該框也可以在GUI中看到。

    一旦Atoms有了一個具有適當(dāng)參數(shù)的計算器,我們就可以計算能量和力:

    
    

    e = atoms.get_potential_energy()

    print('Energy', e)

    f = atoms.get_forces()

    print('Forces')

    print(f)

    這就給出了以eV為單位的能量eV和以eV/?為單位的力。(ASE還提供了atoms.get_kinetic_energy()來表示原子運動時的動能。在DFT計算中,我們通常只需要Kohn-Sham基態(tài)能量,也就是計算器提供的“勢能”。)

    調(diào)用get_potential_energy()get_forces()會觸發(fā)一個自洽計算,并輸出大量的輸出文本。檢查gpaw.txt文件,可以查看選擇了哪些計算參數(shù)。請注意get_forces()調(diào)用實際上并沒有觸發(fā)新的計算—力是根據(jù)已經(jīng)計算過的基態(tài)得到的,因此我們只運行了一次計算。




    結(jié)合曲線


    ASE的優(yōu)點是可以編寫腳本。atoms.positions是表示原子位置的numpy數(shù)組:

    print(atoms.positions)

    我們可以通過在數(shù)組元素中添加或賦值來移動原子。然后,我們可以再次調(diào)用atoms.get_potential_energy()atoms.get_forces()來觸發(fā)新的計算。

    這樣我們就可以實現(xiàn)任何一系列的計算。當(dāng)運行多個計算時,我們通常希望將它們寫入一個文件。我們可以使用標(biāo)準(zhǔn)的軌跡格式來編寫多種計算(原子和能量),如下所示:

    
    

    from ase.io.trajectory import Trajectory

    traj = Trajectory('mytrajectory.traj', 'w')

    ...

    traj.write(atoms)

    練習(xí):編寫一個循環(huán),以小的步長移動N2分子的其中一個原子,得到體系能量對距離的曲線。將每一步的構(gòu)型存盤并且可視化。平衡距離是多少呢?

    注意原子不要太靠近模擬盒子的邊緣(否則電子會擠壓盒子,增加能量和/或破壞計算)。

    如果我們忘記編寫軌跡,我們還可以在gpaw.txt文件上運行ASE GUI,盡管它的輸出精度是有限的。

    盡管GUI將為我們繪制能量曲線,但發(fā)布高質(zhì)量的曲線通常需要一些手工修改。ASE提供兩個函數(shù)來讀取軌跡或其他文件:

    • ase.io.read()讀取并返回最后一個構(gòu)型,如果指定了index關(guān)鍵字,則可能是一組構(gòu)型。 

    • ase.io.iread()讀取多個構(gòu)型,一次一個。

    使用ase.io.iread()讀取構(gòu)型,例如:

    
    

    for atoms in iread('mytrajectory.traj'):

       print(atoms)

    練習(xí):使用matplotlib繪制結(jié)合曲線(能量對距離的函數(shù))。你將需要搜集隨著軌跡循環(huán)的計算中每一步能量和距離。如果剛才已經(jīng)計算過能量,那么atoms就已經(jīng)包含能量,所以調(diào)用atoms_get_potential_energy()可以簡單地獲得能量而不需要再做計算。

    選做練習(xí):為了計算更加正確的結(jié)合能,設(shè)置一個孤立的N原子并計算它的能量。然后計算由原子到分子的分子結(jié)合能:E_結(jié)合 = E_N2 - 2E_N。你可以在計算開始之前設(shè)置atoms.set_initial_magnetic_moments([3])來告訴GPAW你的原子是具有自旋極化的。




    練習(xí)答案


    from ase import Atoms

    from ase.io import Trajectory

    from gpaw import GPAW

    atoms = Atoms('N2', positions=[[0, 0, -1], [0, 0, 1]])

    atoms.center(vacuum=3.0)

    calc = GPAW(mode='lcao', basis='dzp', txt='gpaw.txt')

    atoms.calc = calc

    traj = Trajectory('binding_curve.traj', 'w')

    step = 0.05

    nsteps = int(3 / step)

    for i in range(nsteps):

       d = 0.5 + i * step

       atoms.positions[1, 2] = atoms.positions[0, 2] + d

       atoms.center(vacuum=3.0)

       e = atoms.get_potential_energy()

       f = atoms.get_forces()

       print('distance, energy', d, e)

       print('force', f)

       traj.write(atoms)



    import matplotlib.pyplot as plt

    from ase.io import iread

    energies = []

    distances = []

    for atoms in iread('binding_curve.traj'):

       energies.append(atoms.get_potential_energy())

       distances.append(atoms.positions[1, 2] - atoms.positions[0, 2])

    ax = plt.gca()

    ax.plot(distances, energies)

    ax.set_xlabel('Distance [?]')

    ax.set_ylabel('Total energy [eV]')

    plt.show()



    from ase import Atoms

    from gpaw import GPAW

    atoms = Atoms('N')

    atoms.center(vacuum=3.0)

    atoms.set_initial_magnetic_moments([3])

    calc = GPAW(mode='lcao', basis='dzp')

    atoms.calc = calc

    atoms.get_potential_energy()


    計算狗·模擬計算

    評論 / 文明上網(wǎng)理性發(fā)言
    12條評論
    全部評論 / 我的評論
    最熱 /  最新
    全部 3小時前 四川
    文字是人類用符號記錄表達信息以傳之久遠(yuǎn)的方式和工具?,F(xiàn)代文字大多是記錄語言的工具。人類往往先有口頭的語言后產(chǎn)生書面文字,很多小語種,有語言但沒有文字。文字的不同體現(xiàn)了國家和民族的書面表達的方式和思維不同。文字使人類進入有歷史記錄的文明社會。
    點贊12
    回復(fù)
    全部
    查看更多評論
    相關(guān)文章

    基礎(chǔ)理論丨一文了解XPS(概念、定性定量分析、分析方法、譜線結(jié)構(gòu))

    2020-05-03

    晶體結(jié)構(gòu)可視化軟件 VESTA使用教程(下篇)

    2021-01-22

    手把手教你用ChemDraw 畫化學(xué)結(jié)構(gòu)式:基礎(chǔ)篇

    2021-06-19

    【科研干貨】電化學(xué)表征:循環(huán)伏安法詳解(上)

    2019-10-25

    【科研干貨】電化學(xué)表征:循環(huán)伏安法詳解(下)

    2019-10-25

    Zeta電位的基本理論、測試方法和應(yīng)用

    2020-08-24

    項目推薦/Project
    第一性原理-電荷密度

    第一性原理-電荷密度

    第一性原理-擴散能壘

    第一性原理-擴散能壘

    熱門文章/popular

    基礎(chǔ)理論丨一文了解XPS(概念、定性定量分析、分析方法、譜線結(jié)構(gòu))

    晶體結(jié)構(gòu)可視化軟件 VESTA使用教程(下篇)

    手把手教你用ChemDraw 畫化學(xué)結(jié)構(gòu)式:基礎(chǔ)篇

    【科研干貨】電化學(xué)表征:循環(huán)伏安法詳解(上)

    電化學(xué)實驗基礎(chǔ)之電化學(xué)工作站篇 (二)三電極和兩電極體系的搭建 和測試

    【科研干貨】電化學(xué)表征:循環(huán)伏安法詳解(下)

    微信掃碼分享文章

    意見反饋

    有獎舉報

    商務(wù)合作

    ...

    更多

    公眾號

    關(guān)注我們 了解更多

    小程序

    隨時預(yù)約 掌握進度

    舉報有獎

    TEL: 191-3608-6524

    如:在網(wǎng)絡(luò)上惡意使用“測試狗”等相關(guān)關(guān)鍵詞誤導(dǎo)用戶點擊、惡意盜用測試狗商標(biāo)、冒稱官方工作人員等情形,請您向我們舉報,經(jīng)查實后,我們將給予您獎勵。

    舉報內(nèi)容:

    200

    上傳附件:
    文件格式不正確,請重新上傳文件格式不正確,請重新上傳文件格式不正確,請重新上傳
    文件格式:jpg、jpeg、png、gif、tif、doc、docx、ppt、pptx、xls、xlsx、pdf、zip、rar
    聯(lián)系方式
    姓名
    電話
    提交意見

    意見反饋

    Suggestions

    您可以在此留下您寶貴的意見,您的意見或問題反饋將會成為我們不斷改進的動力。

    意見類型
    測試服務(wù)
    網(wǎng)站功能
    財務(wù)報賬
    其他類型
    意見內(nèi)容

    200

    聯(lián)系方式
    姓名
    電話
    提交意見

    收起

    01

    專屬信用額度,先測后付0元下單

    02

    下單享高額積分,萬千好禮免費兌

    200
    200元無門檻優(yōu)惠券
    立即激活 立即下單
    已使用
    已作廢

    全流程在線可視化,便捷高效觸手可及

    如下單過程中有任何疑問或需要幫助,請隨時咨詢專屬顧問~
    9
    9折無門檻優(yōu)惠券

    支付一筆訂單后可領(lǐng)取

    立即領(lǐng)取 立即下單
    已使用
    已作廢

    免費測+驚喜盲盒+高額福利,多重福利大放送

    新人免費測

    雙雙開盲盒(100%中獎)

    邀請人專享

    受邀人專享

    創(chuàng)建/加入團隊,解鎖定制化權(quán)益

    01

    1500元團隊專屬優(yōu)惠券

    02

    萬元大額信用額度,享先測后付

    03

    團隊成員統(tǒng)一開票報銷;

    04

    專業(yè)工程師課題專屬服務(wù)

    領(lǐng)取成功,請下單
    請您支付一筆訂單后才可以領(lǐng)取優(yōu)惠券
    Document
    關(guān)于我們 新手幫助 測試干貨 商務(wù)合作 基金查詢 相關(guān)資質(zhì) 模擬計算 現(xiàn)場測試 服務(wù)項目 科研繪圖 同步輻射 電池行業(yè)

    聯(lián)系方式/contact

    400-152-6858

    工作時間/work time

    09:00-18:00

    測試狗公眾號

    關(guān)注我們 了解更多

    測試狗小程序

    隨時預(yù)約 掌握進度

    蜀公網(wǎng)安備51010602000648號

    蜀ICP備17005822號-1

    成都世紀(jì)美揚科技有限公司

    Copyright@測試狗·科研服務(wù)