Sınır Yörüngelerini Psi4 ve Python ile Görselleştirme
Sınır Orbitalleri, En Yüksek Dolu Moleküler Orbital (HOMO) ve En Düşük Dolu Orbital (LUMO) anlamına gelir. Çoğu Organik Kimyager çoğunlukla sadece bu orbitallerle ilgilenir çünkü bunlar, yüksek enerjili bir elektronun bir sonraki yörüngeye atlayabileceği etkileşim noktalarıdır. Bunlar, büyük olasılıkla birbirleriyle olan moleküllerin baskın etkileşimleridir. HOMO/LUMO diyagramının bir örneği Şekil 1'de gösterilmektedir .
Ancak elektronun bir dalga olduğunu ve bu orbitallerde üretilen bir elektron bulutu olduğunu biliyoruz. Bu bulutları görselleştirmek bize elektronun nasıl davrandığına dair bir fikir veriyor ve belki de bazı şeyleri çıkarsayabileceğimiz akılda kalıcı bir şekil veriyor. Bunu yapmak için önceki blog yazımızda bulunan psi4 metanol z matrisimize geri dönelim . Hemen koda geçelim:
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
)
Yani iki şey istiyoruz, alfa elektronlarının sayısı ve moleküler orbitallerin sayısı çünkü hangi orbitallerin HOMO/LUMO çifti olduğunu belirlememiz gerekiyor. Pauli Hariç Tutma İlkesine bağlı olduğumuz için 2 kullanıyoruz.
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()

![Bağlantılı Liste Nedir? [Bölüm 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































