def three_level_basis(): ''' Basis states for a three level atom. Returns ------- states : array `array` of three level atom basis vectors. ''' # A three level atom has the same representation as a qutrit, i.e. # three states return qutrit_basis()
def qutrit_ops(*args): """ Operators for a three level system (qutrit). args : str Which operator to return '11','22','33','13','31','12','21','23','32'. If no args given, then output is ['11','22','33','12','23','31'] Returns ------- opers: array `array` of qutrit operators. """ from qutip.states import qutrit_basis one, two, three = qutrit_basis() sig11 = one * one.dag() sig22 = two * two.dag() sig33 = three * three.dag() sig12 = one * two.dag() sig21 = two * one.dag() sig23 = two * three.dag() sig32 = three * two.dag() sig13 = one * three.dag() sig31 = three * one.dag() if not args: return np.array([sig11, sig22, sig33, sig12, sig23, sig31], dtype=object) if args[0] == '11': op = sig11 elif args[0] == '22': op = sig22 elif args[0] == '33': op = sig33 elif args[0] == '13': op = sig13 elif args[0] == '31': op = sig31 elif args[0] == '12': op = sig12 elif args[0] == '21': op = sig21 elif args[0] == '23': op = sig23 elif args[0] == '32': op = sig32 else: raise TypeError('Invalid type') return op
def qutrit_ops(): """ Operators for a three level system (qutrit). Returns ------- opers: array `array` of qutrit operators. """ from qutip.states import qutrit_basis one, two, three = qutrit_basis() sig11 = one * one.dag() sig22 = two * two.dag() sig33 = three * three.dag() sig12 = one * two.dag() sig23 = two * three.dag() sig31 = three * one.dag() return np.array([sig11, sig22, sig33, sig12, sig23, sig31], dtype=object)
def three_level_ops(): ''' Operators for a three level system (qutrit) Returns -------- ops : array `array` of three level operators. ''' one, two, three = qutrit_basis() # Note that the three level operators are different # from the qutrit operators. A three level atom only # has transitions 1 <-> 2 <-> 3, so we define the # operators seperately from the qutrit code sig11 = one * one.dag() sig22 = two * two.dag() sig33 = three * three.dag() sig12 = one * two.dag() sig32 = three * two.dag() return array([sig11, sig22, sig33, sig12, sig32], dtype=object)
def qutrit_ops(): """ Operators for a three level system (qutrit). Returns ------- opers: array `array` of qutrit operators. """ from qutip.states import qutrit_basis one, two, three = qutrit_basis() sig11 = one * one.dag() sig22 = two * two.dag() sig33 = three * three.dag() sig12 = one * two.dag() sig23 = two * three.dag() sig31 = three * one.dag() return np.array([sig11, sig22, sig33, sig12, sig23, sig31])
def three_level_ops(): ''' Operators for a three level system (qutrit) Returns -------- ops : array `array` of three level operators. ''' one, two, three = qutrit_basis() # Note that the three level operators are different # from the qutrit operators. A three level atom only # has transitions 1 <-> 2 <-> 3, so we define the # operators seperately from the qutrit code sig11 = one * one.dag() sig22 = two * two.dag() sig33 = three * three.dag() sig12 = one * two.dag() sig32 = three * two.dag() return array([sig11, sig22, sig33, sig12, sig32])
def qutrit_ops(): """ Operators for a three level system (qutrit). Returns ------- opers: array `array` of qutrit operators. """ from qutip.states import qutrit_basis out = np.empty((6, ), dtype=object) one, two, three = qutrit_basis() out[0] = one * one.dag() out[1] = two * two.dag() out[2] = three * three.dag() out[3] = one * two.dag() out[4] = two * three.dag() out[5] = three * one.dag() return out
def three_level_ops(): ''' Operators for a three level system (qutrit) Returns -------- ops : array `array` of three level operators. ''' out = np.empty((5,), dtype=object) one, two, three = qutrit_basis() # Note that the three level operators are different # from the qutrit operators. A three level atom only # has transitions 1 <-> 2 <-> 3, so we define the # operators seperately from the qutrit code out[0] = one * one.dag() out[1] = two * two.dag() out[2] = three * three.dag() out[3] = one * two.dag() out[4] = three * two.dag() return out