Skip to main content
IBM Quantum Platform

FCIDump

QfFCIDump

struct QfFCIDump

FCIDump形式の電子構造ハミルトニアン。



定義

FCIDump形式は、もともと1989年にKnowlesとHandyによって定義された [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で行ってください。