Skip to main content
IBM Quantum Platform

FCIDump

QfFCIDump

struct QfFCIDump

Un hamiltoniano de estructura electrónica en formato FCIDump.



Definición

El formato FCIDump fue definido originalmente por Knowles y Handy en 1989 [1]. Es un formato muy extendido para exportar hamiltonianos de estructura electrónica en un archivo de texto sin formato.

La estructura de datos actual solo almacena la información relevante para construir el operador de segunda cuantización. Sin embargo, esta implementación va más allá de la definición original, ya que permite cargar datos de espín sin restricciones. La tabla siguiente resume cómo se asocian las integrales con las especies de espín en función de los intervalos en los que se encuentran los índices (suponiendo un encabezado con NORB=n):

Tipo integral
i
j
k
l
Constante0{0}0{0}0{0}0{0}
alfa de 1 cuerpo0{0}0{0}[1,n][1,n][1,n][1,n]
beta de 1 cuerpo0{0}0{0}[n+1,2n][n+1,2n][n+1,2n][n+1,2n]
Alfa-alfa de dos cuerpos[1,n][1,n][1,n][1,n][1,n][1,n][1,n][1,n]
Alfa-beta de dos cuerpos[1,n][1,n][1,n][1,n][n+1,2n][n+1,2n][n+1,2n][n+1,2n]
beta-beta de dos cuerpos[n+1,2n][n+1,2n][n+1,2n][n+1,2n][n+1,2n][n+1,2n][n+1,2n][n+1,2n]

Los únicos valores obligatorios son las integrales de espín alfa de un cuerpo.


[ 1 ]

    1. Knowles y N. C. Handy, «Computer Physics Communications», vol. 54 (1989), págs. 75-83.

Miembros

qf_fcidump_from_file

QfFCIDump *qf_fcidump_from_file(char *file_path)

Analiza un archivo FCIDump.

Ejemplo

Suponiendo que tengas un archivo FCIDump llamado molecule.fcidump, esta función se utiliza de la siguiente manera:

1QfFCIDump *fcidump = qf_fcidump_from_file("molecule.fcidump");

Parámetros

  • file_path – La ruta al archivo FCIDump.

Devuelve

Un puntero a la estructura de datos FCIDump.

qf_fcidump_free

void qf_fcidump_free(QfFCIDump *fcidump)

Libera una estructura de datos FCIDump ya existente.

Ejemplo

1QfFCIDump *fcidump = qf_fcidump_from_file("molecule.fcidump");
2qf_fcidump_free(fcidump);

Parámetros

  • fcidump – Un puntero a la estructura de datos FCIDump que se va a liberar.

qf_fcidump_norb

uint32_t qf_fcidump_norb(const QfFCIDump *fcidump)

Obtiene el número de orbitales a partir de un FCIDump.

Este número, nn, se extrae del campo NORB=n de la cabecera del archivo FCIDump.

Ejemplo

1QfFCIDump *fcidump = qf_fcidump_from_file("molecule.fcidump");
2uint32_t norb = qf_fcidump_norb(fcidump);

Parámetros

  • fcidump – Un puntero a la estructura de datos FCIDump que se va a liberar.

Devuelve

El número de orbitales.

qf_fcidump_nelec

uint32_t qf_fcidump_nelec(const QfFCIDump *fcidump)

Obtiene el número de electrones a partir de un FCIDump.

Este número, nn, se extrae del campo NELEC=n de la cabecera del archivo FCIDump.

Ejemplo

1QfFCIDump *fcidump = qf_fcidump_from_file("molecule.fcidump");
2uint32_t nelec = qf_fcidump_nelec(fcidump);

Parámetros

  • fcidump – Un puntero a la estructura de datos FCIDump que se va a liberar.

Devuelve

El número de electrones.

qf_fcidump_ms2

uint32_t qf_fcidump_ms2(const QfFCIDump *fcidump)

Obtiene el número cuántico de espín a partir de un FCIDump.

Este número, SS, se extrae del campo MS2=S de la cabecera del archivo FCIDump.

Ejemplo

1QfFCIDump *fcidump = qf_fcidump_from_file("molecule.fcidump");
2uint32_t ms2 = qf_fcidump_ms2(fcidump);

Parámetros

  • fcidump – Un puntero a la estructura de datos FCIDump que se va a liberar.

Devuelve

El número cuántico de espín (multiplicado por 2 para garantizar que el resultado sea un número entero).



Conversión

Las representaciones de operadores que pueden construirse a partir de una instancia de QfFCIDump proporcionan una función qf_*_from_fcidump :

qf_ferm_op_from_fcidump

QfFermionOperator *qf_ferm_op_from_fcidump(const QfFCIDump *fcidump)

Crea una :c:struct:QfFermionOperator a partir de una :c:structQfFCIDump:.

Ejemplo

1QfFCIDump *fcidump = qf_fcidump_from_file("molecule.fcidump");
2QfFermionOperator *op = qf_ferm_op_from_fcidump(fcidump);

Parámetros

  • fcidump : un puntero a la estructura de datos FCIDump.

Devuelve

Un puntero al operador creado.

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