def test_of_correlation_function_addition(self): """(CorrelationFunction) Testing addition of CorrelationFunction objects """ t = TimeAxis(0.0, 1000, 1.0) params1 = dict(ftype="OverdampedBrownian", reorg = 30.0, cortime = 100.0, T = 300.0) params2 = dict(ftype="OverdampedBrownian", reorg = 40.0, cortime = 100.0, T = 300.0) with energy_units("1/cm"): f1 = CorrelationFunction(t, params1) f2 = CorrelationFunction(t, params2) # # normal addition # f = f1 + f2 sum_data = f1.data + f2.data sum_lamb = f1.lamb + f2.lamb sum_cutoff = max(f1.cutoff_time, f2.cutoff_time) sum_temp = f1.temperature self.assertEqual(f.lamb, sum_lamb) numpy.testing.assert_allclose(f.data, sum_data) self.assertEqual(f.cutoff_time, sum_cutoff) self.assertEqual(f.temperature, sum_temp) #self.assertFalse(f.is_analytical()) self.assertTrue(f._is_composed) self.assertFalse(f._is_empty) # # inplace addition by function # f1.add_to_data(f2) self.assertEqual(f1.lamb, sum_lamb) numpy.testing.assert_allclose(f1.data, sum_data) self.assertEqual(f1.cutoff_time, sum_cutoff) self.assertEqual(f1.temperature, sum_temp) #self.assertFalse(f1.is_analytical()) self.assertTrue(f1._is_composed) self.assertFalse(f1._is_empty) # # inplace addition by += operator # with energy_units("1/cm"): f1 = CorrelationFunction(t, params1) # new object fs = f1 f1 += f2 self.assertEqual(f1.lamb, sum_lamb) numpy.testing.assert_allclose(f1.data, sum_data) self.assertEqual(f1.cutoff_time, sum_cutoff) self.assertEqual(f1.temperature, sum_temp) #self.assertFalse(f1.is_analytical()) self.assertTrue(f1._is_composed) self.assertFalse(f1._is_empty) # test if inplace addition really happend self.assertEqual(fs, f1)
# System-bath interaction # tsbi = TimeAxis(0.0, 3 * Nr, 2.0) params = dict(ftype="OverdampedBrownian", T=300, reorg=70.0, cortime=100.0) with energy_units('1/cm'): cf = CorrelationFunction(tsbi, params) params2 = dict(ftype="UnderdampedBrownian", T=300, reorg=10.0, freq=150.0, gamma=1.0 / 10000.0) with energy_units('1/cm'): cf2 = CorrelationFunction(tsbi, params2) cf.add_to_data(cf2) # # Set system-bath interaction # mol1.set_transition_environment((0, 1), cf) mol2.set_transition_environment((0, 1), cf) # # Creating aggregate # agg = Aggregate("Dimer", molecules=[mol1, mol2]) agg.set_coupling_by_dipole_dipole() with energy_units("1/cm"): print(agg.get_resonance_coupling(0, 1)) agg.build(mult=2)
lab.set_laser_polarizations(a_0,a_0,a_0,a_0) # # System-bath interaction # tsbi = TimeAxis(0.0, 3*Nr, 2.0) params = dict(ftype="OverdampedBrownian", T=300, reorg=70.0, cortime=100.0) with energy_units('1/cm'): cf = CorrelationFunction(tsbi, params) params2 = dict(ftype="UnderdampedBrownian", T=300, reorg=10.0, freq=150.0, gamma=1.0/10000.0) with energy_units('1/cm'): cf2 = CorrelationFunction(tsbi, params2) cf.add_to_data(cf2) # # Set system-bath interaction # mol1.set_transition_environment((0,1),cf) mol2.set_transition_environment((0,1),cf) # # Creating aggregate # agg = Aggregate(name="Dimer", molecules=[mol1, mol2]) agg.set_coupling_by_dipole_dipole() with energy_units("1/cm"): print(agg.get_resonance_coupling(0,1)) agg.build(mult=2)