Skip to main content
IBM Quantum Platform

FCIDump

QfFCIDump

struct QfFCIDump

Um hamiltoniano de estrutura eletrônica no formato FCIDump.



Definição

O formato FCIDump foi originalmente definido por Knowles e Handy, em 1989 [1]. É um formato amplamente utilizado para exportar hamiltonianos de estrutura eletrônica em um arquivo de texto simples.

A presente estrutura de dados armazena apenas as informações relevantes para a construção do operador de segunda quantização. No entanto, essa implementação vai além da definição original, pois permite o carregamento de dados de spin sem restrições. A tabela abaixo ilustra como as integrais estão associadas às espécies de spin com base nos intervalos em que os índices se enquadram (supondo um cabeçalho com NORB=n):

Tipo Integral
i
j
k
l
Constante0{0}0{0}0{0}0{0}
alfa de 1 corpo0{0}0{0}[1,n][1,n][1,n][1,n]
beta de 1 corpo0{0}0{0}[n+1,2n][n+1,2n][n+1,2n][n+1,2n]
Alfa-alfa de dois corpos[1,n][1,n][1,n][1,n][1,n][1,n][1,n][1,n]
Alfa-beta de dois corpos[1,n][1,n][1,n][1,n][n+1,2n][n+1,2n][n+1,2n][n+1,2n]
beta-beta de dois corpos[n+1,2n][n+1,2n][n+1,2n][n+1,2n][n+1,2n][n+1,2n][n+1,2n][n+1,2n]

Os únicos valores necessários são as integrais de spin alfa de um corpo.


[ 1 ]

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

Membros

qf_fcidump_from_file

QfFCIDump *qf_fcidump_from_file(char *file_path)

Analisa um arquivo FCIDump.

Exemplo

Supondo que você tenha um arquivo FCIDump chamado molecule.fcidump, utilize esta função da seguinte maneira:

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

Parâmetros

  • file_path – O caminho para o arquivo FCIDump.

Retorna

Um ponteiro para a estrutura de dados FCIDump.

qf_fcidump_free

void qf_fcidump_free(QfFCIDump *fcidump)

Libera uma estrutura de dados FCIDump existente.

Exemplo

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

Parâmetros

  • fcidump – Um ponteiro para a estrutura de dados FCIDump a ser liberada.

qf_fcidump_norb

uint32_t qf_fcidump_norb(const QfFCIDump *fcidump)

Obtém o número de orbitais a partir de um FCIDump.

Esse número, nn, é extraído do campo NORB=n no cabeçalho do arquivo FCIDump.

Exemplo

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

Parâmetros

  • fcidump – Um ponteiro para a estrutura de dados FCIDump a ser liberada.

Retorna

O número de orbitais.

qf_fcidump_nelec

uint32_t qf_fcidump_nelec(const QfFCIDump *fcidump)

Obtém o número de elétrons a partir de um FCIDump.

Esse número, nn, é extraído do campo NELEC=n no cabeçalho do arquivo FCIDump.

Exemplo

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

Parâmetros

  • fcidump – Um ponteiro para a estrutura de dados FCIDump a ser liberada.

Retorna

O número de elétrons.

qf_fcidump_ms2

uint32_t qf_fcidump_ms2(const QfFCIDump *fcidump)

Obtém o número quântico de spin a partir de um FCIDump.

Esse número, SS, é extraído do campo MS2=S no cabeçalho do arquivo FCIDump.

Exemplo

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

Parâmetros

  • fcidump – Um ponteiro para a estrutura de dados FCIDump a ser liberada.

Retorna

O número quântico de spin (multiplicado por 2 para garantir um valor inteiro).



Conversão

As representações de operadores que podem ser construídas a partir de uma instância de QfFCIDump fornecem uma função qf_*_from_fcidump :

qf_ferm_op_from_fcidump

QfFermionOperator *qf_ferm_op_from_fcidump(const QfFCIDump *fcidump)

Cria uma :c:struct:QfFermionOperator a partir de uma :c:structQfFCIDump:.

Exemplo

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

Parâmetros

  • fcidump – Um ponteiro para a estrutura de dados FCIDump.

Retorna

Um ponteiro para o operador criado.

Esta página foi útil?
Relate um bug, erro de digitação ou solicite conteúdo no GitHub.