Ejemplo n.º 1
0
    def setUp(self):
        np.random.seed(
            0
        )  # set random seed in order for the examples to reproduce the exact references

        # setup molecules
        molecule = Molecule()

        molecule1 = molecule.copy()
        molecule1.set_coordinates([0])
        molecule1.name = 'TypeA'

        molecule2 = molecule.copy()
        molecule2.set_coordinates([1])
        molecule2.name = 'TypeB'

        molecule3 = molecule.copy()
        molecule3.set_coordinates([2])
        molecule3.name = 'TypeC'

        # setup system
        self.system = System(molecules=[molecule1, molecule2, molecule3],
                             supercell=[[3]])

        # set initial exciton
        # self.system.add_excitation_index(tt, 1)
        # self.system.add_excitation_random(s1, 2)
        self.system.add_excitation_index(s1, 0)
        self.system.add_excitation_index(s1, 1)
Ejemplo n.º 2
0
    def setUp(self):

        # setup molecules
        molecule = Molecule()

        molecule1 = molecule.copy()
        molecule1.set_coordinates([0])
        molecule1.name = 'TypeA'

        molecule2 = molecule.copy()
        molecule2.set_coordinates([1])
        molecule2.name = 'TypeB'

        molecule3 = molecule.copy()
        molecule3.set_coordinates([2])
        molecule3.name = 'TypeC'

        # setup system
        self.system = System(molecules=[molecule1, molecule2, molecule3],
                             supercell=[[3]])

        # set initial exciton
        self.system.add_excitation_index(s1, 1)
        self.system.add_excitation_index(s1, 0)
Ejemplo n.º 3
0
from kimonet.core.processes.decays import einstein_radiative_decay

au2dby = 1 / DEBYE_TO_AU

# TODO: this has to be adapted to new inerface in KIMONET
molecule = Molecule(
    states=[State(label='gs', energy=0),
            State(label='s1', energy=1.0)],
    transition_moment={
        ('s1', 'gs'): [0.0001 * au2dby, 0.2673 * au2dby, -0.0230 * au2dby],
        # ('s1', 'gs'): [0.0001 * au2dby, 0.3379 * au2dby, -0.0296 * au2dby],
        ('s2', 'gs'): [0.0140 * au2dby, 0.1174 * au2dby, 1.8592 * au2dby]
    },
    state='gs')

donor = molecule.copy()
acceptor = molecule.copy()

donor.set_orientation([0, 0, 0])
donor.set_coordinates(center_f1)

acceptor.set_orientation([0, 0, 0])
acceptor.set_coordinates(center_f2)

print('\n------------ S1 ---------------')
donor.state = 's1'
acceptor.state = 'gs'

electronic_coupling = forster_coupling_extended(
    donor,
    acceptor, [[100., 0, 0], [0, 100., 0], [0, 0, 100.]], [0, 0, 0],
Ejemplo n.º 4
0
    rates = {
        'TypeA': 1. / 100,  # ns-1
        'TypeB': 1. / 50,  # ns-1
        'TypeC': 1. / 25
    }  # ns-1
    return rates[initial[0].get_center().name]


# states list
s1 = State(label='s1', energy=1.0, multiplicity=1, size=1)
s2 = State(label='s2', energy=1.5, multiplicity=1)

# setup molecules
molecule = Molecule()

molecule1 = molecule.copy()
molecule1.set_coordinates([0])
molecule1.name = 'TypeA'

molecule2 = molecule.copy()
molecule2.set_coordinates([1])
molecule2.name = 'TypeB'

molecule3 = molecule.copy()
molecule3.set_coordinates([2])
molecule3.name = 'TypeC'

# setup system
system = System(molecules=[molecule1, molecule2, molecule3], supercell=[[3]])

# set initial exciton