double_commutator
double_commutator(op_a, op_b, op_c, sign)
Calcule le double commutateur de trois opérateurs.
Le double commutateur est défini comme suit (voir également le chapitre « 13.6 », «* Méthodes des équations du mouvement* », page 479 de [1]; il s'agit sign=False ici du double commutateur symétrique figurant dans l'équation (2) de [ 2] ) :
Si est sign False, elle renvoie
Si est sign True, elle renvoie
Les opérateurs prenant en charge cette méthode doivent implémenter le protocole SupportsCommutators .
Les trois entrées doivent être du même type d'opérateur. Cela déterminera également le type de sortie.
>>> from qiskit_fermions.operators import FermionOperator
>>> from qiskit_fermions.operators.library import double_commutator
>>> op1 = FermionOperator.from_dict({((True, 0), (False, 0)): 1})
>>> op2 = FermionOperator.from_dict({((False, 0), (True, 0)): 2})
>>> op3 = FermionOperator.from_dict(
... {((True, 0), (False, 0)): 1, ((False, 0), (True, 0)): 2 + 0.5j}
... )
>>> comm = double_commutator(op1, op2, op3, False)
>>> comm = comm.normal_ordered()
>>> canon = comm.simplify()
>>> assert canon == FermionOperator.zero()
[ 1 ]
R. McWeeny. Méthodes de mécanique quantique moléculaire. 2e édition, Academic Press, 1992. ISBN 0-12-486552-6.
[ 2 ]
P. J. Ollitrault, A. Miessen, I. Tavernelli. Dynamique quantique moléculaire : une perspective de l'informatique quantique. Acc. Chim. Rés. 54, 4229-4238 (2021). https://doi.org/10.1021/acs.accounts.1c00514
Paramètres
- op_a (T) – l'opérateur ci-dessus.
- op_b (T) – l'opérateur ci-dessus.
- op_c (T) – l'opérateur ci-dessus.
- sign (bool) – la nature de l'anti-commutateur externe, conformément à la définition ci-dessus.
Retours
Le double commutateur, tel que défini ci-dessus.
Type de retour
T