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)
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)
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)
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)