def dqd_hamiltonian(bias, T_c):
    return np.array([[0,0,0],[0,bias/2.,T_c],[0,T_c,-bias/2.]])

#solver = FCSSolver.from_hilbert_space(dqd_hamiltonian(bias, T_c), lindblad_ops, lindblad_rates, jump_idx, reduce_dim=True)

current = np.zeros((T_c_values.size, bias_values.size))
F2 = np.zeros((T_c_values.size, bias_values.size))
coherence = np.zeros((T_c_values.size, bias_values.size), dtype='complex128')

site_steady_states = np.zeros((T_c_values.size, bias_values.size, 3, 3))
site_exciton_transform = np.zeros((T_c_values.size, bias_values.size, 3, 3))
exciton_steady_states = np.zeros((T_c_values.size, bias_values.size, 3, 3))

for j,T_c in enumerate(T_c_values):
    for i,E in enumerate(bias_values):
        solver = FCSSolver.from_hilbert_space(dqd_hamiltonian(E, T_c), lindblad_ops, [Gamma_L, Gamma_R], jump_idx, reduce_dim=False)
        #solver.H = dqd_hamiltonian(bias, T_c)
        current[j,i] = solver.mean()
        F2[j,i] = solver.second_order_fano_factor(0)
        ss = solver.ss
        ss.shape = 3,3
        coherence[j,i] = solver.ss[1,2]
        
        site_steady_states[j,i] = solver.ss
        transform = np.linalg.eig(solver.H)[1] # utils.sorted_eig(solver.H)[1] #
        
        rearranged_basis_transform = np.zeros(transform.shape)
        
        for basis_vec in transform.T:
            if np.count_nonzero(basis_vec) == 1:
                rearranged_basis_transform[:,2] = basis_vec
font = {'size':18}
matplotlib.rc('font', **font)

bias_values = np.linspace(-10, 10, 1000)
T_c_values = np.array([0.5, 1., 2.])
lindblad_ops = [np.array([[0,0,0],[1,0,0],[0,0,0]]), np.array([[0,0,1],[0,0,0],[0,0,0]])]
Gamma_L = 1.
Gamma_R = 0.025
lindblad_rates = [Gamma_L, Gamma_R]
jump_idx = np.array([0,1])

#T_c = 1.
def dqd_hamiltonian(bias, T_c):
    return np.array([[0,0,0],[0,bias/2.,T_c],[0,T_c,-bias/2.]])

solver = FCSSolver.from_hilbert_space(dqd_hamiltonian(0, 1.), lindblad_ops, lindblad_rates, jump_idx, reduce_dim=True)

current = np.zeros((T_c_values.size, bias_values.size))
F2 = np.zeros((T_c_values.size, bias_values.size))
coherence = np.zeros((T_c_values.size, bias_values.size), dtype='complex128')

for j,T_c in enumerate(T_c_values):
    for i,v in enumerate(bias_values):
        solver.H = dqd_hamiltonian(v, T_c)
        current[j,i] = solver.mean()
        F2[j,i] = solver.second_order_fano_factor(0)
        coherence[j,i] = solver.ss[2]

# plt.subplot(121)
# plt.plot(bias_values, current, linewidth=3)
# plt.xlabel(r'energy bias $\epsilon$')
예제 #3
0
def setup_dqd_solver_from_hilbert_space(Gamma_L, Gamma_R, Tc, bias):
    return FCSSolver.from_hilbert_space(np.array([[0,0,0],[0,bias/2.,Tc],[0,Tc,-bias/2.]]), \
                     [np.array([[0,0,1.],[0,0,0],[0,0,0]]), np.array([[0,0,0],[1.,0,0],[0,0,0]])], \
                     [Gamma_R, Gamma_L], np.array([1,0]), reduce_dim=True)
예제 #4
0
def setup_srl_solver_from_hilbert_space(Gamma_L, Gamma_R):
    return FCSSolver.from_hilbert_space(np.array([[0,0],[0,0]]), [np.array([[0,1],[0,0]]), np.array([[0,0],[1,0]])], \
                                [Gamma_R, Gamma_L], np.array([1,0]), reduce_dim=True)
예제 #5
0
def setup_dqd_solver_from_hilbert_space(Gamma_L, Gamma_R, Tc, bias):
    return FCSSolver.from_hilbert_space(np.array([[0,0,0],[0,bias/2.,Tc],[0,Tc,-bias/2.]]), \
                     [np.array([[0,0,1.],[0,0,0],[0,0,0]]), np.array([[0,0,0],[1.,0,0],[0,0,0]])], \
                     [Gamma_R, Gamma_L], np.array([1,0]), reduce_dim=True)
예제 #6
0
def setup_srl_solver_from_hilbert_space(Gamma_L, Gamma_R):
    return FCSSolver.from_hilbert_space(np.array([[0,0],[0,0]]), [np.array([[0,1],[0,0]]), np.array([[0,0],[1,0]])], \
                                [Gamma_R, Gamma_L], np.array([1,0]), reduce_dim=True)