docs: def process_killed_run(self, dir_name):
          """
          Process a killed vasp run.
          """
          fullpath = os.path.abspath(dir_name)
          logger.info("Processing Killed run " + fullpath)
          d = {"dir_name": fullpath, "state": "killed", "oszicar": {}}
  
          for f in os.listdir(dir_name):
              filename = os.path.join(dir_name, f)
              if fnmatch(f, "INCAR*"):
                  try:
                      incar = Incar.from_file(filename)
                      d["incar"] = incar.as_dict()
                      d["is_hubbard"] = incar.get("LDAU", False)
                      if d["is_hubbard"]:
                          us = np.array(incar.get("LDAUU", []))
                          js = np.array(incar.get("LDAUJ", []))
                          if sum(us - js) == 0:
                              d["is_hubbard"] = False
                              d["hubbards"] = {}
                      else:
                          d["hubbards"] = {}
                      if d["is_hubbard"]:
                          d["run_type"] = "GGA+U"
                      elif incar.get("LHFCALC", False):
                          d["run_type"] = "HF"
                      else:
                          d["run_type"] = "GGA"
                  except Exception as ex:
                      print(str(ex))
                      logger.error("Unable to parse INCAR for killed run {}."
                                   .format(dir_name))
              elif fnmatch(f, "KPOINTS*"):
                  try:
                      kpoints = Kpoints.from_file(filename)
                      d["kpoints"] = kpoints.as_dict()
                  except:
                      logger.error("Unable to parse KPOINTS for killed run {}."
                                   .format(dir_name))
              elif fnmatch(f, "POSCAR*"):
                  try:
                      s = Poscar.from_file(filename).structure
                      comp = s.composition
                      el_amt = s.composition.get_el_amt_dict()
                      d.update({"unit_cell_formula": comp.as_dict(),
                                "reduced_cell_formula": comp.to_reduced_dict,
                                "elements": list(el_amt.keys()),
                                "nelements": len(el_amt),
                                "pretty_formula": comp.reduced_formula,
                                "anonymous_formula": comp.anonymized_formula,
                                "nsites": comp.num_atoms,
                                "chemsys": "-".join(sorted(el_amt.keys()))})
                      d["poscar"] = s.as_dict()
                  except:
                      logger.error("Unable to parse POSCAR for killed run {}."
                                   .format(dir_name))
              elif fnmatch(f, "POTCAR*"):
                  try:
                      potcar = Potcar.from_file(filename)
                      d["pseudo_potential"] = {
                          "functional": potcar.functional.lower(),
                          "pot_type": "paw",
                          "labels": potcar.symbols}
                  except:
                      logger.error("Unable to parse POTCAR for killed run in {}."
                                   .format(dir_name))
              elif fnmatch(f, "OSZICAR"):
                  try:
                      d["oszicar"]["root"] = \
                          Oszicar(os.path.join(dir_name, f)).as_dict()
                  except:
                      logger.error("Unable to parse OSZICAR for killed run in {}."
                                   .format(dir_name))
              elif re.match("relax\d", f):
                  if os.path.exists(os.path.join(dir_name, f, "OSZICAR")):
                      try:
                          d["oszicar"][f] = Oszicar(
                              os.path.join(dir_name, f, "OSZICAR")).as_dict()
                      except:
                          logger.error("Unable to parse OSZICAR for killed "
                                       "run in {}.".format(dir_name))
          return d