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)

Gruppiert die Terme eines Operators nach ihrer elektronischen Struktur.

Diese Funktion füllt automatisch das Attribut groups des angegebenen Elements FermionOperator so aus, dass Terme, die einer in den Hamilton-Operatoren der Elektronenstruktur vorhandenen symmetrischen Störung entsprechen, gruppiert werden.

Vorsicht

Der angegebene Operator muss normal geordnet sein! Dies ist eine Grundannahme der Implementierung, die nicht überprüft wird! Siehe normal_ordered() für eine Anleitung, wie man einen Operator dieser Form erhält.

Konkret bedeutet dies: Bei einem Hamilton-Operator für die elektronische Struktur der Form

H=∑ijcijai†aj+∑ijklcijklai†aj†akal ,\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 \, ,

Diese Funktion gruppiert 1-Körper-Terme mit Permutationssymmetrie von (i, j) sowie die 2-Körper-Terme mit Permutationssymmetrie von (i, j, k, l). Bei den 2-Körper-Termen werden nicht alle Permutationen gruppiert. Stattdessen legt two_body_physicist_order die fest, wie die vier Indizes zu Zweierpaaren gruppiert werden, innerhalb derer Permutationssymmetrien bestehen:

  • two_body_physicist_order=False (Standard): (i, l) und (j, k)
  • two_body_physicist_order=True: und (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()

Parameter

  • op – der Operator mit normaler Reihenfolge, dessen Terme gruppiert werden sollen.
  • num_modes – die Anzahl der spinlosen fermionischen Moden im System.
  • two_body_physicist_order – Gibt an, ob die 2-Körper-Terme in der Reihenfolge der Physiker gespeichert werden.

Erhöhungen

ValueError – falls ein unerwarteter Begriff auftritt.

War diese Seite hilfreich?
Melden Sie auf GitHub einen Fehler, einen Tippfehler oder fordern Sie Inhalte an.