double_commutator
double_commutator(op_a, op_b, op_c, sign)
Calcola il doppio commutatore di tre operatori.
Il doppio commutatore è definito come segue (si veda anche il capitolo 13.6, Metodi basati sull'equazione del moto, pagina 479 di; [1] il caso sign=False corrisponde al doppio commutatore simmetrico che compare nell'equazione (2) di ) [2]:
Se è sign False, restituisce
Se è sign True, restituisce
Gli operatori che supportano questo metodo devono implementare il protocollo SupportsCommutators .
Tutti e tre gli input devono essere dello stesso tipo di operatore. Questo determinerà anche il tipo di output.
>>> 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. Metodi della meccanica quantistica molecolare. 2ª edizione, Academic Press, 1992. ISBN 0-12-486552-6.
[ 2 ]
P. J. Ollitrault, A. Miessen, I. Tavernelli. Dinamica quantistica molecolare: una prospettiva dal punto di vista dell'informatica quantistica. Acc. Chim. Risoluzione. 54, 4229-4238 (2021). https://doi.org/10.1021/acs.accounts.1c00514
Parametri
- op_a (T) – l'operatore sopra indicato.
- op_b (T) – l'operatore sopra indicato.
- op_c (T) – l'operatore sopra indicato.
- sign (bool) – la natura dell'anti-commutatore esterno secondo la definizione sopra riportata.
Risultati
Il doppio commutatore secondo la definizione sopra riportata.
Tipo di restituzione
L