示例#1
0
    def test_hdf5(self):
        chgcar = Chgcar.from_file(os.path.join(test_dir, "CHGCAR.NiO_SOC.gz"))
        chgcar.to_hdf5("chgcar_test.hdf5")
        import h5py
        with h5py.File("chgcar_test.hdf5", "r") as f:
            self.assertArrayAlmostEqual(np.array(f["vdata"]["total"]),
                                        chgcar.data["total"])
            self.assertArrayAlmostEqual(np.array(f["vdata"]["diff"]),
                                        chgcar.data["diff"])
            self.assertArrayAlmostEqual(np.array(f["lattice"]),
                                        chgcar.structure.lattice.matrix)
            self.assertArrayAlmostEqual(np.array(f["fcoords"]),
                                        chgcar.structure.frac_coords)
            for z in f["Z"]:
                self.assertIn(z, [Element.Ni.Z, Element.O.Z])

            for sp in f["species"]:
                self.assertIn(sp, ["Ni", "O"])

        chgcar2 = Chgcar.from_hdf5("chgcar_test.hdf5")
        self.assertArrayAlmostEqual(chgcar2.data["total"],
                                    chgcar.data["total"])

        os.remove("chgcar_test.hdf5")