Esempio n. 1
0
 def test_setattr_standard_constructor(self):
     '''Testing overidden __setattr__ function in FCSSolver which changes __cache_is_stale flag.'''
     srl_solver = utils.setup_srl_solver(1., 1.)
     self.assertTrue(srl_solver._FCSSolver__cache_is_stale) # check __cache_is_stale is True on initialization
     
     # change of variable in srl_solver.__watch_variables should trigger stale cache
     srl_solver._FCSSolver__cache_is_stale = False
     self.assertFalse(srl_solver._FCSSolver__cache_is_stale)
     srl_solver.L = utils.reduced_srl_liouvillian(2., 2.)
     self.assertTrue(srl_solver._FCSSolver__cache_is_stale)
     
     srl_solver._FCSSolver__cache_is_stale = False
     self.assertFalse(srl_solver._FCSSolver__cache_is_stale)
     srl_solver.jump_op = np.array([[0,0],[1,0]])
     self.assertTrue(srl_solver._FCSSolver__cache_is_stale)
     
     srl_solver._FCSSolver__cache_is_stale = False
     self.assertFalse(srl_solver._FCSSolver__cache_is_stale)
     srl_solver.pops = np.array([1,0])
     self.assertTrue(srl_solver._FCSSolver__cache_is_stale)
     
     # variables not in srl_solver.__watch_variables shouldn't trigger stale cache
     srl_solver._FCSSolver__cache_is_stale = False
     self.assertFalse(srl_solver._FCSSolver__cache_is_stale)
     srl_solver.H = 8
     self.assertFalse(srl_solver._FCSSolver__cache_is_stale)
    def test_setattr_standard_constructor(self):
        '''Testing overidden __setattr__ function in FCSSolver which changes __cache_is_stale flag.'''
        srl_solver = utils.setup_srl_solver(1., 1.)
        self.assertTrue(srl_solver._FCSSolver__cache_is_stale
                        )  # check __cache_is_stale is True on initialization

        # change of variable in srl_solver.__watch_variables should trigger stale cache
        srl_solver._FCSSolver__cache_is_stale = False
        self.assertFalse(srl_solver._FCSSolver__cache_is_stale)
        srl_solver.L = utils.reduced_srl_liouvillian(2., 2.)
        self.assertTrue(srl_solver._FCSSolver__cache_is_stale)

        srl_solver._FCSSolver__cache_is_stale = False
        self.assertFalse(srl_solver._FCSSolver__cache_is_stale)
        srl_solver.jump_op = np.array([[0, 0], [1, 0]])
        self.assertTrue(srl_solver._FCSSolver__cache_is_stale)

        srl_solver._FCSSolver__cache_is_stale = False
        self.assertFalse(srl_solver._FCSSolver__cache_is_stale)
        srl_solver.pops = np.array([1, 0])
        self.assertTrue(srl_solver._FCSSolver__cache_is_stale)

        # variables not in srl_solver.__watch_variables shouldn't trigger stale cache
        srl_solver._FCSSolver__cache_is_stale = False
        self.assertFalse(srl_solver._FCSSolver__cache_is_stale)
        srl_solver.H = 8
        self.assertFalse(srl_solver._FCSSolver__cache_is_stale)
Esempio n. 3
0
 def test_standard_constructor(self):
     '''Test FCSSolver __init__ method initializes main attributes properly.'''
     Gamma_L = 1.; Gamma_R = 1.
     solver = utils.setup_srl_solver(Gamma_L, Gamma_R)
     npt.assert_allclose(solver.L, utils.reduced_srl_liouvillian(Gamma_L, Gamma_R))
     npt.assert_allclose(solver.jump_op, np.array([[0,1],[0,0]]))
     npt.assert_allclose(solver.pops, np.array([1,1]))
     self.assertFalse(solver.from_hilbert_space)
 def test_standard_constructor(self):
     '''Test FCSSolver __init__ method initializes main attributes properly.'''
     Gamma_L = 1.
     Gamma_R = 1.
     solver = utils.setup_srl_solver(Gamma_L, Gamma_R)
     npt.assert_allclose(solver.L,
                         utils.reduced_srl_liouvillian(Gamma_L, Gamma_R))
     npt.assert_allclose(solver.jump_op, np.array([[0, 1], [0, 0]]))
     npt.assert_allclose(solver.pops, np.array([1, 1]))
     self.assertFalse(solver.from_hilbert_space)