Skip to main content
IBM Quantum Platform

FCIDump

QfFCIDump

struct QfFCIDump

Un hamiltoniano della struttura elettronica in formato FCIDump.



Definizione

Il formato FCIDump è stato originariamente definito da Knowles e Handy nel 1989 [1]. Si tratta di un formato molto diffuso per l'esportazione degli hamiltoniani della struttura elettronica in un file di testo semplice.

L'attuale struttura dei dati memorizza solo le informazioni rilevanti per la costruzione dell'operatore di seconda quantizzazione. Tuttavia, questa implementazione va oltre la definizione originale, in quanto consente il caricamento di dati di spin senza alcuna restrizione. La tabella seguente illustra come gli integrali siano associati alle specie di spin in base agli intervalli in cui ricadono gli indici (ipotizzando un’intestazione con NORB=n):

Tipo integrale
i
j
k
l
Costante0{0}0{0}0{0}0{0}
alfa a 1 corpo0{0}0{0}[1,n][1,n][1,n][1,n]
beta a 1 corpo0{0}0{0}[n+1,2n][n+1,2n][n+1,2n][n+1,2n]
Alfa-alfa a due corpi[1,n][1,n][1,n][1,n][1,n][1,n][1,n][1,n]
Alfa-beta a due corpi[1,n][1,n][1,n][1,n][n+1,2n][n+1,2n][n+1,2n][n+1,2n]
beta-beta a due corpi[n+1,2n][n+1,2n][n+1,2n][n+1,2n][n+1,2n][n+1,2n][n+1,2n][n+1,2n]

Gli unici valori richiesti sono gli integrali di spin alfa a un corpo.


[ 1 ]

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

Membri

qf_fcidump_from_file

QfFCIDump *qf_fcidump_from_file(char *file_path)

Analizza un file FCIDump.

Esempio

Supponendo che tu abbia un file FCIDump denominato molecule.fcidump, puoi utilizzare questa funzione nel modo seguente:

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

Parametri

  • file_path – Il percorso del file FCIDump.

Risultati

Un puntatore alla struttura dati FCIDump.

qf_fcidump_free

void qf_fcidump_free(QfFCIDump *fcidump)

Libera una struttura dati FCIDump esistente.

Esempio

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

Parametri

  • fcidump – Un puntatore alla struttura dati FCIDump da liberare.

qf_fcidump_norb

uint32_t qf_fcidump_norb(const QfFCIDump *fcidump)

Recupera il numero di orbitali da un FCIDump.

Questo numero, nn, è tratto dal campo NORB=n presente nell'intestazione del file FCIDump.

Esempio

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

Parametri

  • fcidump – Un puntatore alla struttura dati FCIDump da liberare.

Risultati

Il numero di orbitali.

qf_fcidump_nelec

uint32_t qf_fcidump_nelec(const QfFCIDump *fcidump)

Recupera il numero di elettroni da un FCIDump.

Questo numero, nn, è tratto dal campo NELEC=n presente nell'intestazione del file FCIDump.

Esempio

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

Parametri

  • fcidump – Un puntatore alla struttura dati FCIDump da liberare.

Risultati

Il numero di elettroni.

qf_fcidump_ms2

uint32_t qf_fcidump_ms2(const QfFCIDump *fcidump)

Recupera il numero quantico di spin da un FCIDump.

Questo numero, SS, è tratto dal campo MS2=S presente nell'intestazione del file FCIDump.

Esempio

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

Parametri

  • fcidump – Un puntatore alla struttura dati FCIDump da liberare.

Risultati

Il numero quantico di spin (moltiplicato per 2 per garantire che il valore sia intero).



Conversione

Le rappresentazioni dell’operatore che possono essere costruite a partire da un’istanza di forniscono QfFCIDump una funzione qf_*_from_fcidump :

qf_ferm_op_from_fcidump

QfFermionOperator *qf_ferm_op_from_fcidump(const QfFCIDump *fcidump)

Crea una :c:struct:QfFermionOperator a partire da una :c:structQfFCIDump:.

Esempio

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

Parametri

  • fcidump – Un puntatore alla struttura dati FCIDump.

Risultati

Un puntatore all'operatore creato.

Questa pagina è stata utile?
Segnala un bug, un errore di battitura o richiedi contenuti su GitHub.