Exemple #1
0
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
Exemple #2
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
Exemple #3
0
    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)
Exemple #4
0
    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)
Exemple #5
0
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)
Exemple #6
0
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)