double_commutator
double_commutator(op_a, op_b, op_c, sign)
Calcula o comutador duplo de três operadores.
O comutador duplo é definido da seguinte forma (ver também o Capítulo 13.6, Métodos de equações de movimento, página 479 de [1]; o caso sign=False em questão é o comutador duplo simétrico que aparece na Equação (2) de [ 2] ):
Se for sign False, ela retorna
Se for sign True, ela retorna
Os operadores que suportam esse método devem implementar o protocolo SupportsCommutators .
Todas as três entradas devem ser do mesmo tipo de operador. Isso também determinará o tipo de saída.
>>> 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 da Mecânica Quântica Molecular. 2ª edição, Academic Press, 1992. ISBN 0-12-486552-6.
[ 2 ]
P. J. Ollitrault, A. Miessen, I. Tavernelli. Dinâmica Quântica Molecular: Uma Perspectiva da Computação Quântica. De acordo com... Química. Res. 54, 4229-4238 (2021). https://doi.org/10.1021/acs.accounts.1c00514
Parâmetros
- op_a (T) – o operador acima.
- op_b (T) – o operador acima.
- op_c (T) – o operador acima.
- sign (bool) – a natureza do (anti-)comutador externo, conforme a definição acima.
Retorna
O comutador duplo, conforme a definição acima.
Tipo de retorno
T