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