Ejemplo n.º 1
0
 def get_chgcar(self, task_id):
     """
     Read the CHGCAR data into a PMG Chgcar object
     Args:
         task_id(int or str): the task_id containing the data
     Returns:
         chgcar: Chgcar object
     """
     obj_dict = self.get_data_from_maggma_or_gridfs(task_id, key="chgcar")
     return Chgcar.from_dict(obj_dict)
Ejemplo n.º 2
0
    def get_aeccar(self, task_id, check_valid=True):
        """
        Read the AECCAR0 + AECCAR2 grid_fs data into a Chgcar object
        Args:
            task_id(int or str): the task_id containing the gridfs metadata
            check_valid (bool): make sure that the aeccar is positive definite
        Returns:
            {"aeccar0" : Chgcar, "aeccar2" : Chgcar}: dict of Chgcar objects
        """

        obj_dict = self.get_data_from_maggma_or_gridfs(task_id, key="aeccar0")
        aeccar0 = Chgcar.from_dict(obj_dict)
        obj_dict = self.get_data_from_maggma_or_gridfs(task_id, key="aeccar2")
        aeccar2 = Chgcar.from_dict(obj_dict)

        if check_valid and (aeccar0.data["total"] +
                            aeccar2.data["total"]).min() < 0:
            ValueError(
                f"The AECCAR seems to be corrupted for task_id = {task_id}")

        return {"aeccar0": aeccar0, "aeccar2": aeccar2}