def test_init(self): test_dir = os.path.join(os.path.dirname(__file__), "..", "..", "..", "test_files") analysis = BaderAnalysis(os.path.join(test_dir, "CHGCAR.Fe3O4"), os.path.join(test_dir, "POTCAR.Fe3O4")) self.assertEqual(len(analysis.data), 14) self.assertAlmostEqual(analysis.data[0]["charge"], 6.1485) self.assertAlmostEqual(analysis.nelectrons, 96) self.assertAlmostEqual(analysis.vacuum_charge, 0) ans = [ -1.8515, -1.8132, -1.8132, -1.5562, -1.8132, -1.8515, 1.3369, 1.3378, 1.3373, 1.3374, 1.3374, 1.3369, 1.3373, 1.3378, ] for i in range(14): self.assertAlmostEqual(ans[i], analysis.get_charge_transfer(i)) s = analysis.get_oxidation_state_decorated_structure() self.assertAlmostEqual(s[0].specie.oxi_state, -1.8515)
def test_init(self): # test with reference file analysis = BaderAnalysis( chgcar_filename=os.path.join(PymatgenTest.TEST_FILES_DIR, "CHGCAR.Fe3O4"), potcar_filename=os.path.join(PymatgenTest.TEST_FILES_DIR, "POTCAR.Fe3O4"), chgref_filename=os.path.join(PymatgenTest.TEST_FILES_DIR, "CHGCAR.Fe3O4_ref"), ) self.assertEqual(len(analysis.data), 14) self.assertAlmostEqual(analysis.data[0]["charge"], 6.6136782, 3) self.assertEqual(analysis.data[0]["charge"], analysis.get_charge(0)) self.assertAlmostEqual(analysis.nelectrons, 96) self.assertAlmostEqual(analysis.vacuum_charge, 0) ans = [ -1.3863218, -1.3812175, -1.3812175, -1.2615902, -1.3812175, -1.3862971, 1.021523, 1.024357, 1.021523, 1.021523, 1.021523, 1.021523, 1.021523, 1.024357, ] for i in range(14): self.assertAlmostEqual(ans[i], analysis.get_charge_transfer(i), 3) self.assertEqual(analysis.get_partial_charge(0), -analysis.get_charge_transfer(0)) s = analysis.get_oxidation_state_decorated_structure() self.assertAlmostEqual(s[0].specie.oxi_state, 1.3863218, 3) # make sure bader still runs without reference file analysis = BaderAnalysis(chgcar_filename=os.path.join( PymatgenTest.TEST_FILES_DIR, "CHGCAR.Fe3O4")) self.assertEqual(len(analysis.data), 14) # Test Cube file format parsing analysis = BaderAnalysis(cube_filename=os.path.join( PymatgenTest.TEST_FILES_DIR, "bader/elec.cube.gz")) self.assertEqual(len(analysis.data), 9)
def test_init(self): test_dir = os.path.join(os.path.dirname(__file__), "..", "..", "..", 'test_files') analysis = BaderAnalysis(os.path.join(test_dir, "CHGCAR.Fe3O4"), os.path.join(test_dir, "POTCAR.Fe3O4")) self.assertEqual(len(analysis.data), 14) self.assertAlmostEqual(analysis.data[0]["charge"], 6.1485) self.assertAlmostEqual(analysis.nelectrons, 96) self.assertAlmostEqual(analysis.vacuum_charge, 0) ans = [-1.8515, -1.8132, -1.8132, -1.5562, -1.8132, -1.8515, 1.3369, 1.3378, 1.3373, 1.3374, 1.3374, 1.3369, 1.3373, 1.3378] for i in range(14): self.assertAlmostEqual(ans[i], analysis.get_charge_transfer(i))