lime/superoperator.py
def correlation_3op_1w(self, rho0, ops, w):
        """
        Compute <A(t)B> by diagonalizing the Liouvillian.

        Returns
        -------
        1D array.
            correlation function.

        """
        a, b, c = ops

        evals, U1, U2 = self.eigvals, self.right_eigvecs, self.left_eigvecs

        k = U1.shape[-1]

        norm = self.norm

        idv = self.idv

        cor = np.zeros(len(w), dtype=complex)

        coeff = np.array([np.vdot(idv, left(b).dot(U1[:,n])) * \
                    np.vdot(U2[:,n], operator_to_vector(c @ rho0 @ a))/norm[n]\
                        for n in range(k)])


        for i in range(len(w)):
            cor[i] = np.sum( -1./(evals + 1j * w[i]) *  coeff)

        return cor

        Compute <A(t)B> by diagonalizing the Liouvillian.

        Returns
        -------
        1D array.
            correlation function.

        
Compute  by diagonalizing the Liouvillian.
Returns

1D array.
correlation function.
Compute by diagonalizing the Liouvillian . Returns 1D array . correlation function .
def correlation_3op_1w(self, rho0, ops, w):
        a, b, c = ops
        evals, U1, U2 = self.eigvals, self.right_eigvecs, self.left_eigvecs
        k = U1.shape[-1]
        norm = self.norm
        idv = self.idv
        cor = np.zeros(len(w), dtype=complex)
        coeff = np.array([np.vdot(idv, left(b).dot(U1[:,n])) * \
                    np.vdot(U2[:,n], operator_to_vector(c @ rho0 @ a))/norm[n]\
                        for n in range(k)])
        for i in range(len(w)):
            cor[i] = np.sum( -1./(evals + 1j * w[i]) *  coeff)
        return cor
def correlation_3op_1w ( self , rho0 , ops , w ) : a , b , c = ops evals , U1 , U2 = self . eigvals , self . right_eigvecs , self . left_eigvecs k = U1 . shape [ - 1 ] norm = self . norm idv = self . idv cor = np . zeros ( len ( w ) , dtype = complex ) coeff = np . array ( [ np . vdot ( idv , left ( b ) . dot ( U1 [ : , n ] ) ) * np . vdot ( U2 [ : , n ] , operator_to_vector ( c @ rho0 @ a ) ) / norm [ n ] for n in range ( k ) ] ) for i in range ( len ( w ) ) : cor [ i ] = np . sum ( - 1. / ( evals + 1j * w [ i ] ) * coeff ) return cor
Compute <A(t)B> by diagonalizing the Liouvillian.
Compute <A ( t ) B > by diagonalizing the Liouvillian .
"""
        Compute <A(t)B> by diagonalizing the Liouvillian.

        Returns
        -------
        1D array.
            correlation function.

        """
self
rho0
ops
w