SimpleRate(initial_states=(t1, t1), final_states=(s1, gs), rate_constant=1.8e-6, # ns^-1 description='triplet-triplet annihilation'), #SimpleRate(initial_states=(s1, s1), final_states=(gs, gs), # rate_constant=1, # description='singlet-singlet annihilation'), #SimpleRate(initial_states=(t1, s1), final_states=(gs, gs), # rate_constant=100, # description='singlet-triplet annihilation'), ] np.random.seed(0) system.add_excitation_random(s1, 2) system_test_info(system) visualize_system(system) # exit() trajectories = calculate_kmc(system, num_trajectories=50, # number of trajectories that will be simulated max_steps=1000, # maximum number of steps for trajectory allowed silent=False) store_trajectory_list(trajectories, 'singlet_fission.h5') #trajectories = load_trajectory_list('singlet_fission.h5') analysis = TrajectoryAnalysis(trajectories) for s in ['s1', 't1']: print('STATE: ', s)
# store structure in file struct_c.to(filename='naphtalene.cif') struct_c.to(filename='POSCAR') scale_factor = 50 molecule = Molecule( states=[State(label='gs', energy=0.0), State(label='s1', energy=1.0)], transition_moment={ ('s1', 'gs'): dipole * scale_factor, ('s2', 'gs'): dipole2 * scale_factor }, # transition dipole moment of the molecule (Debye) ) system = crystal_system(conditions={}, molecules=[molecule], scaled_site_coordinates=[position], unitcell=lattice.matrix, dimensions=[1, 1, 1], orientations=[params]) print('TM: {}'.format( system.molecules[0].get_transition_moment(to_state='s1'))) print('TM_test: {}'.format( get_dipole_in_basis( np.array(dipole) * ATOMIC_TO_ANGS_EL * scale_factor, ev_dipole, ev))) visualize_system(system) visualize_system(system, dipole='s1')