''' Created on 15 Jul 2015 @author: rstones ''' import numpy as np import counting_statistics.counting_statistics as cs import quant_mech.utils as utils import matplotlib.pyplot as plt from vibration_counting_statistics.dimer_vib_model import DimerVibModel freq_range = np.linspace(0, 2.5, 100) model = DimerVibModel() model.J = 0.2 F2 = np.zeros((3, freq_range.size)) model.mode_coupling = 0 L = model.liouvillian L_dim = L().shape[0] L_jump = model.jump_liouvillian dm_pops = np.eye(np.sqrt(L_dim)).flatten() ss = utils.stationary_state(L(), populations=dm_pops) F2[0] = cs.second_order_fano_factor(L, L_jump, ss, freq_range, dm_pops) model.mode_coupling = 0.3 mode_freq_vals = np.array([1., 2.]) for i,freq in enumerate(mode_freq_vals): model.omega = freq L = model.liouvillian
''' @author Richard Stones ''' import numpy as np import quant_mech.utils as utils import easygui from vibration_counting_statistics.dimer_vib_model import DimerVibModel import counting_statistics.counting_statistics as cs import matplotlib.pyplot as plt print '[Executing script...]' # set up data model = DimerVibModel() # model should be a subclass of DataModel num_data_pts = 200 energy_gap_range = np.linspace(-3, 3, num_data_pts) current = np.zeros((3, num_data_pts)) #current_cs = np.zeros((3, num_data_pts)) #mode_couplings = [0, 0.1, 0.5] #thermal_occupations = [0.01, 1.]; model.mode_coupling = 0.3; mode_dampings = [0.0025, 0.005]; model.mode_coupling = 0.3; for i,v in enumerate(mode_dampings): print 'Calculations for v = ' + str(v) #model.mode_coupling = v #model.N = v model.vib_damping_rate = v
''' @author Richard Stones ''' import numpy as np import quant_mech.utils as utils import easygui from vibration_counting_statistics.dimer_vib_model import DimerVibModel import counting_statistics.counting_statistics as cs import matplotlib.pyplot as plt print '[Executing script...]' # set up data model = DimerVibModel() # model should be a subclass of DataModel # first compare analytic and numerical zero-freq noise calculations num_data_pts = 180 energy_gap_range = np.linspace(-2,3,num_data_pts) F2 = np.zeros(num_data_pts) #current = np.zeros(num_data_pts) for i,E in enumerate(energy_gap_range): print 'calculating for energy gap ' + str(E) model.energy_gap = E L = model.liouvillian L_jump = model.jump_liouvillian dv_pops = np.eye(3*model.vib_basis_size).flatten() #dv_pops = np.delete(dv_pops, model.element_indices_to_remove, 0) dv = utils.stationary_state(L(0), dv_pops)
''' Created on 23 Jul 2015 @author: rstones ''' import numpy as np import quant_mech.utils as utils import easygui from vibration_counting_statistics.dimer_vib_model import DimerVibModel import counting_statistics.counting_statistics as cs import matplotlib.pyplot as plt print '[Executing script...]' # set up data model = DimerVibModel() # model should be a subclass of DataModel num_data_pts = 100 energy_gap_range = np.linspace(-3, 3, num_data_pts) current = np.zeros((3, num_data_pts)) current_cs = np.zeros((3, num_data_pts)) mode_couplings = [0, 0.1, 0.5] def current_calculation(energy_gap): # model.energy_gap = energy_gap # L = model.liouvillian() # dm_pops = np.eye(3*model.vib_basis_size).flatten() # ss_vec = utils.stationary_state(L, dm_pops) # ss_mat = ss_vec.copy() # ss_mat.shape = np.sqrt(ss_mat.shape[0]), np.sqrt(ss_mat.shape[0])