double_commutator
double_commutator(op_a, op_b, op_c, sign)
Calcula el doble conmutador de tres operadores.
El doble conmutador se define de la siguiente manera (véase también el capítulo « 13.6 », «Equation of motion methods», página 479 de [1]; el caso sign=False que nos ocupa es el doble conmutador simétrico que aparece en la ecuación (2) de [ 2] ):
Si es sign False, devuelve
Si es sign True, devuelve
Los operadores que admiten este método deben implementar el protocolo SupportsCommutators .
Las tres entradas deben ser del mismo tipo de operador. Esto también determinará el tipo de salida.
>>> 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étodos de mecánica cuántica molecular. 2.ª edición, Academic Press, 1992. ISBN 0-12-486552-6.
[ 2 ]
P. J. Ollitrault, A. Miessen, I. Tavernelli. Dinámica cuántica molecular: una perspectiva desde la informática cuántica. Según... Química. Res. 54, 4229-4238 (2021). https://doi.org/10.1021/acs.accounts.1c00514
Parámetros
- op_a (T) – el operador mencionado anteriormente.
- op_b (T) – el operador mencionado anteriormente.
- op_c (T) – el operador mencionado anteriormente.
- sign (bool) – la naturaleza del (anti-)comutador exterior según la definición anterior.
Devuelve
El doble conmutador, tal y como se define anteriormente.
Tipo de retorno
T