Skip to main content
IBM Quantum Platform

Integrales electrónicas

Las funciones constructoras que se enumeran aquí suelen tomar como entrada los coeficientes de los hamiltonianos de la estructura electrónica. Hay diferentes sabores:

  • tril: estas funciones toman como argumento matrices unidimensionales de índices triangulares aplanados (generalizados)
  • full: estas funciones consumen matrices de alta dimensión
  • spin: estas funciones admiten matrices independientes para las diferentes especies de espín
  • sym: estas funciones toman una sola matriz correspondiente a una especie de espín y deducen la otra especie de espín

qf_ferm_op_from_1body_tril_spin_sym

QfFermionOperator *qf_ferm_op_from_1body_tril_spin_sym(double *one_body_a, uint32_t norb)

Construye un operador a partir de integrales triangulares de un cuerpo con simetría de espín.

El operador resultante se define mediante

∑iciiα(ai†ai+ai+n†ai+n)+∑i<jcijα(ai†aj+aj†ai+ai+n†aj+n+aj+n†ai+n)\sum_i c^\alpha_{ii} (a^\dagger_i a_i + a^\dagger_{i+n} a_{i+n}) + \sum_{i \lt j} c^\alpha_{ij} (a^\dagger_i a_j + a^\dagger_j a_i + a^\dagger_{i+n} a_{j+n} + a^\dagger_{j+n} a_{i+n})

donde cαc^\alpha son los coeficientes integrales almacenados en one_body_a, ii y jj son los índices obtenidos a partir del índice triangular ijij que indexa la matriz, y nn es el número de orbitales, norb.

1int norb = 2;
2double one_body_a[3] = {1.0, 2.0, 3.0};
3QfFermionOperator *op = qf_ferm_op_from_1body_tril_spin_sym(one_body_a, norb);

Seguridad

El comportamiento es indefinido si se incumple alguna de las siguientes condiciones:

  • one_body_a es un puntero no nulo y alineado a un matriz double de longitud norb * (norb + 1) / 2

Se detecta un puntero nulo o desalineado y se produce un error grave; no es posible deducir la longitud de la matriz a partir del puntero, por lo que sigue siendo un contrato de llamada no comprobado.

Parámetros

  • one_body_a : una matriz unidimensional de longitud que norb * (norb + 1) / 2 almacena los coeficientes de la integral electrónica de un cuerpo de las especies de espín alfa, en forma de matriz triangular aplanada.
  • norb : el número de orbitales.

Devuelve

Un indicador de la componente del hamiltoniano de la estructura electrónica que se define a continuación.

qf_ferm_op_from_1body_tril_spin

QfFermionOperator *qf_ferm_op_from_1body_tril_spin(double *one_body_a, double *one_body_b, uint32_t norb)

Construye un operador a partir de integrales triangulares de un cuerpo para cada especie de espín por separado.

El operador resultante se define mediante

∑iciiαai†ai+ciiβai+n†ai+n+∑i<jcijα(ai†aj+aj†ai)+cijβ(ai+n†aj+n+aj+n†ai+n)\sum_i c^\alpha_{ii} a^\dagger_i a_i + c^\beta_{ii} a^\dagger_{i+n} a_{i+n} + \sum_{i \lt j} c^\alpha_{ij} (a^\dagger_i a_j + a^\dagger_j a_i) + c^\beta_{ij} (a^\dagger_{i+n} a_{j+n} + a^\dagger_{j+n} a_{i+n})

donde cαc^\alpha ( cβc^\beta ) son los coeficientes integrales almacenados en one_body_a (one_body_b, respectivamente), ii y jj son los índices obtenidos a partir del índice triangular ijij que indexa las matrices, y nn es el número de orbitales, norb.

1int norb = 2;
2double one_body_a[3] = {1.0, 2.0, 3.0};
3double one_body_b[3] = {-1.0, -2.0, -3.0};
4QfFermionOperator *op = qf_ferm_op_from_1body_tril_spin(one_body_a, one_body_b, norb);

Seguridad

El comportamiento es indefinido si se incumple alguna de las siguientes condiciones:

  • one_body_a y son one_body_b punteros no nulos y alineados a double matrices, cada una de longitud norb * (norb + 1) / 2

Se detecta un puntero nulo o mal alineado y se produce un error grave; las longitudes de las matrices no pueden deducirse a partir de los punteros, por lo que siguen siendo un contrato de llamada no comprobado.

Parámetros

  • one_body_a : una matriz unidimensional de longitud que norb * (norb + 1) / 2 almacena los coeficientes de la integral electrónica de un cuerpo de las especies de espín alfa, en forma de matriz triangular aplanada.
  • one_body_b : una matriz unidimensional de longitud que norb * (norb + 1) / 2 almacena los coeficientes de la integral electrónica de un cuerpo de las especies de espín beta, en forma de matriz triangular aplanada.
  • norb : el número de orbitales.

Devuelve

Un indicador de la componente del hamiltoniano de la estructura electrónica que se define a continuación.

qf_ferm_op_from_2body_tril_spin_sym

QfFermionOperator *qf_ferm_op_from_2body_tril_spin_sym(double *two_body_aa, uint32_t norb)

Construye un operador a partir de integrales triangulares de dos cuerpos con simetría de espín.

El operador resultante se define mediante

∑ijkl12cijklαα∑(i,j,k,l)∈P(ijkl)(ai†ak†alaj+ai+n†ak†alaj+n+ai†ak+n†al+naj+ai+n†ak+n†al+naj+n)\sum_{ijkl} \frac{1}{2} c^{\alpha\alpha}_{ijkl} \sum_{(i,j,k,l) \in \mathcal{P}(ijkl)} (a^\dagger_i a^\dagger_k a_l a_j + a^\dagger_{i+n} a^\dagger_k a_l a_{j+n} + a^\dagger_i a^\dagger_{k+n} a_{l+n} a_j + a^\dagger_{i+n} a^\dagger_{k+n} a_{l+n} a_{j+n})

donde cααc^{\alpha\alpha} son los coeficientes integrales almacenados en two_body_aa, ijklijkl es el índice corriente de la matriz, P\mathcal{P} genera las permutaciones únicas del índice de 4 elementos (i,j,k,l)(i,j,k,l) (véase más adelante), y nn es el número de orbitales, norb.

1int norb = 2;
2double two_body_aa[6] = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0};
3QfFermionOperator *op = qf_ferm_op_from_2body_tril_spin_sym(two_body_aa, norb);

Seguridad

El comportamiento es indefinido si se incumple alguna de las siguientes condiciones:

  • two_body_aa es un puntero no nulo y alineado a un matriz double de longitud npair * (npair + 1) / 2, donde npair = norb * (norb + 1) / 2

Se detecta un puntero nulo o desalineado y se produce un error grave; no es posible deducir la longitud de la matriz a partir del puntero, por lo que sigue siendo un contrato de llamada no comprobado.

Nota

two_body_aa es una matriz simétrica de tipo « S8-fold ». Esto significa que se trata de los datos triangulares inferiores aplanados de una matriz de forma (npair, npair), donde npair = (norb * (norb + 1) // 2. Esto, a su vez, son los datos de la parte triangular inferior de la matriz de 4 dimensiones de forma (norb, norb, norb, norb). Por lo tanto, la expresión P\mathcal{P} anterior expande el índice «aplanado» ijklijkl en todas las permutaciones de índices (i,j,k,l)(i,j,k,l) que indexan este array de 4 dimensiones.

Parámetros

  • two_body_aa : una matriz unidimensional que contiene los coeficientes de la integral electrónica simétrica de dos cuerpos de tipo « S8-fold » de las especies de espín alfa/alfa, en forma de matriz aplanada.
  • norb : el número de orbitales.

Devuelve

Un indicador de la componente del hamiltoniano de la estructura electrónica que se define a continuación.

qf_ferm_op_from_2body_tril_spin

QfFermionOperator *qf_ferm_op_from_2body_tril_spin(double *two_body_aa, double *two_body_ab, double *two_body_bb, uint32_t norb)

Construye un operador a partir de integrales triangulares de dos cuerpos para cada especie de espín por separado.

El operador resultante se define mediante

∑ijkl12∑(i,j,k,l)∈P(ijkl)cijklααai†ak†alaj+cijklββai+n†ak+n†al+naj+n+∑ijkl12∑(i,j,k,l)∈P′(ijkl)cijklαβai+n†ak†alaj+n+cijklαβai†ak+n†al+naj+\sum_{ijkl} \frac{1}{2} \sum_{(i,j,k,l) \in \mathcal{P}(ijkl)} c^{\alpha\alpha}_{ijkl} a^\dagger_i a^\dagger_k a_l a_j + c^{\beta\beta}_{ijkl} a^\dagger_{i+n} a^\dagger_{k+n} a_{l+n} a_{j+n} + \sum_{ijkl} \frac{1}{2} \sum_{(i,j,k,l) \in \mathcal{P'}(ijkl)} c^{\alpha\beta}_{ijkl} a^\dagger_{i+n} a^\dagger_k a_l a_{j+n} + c^{\alpha\beta}_{ijkl} a^\dagger_i a^\dagger_{k+n} a_{l+n} a_j +

donde cααc^{\alpha\alpha} ( cαβc^{\alpha\beta}, cββc^{\beta\beta} ) son los coeficientes integrales almacenados en two_body_aa (two_body_ab, two_body_bb, respectivamente), ijklijkl es el índice corriente de la matriz, P\mathcal{P} ( P′\mathcal{P'} ) genera las permutaciones únicas del índice de 4 elementos (i,j,k,l)(i,j,k,l) (véase más adelante), y nn es el número de orbitales, norb.

1int norb = 2;
2double two_body_aa[6] = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0};
3double two_body_ab[9] = {11.0, 12.0, 13.0, 14.0, 15.0,
4                         16.0, 17.0, 18.0, 19.0};
5double two_body_bb[6] = {-1.0, -2.0, -3.0, -4.0, -5.0, -6.0};
6QfFermionOperator *op = qf_ferm_op_from_2body_tril_spin(
7    two_body_aa, two_body_ab, two_body_bb, norb);

Seguridad

El comportamiento es indefinido si se incumple alguna de las siguientes condiciones:

  • two_body_aa y son two_body_bb punteros no nulos y alineados a double matrices, cada una de longitud npair * (npair + 1) / 2, donde npair = norb * (norb + 1) / 2
  • two_body_ab es un puntero no nulo y alineado a un matriz double de longitud npair * npair

Se detecta un puntero nulo o mal alineado y se produce un error grave; las longitudes de las matrices no pueden deducirse a partir de los punteros, por lo que siguen siendo un contrato de llamada no comprobado.

Nota

two_body_aa y two_body_bb son matrices simétricas de orden S8-fold. Esto significa que son los datos triangulares inferiores aplanados de matrices de forma (npair, npair), donde npair = (norb * (norb + 1) // 2. Estos, a su vez, son los datos del triángulo inferior de las matrices de cuatro dimensiones de forma (norb, norb, norb, norb). Por lo tanto, la expresión P\mathcal{P} anterior expande el índice aplanado ijklijkl en todas las permutaciones de índices (i,j,k,l)(i,j,k,l) que indexan estas matrices de 4 dimensiones.

Sin embargo, solo two_body_ab es simétrico respecto a S4-fold. Por lo tanto, contiene todos los datos de la matriz (npair, npair) (aunque todavía en forma aplanada). La función « P′\mathcal{P'} » realiza la expansión de índices correspondiente. (En la definición anterior, hemos vuelto a utilizar el índice « ijklijkl », lo que constituye un abuso de notación.)

Parámetros

  • two_body_aa : una matriz unidimensional que contiene los coeficientes de la integral electrónica simétrica de dos cuerpos de tipo « S8-fold » de las especies de espín alfa/alfa, en forma de matriz aplanada.
  • two_body_ab : una matriz unidimensional de los coeficientes de la integral electrónica simétrica de dos cuerpos S4-fold de las especies de espín alfa/beta, en forma de matriz aplanada.
  • two_body_bb : una matriz unidimensional que contiene los coeficientes de la integral electrónica simétrica de dos cuerpos de tipo beta/beta-spin, según la ecuación S8-fold, en forma de matriz aplanada.
  • norb : el número de orbitales.

Devuelve

Un indicador de la componente del hamiltoniano de la estructura electrónica que se define a continuación.

¿Le ha resultado útil esta página?
Informe de un error, de una errata o solicite contenido en GitHub.