예제 #1
0
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
예제 #2
0
#
###############################################################################

# 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_: