def optimize_geometry(self): """ Calls Psi4 to obtain a geometry optimized geometry Returns ------- numpy array XYZ coordinates of the optimized geometry """ self.set_up_psi4() self.energy, self.wavefunction = psi4.opt(self.method, return_wfn=True) return np.array(self.wavefunction.molecule().geometry())
# **Pregunta 1.** Calule la energía de la molécula de $N_2O_4$ con HF y la base aug-cc-pvdz. # In[1]: import psi4 psi4.set_memory("2 gb") psi4.geometry(""" 0 1 N -4.84638 1.76109 0.00000 N -3.46888 1.78415 0.00000 O -2.82385 2.93169 -0.00000 O -2.85055 0.76276 0.00000 O -5.46471 2.78248 0.00000 O -5.49141 0.61355 0.00000 """) n2o4, wfn = psi4.opt("HF/aug-cc-pvdz", return_wfn=True) print(n2o4) # **Pregunta 2.** Calule la energía de la molécula de $NO_2$ con HF y la base aug-cc-pvdz. [Complete donde haga falta - Reemplace las X] # In[2]: import psi4 NO2 = psi4.geometry(""" 0 2 N -4.39539 1.87380 0.00000 O -3.90978 3.09520 -0.00000 O -3.65594 0.93810 0.00000 units angstrom """) psi4.set_options({'reference': 'uhf'})
# Usualmente la geometría especificada no es necesariamente la geometría real. Es posible pedir al software que mueva los átomos hasta encontrar las coordenadas que representen un mínimo de energía con el método y base usados. Esto se llama `optimización de geometrías` y se hace con la línea # # ``` # psi4.opt('método/base') # ``` # # **Optimice la geometría de benceno con el método M062X y base 6-31G e imprima su energía**. # # ```{warning} # Este cálculo puede tardar entre 1 y 10 minutos dependiendo del procesador de cada computadora. # ``` # In[13]: psi4.opt('M062X/6-31G') # ## Referencias # - Smith, D. G. A.; Burns, L. A.; Sirianni, D. A.; Nascimento, D. R.; Kumar, A.; James, A. M.; Schriber, J. B.; Zhang, T.; Zhang, B.; Abbott, A. S.; et al. Psi4NumPy : An Interactive Quantum Chemistry Programming Environment for Reference Implementations and Rapid Development. Journal of Chemical Theory and Computation 2018, 14 (7), 3504–3511. # - https://github.com/psi4/psi4numpy/tree/master/Tutorials # In[ ]: