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$')
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)
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)