def absorption_spectrum_trimer(self): dd1 = [0.0,3.0,0.0] dd2 = [0.0,1.0,2.0] dd3 = [0.0,1.0,1.0] cf = world.cf with energy_units("1/cm"): m1 = Molecule([0.0, 12100]) m1.set_dipole(0,1,dd1) m1.set_transition_environment((0,1), cf) m2 = Molecule([0.0, 11800]) m2.set_dipole(0,1,dd2) m2.set_transition_environment((0,1), cf) m3 = Molecule([0.0, 12500]) m3.set_dipole(0,1,dd3) m3.set_transition_environment((0,1), cf) m1.position = [0.0,0.0,0.0] m2.position = [5.0,0.0,0.0] m3.position = [0.0,5.0,0.0] AG = Aggregate(name="TestAggregate") AG.add_Molecule(m1) AG.add_Molecule(m2) AG.add_Molecule(m3) AG.set_coupling_by_dipole_dipole(epsr=3.0) AG.build() (RRr,hamr) = AG.get_RelaxationTensor(world.ta, relaxation_theory="standard_Redfield", time_dependent=True) ac = AbsSpectrumCalculator(world.ta,AG, relaxation_tensor=RRr, effective_hamiltonian=hamr) with energy_units("1/cm"): ac.bootstrap(rwa=12000) a1 = ac.calculate(raw=True) with energy_units("1/cm"): world.abs = numpy.zeros((len(a1.data),2)) for kk in range(len(a1.data)): world.abs[kk,0] = a1.axis.data[kk] #frequency[kk] world.abs[kk,1] = a1.data[kk]
def absorption_spectrum_trimer(self): dd1 = [0.0, 3.0, 0.0] dd2 = [0.0, 1.0, 2.0] dd3 = [0.0, 1.0, 1.0] cf = world.cf with energy_units("1/cm"): m1 = Molecule([0.0, 12100]) m1.set_dipole(0, 1, dd1) m1.set_transition_environment((0, 1), cf) m2 = Molecule([0.0, 11800]) m2.set_dipole(0, 1, dd2) m2.set_transition_environment((0, 1), cf) m3 = Molecule([0.0, 12500]) m3.set_dipole(0, 1, dd3) m3.set_transition_environment((0, 1), cf) m1.position = [0.0, 0.0, 0.0] m2.position = [5.0, 0.0, 0.0] m3.position = [0.0, 5.0, 0.0] AG = Aggregate(name="TestAggregate") AG.add_Molecule(m1) AG.add_Molecule(m2) AG.add_Molecule(m3) AG.set_coupling_by_dipole_dipole(epsr=3.0) AG.build() (RRr, hamr) = AG.get_RelaxationTensor(world.ta, relaxation_theory="standard_Redfield", time_dependent=True) ac = AbsSpectrumCalculator(world.ta, AG, relaxation_tensor=RRr, effective_hamiltonian=hamr) with energy_units("1/cm"): ac.bootstrap(rwa=12000) a1 = ac.calculate() with energy_units("1/cm"): world.abs = numpy.zeros((len(a1.data), 2)) for kk in range(len(a1.data)): world.abs[kk, 0] = a1.axis.data[kk] #frequency[kk] world.abs[kk, 1] = a1.data[kk]
LF = LindbladForm(HH, sbi, as_operators=False) print(LF.data[1, 1, 2, 2]) print(LF.data[1, 2, 1, 2]) # # We can get it also from the aggregate # from quantarhei import TimeAxis time = TimeAxis() # time is not used here at all LFa, ham = agg.get_RelaxationTensor(time, relaxation_theory="electronic_Lindblad") LFa.convert_2_tensor() print(LFa.data[1, 1, 2, 2]) print(LFa.data[1, 2, 1, 2]) # # VIBRONIC Aggregate of two molecules # m1v = Molecule([0.0, 1.0]) m2v = Molecule([0.0, 1.1]) m3v = Molecule([0.0, 1.2]) from quantarhei import Mode
LF = LindbladForm(HH, sbi, as_operators=False) print(LF.data[1,1,2,2]) print(LF.data[1,2,1,2]) # # We can get it also from the aggregate # from quantarhei import TimeAxis time = TimeAxis() # time is not used here at all LFa, ham = agg.get_RelaxationTensor(time, relaxation_theory="electronic_Lindblad") LFa.convert_2_tensor() print(LFa.data[1,1,2,2]) print(LFa.data[1,2,1,2]) # # VIBRONIC Aggregate of two molecules # m1v = Molecule([0.0, 1.0]) m2v = Molecule([0.0, 1.1]) m3v = Molecule([0.0, 1.2]) from quantarhei import Mode