Quick viewing(Text Mode)

Hartree-Fock Algorithm

Hartree-Fock Algorithm

Hartree-Fock algorithm

I. Pre-computed quantities/notations 1. Overlap S Definition:

∗ 3 푆휇푣 = ∫ 푋휇 (푟⃗)푋푣(푟⃗)푑 푟

푤ℎ푒푟푒 푋휇(푟⃗)푖푠 푡ℎ푒 퐴푂 푏푎푠푖푠 푠푒푡 휇 = 1, … , 푁 푏푎푠푖푠 Properties:

i) S is a NXN matrix where N is the dimension of basis. 1, 푖푓 휇 = 푣 ii) For orthonormal basis set 푆 = 훿 = { 휇푣 휇푣 0, 푖푓 휇 ≠ 푣 iii) S is a and all elements in S are real:

∗ 푆휇푣 = 푆푣휇 = 푆푣휇 2. Core Hamiltonian h Definition:

∗ 3 ℎ휇푣 = ∫ 푋휇(푟⃗) ℎ̂푋푣(푟⃗)푑 푟

1 푤ℎ푒푟푒 ℎ̂ = − ∇2 + 푉̂ 푖푠 푡ℎ푒 퐾푖푛푒푡푖푐 푒푛푒푟푔푦 푎푛푑 푝표푡푒푛푡푖푎푙 푒푛푒푟푔푦 2 푖푛 푡ℎ푒 푓푖푒푙푑 표푓 푡ℎ푒 푛푢푐푙푒푖 푓표푟 푒푙푒푐푡푟표푛푠 Properties: h is a Hermitian matrix and all elements in h are real: ∗ ℎ휇푣 = ℎ푣휇 = ℎ푣휇 3. A critical quantity in the matrix for electron-electron interaction: Definition: The electron-electron interaction is described using the two-electron Integrals:

∗ ∗ 1 3 3 ⟨휇푣|휎휏⟩ = ∫ 푋휇(푟⃗⃗⃗1⃗)푋푣(푟⃗⃗⃗2⃗) 푋휎(푟⃗1)푋휏(푟⃗⃗⃗2⃗)푋 푑 푟1푑 푟2 푟12

Properties:

In practice the AO orbitals we use are real. Therefore the integrals are the same under the permutations(휇 ↔ 휎 푎푛푑 푣 ↔ 휏 ). Moreover we can always permute coordinates 1 and 2 in the above integral which means we interchange (휇휎) ↔ (푣휏)

1

Overall the spatial integrals have an 8-fold permutation symmetry: ⟨휇푣|휎휏⟩ = ⟨휎푣|휇휏⟩ = ⟨휇휏|휎푣⟩ = ⟨휎휏|휇푣⟩ = ⟨푣휇|휏휎⟩ = ⟨휏휇|푣휎⟩ = ⟨푣휎|휏휇⟩ = ⟨휏휎|푣휇⟩

The antisymmetric integrals are defined as: ⟨휇푣||휎휏⟩ = ⟨휇푣|휎휏⟩ − ⟨휇푣|휏휎⟩ They have even more symmetry in the sense that interchanging two labels in the bra or in the ket just introduces a minum sign:

We have: ⟨휇푣||휎휏⟩ = ⟨푣휇||휏휎⟩ = ⟨휎휏||휇푣⟩ = ⟨휇휏||휎푣⟩ = ⟨휏휎||푣휇⟩ = ⟨휏휇||푣휎⟩ And ⟨휇푣||휎휏⟩ = −⟨푣휇||휏휎⟩ = −⟨휎휏||푣휇⟩ = −⟨휇휏||푣휎⟩ = −⟨휏휎||휇푣⟩ = −⟨휏휇||휎푣⟩

The σ,μ,ν,τ labels for the orbitals should be re-interpreted as two spin-orbitals.(Due to its anti-symmetry property)

II. HF equations 푭푪 = 푺푪푬

푪Ɨ푺푪 = 푰

푭흁풗 = 풉흁풗 + ∑⟨휇휎||푣휏⟩푫흈흉 휎,휏 1, 퐹표푟 표푐푐푢푝푖푒푑 표푟푏푖푡푎푙 푫 = 푪n푪햋 푛: 표푐푐푢푝푎푡푖표푛 푛푢푚푏푒푟 푛 = { 0, 퐹표푟 푢푛표푐푐푢푝푖푒푑 표푟푏푖푡푎푙 1 퐸 = 푻풓(풉 + 푭) ∗ 푫 퐻퐹 2 III. Deviation of Hartree-Fock equations 1. Choose a basis set and the wave function can be regarded as a linear combination of the basis set: For one occupied orbital

|휑푎⟩ = ∑ |푋휆⟩퐶휆푎 휆

The total wave function: 휑푎(푟1), 휑푎(푟2), … 휑푎(푟푁) 휑 (푟 ), 휑 (푟 ), … 휑 (푟 ) 1 | 푏 1 푏 2 푏 푁 | |훹 ⟩ = … ( 휑 , … , 휑 푎푟푒 표푐푐푢푝푖푒푑 표푟푏푖푡푎푙푠) 퐻퐹 푁! | | 푎 푧 휑푧(푟1), 휑푧(푟2), … 휑푧(푟푁)

2

Different orbitals are orthonormal to each other:

1, 푎 = 푏 ⟨휑 |휑 ⟩ = ∫ 휑∗(푟⃗) ∗ 휑 (푟⃗)푑푟 = 훿 = { 푎 푏 푎 푏 푎푏 0, 푎 ≠ 푏 2. Calculate the total energy: 1 퐸 = ⟨훹 |Ĥ|훹 ⟩ = ∑⟨푎|ℎ|푎⟩ + ∑⟨푎푏||푎푏⟩ 퐻퐹 퐻퐹 퐻퐹 2 푎∈푎 푎,푏 1 = ∑ 퐶∗ 퐶 ⟨휇|ℎ|푣⟩ + ∑ 퐶∗ 퐶 퐶∗ 퐶 ⟨휇푣||휎휏⟩ 휇푣 푣푎 2 휇푎 휎푎 푣푏 휏푏 푎,휇,푣 푎,푏 3. : ∗ ∗ ∑ 퐶휇푎퐶푣푎 = ∑ 퐶푣푎퐶휇푎 = 푫풗흁 푎 푎

푫 = ∑ 푪 (푪Ɨ) = ∑ 푪 푛 푪햋 = 푪퐧푪햋 풗흁 풗풂 풂흁 풗풑 푝 풑흁 풂 푷:풐풗풆풓 풂풍풍 풐풓풃풊풕풂풍풔

1 표푐푐푢푝푖푒푑 푛 = { 푝 0 푢푛표푐푐푢푝푖푒푑

4. Substitute the density matrix into the expression of 퐸퐻퐹:

∑⟨푎|ℎ|푎⟩ = ∑⟨휇|ℎ|푣⟩퐷휇푣 = ∑ ℎ휇푣퐷푣휇 = 푻풓(푯푫) 푎 휇.푣 휇,푣

1 1 ∑⟨푎푏||푎푏⟩ = ∑ ⟨휇푣||휎휏⟩퐷 퐷 2 2 휎휇 휏푣 푎 휇,푣,휎,휏

∗ 푫흈흁 = ∑ 퐶휎푎퐶휇푎 푎

∗ 푫흉풗 = ∑ 퐶휏푏퐶푣푏 푏 1 퐸 = ∑ 풉 푫 + ∑ ⟨휇푣||휎휏⟩푫 푫 퐻퐹 흁풗 흁풗 2 흈흁 흉풗 휇,푣 휇,푣,휎,휏

5. The orthonormality of the orbitals in the AO basis is expressed by:

∗ ∗ Ɨ ⟨푎|푏⟩ = 훿푎푏 ⇒ ∑ 퐶휇푎⟨휇|푣⟩퐶푣푏 = 퐶푎휇푆휇푣퐶푣푏 = 푪 푺푪 = 푰 휇,푣 3

6. Derivation of Fock equation: FC=SCE (briefly): Lagrange’s method to optimize the parameters by minimizing the total energy as a function of C: 휁(푪) = 퐸 (푫) + (푪Ɨ푺푪 − 푰 ) ∗ 휦 퐻퐹 풂풃 푎푏 풂풃

휦풂풃 = 휀푎훿푎푏 (퐿푎푔푟푎푛푔푒 푀푢푙푡푖푝푙푖푒푟푠)

IV. Special feature of Density Matrix: invariant under rotation of occupied orbitals 푫(풂) = ∑ 퐶 퐶∗ = ∑ 푪 (푪햋) 흁풗 휇푎 푣푎 흁풂 풂풗 푎 풂

Define the rotation operator: U U is a unitary operator:

|푖⟩ = ∑ |푎⟩푈푎푖 푎,푏 Dirac notation: Bra:

|푖⟩ = ∑|푎⟩푈푎푖 = ∑|휇⟩퐶휇푎푈푎푖 푎 휇,푎 Ket: ∗ ∗ ∗ ⟨푖| = ∑ 푈푖푎⟨푎| = ∑ 푈푖푎퐶푎휇⟨휇| 푎 휇,푎

⟨푖|푗⟩ = ∑ 푈픣 ⟨푎|푏⟩ 푈 = (푼햋푼) = 푰 푎푖 푏푗 풊풋 풊풋 푎,푏

Under this rotational transformation the Density Matrix is invariant:

푫′ = 푼Ɨ푫푼 = 푼Ɨ(푪푛푪Ɨ)푼

′ 햋 ∗ Ɨ Ɨ Ɨ Ɨ 푫흁풗 = 푼 (∑(퐶휇푖퐶푖푣)) 푼 = ∑ 퐶휇푎(푈푎푖푈푖푏)퐶푏푣 = ∑ 푪흁풂휹풂풃푪풃풗 = ∑ 푪흁풃푪풃풗 = 푫흁풗 푖 푎,푖,푏 풂,풃 푏 A deduce: Hence we have shown that molecular orbitals are not unique. One can define a different set of orbitals that are related to the original set by a unitary transformation (or a "rotation"). The density matrix is invariant under such a change of orbitals.

Take water molecular as an example:

As we learned in general chemistry, the orbital of water molecular can be expressed as 푠푝3 hybride. 4

One can express the orbitals in two ways:

The first way is separate the orbitals into 4 localized orbitals :

The second way is to express it to symmetry and anti-symmetry orbitals:

5

V. Algorithm for Hartree-Fock method 1. Read integrals from file: H,V,S,set D=0 initially 2. Cal_X: Calculate X from S: 푺 = 푼Ɨ푺푼(푑푖푎푔표푛푎푙푖푠푒 푆 푚푎푡푟푖푥) ퟏ 1 − − 푿 = 푺 ퟐ = 푼햋푠 2푼 ퟏ − 퐗 = 퐒 ퟐ (퐗햋푺푿 = 푰)

Where small s is the eigenvalues of Matrix S 3. Procedure: Calculate density matrix from fock matrix( initially Fμv = ℎ휇푣): 푭푪 = 푺푪휺 푫 = 푪풏푪햋 In practice: 푭′ = 푿햋푭푿 푭′푪′ = 푪′훆 푪 = 푿푪′ 푫 = 푪푛푪햋 4. Procedure: Calculate fock matrix from density matrix For closed shells:

푭흁풗 = 풉흁풗 + ∑(2⟨휇휎|푣휏⟩ − ⟨휇휎|푣휏⟩)푫흈흉 휎,휏 5. Self-consistency check__converagence: 풊풏 풐풖풕 if max (abs(퐃훍퐯 − 푫흁풗 )) < 푡ℎ푟푒푠ℎ표푙푑 where threshold is a constant (1e-7 e.g.) 6. Calculate energy 1 퐸 = 푻풓(풉 + 푭) ∗ 푫 2

6

The main program should be similar to this: Main {read_integrals(n_occ,n_total, S, h, V); Cal_X; D_in=0; ##Iterate: While(iter<=maximum and density matrix converged) {Calc_Fock(F,D_in); Calc_energy(F,D_in); Calc_density_form_Fock(D_out); Check_convergance;}; Return 0; };

VI. Unrestricted Hartree-Fock Problems:

When solving open-shelled molecular by Hartree-Fock approximation, one need to take spin- orbitals into account. The way to deal with it is to divide the Fock Matrix into two part__α electron part and β electron part and calculate them individually.

7

Take oxygen molecule as an example, as we know that the MO for O2 molecule is as fellow:

CHEM 209 course note, SCOTT HOPKINS One separate the filled orbital into spin-up orbitals ( α orbitals) and spin-down orbitals( β orbitals):

α orbitals β orbitals 8

Compared to α orbitals, the energy level of β orbitals are slight higher. This is due to the difference of the exchange terms in their Fock matrix: i. Density Matrix:

(휶) ∗ 푫흁풗 = ∑ 퐶휇푖퐶푣푖 푖∈훼−푠푝푖푛 표푐푐

(휷) ∗ 푫흁풗 = ∑ 퐶휇푖퐶푣푖 푖∈훽 표푐푐 In this way one can separate the Density Matrix into α-spin orbital part and β-spin orbital part. ii. Fock Matrix:

푭흁풗 = 풉흁풗 + ∑⟨휇휎|푣휏⟩푫흉흈 − ∑⟨휇휎|휏푣⟩푫흉흈 휎,휏 휎,휏

I II

Coulomb interaction Exchange term

One can separate the interaction term of Fock matrix into Coulomb interaction part and Exchange term. The first term can be understood as coulomb potential classically, while the second term is due to the anti-symmetry property of electrons and has no classical counterpart.

iii. Coulomb interaction: (휶) (휷) 푱흁풗 = ∑⟨휇휎|푣휏⟩푫흉흈 = ∑ ⟨휇휎훼|푣휏훼⟩푫흉흈 + ∑ ⟨휇휎훽|푣휏훽⟩푫흉흈 휎,휏 휎,휏 휎,휏 훼−푠푝푖푛 훽−푠푝푖푛

(휶) (휷) (휶) ⟨휇휎|푣휏⟩ [푫흉흈 + 푫흉흈 ] 푱 흁풗 = ∑ 풔풑풂풕풊풂풍 휎,휏 푡표푡푎푙 푫흉흈 푆푝푎푡푖푎푙

(풔풑풂풕풊풂풍) (풔풖풎) 푱흁풗 = ∑ ⟨휇휎|푣휏⟩푫흉흈 퐷푖푟푒푐푡 퐶표푢푙표푚푏 푃표푡푒푛푡푖푎푙 휎,휏 푆푝푎푡푖푎푙 9

iv. Exchange interactions (휶) (휶) 푫흉흈 → ∑ ⟨휇훼휎훼|휏훼푣훼⟩푫흉흈 휎,휏 훼−푠푝푖푛

(휶) (휶) → 푲흁풗 = ∑ ⟨휇휎|휏푣⟩푫흉흈 휎.휏 푠푝푎푡푖푎푙

(휷) (휷) 푫흉흈 → ∑ ⟨휇훽휎훽|휏훽푣훽⟩푫흉흈 휎,휏 훽−푠푝푖푛

(휷) (휷) → 푲흁풗 = ∑ ⟨휇휎|휏푣⟩푫흉흈 휎.휏 푠푝푎푡푖푎푙 V. General HF algorithm

1. If 푫(휶) = 푫(휷), then it is a closed shell molecule. And 푭(휶) = 푭(휷), one can only need to calculate Fock Matrix for either alpha or beta orbital once. For closed shell: (휶) 푭흁풗 = 풉흁풗 + ∑(2⟨휇휎|푣휏⟩ − ⟨휇휎|휏푣⟩푫흉흈 휎,휏

2. For unrestricted HF calculations, one need to treat different orbitals correspond to alpha spins and beta spins separately. The total energy should be the addition of the two orbitals:

1 퐸 = ∑ (풉(흈) + 푭(흈)) 푫(흈) 퐻퐹 휎=(훼,훽) 2 흁풗 흁풗 흁풗

The UHF can give the lowest energy of the molecule, but the spin-symmetry was broken.

The wavefunction optimized in this method is not the eigenfunction of spin: ퟐ 푺 |훹퐻퐹⟩ ≠ 푠(푠 + 1)|훹퐻퐹⟩

10