def generate_result_states(params, times, psi0=None, opt=None): if opt is None: opt = Options() opt.atol = 1e-6 opt.rtol = 1e-6 args = {'params': params} c_ops = c_ops_gen_jc(params) e_ops = [] H = construct_ham(params) if psi0 is None: psi0 = steadystate(H[0], c_ops) opt.store_states = True trace = mesolve(H, psi0, times, c_ops, e_ops, args=args, options=opt) size = 2 * params.c_levels state_array = np.zeros([len(trace.states), size, size], dtype=complex) for i, state in enumerate(trace.states): state_array[i] = state.full() frame_content = [[trace.times, state_array, params]] columns = ['times', 'states', 'params'] results_frame = pd.DataFrame(frame_content, columns=columns) results_frame['fd'] = params.fd results_frame.set_index('fd', inplace=True) return results_frame
def generate_result(params, times, psi0=None, opt=None, e_ops=None): if opt is None: opt = Options() opt.atol = 1e-6 opt.rtol = 1e-6 args = {'params': params} if e_ops is None: e_ops = e_ops_gen(params) c_ops = c_ops_gen_jc(params) H = construct_ham(params) if psi0 is None: psi0 = steadystate(H[0], c_ops) trace = mesolve(H, psi0, times, c_ops, e_ops, args=args, options=opt) results_frame = pd.DataFrame(trace.expect, index=times) results_frame.index.name = 'time' results_frame['fd'] = params.fd results_frame.set_index('fd', inplace=True, append=True) results_frame = results_frame.reorder_levels(['fd', 'time']) return results_frame