def calcTwoDMock(loopNum): ''' Calculates a2d spectrum container for all time points on t2 axis for both perpendicular and parallel lasers. Uses quantarhei only and speeds up runtime by using simple lineshapes''' container = [] agg = qr.Aggregate(forAggregateMock) with qr.energy_units('1/cm'): for i in range(len(forAggregateMock)): agg.monomers[i].set_energy(1, random.gauss(energy, staticDis)) agg.set_coupling_by_dipole_dipole() agg.build(mult=2) agg.diagonalize() rT = agg.get_RelaxationTensor(t2s, relaxation_theory='stR') eUt = qr.EvolutionSuperOperator(t2s, rT[1], rT[0]) # rT[1] = Hamiltonian eUt.set_dense_dt(t2Step) eUt.calculate(show_progress=False) mscPara = qr.MockTwoDResponseCalculator(t13, t2s, t13) mscPara.bootstrap(rwa=rwa, shape="Gaussian") contPara = mscPara.calculate_all_system(agg, eUt, labParaMock, show_progress=True) cont2DPara = contPara.get_TwoDSpectrumContainer(stype=qr.signal_TOTL) container.append(cont2DPara) mscPerp = qr.MockTwoDResponseCalculator(t13, t2s, t13) mscPerp.bootstrap(rwa=rwa, shape="Gaussian") contPerp = mscPerp.calculate_all_system(agg, eUt, labPerpMock, show_progress=True) cont2DPerp = contPerp.get_TwoDSpectrumContainer(stype=qr.signal_TOTL) container.append(cont2DPerp) return container
# ############################################################################### # time span of the excited state evolution (later t2 time of the 2D spectrum) t2_axis = qr.TimeAxis(0.0, 100, 10.0) # Lindblad relaxation operator with qr.eigenbasis_of(H): K = qr.qm.ProjectionOperator(1, 2, dim=H.dim) rates = [1.0 / 200.0] sbi = qr.qm.SystemBathInteraction(sys_operators=[K], rates=rates) L = qr.qm.LindbladForm(H, sbi) eUt = qr.EvolutionSuperOperator(time=t2_axis, ham=H, relt=L) eUt.set_dense_dt(10) eUt.calculate() if _show_plots_: with qr.eigenbasis_of(H): eUt.plot_element((2, 2, 2, 2), show=False) eUt.plot_element((1, 1, 1, 1), show=False) eUt.plot_element((1, 1, 2, 2)) eUt.plot_element((1, 2, 1, 2)) ############################################################################### # # 2D SPECTRUM: effective lineshape 2D spectrum #
calc = TwoDResponseCalculator(t1_axis, t2_axis, t3_axis) with qr.energy_units("1/cm"): calc.bootstrap(rwa=12100.0) #qr.convert(12100.0,"1/cm","int")) agg_1 = agg.deepcopy() agg_1.build(mult=1) H = agg_1.get_Hamiltonian() agg.build(mult=2) agg.diagonalize() # laboratory settings lab = qr.LabSetup() lab.set_polarizations(pulse_polarizations=(X, X, X), detection_polarization=X) eUt = qr.EvolutionSuperOperator(t2_axis, H) eUt.set_dense_dt(10) eUt.calculate() tcont = calc.calculate_all_system(agg, eUt, lab) T2 = 0.0 twod = tcont.get_spectrum(T2) twod = twod.get_TwoDSpectrum() if _save_2D_: twod.save("twod.qrp") if _show_plots_: