docs: def as_dict(self):
          "json friendly dict representation"
          d = {}
          d["@module"] = self.__class__.__module__
          d["@class"] = self.__class__.__name__
          d["spin_mode"] = self.spin_mode.as_dict()
          d["smearing"] = self.smearing.as_dict()
          d["algorithm"] = self.algorithm.as_dict() if self.algorithm else None
          d["nband"] = self.nband
          d["fband"] = self.fband
          d["charge"] = self.charge
          d["comment"] = self.comment
          return d