Skip to main content
IBM Quantum Platform

group_terms_by_electronic_structure

group_terms_by_electronic_structure(op, num_modes, *, two_body_physicist_order=False)

演算子の項を、その電子構造に基づいてグループ分けする。

この関数は、指定された の 属 groups 性を自動的に設定し、電子構造ハミルトニアンに含まれる対称摂動を満たす項がグループ化されるように FermionOperator します。

警告

指定された演算子は正規順序でなければならない! これは、検証されていない実装の根底にある前提です! その形式の演算子を得る方法については normal_ordered() 、を参照してください。

より具体的に言えば、次のような形式の電子構造ハミルトニアンが与えられた場合、

H=ijcijaiaj+ijklcijklaiajakal,\mathcal{H} = \sum_{ij} c_{ij} a^\dagger_i a_j + \sum_{ijkl} c_{ijkl} a^\dagger_i a^\dagger_j a_k a_l \, ,

この関数は、の順列対称性を持つ1体項と (i, j) 、の順列対称性を持つ2体項をグループ化します (i, j, k, l)。 2体項については、すべての順列がグループ化されるわけではありません。 その代わりに、この式は、4つの指標がどのように2つずつペアにグループ化され、そのペア内に順列対称性が存在するかを決める two_body_physicist_order ものである:

  • two_body_physicist_order=False (デフォルト): および (i, l) (j, k)
  • two_body_physicist_order=True: そして (i, k) (j, l)
from qiskit_fermions.operators import FermionOperator
from qiskit_fermions.operators.library import FCIDump

fcidump = FCIDump.from_file("molecule.fcidump")
operator = FermionOperator.from_fcidump(fcidump)

normal = op.normal_ordered().simplify(atol=0.0)

group_terms_by_electronic_structure(normal, 2 * fcidump.norb, two_body_physicist_order=False)

assert normal.has_groups()

パラメーター

  • op – 項をグループ化する正規順序演算子。
  • num_modes – 系に含まれるスピンを持たないフェルミオンモードの数。
  • two_body_physicist_order – 2体項が物理学者の順序で格納されるかどうか。

昇給

ValueError – 予期しない用語が見つかった場合。

このページは役に立ちましたか?
バグや誤字の報告、またはコンテンツの要求はGitHubで行ってください。