def METHOD_NAME(self, rc):
    if os.path.exists(self._results_file):
        return super(IPOPT, self).METHOD_NAME(rc)
    else:
        res = SolverResults()
        res.solver.status = SolverStatus.warning
        res.solver.termination_condition = TerminationCondition.other
        if os.path.exists(self._log_file):
            with open(self._log_file) as f:
                for line in f:
                    if "TOO_FEW_DEGREES_OF_FREEDOM" in line:
                        res.solver.message = line.split(':')[2].strip()
                        assert "degrees of freedom" in res.solver.message
        return res