Teoría de funcionales de la densidad (DFT)
Contents
20. Teoría de funcionales de la densidad (DFT)#
La teoría de los funcionales de la densidad se basa en que la densidad electrónica contiene toda la información del sistema, por lo que se puede extraer de ella la energía mediante un funcional
Donde
\(E[\rho]\) es la energía del sistema
\(T_s[\rho]\) es la energía cinética de Kohn-Sham
\(U[\rho]\) es la energía de Hartree
\(V[\rho]\) es la interacción núcleo electrón
\(E_{xc} [\rho]\) es la energía de intercambio correlación
En la formulación de Kohn y Sham, la densidad electrónica (\(\rho(r)\)) se calcula a partir de los orbitales de Kohn-Sham (\(\psi^{KS}_i(r)\))
Warning
Los teoremas de Hohenberg y Kohn, y Kohn y Sham prueban que existe un funcional universal que conecta a la densidad electrónica con la energía del sistema, pero este funcional no se conoce, particularmente por la parte de \(E_{xc}[\rho]\). Se han realizado diversas propuestas de como construir este funcional, por lo que en la práctica existen cientos de funcionales de DFT.
Note
No existe el mejor funcional, sino que depende del sistema químico que se esté estudiando.
En general los funcionales aproximan de diferente manera el intercambio y la correlación, dependiendo de como se aproxime el funcional, estos se pueden clasificar en diferentes categorías. La clasificación fue propuesta por Perdew y se conoce como la escalera de Jacob
.
Warning
Evaluar la contribución del funcional de intercambio-correlación requiere de realizar integración numérica. Esto se hace con un mallado entorno a la molécula. Existen diversos esquemas para colocar los puntos en el mallado, y para seleccionar cuantos puntos poner, estos puede cambiar de un software a otro, e incluso entre diferentes versiones de un mismo software.
Importe PySCF
Warning
Si está utilizando Google Colab o la ejecución en línea, debe de ejecutar al inicio el siguiente código
!pip install pyscf
#Importe PySCF
# Descomentar estas líneas si está en modo online
#!pip install pyscf
import pyscf
from pyscf import dft
Para ejemplificar el uso de estos funcionales, declare la molécula de agua.
h2o = pyscf.gto.Mole(atom="""
O 0.0000 0.0000 0.1173
H 0.0000 0.7572 -0.4692
H 0.0000 -0.7572 -0.4692
""",basis="6-311G")
h2o = h2o.build()
# h2o
h2o = pyscf.gto.Mole(atom="""
O 0.0000 0.0000 0.1173
H 0.0000 0.7572 -0.4692
H 0.0000 -0.7572 -0.4692
""",basis="6-311G")
h2o = h2o.build()
20.1. Aproximación Local de la Densidad (LDA)#
Fue una de las primeras aproximaciones y ya ha sido superada. En este caso, el intercambio se calcula mediante
y la correlación se calcula mediante el funcional de Vosko, Wilk y Nusair
Haga un cálculo de energía con LDA y la base 6-311G con la siguiente instrucción
rks = dft.RKS(h2o)
rks.xc = "LDA,VWN"
rks.kernel()
# LDA
rks = dft.RKS(h2o)
rks.xc = "LDA"
rks.kernel()
converged SCF energy = -75.1870745487913
-75.1870745487913
20.2. Aproximación de Gradientes Generalizados (GGA)#
Esto calcula la energía con base en la densidad electrónica y su gradiente
Para ello separa los funcionales en intercambio y correlación.
Algunos funcionales de intercambio GGA son
PWx86: Perdew-Wang 1986
B88: Becke 1988
PWx91: Perdew-Wang 1991
PBE: Perdew-Burke-Ernzerhof
Algunos funcionales de correlación GGA son
LYP: Lee-Yang-Parr
Pc86: Perdew 1986
PWc91: Perdew-Wang 1991
PBE: Perdew-Burke-Ernzerhof
La combinación de estos funcionales genera los funcionales GGA. Haga un cálculo de energía con PBE y la base 6-311G con la siguiente instrucción
rks = pyscf.dft.RKS(h2o)
rks.xc = "LDA"
rks.kernel()
# PBE
rks = dft.RKS(h2o)
rks.xc = "PBE"
rks.kernel()
converged SCF energy = -76.3277295533263
-76.32772955332628
20.3. Aproximación meta-GGA#
Los funcionales meta-GGA usan la densidad electrónica, el gradiente de la densidad electrónica, y el laplaciano de la densidad electrónica.
Algunos ejemplos son:
B95: Becke 1995
TPSS: Tau-Perdew-Staroverov-Scuseria
Haga un cálculo de energía con TPSS y la base 6-311G con la siguiente instrucción
rks = pyscf.dft.RKS(h2o)
rks.xc = "TPSS"
rks.kernel()
# TPSS
rks = dft.RKS(h2o)
rks.xc = "TPSS"
rks.kernel()
converged SCF energy = -76.4172180433964
-76.41721804339636
20.4. Funcionales Híbridos#
Mezclan un funcional de intercambio con el intercambio de Hartree-Fock
en alguna proporción.
Algunos ejemplos de estos funcionales son:
B3LYP
PBE0
M05-2X y M06-2X
TPSSh
Haga un cálculo de energía con M06-2X y la base 6-311G con la siguiente instrucción
rks = pyscf.dft.RKS(h2o)
rks.xc = "M062X"
rks.kernel()
#M062X
rks = dft.RKS(h2o)
rks.xc = "M062X"
rks.kernel()
converged SCF energy = -76.3784002868614
-76.37840028686136
20.5. Referencias#
P. Hohenberg y W. Kohn, Inhomogeneous Electron Gas, Physical Review 136, B864 (1964). P. W. Atkins, y R. Friedman, Molecular Quantum Mechanics (Oxford University Press, 2005).
D. Rappoport, N. R. M. Crawford, F. Furche, y K. Burke, Which functional should I choose?, (2008).
W. Koch y M.C. Holthausen, A Chemist’s Guide to Density Functional Theory, (2001).
K. Burke y L.O. Wagner, DFT in a nutshell, Int. J. Quantum Chem. 113, 96 (2013).
K. Burke, Perspective on density functional theory, J. Chem. Phys. 136, (2012).