docs: def _check_optimization_errors(self):
          """
          Parses three potential optimization errors: failing to converge within the allowed number
          of optimization cycles, failure to determine the lamda needed to continue, and inconsistent
          size of MO files due to a linear dependence in the AO basis.
          """
          if read_pattern(
                  self.text, {
                      "key": r"MAXIMUM OPTIMIZATION CYCLES REACHED"
                  },
                  terminate_on_match=True).get('key') == [[]]:
              self.data["errors"] += ["out_of_opt_cycles"]
          elif read_pattern(
                  self.text, {
                      "key": r"UNABLE TO DETERMINE Lamda IN FormD"
                  },
                  terminate_on_match=True).get('key') == [[]]:
              self.data["errors"] += ["unable_to_determine_lamda"]
          elif read_pattern(
                  self.text, {
                      "key": r"Inconsistent size for SCF MO coefficient file"
                  },
                  terminate_on_match=True).get('key') == [[]]:
              self.data["errors"] += ["linear_dependent_basis"]