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)

연산자의 항들을 전자 구조에 따라 분류한다.

이 함수는 전자 구조 해밀토니안에 포함된 대칭 섭동을 만족하는 항들이 그룹화되도록 FermionOperator , 주어진 의 속성을 groups 자동으로 채웁니다.

주의

제공된 연산자는 정규 순서여야 합니다! 이는 구현의 기본 가정 중 하나이지만, 현재 검증되지 않고 있습니다! 해당 형태의 연산자를 구하는 방법은 를 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체 항의 경우, 모든 순열이 그룹화되는 것은 아닙니다. 대신, 이 는 네 개의 지수가 어떻게 두 개씩 짝을 이루어 그룹화되며, 그 안에서 순열 대칭성이 존재하는지 결정한다 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에서 버그, 오타를 보고하거나 컨텐츠를 요청하십시오.