def test_bloch_derivative_all(self): ham = la.CartesianSpinOperator((0, 0, 0, 1)) rho = la.CartesianSpinOperator((0.5, 0, 0.5, 0)) bd_c = bloch_derivative(rho, ham, gdiss=0., gdeph=1.) ud = unitary_derivative(rho, ham) nud = -1 * la.CartesianSpinOperator((0, 0, 0.5, 0)) bd_e = ud + nud self.assertEqual(bd_c, bd_e)
def test_bloch_derivative_no_unitary_part(self): ham = la.CartesianSpinOperator((0, 0, 0, 0)) rho = la.CartesianSpinOperator((0.5, 0, 0.5, 0)) bd_c = bloch_derivative(rho, ham, gdiss=0., gdeph=1.) bd_e = -1 * la.CartesianSpinOperator((0, 0, 0.5, 0)) self.assertEqual(bd_c, bd_e)
def test_bloch_derivative_unitary_consistency(self): ham = la.CartesianSpinOperator((0, 0, 0, 1)) rho = la.CartesianSpinOperator((0.5, 0, 0.5, 0)) ud = unitary_derivative(rho, ham) bd = bloch_derivative(rho, ham, gdiss=0, gdeph=0) self.assertEqual(ud, bd)