Skip to main content
IBM Quantum Platform

FCIDump

QfFCIDump

struct QfFCIDump

FCIDump 형식의 전자 구조 해밀토니안.



정의

FCIDump 형식은 원래 Knowles와 Handy가 1989년에 정의한 것이다 [1]. 이는 전자 구조 해밀토니안을 일반 텍스트 파일로 내보내는 데 널리 사용되는 형식입니다.

현재의 데이터 구조는 2차 양자화 연산자를 구성하는 데 필요한 정보만 저장합니다. 그러나 이 구현 방식은 제한 없이 스핀 데이터를 불러올 수 있도록 지원함으로써 원래의 정의를 뛰어넘습니다. 아래 표는 지수가 속하는 구간을 기준으로 적분이 스핀 종과 어떻게 연관되는지를 요약한 것입니다(표 머리글에 가 있다고 가정할 때 NORB=n):

적분형
i
j
k
l
상수0{0}0{0}0{0}0{0}
1-체 알파0{0}0{0}[1,n][1,n][1,n][1,n]
1-체 베타0{0}0{0}[n+1,2n][n+1,2n][n+1,2n][n+1,2n]
2체 알파-알파[1,n][1,n][1,n][1,n][1,n][1,n][1,n][1,n]
2체 알파-베타[1,n][1,n][1,n][1,n][n+1,2n][n+1,2n][n+1,2n][n+1,2n]
2-체 베타-베타[n+1,2n][n+1,2n][n+1,2n][n+1,2n][n+1,2n][n+1,2n][n+1,2n][n+1,2n]

유일하게 필수적인 값은 1체 알파-스핀 적분값들뿐입니다.


[ 1 ]

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

멤버

qf_fcidump_from_file

QfFCIDump *qf_fcidump_from_file(char *file_path)

FCIDump 파일을 분석합니다.

라는 이름의 FCIDump 파일이 있다고 가정할 때 molecule.fcidump, 이 함수는 다음과 같이 사용합니다:

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

매개변수

  • file_path – FCIDump 파일의 경로입니다.

리턴

FCIDump 데이터 구조체에 대한 포인터입니다.

qf_fcidump_free

void qf_fcidump_free(QfFCIDump *fcidump)

기존 FCIDump 데이터 구조를 해제합니다.

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

매개변수

  • fcidump – 해제될 FCIDump 데이터 구조체에 대한 포인터.

qf_fcidump_norb

uint32_t qf_fcidump_norb(const QfFCIDump *fcidump)

FCIDump에서 궤도의 개수를 가져옵니다.

이 숫자( nn )는 FCIDump 파일 헤더의 NORB=n 필드에서 추출된 것입니다.

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

매개변수

  • fcidump – 해제될 FCIDump 데이터 구조체에 대한 포인터.

리턴

궤도의 개수.

qf_fcidump_nelec

uint32_t qf_fcidump_nelec(const QfFCIDump *fcidump)

FCIDump에서 전자 수를 가져옵니다.

이 숫자( nn )는 FCIDump 파일 헤더의 NELEC=n 필드에서 추출된 것입니다.

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

매개변수

  • fcidump – 해제될 FCIDump 데이터 구조체에 대한 포인터.

리턴

전자의 개수.

qf_fcidump_ms2

uint32_t qf_fcidump_ms2(const QfFCIDump *fcidump)

FCIDump에서 스핀 양자수를 가져옵니다.

이 숫자( SS )는 FCIDump 파일 헤더의 MS2=S 필드에서 추출된 것입니다.

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

매개변수

  • fcidump – 해제될 FCIDump 데이터 구조체에 대한 포인터.

리턴

스핀 양자수(정수 값이 되도록 2를 곱한 값).



변환

의 인스턴스로부터 구성할 수 있는 연산자 표현은 qf_*_from_fcidump 함수를 제공한다 QfFCIDump :

qf_ferm_op_from_fcidump

QfFermionOperator *qf_ferm_op_from_fcidump(const QfFCIDump *fcidump)

:c:struct:QfFermionOperator 를 사용하여 :c:structQfFCIDump:를 생성합니다.

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

매개변수

  • fcidump – FCIDump 데이터 구조체에 대한 포인터입니다.

리턴

생성된 연산자에 대한 포인터.

이 페이지가 도움이 되었습니까?
GitHub에서 버그, 오타를 보고하거나 컨텐츠를 요청하십시오.