def _toSLH(self):
     
     sigma_p = LocalSigma(self.tls_space, 'h','g')
     sigma_m = sigma_p.adjoint()
     
     # vacuum coupling / spontaneous decay
     L = sqrt(self.gamma) * sigma_m
     
     return SLH(Matrix([[1]]), Matrix([[L]]), 0)
    def _toSLH(self):

        sigma_p = LocalSigma(self.tls_space, 'h', 'g')
        sigma_m = sigma_p.adjoint()

        # vacuum coupling / spontaneous decay
        L = sqrt(self.gamma) * sigma_m

        return SLH(Matrix([[1]]), Matrix([[L]]), 0)
    def _toSLH(self):

        sigma_p = LocalSigma(self.tls_space, 'h','g')
        sigma_m = sigma_p.adjoint()

        
        a = Destroy(self.fock_space)
        a_d = a.adjoint()
        
        #coupling to external mode
        L = sqrt(self.kappa) * a
        
        H = self.Delta_f * a_d * a + self.Delta_a * sigma_p * sigma_m + I * self.g * (sigma_p * a - sigma_m * a_d)
        
        return SLH(Matrix([[1]]), Matrix([[L]]), H)
    def _toSLH(self):

        sigma_p = LocalSigma(self.tls_space, 'h', 'g')
        sigma_m = sigma_p.adjoint()

        a = Destroy(self.fock_space)
        a_d = a.adjoint()

        #coupling to external mode
        L = sqrt(self.kappa) * a

        H = self.Delta_f * a_d * a + self.Delta_a * sigma_p * sigma_m + I * self.g * (
            sigma_p * a - sigma_m * a_d)

        return SLH(Matrix([[1]]), Matrix([[L]]), H)
    def _toSLH(self):

        if self.sub_index == 0:

            sigma_p = LocalSigma(self.tls_space, 'h','g')
            sigma_m = sigma_p.adjoint()


            a = Destroy(self.fock_space)
            a_d = a.adjoint()

            #coupling to external mode
            L = sqrt(self.kappa_1) * a

            H = self.Delta_f * a_d * a + self.Delta_a * sigma_p * sigma_m + I * self.g * (sigma_p * a - sigma_m * a_d)

        elif self.sub_index == 1:
            a = Destroy(self.fock_space)
            L = sqrt(self.kappa_2) * a
            H = ZeroOperator

        return SLH(Matrix([[1]]), Matrix([[L]]), H)