Ejemplo n.º 1
0
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]  
Ejemplo n.º 2
0
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]
Ejemplo n.º 3
0
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
Ejemplo n.º 4
0
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