メインコンテンツへスキップ
見出し画像

書記が物理やるだけ#415 GTOの分子積分-2

    前回に続いてGTOの分子積分を扱う。


    問題


    画像


    解答

    STOの動径部分は、原点で有限の傾きをもつ(cusp条件を満たす)。一方、GTOの動径部分は、原点で傾きがゼロとなるため、電子密度の核付近での急峻な変化を再現できない。また、遠方ではGTOは指数関数よりも速く減衰するため、原子間での長距離重なりを過小評価する傾向がある。

    このため、実際の量子化学計算では、複数のGTOを線形結合してSTOを近似し、精度を補う手法であるSTO-nG基底系が用いられる。

    画像


    核引力積分および二電子反発積分は,Boys関数を用いて解析的に導出することができる。

    画像
    画像


    以下にPySCFを用いたフッ化水素(HF)分子の分子積分を示す。

    from pyscf import gto
    
    # 1. 分子を定義
    mol = gto.M(
        atom = '''
        F  0.0  0.0  0.0
        H  0.0  0.0  0.917
        ''',
        basis = 'sto-3g',  # 基底系 (最小基底)
        charge = 0,
        spin = 0,  # 閉殻
        verbose = 0 # 出力を抑制
    )
    
    # 基底関数の数 (AOの数)
    n_ao = mol.nao_nr()
    print(f"HF分子 (sto-3g) の原子軌道(AO)の数: {n_ao}\n")
    
    # --- 1電子積分の計算 ---
    # PySCFでは mol.intor('インテグレータ名') で各種積分を計算できます
    
    # (a) 重なり積分 (Overlap Integrals)
    # S_μν = <μ|ν>
    s = mol.intor('int1e_ovlp')
    print(f"--- (a) 重なり積分 (S) ---")
    print(f"形状: {s.shape}") # (n_ao, n_ao)
    print(s) # 行列全体を表示する場合はコメントアウトを外す
    
    # (b) 運動エネルギー積分 (Kinetic Energy Integrals)
    # T_μν = <μ| -1/2 * ∇^2 |ν>
    t = mol.intor('int1e_kin')
    print(f"\n--- (b) 運動エネルギー積分 (T) ---")
    print(f"形状: {t.shape}") # (n_ao, n_ao)
    print(t)
    
    # (c) 核-電子引力積分 (Nuclear-Electron Attraction Integrals)
    # V_μν = <μ| -Σ_A (Z_A / r_A) |ν>
    v = mol.intor('int1e_nuc')
    print(f"\n--- (c) 核-電子引力積分 (V) ---")
    print(f"形状: {v.shape}") # (n_ao, n_ao)
    print(v)
    
    # (d) 1電子ハミルトニアン (Core Hamiltonian)
    # h_core = T + V
    h_core = t + v
    print(f"\n--- (d) 1電子ハミルトニアン (h_core = T + V) ---")
    print(f"形状: {h_core.shape}") # (n_ao, n_ao)
    print(h_core)
    
    # --- 2電子積分の計算 ---
    
    # (e) 2電子反発積分 (Electron Repulsion Integrals, ERI)
    # (μν|λσ) = <μν| 1/r_12 |λσ>
    # メモリに注意して計算
    eri = mol.intor('int2e')
    print(f"\n--- (e) 2電子反発積分 (ERI) ---")
    print(f"形状: {eri.shape}") # (n_ao, n_ao, n_ao, n_ao)
    
    # 全て (6x6x6x6 = 1296個) を表示すると長すぎるため、一部を表示
    print("\nERI の一部 (0, 0, :, :) を表示:")
    print(eri[0, 0, :, :])

    HF分子 (sto-3g) の原子軌道(AO)の数: 6

    --- (a) 重なり積分 (S) ---
    形状: (6, 6)
    [[1. 0.23798988 0. 0. 0. 0.04947778]
    [0.23798988 1. 0. 0. 0. 0.44887373]
    [0. 0. 1. 0. 0. 0. ]
    [0. 0. 0. 1. 0. 0. ]
    [0. 0. 0. 0. 1. 0.34924253]
    [0.04947778 0.44887373 0. 0. 0.34924253 1. ]]

    --- (b) 運動エネルギー積分 (T) ---
    形状: (6, 6)
    [[ 3.69845767e+01 -2.12857504e-01 0.00000000e+00 0.00000000e+00
    0.00000000e+00 2.34662275e-04]
    [-2.12857504e-01 1.03799541e+00 0.00000000e+00 0.00000000e+00
    0.00000000e+00 1.28648571e-01]
    [ 0.00000000e+00 0.00000000e+00 3.24801469e+00 0.00000000e+00
    0.00000000e+00 0.00000000e+00]
    [ 0.00000000e+00 0.00000000e+00 0.00000000e+00 3.24801469e+00
    0.00000000e+00 0.00000000e+00]
    [ 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00
    3.24801469e+00 2.74575876e-01]
    [ 2.34662275e-04 1.28648571e-01 0.00000000e+00 0.00000000e+00
    2.74575876e-01 7.60031884e-01]]

    --- (c) 核-電子引力積分 (V) ---
    形状: (6, 6)
    [[-7.75866540e+01 -9.31414657e+00 0.00000000e+00 0.00000000e+00
    -1.50570279e-02 -1.99625534e+00]
    [-9.31414657e+00 -1.21137684e+01 0.00000000e+00 0.00000000e+00
    -1.80025964e-01 -4.22357915e+00]
    [ 0.00000000e+00 0.00000000e+00 -1.19818648e+01 0.00000000e+00
    0.00000000e+00 0.00000000e+00]
    [ 0.00000000e+00 0.00000000e+00 0.00000000e+00 -1.19818648e+01
    0.00000000e+00 0.00000000e+00]
    [-1.50570279e-02 -1.80025964e-01 0.00000000e+00 0.00000000e+00
    -1.20989677e+01 -2.92201616e+00]
    [-1.99625534e+00 -4.22357915e+00 0.00000000e+00 0.00000000e+00
    -2.92201616e+00 -6.19920145e+00]]

    --- (d) 1電子ハミルトニアン (h_core = T + V) ---
    形状: (6, 6)
    [[-4.06020773e+01 -9.52700407e+00 0.00000000e+00 0.00000000e+00
    -1.50570279e-02 -1.99602068e+00]
    [-9.52700407e+00 -1.10757730e+01 0.00000000e+00 0.00000000e+00
    -1.80025964e-01 -4.09493058e+00]
    [ 0.00000000e+00 0.00000000e+00 -8.73385014e+00 0.00000000e+00
    0.00000000e+00 0.00000000e+00]
    [ 0.00000000e+00 0.00000000e+00 0.00000000e+00 -8.73385014e+00
    0.00000000e+00 0.00000000e+00]
    [-1.50570279e-02 -1.80025964e-01 0.00000000e+00 0.00000000e+00
    -8.85095300e+00 -2.64744028e+00]
    [-1.99602068e+00 -4.09493058e+00 0.00000000e+00 0.00000000e+00
    -2.64744028e+00 -5.43916957e+00]]

    --- (e) 2電子反発積分 (ERI) ---
    形状: (6, 6, 6, 6)

    ERI の一部 (0, 0, :, :) を表示:
    [[5.40350114 0.84192016 0. 0. 0. 0.17802316]
    [0.84192016 1.26802836 0. 0. 0. 0.42372154]
    [0. 0. 1.26450248 0. 0. 0. ]
    [0. 0. 0. 1.26450248 0. 0. ]
    [0. 0. 0. 0. 1.26450248 0.27634408]
    [0.17802316 0.42372154 0. 0. 0.27634408 0.55179702]]


    本記事のもくじはこちら:


    あなたへのおすすめ