Skip to main content
IBM Quantum Platform

FCIDump

QfFCIDump

struct QfFCIDump

Un hamiltonien de structure électronique au format FCIDump.



Définition

Le format FCIDump a été défini à l'origine par Knowles et Handy, en 1989 [1]. Il s'agit d'un format très répandu permettant d'exporter les hamiltoniens de structure électronique dans un fichier au format texte brut.

La structure de données actuelle ne stocke que les informations nécessaires à la construction de l'opérateur de seconde quantification. Toutefois, cette implémentation va au-delà de la définition initiale, puisqu’elle permet de charger des données de spin sans aucune restriction. Le tableau ci-dessous présente la correspondance entre les intégrales et les espèces de spin en fonction des intervalles dans lesquels se situent les indices (en supposant un en-tête avec NORB=n) :

Type intégral
i
j
k
l
Constante0{0}0{0}0{0}0{0}
alpha à un corps0{0}0{0}[1,n][1,n][1,n][1,n]
bêta à un corps0{0}0{0}[n+1,2n][n+1,2n][n+1,2n][n+1,2n]
alpha-alpha à deux corps[1,n][1,n][1,n][1,n][1,n][1,n][1,n][1,n]
alpha-bêta à deux corps[1,n][1,n][1,n][1,n][n+1,2n][n+1,2n][n+1,2n][n+1,2n]
β-β à deux corps[n+1,2n][n+1,2n][n+1,2n][n+1,2n][n+1,2n][n+1,2n][n+1,2n][n+1,2n]

Les seules valeurs requises sont les intégrales d'alpha-spin à un corps.


[ 1 ]

    1. Knowles et N. C. Handy, Computer Physics Communications 54 (1989), p. 75-83.

Membres

qf_fcidump_from_file

QfFCIDump *qf_fcidump_from_file(char *file_path)

Analyse un fichier FCIDump.

Exemple

En supposant que vous disposiez d'un fichier FCIDump nommé molecule.fcidump, vous utilisez cette fonction comme suit :

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

Paramètres

  • file_path – Chemin d'accès au fichier FCIDump.

Retours

Un pointeur vers la structure de données FCIDump.

qf_fcidump_free

void qf_fcidump_free(QfFCIDump *fcidump)

Libère une structure de données FCIDump existante.

Exemple

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

Paramètres

  • fcidump – Un pointeur vers la structure de données FCIDump à libérer.

qf_fcidump_norb

uint32_t qf_fcidump_norb(const QfFCIDump *fcidump)

Récupère le nombre d'orbitales à partir d'un fichier FCIDump.

Ce numéro, nn, est extrait du champ NORB=n situé dans l'en-tête du fichier FCIDump.

Exemple

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

Paramètres

  • fcidump – Un pointeur vers la structure de données FCIDump à libérer.

Retours

Le nombre d'orbitales.

qf_fcidump_nelec

uint32_t qf_fcidump_nelec(const QfFCIDump *fcidump)

Récupère le nombre d'électrons à partir d'un fichier FCIDump.

Ce numéro, nn, est extrait du champ NELEC=n situé dans l'en-tête du fichier FCIDump.

Exemple

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

Paramètres

  • fcidump – Un pointeur vers la structure de données FCIDump à libérer.

Retours

Le nombre d'électrons.

qf_fcidump_ms2

uint32_t qf_fcidump_ms2(const QfFCIDump *fcidump)

Récupère le nombre quantique de spin à partir d'un fichier FCIDump.

Ce numéro, SS, est extrait du champ MS2=S situé dans l'en-tête du fichier FCIDump.

Exemple

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

Paramètres

  • fcidump – Un pointeur vers la structure de données FCIDump à libérer.

Retours

Le nombre quantique de spin (multiplié par 2 pour garantir une valeur entière).



Conversion

Les représentations d'opérateurs pouvant être construites à partir d'une instance de fournissent QfFCIDump une fonction qf_*_from_fcidump :

qf_ferm_op_from_fcidump

QfFermionOperator *qf_ferm_op_from_fcidump(const QfFCIDump *fcidump)

Crée une :c:struct:QfFermionOperator à partir d'une :c:structQfFCIDump:.

Exemple

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

Paramètres

  • fcidump – Un pointeur vers la structure de données FCIDump.

Retours

Un pointeur vers l'opérateur créé.

Cette page a-t-elle été utile ?
Signaler un bogue, une coquille ou proposer du contenu sur GitHub.