Nota
Esta página fue generada a partir de docs/tutorials/02_vibrational_structure.ipynb.
Estructura vibracional#
Introducción#
El Hamiltoniano molecular es
Cómo los núcleos son mucho más pesados que los electrones, no se mueven en la misma escala de tiempo, entonces, el comportamiento de los núcleos y los electrones puede estar desacoplado. Esta es la aproximación de Born-Oppenheimer.
Dentro de la aproximación de Born-Oppenheimer, una función de onda molecular es factorizada como un producto de una parte electrónica, que es la solución a la ecuación de Schrödinger electrónica, una parte vibro-rotacional, que es la solución de la ecuación de Schrödinger nuclear en la superficie de energía potencial (potential energy surface, PES), generada al muestrear los valores propios de la ecuación de Schrödinger electrónica para diferentes geometrías.
La ecuación de Schrödinger nuclear generalmente se resuelve en dos pasos, en analogía con su contraparte electrónica. Una base de una sola partícula (las funciones base se denominan, en este caso, modales) se obtiene mediante la aproximación armónica aplicada al PES o a partir de un cálculo de campo autoconsistente vibracional (vibrational self-consistent field, VSCF). Las correlaciones anarmónicas vibracionales son agregadas a posteriori con enfoques perturbativos o variacionales. Estos últimos incluyen la Interacción de Configuración Vibracional (Vibrational Configuration Interaction, VCI) y Clúster Acoplado Vibracional (Vibrational Coupled Cluster, VCC) para energías anarmónicas de alta precisión. La principal ventaja de VCI y VCC sobre los enfoques alternativos (como las teorías de perturbación) es que su precisión se puede mejorar sistemáticamente hacia el límite del conjunto de bases completo para un PES dado. Sin embargo, su aplicabilidad está limitada a moléculas pequeñas de hasta unos 10 átomos debido a su escalado desfavorable con el tamaño del sistema.
Para abordar el problema de escalabilidad nos gustaría usar algoritmos cuánticos.
La ecuación de Schrödinger nuclear es
El llamado Hamiltoniano de Watson (ignorando los términos de acoplamiento vibro-rotacional) es
donde
donde
Se obtiene una segunda forma de cuantización flexible del Hamiltoniano de Watson dentro de la llamada representación en n-modos. Supongamos que cada modo
La función de onda de
Las funciones base de muchos cuerpos
El ONV definido anteriormente es, por lo tanto, el producto de
Basándonos en esta representación de segunda cuantización, presentamos un par de operadores de creación y aniquilación por modo
con
La forma de la segunda cuantización se obtiene expresando el potencial como
Destacamos la diferencia entre los operadores definidos aquí anteriormente y el de la estructura del electrón. Primero, como ya mencionamos, el potencial contiene (en principio) términos de acoplamiento de tres y más cuerpos que conducen a cadenas con seis (o más) operadores de segunda cuantización. Por otra parte, el Hamiltoniano conserva el número de partículas para cada modo, como se puede ver del hecho que el número de operadores de creación y aniquilación para un modo dado es el mismo en cada término. No obstante, modos diferentes están acoplados por términos de dos (o más) cuerpos que contienen operadores SQ que pertenecen a diferentes modos
Referencia: Ollitrault, Pauline J., et al., arXiv:2003.12578 (2020).
Calcular el potencial electrónico
Resolver el ESE para diferentes configuraciones nucleares para obtener la función PES
La ventaja de dicha forma para la PES es que los campos de fuerza anarmónicos (
y
Tal procedimiento numérico está implementado, por ejemplo, en el conjunto de programas Gaussian.
En la práctica esto se puede hacer con Qiskit usando GaussianForceDriver.
[1]:
from qiskit_nature.second_q.drivers import GaussianForcesDriver
# if you ran Gaussian elsewhere and already have the output file
driver = GaussianForcesDriver(logfile="aux_files/CO2_freq_B3LYP_631g.log")
# if you want to run the Gaussian job from Qiskit
# driver = GaussianForcesDriver(
# ['#p B3LYP/6-31g Freq=(Anharm) Int=Ultrafine SCF=VeryTight',
# '',
# 'CO2 geometry optimization B3LYP/6-31g',
# '',
# '0 1',
# 'C -0.848629 2.067624 0.160992',
# 'O 0.098816 2.655801 -0.159738',
# 'O -1.796073 1.479446 0.481721',
# '',
# ''
[2]:
from qiskit_nature.second_q.problems import HarmonicBasis
basis = HarmonicBasis([2, 2, 2, 2])
Mapear a un Hamiltoniano de qubit#
Ahora que tenemos una aproximación para el potencial, necesitamos escribir el Hamiltoniano en la segunda cuantización. Para este fin necesitamos seleccionar una a base modal para calcular las integrales de un solo cuerpo
En el caso más simple, las funciones
El operador bosónico
[3]:
from qiskit_nature.second_q.problems import VibrationalStructureProblem
from qiskit_nature.second_q.mappers import DirectMapper
vibrational_problem = driver.run(basis=basis)
vibrational_problem.hamiltonian.truncation_order = 2
main_op, aux_ops = vibrational_problem.second_q_ops()
El operador Vibracional para el problema ahora se lee como
[4]:
print(main_op)
Vibrational Operator
number modes=4, number modals=[2, 2, 2, 2], number terms=50
(1268.0676746875001+0j) * ( +_0_0 -_0_0 )
+ (3813.8767834375008+0j) * ( +_0_1 -_0_1 )
+ (705.8633818750002+0j) * ( +_1_0 -_1_0 )
+ (-46.025705898886045+0j) * ( +_1_0 -_1_1 )
+ (-46.025705898886045+0j) * ( +_1_1 -_1_0 )
+ (2120.1145593750007+0j) * ( +_1_1 -_1_1 )
+ (238.31540750000005+0j) * ( +_2_0 -_2_0 )
+ (728.9613775000003+0j) * ( +_2_1 -_2_1 )
+ (238.31540750000005+0j) * ( +_3_0 -_3_0 )
+ (728.9613775000003+0j) * ( +_3_1 -_3_1 )
+ (4.942542500000002+0j) * ( +_0_0 -_0_0 +_1_0 -_1_0 )
+ (-88.20174216876333+0j) * ( +_0_0 -_0_0 +_1_0 -_1_1 )
+ (-88.20174216876333+0j) * ( +_0_0 -_0_0 +_1_1 -_1_0 )
+ (14.827627500000007+0j) * ( +_0_0 -_0_0 +_1_1 -_1_1 )
+ (14.827627500000007+0j) * ( +_0_1 -_0_1 +_1_0 -_1_0 )
+ (-264.60522650629+0j) * ( +_0_1 -_0_1 +_1_0 -_1_1 )
+ (-264.60522650629+0j) * ( +_0_1 -_0_1 +_1_1 -_1_0 )
+ (44.482882500000024+0j) * ( +_0_1 -_0_1 +_1_1 -_1_1 )
+ (-10.205891250000004+0j) * ( +_2_0 -_2_0 +_0_0 -_0_0 )
+ (-30.617673750000016+0j) * ( +_2_0 -_2_0 +_0_1 -_0_1 )
+ (-4.194299375000002+0j) * ( +_2_0 -_2_0 +_1_0 -_1_0 )
+ (42.67527310283147+0j) * ( +_2_0 -_2_0 +_1_0 -_1_1 )
+ (42.67527310283147+0j) * ( +_2_0 -_2_0 +_1_1 -_1_0 )
+ (-12.582898125000007+0j) * ( +_2_0 -_2_0 +_1_1 -_1_1 )
+ (-30.61767375000002+0j) * ( +_2_1 -_2_1 +_0_0 -_0_0 )
+ (-91.85302125000007+0j) * ( +_2_1 -_2_1 +_0_1 -_0_1 )
+ (-12.582898125000007+0j) * ( +_2_1 -_2_1 +_1_0 -_1_0 )
+ (128.02581930849442+0j) * ( +_2_1 -_2_1 +_1_0 -_1_1 )
+ (128.02581930849442+0j) * ( +_2_1 -_2_1 +_1_1 -_1_0 )
+ (-37.74869437500002+0j) * ( +_2_1 -_2_1 +_1_1 -_1_1 )
+ (-10.205891250000004+0j) * ( +_3_0 -_3_0 +_0_0 -_0_0 )
+ (-30.617673750000016+0j) * ( +_3_0 -_3_0 +_0_1 -_0_1 )
+ (-4.194299375000002+0j) * ( +_3_0 -_3_0 +_1_0 -_1_0 )
+ (42.67527310283147+0j) * ( +_3_0 -_3_0 +_1_0 -_1_1 )
+ (42.67527310283147+0j) * ( +_3_0 -_3_0 +_1_1 -_1_0 )
+ (-12.582898125000007+0j) * ( +_3_0 -_3_0 +_1_1 -_1_1 )
+ (7.0983500000000035+0j) * ( +_3_0 -_3_0 +_2_0 -_2_0 )
+ (21.29505000000001+0j) * ( +_3_0 -_3_0 +_2_1 -_2_1 )
+ 0j * ( +_3_0 -_3_1 +_2_0 -_2_1 )
+ 0j * ( +_3_0 -_3_1 +_2_1 -_2_0 )
+ 0j * ( +_3_1 -_3_0 +_2_0 -_2_1 )
+ 0j * ( +_3_1 -_3_0 +_2_1 -_2_0 )
+ (-30.61767375000002+0j) * ( +_3_1 -_3_1 +_0_0 -_0_0 )
+ (-91.85302125000007+0j) * ( +_3_1 -_3_1 +_0_1 -_0_1 )
+ (-12.582898125000007+0j) * ( +_3_1 -_3_1 +_1_0 -_1_0 )
+ (128.02581930849442+0j) * ( +_3_1 -_3_1 +_1_0 -_1_1 )
+ (128.02581930849442+0j) * ( +_3_1 -_3_1 +_1_1 -_1_0 )
+ (-37.74869437500002+0j) * ( +_3_1 -_3_1 +_1_1 -_1_1 )
+ (21.29505000000001+0j) * ( +_3_1 -_3_1 +_2_0 -_2_0 )
+ (63.88515000000004+0j) * ( +_3_1 -_3_1 +_2_1 -_2_1 )
En la celda previa definimos una transformación bosónica para expresar el Hamiltoniano en la base modal armónica, con 2 modales por modo con el potencial truncado en orden 2 y el bosón “directo” al mapeo en qubit. El cálculo se ejecuta luego como:
[5]:
qubit_mapper = DirectMapper()
qubit_op = qubit_mapper.map(main_op)
print(qubit_op)
4854.200029687493 * IIIIIIII
- 618.5645973437502 * IIIIIIIZ
- 1860.5306717187502 * IIIIIIZI
- 349.48563468750024 * IIIIIZII
- 25.864048912543417 * IIIIXXII
- 25.864048912543417 * IIIIYYII
- 1049.719110937499 * IIIIZIII
- 111.85586312500007 * IIIZIIII
- 342.57516687500015 * IIZIIIII
- 111.85586312500007 * IZIIIIII
- 342.57516687500015 * ZIIIIIII
+ 1.2356356250000005 * IIIIIZIZ
+ 22.050435542190833 * IIIIXXIZ
+ 22.050435542190833 * IIIIYYIZ
+ 3.706906875000002 * IIIIZIIZ
+ 3.706906875000002 * IIIIIZZI
+ 66.1513066265725 * IIIIXXZI
+ 66.1513066265725 * IIIIYYZI
+ 11.120720625000006 * IIIIZIZI
- 2.551472812500001 * IIIZIIIZ
- 7.654418437500004 * IIIZIIZI
- 1.0485748437500004 * IIIZIZII
- 10.668818275707867 * IIIZXXII
- 10.668818275707867 * IIIZYYII
- 3.1457245312500017 * IIIZZIII
- 7.654418437500005 * IIZIIIIZ
- 22.963255312500017 * IIZIIIZI
- 3.1457245312500017 * IIZIIZII
- 32.006454827123605 * IIZIXXII
- 32.006454827123605 * IIZIYYII
- 9.437173593750005 * IIZIZIII
- 2.551472812500001 * IZIIIIIZ
- 7.654418437500004 * IZIIIIZI
- 1.0485748437500004 * IZIIIZII
- 10.668818275707867 * IZIIXXII
- 10.668818275707867 * IZIIYYII
- 3.1457245312500017 * IZIIZIII
+ 1.7745875000000009 * IZIZIIII
+ 5.323762500000003 * IZZIIIII
- 7.654418437500005 * ZIIIIIIZ
- 22.963255312500017 * ZIIIIIZI
- 3.1457245312500017 * ZIIIIZII
- 32.006454827123605 * ZIIIXXII
- 32.006454827123605 * ZIIIYYII
- 9.437173593750005 * ZIIIZIII
+ 5.323762500000003 * ZIIZIIII
+ 15.97128750000001 * ZIZIIIII
Para tener un número diferente de modales por modo:
[6]:
basis = HarmonicBasis([3, 3, 3, 3])
vibrational_problem = driver.run(basis=basis)
vibrational_problem.hamiltonian.truncation_order = 2
main_op, aux_ops = vibrational_problem.second_q_ops()
qubit_mapper = DirectMapper()
qubit_op = qubit_mapper.map(main_op)
print(qubit_op)
10788.71998265624 * IIIIIIIIIIII
- 599.2280473437502 * IIIIIIIIIIIZ
- 42.382439413480455 * IIIIIIIIIXIX
- 42.382439413480455 * IIIIIIIIIYIY
- 1802.5210217187503 * IIIIIIIIIIZI
- 3015.487755468749 * IIIIIIIIIZII
- 345.17806437499996 * IIIIIIIIZIII
- 29.42804386641884 * IIIIIIIXXIII
- 29.42804386641884 * IIIIIIIYYIII
- 9.18025376111823 * IIIIIIXIXIII
- 9.18025376111823 * IIIIIIYIYIII
- 1036.7963999999984 * IIIIIIIZIIII
- 74.16262749999993 * IIIIIIXXIIII
- 74.16262749999993 * IIIIIIYYIIII
- 1730.9391493749995 * IIIIIIZIIIII
- 102.72856234375004 * IIIIIZIIIIII
- 13.324103454983607 * IIIXIXIIIIII
- 13.324103454983607 * IIIYIYIIIIII
- 315.1932645312502 * IIIIZIIIIIII
- 541.6731217187498 * IIIZIIIIIIII
- 102.72856234375004 * IIZIIIIIIIII
- 13.324103454983597 * XIXIIIIIIIII
- 13.324103454983597 * YIYIIIIIIIII
- 315.1932645312502 * IZIIIIIIIIII
- 541.6731217187498 * ZIIIIIIIIIII
+ 1.2356356250000005 * IIIIIIIIZIIZ
+ 22.050435542190833 * IIIIIIIXXIIZ
+ 22.050435542190833 * IIIIIIIYYIIZ
- 1.7474526590263566 * IIIIIIXIXIIZ
- 1.7474526590263566 * IIIIIIYIYIIZ
+ 3.706906875000002 * IIIIIIIZIIIZ
+ 31.184025000000005 * IIIIIIXXIIIZ
+ 31.184025000000005 * IIIIIIYYIIIZ
+ 6.178178125000002 * IIIIIIZIIIIZ
- 1.7474526590263566 * IIIIIIIIZXIX
- 1.7474526590263566 * IIIIIIIIZYIY
- 31.184025000000013 * IIIIIIIXXXIX
- 31.184025000000013 * IIIIIIIYYXIX
- 31.184025000000013 * IIIIIIIXXYIY
- 31.184025000000013 * IIIIIIIYYYIY
+ 2.471271250000001 * IIIIIIXIXXIX
+ 2.471271250000001 * IIIIIIYIYXIX
+ 2.471271250000001 * IIIIIIXIXYIY
+ 2.471271250000001 * IIIIIIYIYYIY
- 5.24235797707907 * IIIIIIIZIXIX
- 5.24235797707907 * IIIIIIIZIYIY
- 44.100871084381666 * IIIIIIXXIXIX
- 44.100871084381666 * IIIIIIYYIXIX
- 44.100871084381666 * IIIIIIXXIYIY
- 44.100871084381666 * IIIIIIYYIYIY
- 8.737263295131783 * IIIIIIZIIXIX
- 8.737263295131783 * IIIIIIZIIYIY
+ 3.706906875000002 * IIIIIIIIZIZI
+ 66.1513066265725 * IIIIIIIXXIZI
+ 66.1513066265725 * IIIIIIIYYIZI
- 5.24235797707907 * IIIIIIXIXIZI
- 5.24235797707907 * IIIIIIYIYIZI
+ 11.120720625000006 * IIIIIIIZIIZI
+ 93.55207500000002 * IIIIIIXXIIZI
+ 93.55207500000002 * IIIIIIYYIIZI
+ 18.534534375000007 * IIIIIIZIIIZI
+ 6.178178125000003 * IIIIIIIIZZII
+ 110.25217771095417 * IIIIIIIXXZII
+ 110.25217771095417 * IIIIIIIYYZII
- 8.737263295131783 * IIIIIIXIXZII
- 8.737263295131783 * IIIIIIYIYZII
+ 18.53453437500001 * IIIIIIIZIZII
+ 155.920125 * IIIIIIXXIZII
+ 155.920125 * IIIIIIYYIZII
+ 30.89089062500001 * IIIIIIZIIZII
- 2.551472812500001 * IIIIIZIIIIIZ
+ 3.608327455463727 * IIIIIZIIIXIX
+ 3.608327455463727 * IIIIIZIIIYIY
- 7.654418437500004 * IIIIIZIIIIZI
- 12.757364062500006 * IIIIIZIIIZII
- 1.0485748437500004 * IIIIIZIIZIII
- 10.668818275707867 * IIIIIZIXXIII
- 10.668818275707867 * IIIIIZIYYIII
+ 1.4829087651944997 * IIIIIZXIXIII
+ 1.4829087651944997 * IIIIIZYIYIII
- 3.1457245312500017 * IIIIIZIZIIII
- 15.087987500000002 * IIIIIZXXIIII
- 15.087987500000002 * IIIIIZYYIIII
- 5.242874218750002 * IIIIIZZIIIII
+ 3.608327455463727 * IIIXIXIIIIIZ
+ 3.608327455463727 * IIIYIYIIIIIZ
- 5.102945625000002 * IIIXIXIIIXIX
- 5.102945625000002 * IIIXIXIIIYIY
- 5.102945625000002 * IIIYIYIIIXIX
- 5.102945625000002 * IIIYIYIIIYIY
+ 10.82498236639118 * IIIXIXIIIIZI
+ 10.82498236639118 * IIIYIYIIIIZI
+ 18.04163727731863 * IIIXIXIIIZII
+ 18.04163727731863 * IIIYIYIIIZII
+ 1.4829087651944997 * IIIXIXIIZIII
+ 1.4829087651944997 * IIIYIYIIZIII
+ 15.087987500000006 * IIIXIXIXXIII
+ 15.087987500000006 * IIIXIXIYYIII
+ 15.087987500000006 * IIIYIYIXXIII
+ 15.087987500000006 * IIIYIYIYYIII
- 2.097149687500001 * IIIXIXXIXIII
- 2.097149687500001 * IIIXIXYIYIII
- 2.097149687500001 * IIIYIYXIXIII
- 2.097149687500001 * IIIYIYYIYIII
+ 4.4487262955835 * IIIXIXIZIIII
+ 4.4487262955835 * IIIYIYIZIIII
+ 21.337636551415734 * IIIXIXXXIIII
+ 21.337636551415734 * IIIXIXYYIIII
+ 21.337636551415734 * IIIYIYXXIIII
+ 21.337636551415734 * IIIYIYYYIIII
+ 7.4145438259724985 * IIIXIXZIIIII
+ 7.4145438259724985 * IIIYIYZIIIII
- 7.654418437500005 * IIIIZIIIIIIZ
+ 10.824982366391183 * IIIIZIIIIXIX
+ 10.824982366391183 * IIIIZIIIIYIY
- 22.963255312500017 * IIIIZIIIIIZI
- 38.27209218750002 * IIIIZIIIIZII
- 3.1457245312500017 * IIIIZIIIZIII
- 32.006454827123605 * IIIIZIIXXIII
- 32.006454827123605 * IIIIZIIYYIII
+ 4.4487262955835 * IIIIZIXIXIII
+ 4.4487262955835 * IIIIZIYIYIII
- 9.437173593750005 * IIIIZIIZIIII
- 45.26396250000001 * IIIIZIXXIIII
- 45.26396250000001 * IIIIZIYYIIII
- 15.728622656250007 * IIIIZIZIIIII
- 12.757364062500006 * IIIZIIIIIIIZ
+ 18.04163727731863 * IIIZIIIIIXIX
+ 18.04163727731863 * IIIZIIIIIYIY
- 38.27209218750002 * IIIZIIIIIIZI
- 63.786820312500026 * IIIZIIIIIZII
- 5.242874218750002 * IIIZIIIIZIII
- 53.34409137853934 * IIIZIIIXXIII
- 53.34409137853934 * IIIZIIIYYIII
+ 7.414543825972498 * IIIZIIXIXIII
+ 7.414543825972498 * IIIZIIYIYIII
- 15.728622656250007 * IIIZIIIZIIII
- 75.43993750000001 * IIIZIIXXIIII
- 75.43993750000001 * IIIZIIYYIIII
- 26.21437109375001 * IIIZIIZIIIII
- 2.551472812500001 * IIZIIIIIIIIZ
+ 3.608327455463727 * IIZIIIIIIXIX
+ 3.608327455463727 * IIZIIIIIIYIY
- 7.654418437500004 * IIZIIIIIIIZI
- 12.757364062500006 * IIZIIIIIIZII
- 1.0485748437500004 * IIZIIIIIZIII
- 10.668818275707867 * IIZIIIIXXIII
- 10.668818275707867 * IIZIIIIYYIII
+ 1.4829087651944997 * IIZIIIXIXIII
+ 1.4829087651944997 * IIZIIIYIYIII
- 3.1457245312500017 * IIZIIIIZIIII
- 15.087987500000002 * IIZIIIXXIIII
- 15.087987500000002 * IIZIIIYYIIII
- 5.242874218750002 * IIZIIIZIIIII
+ 1.7745875000000009 * IIZIIZIIIIII
- 2.509645710117766 * IIZXIXIIIIII
- 2.509645710117766 * IIZYIYIIIIII
+ 5.323762500000003 * IIZIZIIIIIII
+ 8.872937500000004 * IIZZIIIIIIII
- 2.8170754092577175 * IXXXXIIIIIII
- 2.8170754092577175 * IXXYYIIIIIII
- 2.8170754092577175 * IYYXXIIIIIII
- 2.8170754092577175 * IYYYYIIIIIII
+ 3.608327455463727 * XIXIIIIIIIIZ
+ 3.608327455463727 * YIYIIIIIIIIZ
- 5.102945625000002 * XIXIIIIIIXIX
- 5.102945625000002 * XIXIIIIIIYIY
- 5.102945625000002 * YIYIIIIIIXIX
- 5.102945625000002 * YIYIIIIIIYIY
+ 10.82498236639118 * XIXIIIIIIIZI
+ 10.82498236639118 * YIYIIIIIIIZI
+ 18.04163727731863 * XIXIIIIIIZII
+ 18.04163727731863 * YIYIIIIIIZII
+ 1.4829087651944997 * XIXIIIIIZIII
+ 1.4829087651944997 * YIYIIIIIZIII
+ 15.087987500000006 * XIXIIIIXXIII
+ 15.087987500000006 * XIXIIIIYYIII
+ 15.087987500000006 * YIYIIIIXXIII
+ 15.087987500000006 * YIYIIIIYYIII
- 2.097149687500001 * XIXIIIXIXIII
- 2.097149687500001 * XIXIIIYIYIII
- 2.097149687500001 * YIYIIIXIXIII
- 2.097149687500001 * YIYIIIYIYIII
+ 4.4487262955835 * XIXIIIIZIIII
+ 4.4487262955835 * YIYIIIIZIIII
+ 21.337636551415734 * XIXIIIXXIIII
+ 21.337636551415734 * XIXIIIYYIIII
+ 21.337636551415734 * YIYIIIXXIIII
+ 21.337636551415734 * YIYIIIYYIIII
+ 7.4145438259724985 * XIXIIIZIIIII
+ 7.4145438259724985 * YIYIIIZIIIII
- 2.509645710117766 * XIXIIZIIIIII
- 2.509645710117766 * YIYIIZIIIIII
+ 3.5491750000000017 * XIXXIXIIIIII
+ 3.5491750000000017 * XIXYIYIIIIII
+ 3.5491750000000017 * YIYXIXIIIIII
+ 3.5491750000000017 * YIYYIYIIIIII
- 7.528937130353299 * XIXIZIIIIIII
- 7.528937130353299 * YIYIZIIIIIII
- 12.54822855058883 * XIXZIIIIIIII
- 12.54822855058883 * YIYZIIIIIIII
- 7.654418437500005 * IZIIIIIIIIIZ
+ 10.824982366391183 * IZIIIIIIIXIX
+ 10.824982366391183 * IZIIIIIIIYIY
- 22.963255312500017 * IZIIIIIIIIZI
- 38.27209218750002 * IZIIIIIIIZII
- 3.1457245312500017 * IZIIIIIIZIII
- 32.006454827123605 * IZIIIIIXXIII
- 32.006454827123605 * IZIIIIIYYIII
+ 4.4487262955835 * IZIIIIXIXIII
+ 4.4487262955835 * IZIIIIYIYIII
- 9.437173593750005 * IZIIIIIZIIII
- 45.26396250000001 * IZIIIIXXIIII
- 45.26396250000001 * IZIIIIYYIIII
- 15.728622656250007 * IZIIIIZIIIII
+ 5.323762500000003 * IZIIIZIIIIII
- 7.528937130353299 * IZIXIXIIIIII
- 7.528937130353299 * IZIYIYIIIIII
+ 15.97128750000001 * IZIIZIIIIIII
+ 26.618812500000015 * IZIZIIIIIIII
+ 2.8170754092577175 * XXIIXXIIIIII
+ 2.8170754092577175 * XXIIYYIIIIII
+ 2.8170754092577175 * YYIIXXIIIIII
+ 2.8170754092577175 * YYIIYYIIIIII
- 12.757364062500006 * ZIIIIIIIIIIZ
+ 18.04163727731863 * ZIIIIIIIIXIX
+ 18.04163727731863 * ZIIIIIIIIYIY
- 38.27209218750002 * ZIIIIIIIIIZI
- 63.786820312500026 * ZIIIIIIIIZII
- 5.242874218750002 * ZIIIIIIIZIII
- 53.34409137853934 * ZIIIIIIXXIII
- 53.34409137853934 * ZIIIIIIYYIII
+ 7.414543825972498 * ZIIIIIXIXIII
+ 7.414543825972498 * ZIIIIIYIYIII
- 15.728622656250007 * ZIIIIIIZIIII
- 75.43993750000001 * ZIIIIIXXIIII
- 75.43993750000001 * ZIIIIIYYIIII
- 26.21437109375001 * ZIIIIIZIIIII
+ 8.872937500000003 * ZIIIIZIIIIII
- 12.548228550588828 * ZIIXIXIIIIII
- 12.548228550588828 * ZIIYIYIIIIII
+ 26.61881250000001 * ZIIIZIIIIIII
+ 44.36468750000001 * ZIIZIIIIIIII
Resolviendo el VibrationalStructureProblem
#
A continuación, calcularemos el estado fundamental de nuestra instancia del problema. Para obtener más información sobre los componentes individuales que se incluyen en GroundStateSolver
, consulta los tutoriales correspondientes.
[7]:
# for simplicity, we will use the smaller basis again
vibrational_problem = driver.run(basis=HarmonicBasis([2, 2, 2, 2]))
vibrational_problem.hamiltonian.truncation_order = 2
[8]:
from qiskit_algorithms import NumPyMinimumEigensolver
from qiskit_nature.second_q.algorithms import GroundStateEigensolver
solver = GroundStateEigensolver(
qubit_mapper,
NumPyMinimumEigensolver(filter_criterion=vibrational_problem.get_default_filter_criterion()),
)
[9]:
result = solver.solve(vibrational_problem)
print(result)
=== GROUND STATE ===
* Vibrational ground state energy (cm^-1): 2432.106954036546
The number of occupied modals for each mode is:
- Mode 0: 1.0
- Mode 1: 1.0
- Mode 2: 1.0
- Mode 3: 1.0
[10]:
import qiskit.tools.jupyter
%qiskit_version_table
%qiskit_copyright
Version Information
Qiskit Software | Version |
---|---|
qiskit-terra | 0.24.0.dev0+2b3686f |
qiskit-aer | 0.11.2 |
qiskit-ibmq-provider | 0.19.2 |
qiskit-nature | 0.6.0 |
System information | |
Python version | 3.9.16 |
Python compiler | GCC 12.2.1 20221121 (Red Hat 12.2.1-4) |
Python build | main, Dec 7 2022 00:00:00 |
OS | Linux |
CPUs | 8 |
Memory (Gb) | 62.50002670288086 |
Thu Apr 06 08:54:06 2023 CEST |
This code is a part of Qiskit
© Copyright IBM 2017, 2023.
This code is licensed under the Apache License, Version 2.0. You may
obtain a copy of this license in the LICENSE.txt file in the root directory
of this source tree or at http://www.apache.org/licenses/LICENSE-2.0.
Any modifications or derivative works of this code must retain this
copyright notice, and modified files need to carry a notice indicating
that they have been altered from the originals.