def do_simulation(i): print 'Starting loop ' + str(i) sim = Simulation(hamiltonian,initial_states,mesolve_args) sim.regenerate_data_qubit_offsets() # Necessary for each run to have different displacement errors sim.args['cOpts']['tau']=taulist[i] sim.args['r']=[0, 0, d] sim.args['cOpts']['d']=d sim.run(taulist[i]/4,steps,1) #adjust for full circle! result_states = sim.last_run_all qsave(result_states, os.path.join(lind_args['folder'],"d-%d_state-%d"%(d*1e9,i))) #step_data = sim.last_run_quarter_cycle sim.reset_system_state() # return tuple of iteration and result, because jobs are started async = return whenever finished return (i, sim.last_run_all[-1])
def do_simulation(i): print 'Starting loop ' + str(i) if lind_args.get('specify_errors'): initial_states = calculate_initial_states_from_bitflips(bitflips[i]) else: initial_states = calculate_initial_states_from_bitflips(bitflips) sim = Simulation(hamiltonian,initial_states,mesolve_args) sim.loop = i sim.set_data_qubit_offsets(displacements) sim.choose_twirl(lind_args.get('twirl')) sim.run(time,steps) #adjust for full circle! result_states = sim.last_run_all qsave(result_states, os.path.join(lind_args.get('folder'),lind_args.get('subfolder'),'data','run'+str(i+1))) #step_data = sim.last_run_quarter_cycle sim.reset_system_state() # return tuple of iteration and result, because jobs are started async = return whenever finished return (i, sim.last_run_all[-1], sim.twirl)
""" Set up folder/subfolder """ lind_args['folder'] = os.path.join(lind_args.get('folder'),lind_args.get('subfolder')) if not os.path.exists(lind_args.get('folder')): os.mkdir(lind_args.get('folder')) if not os.path.exists(os.path.join(lind_args.get('folder'),'data')): os.mkdir(os.path.join(lind_args.get('folder'),'data')) """ Run simulation """ for i in range(0,no_of_runs): print 'Starting loop ' + str(i+1) sim.choose_twirl(lind_args.get('twirl')) # Pass this False if you don't want twirling sim.run(time,steps) result_states = sim.last_run_all qsave(result_states, os.path.join(lind_args.get('folder'),'data','run'+str(i+1))) step_data = sim.last_run_quarter_cycle final_states.append(sim.last_run_all[-1]) sim.reset_system_state() qsave(final_states, os.path.join(lind_args.get('folder'),'data',"final_states")) print('States saved') for t in range(0,len(result_states),10): db.add_states(result_states[t].ptrace(0), kind='point') db.add_states(result_states[t].ptrace(1), kind='point') db.save(os.path.join(lind_args.get('folder'),'bloch.pdf')) #db.show() print('Bloch for last run saved to '+os.path.join(lind_args.get('folder'),'bloch.pdf')) Plotter(final_states, header,filetype='.pdf',display=False) print('Plotter output to '+os.path.join(lind_args.get('folder'),''))