Example #1
0
    def test_radial_methods(self):
        cache_numerov = pi.MatrixElementCache()
        cache_numerov.setMethod(pi.NUMEROV)
        cache_whittaker = pi.MatrixElementCache()
        cache_whittaker.setMethod(pi.WHITTAKER)

        state = pi.StateOne("Rb", 42, 0, 1 / 2, 1 / 2)
        for kappa in range(10):
            radial_numerov = cache_numerov.getRadial(state, state, kappa)
            radial_whittaker = cache_whittaker.getRadial(state, state, kappa)
            self.assertAlmostEqual(radial_numerov, radial_whittaker, places=5)

        self.assertEqual(cache_numerov.size(), 10)
        self.assertEqual(cache_whittaker.size(), 10)
Example #2
0
    def test_dipoledb(self):
        cache = pi.MatrixElementCache()
        cache.loadElectricDipoleDB(self.dipoledb_path, "Rb")
        cache_size = cache.size()
        self.assertGreater(cache_size, 0)

        cache_comparison = pi.MatrixElementCache()
        cache_comparison_size = cache_comparison.size()
        self.assertEqual(cache_comparison_size, 0)

        state_f = pi.StateOne("Rb", 8, 0, 1 / 2, 1 / 2)
        state_i = pi.StateOne("Rb", 8, 1, 1 / 2, 1 / 2)
        radial = cache.getRadial(state_f, state_i, 1)
        radial_comparison = cache_comparison.getRadial(state_f, state_i, 1)
        self.assertAlmostEqual(radial, -0.0016741253849814623, places=12)
        self.assertAlmostEqual(radial, radial_comparison, places=5)
        self.assertEqual(cache.size(), cache_size)
        self.assertEqual(cache_comparison.size(), cache_comparison_size + 1)
Example #3
0
    def test_combined_fields(self):
        cache = pi.MatrixElementCache()

        # Set up SystemOne
        system_one = pi.SystemOne("Rb", cache)
        system_one.restrictEnergy(-1077.243011609127, -939.9554235203701)
        system_one.restrictN(57, 63)
        system_one.restrictL(0, 3)
        system_one.setConservedMomentaUnderRotation([-0.5])
        system_one.setEfield((0, 0, 0.7))
        system_one.setBfield((0, 0, -8.8))

        # Diagonalize the system
        system_one.diagonalize()

        # Compare results
        energies = system_one.getHamiltonian().diagonal()
        self.assertAlmostEqual(energies[13], -1000.26793709, places=4)
Example #4
0
 def test_defectdb(self):
     cache = pi.MatrixElementCache()
     cache.setDefectDB(self.defectdb_path)
    def setUp(self):
        # Create cache directory
        self.path_cache = tempfile.mkdtemp()

        # Set up cache
        self.cache = pi.MatrixElementCache(self.path_cache)
 def setUp(self):
     self.cache_path = tempfile.mkdtemp()
     self.cache = pi.MatrixElementCache(self.cache_path)