def test_tdho_caching(): l = 12 pre_cache = os.listdir() os.environ["QS_CACHE_TDHO"] = "1" u = get_coulomb_elements(l) post_cache = os.listdir() assert len(set(post_cache) - set(pre_cache)) == 1 u_2 = get_coulomb_elements(l) np.testing.assert_allclose(u, u_2) filename = (set(post_cache) - set(pre_cache)).pop() os.remove(filename) assert len(set(os.listdir()) - set(pre_cache)) == 0
def test_two_body_symmetry(): l = 12 u = get_coulomb_elements(l) for p in range(l): for q in range(l): for r in range(l): for s in range(l): assert abs(u[p, q, r, s] - u[q, p, s, r]) < 1e-8
def setup_basis(self): self._h = self.omega * get_one_body_elements(self.l) self._u = np.sqrt(self.omega) * get_coulomb_elements( self.l, verbose=self.verbose) self._s = np.eye(self.l) self.setup_spf() self.construct_position_integrals() if self.np is not np: self.change_module(self.np)
def setup_system( self, add_spin=True, anti_symmetrize=True, verbose=True, cast_to_complex=True, ): self._h = self.omega * get_one_body_elements(self.l // 2) self._u = np.sqrt(self.omega) * get_coulomb_elements(self.l // 2, verbose=verbose) self._s = np.eye(self.l // 2) self.setup_spf() self.construct_dipole_moment() if cast_to_complex: self.cast_to_complex() if self.np is not np: self.change_module() if add_spin: self.change_to_spin_orbital_basis(anti_symmetrize=anti_symmetrize)
def test_antisymmetric_two_body_elements(u): l = len(u) _u = anti_symmetrize_u( add_spin_two_body(get_coulomb_elements(l // 2), np=np)) np.testing.assert_allclose(u, _u, atol=1e-6, rtol=1e-6)
def test_two_body_elements(orbital_integrals): l = len(orbital_integrals) oi = get_coulomb_elements(l) np.testing.assert_allclose(orbital_integrals, oi, atol=1e-6, rtol=1e-6)