Memvisualisasikan Frontier Orbital dengan Psi4 dan Python
Frontier Orbital berarti Highest Occupied Molecular Orbital (HOMO) dan Lowest Occupied Orbital (LUMO). Sebagian besar Kimiawan Organik hanya tertarik pada orbital ini karena ini adalah titik interaksi di mana elektron dengan energi tinggi dapat melompat ke orbital berikutnya. Mereka adalah interaksi molekul yang dominan yang kemungkinan besar akan terjadi satu sama lain. Contoh diagram HOMO/LUMO ditunjukkan pada Gambar 1 .
Namun, kita tahu elektron adalah gelombang dan ada awan elektron yang dihasilkan di orbital ini. Memvisualisasikan awan ini memberi kita beberapa gagasan tentang bagaimana elektron berperilaku dan bentuk yang mudah diingat yang mungkin dapat kita simpulkan dari beberapa hal. Untuk melakukan ini mari kita kembali ke z-matrix metanol psi4 kita, dan seperti yang ditemukan di posting blog sebelumnya . Mari kita langsung ke kode:
import psi4
psi4.set_memory('1000mb')
psi4.core.set_num_threads(1)
zmatrix = '''\
H11
O11 H11 0.9600
C11 O11 1.4000 H11 108.0000
H12 C11 1.1000 O11 112.0000 H11 -60.0000
H13 C11 1.1000 O11 112.0000 H11 60.0000
H14 C11 1.1000 O11 111.8699 H11 -180.0000
'''
universe = psi4.geometry(zmatrix)
universe.update_geometry()
universe.print_out()
energy, wave_function = psi4.optimize(
'hf/6-31g*',
return_wfn =True,
molecule=universe
)
Jadi kita menginginkan dua hal, jumlah elektron alfa dan jumlah orbital molekul karena kita perlu menentukan orbital mana yang merupakan pasangan HOMO/LUMO. Kami menggunakan 2 karena kami mematuhi Prinsip Pengecualian Pauli.
number_of_occupied = 2
number_of_virutal = 2
alpha_electrons = wave_function.nalpha()
molecule = wave_function.nmo()
min_orb = max(1, alpha_electrons + 1 - number_of_occupied)
max_orb = min(molecule, alpha_electrons + number_of_virutal)
orbitals = [k for k in range(min_orb, max_orb + 1)]
cubeprop_tasks = []
cubeprop_tasks.append('DENSITY')
cubeprop_tasks.append('ORBITALS')
psi4.set_options(
{
'scf_type': 'df',
'g_convergence': 'gau_tight',
'freeze_core': 'true',
'CUBEPROP_TASKS': cubeprop_tasks,
'CUBEPROP_FILEPATH': './',
'CUBEPROP_ORBITALS': orbitals,
}
)
psi4.cubeprop(wave_function)
Da.cube
Psi_a_9_2-A.cube
pip install moly
pip install opt_einsum
import moly
fig = moly.Figure()
fig.add_cube(
'Psi_a_9_2-A.cube',
iso=0.03,
colorscale="rdbu",
opacity=0.1
)
fig.show()

![Apa itu Linked List? [Bagian 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































