예제 #1
0
""")
#
# The same Hamiltonian using the Molecule class
#

from quantarhei import Molecule

m = Molecule(name="Mol 1", elenergies=[0.0, 1.0])
m.set_adiabatic_coupling(0,1,0.4)

from quantarhei import Mode

vib1 = Mode(frequency=0.01)
m.add_Mode(vib1)

vib1.set_shift(1, 0.5)
vib1.set_nmax(0, 5)
vib1.set_nmax(1, 5)


Hm = m.get_Hamiltonian()
print(Hm)
print(m)

psi_vib = StateVector(10)
psi_vib.data[3] = 1.0

prop_vib = StateVectorPropagator(time, Hm)

psi_vib_t = prop_vib.propagate(psi_vib)
예제 #2
0
""")
#
# The same Hamiltonian using the Molecule class
#

from quantarhei import Molecule

m = Molecule("Mol 1", [0.0, 1.0])
m.set_adiabatic_coupling(0, 1, 0.4)

from quantarhei import Mode

vib1 = Mode(frequency=0.01)
m.add_Mode(vib1)

vib1.set_shift(1, 0.5)
vib1.set_nmax(0, 5)
vib1.set_nmax(1, 5)

Hm = m.get_Hamiltonian()
print(Hm)
print(m)

psi_vib = StateVector(10)
psi_vib.data[3] = 1.0

prop_vib = StateVectorPropagator(time, Hm)

psi_vib_t = prop_vib.propagate(psi_vib)

with eigenbasis_of(Hm):
예제 #3
0
 m.set_dipole(0,2,[di,0.0,0.0])
 
 #
 # To represent CT coordinate, we add an explicite harmonic mode 
 # to the molecule.
 #
 
 # First the mode with frequency 10 1/cm is created
 qct = Mode(frequency=10.0)
 # and registered with the molecule
 m.add_Mode(qct)
 
 # In the CT state, the equilibrium coordinate is shifted towards
 # charge separation. In the ground state and the exciton, no shift
 # of the coordinate is assumed (see the text (!!!!) for justification.)
 qct.set_shift(1,1.0)
 
 # By default, the Mode we created is harmonic. The number of states
 # by which it is represented is set to 2 (which is a very small number).
 # Let us increase the number of states to represent the oscillators
 # in the three electronic states of the molecule to some chosen N[0], N[1]
 # and N[2] (see the text (!!!!) for the choice of values).
 #
 # we create an array of 3 zeros
 N = numpy.zeros(3,dtype=numpy.int)
 # set all of them to the value of 10
 N[0] = 10
 N[1] = 20
 N[2] = 20
 # loop from 0 to 2
 for i in range(3):