code: def solve(self, solver_klass=None):
          
          # Start the clock.
          t0 = time()
  
          # Build an OPF model with variables and constraints.
          om = self._construct_opf_model(self.case)
          if om is None:
              return {"converged": False, "output": {"message": "No Ref Bus."}}
  
          # Call the specific solver.
  #        if self.opt["verbose"]:
  #            print '\nPYLON Version %s, %s', "0.4.2", "April 2010"
          if solver_klass is not None:
              result = solver_klass(om, opt=self.opt).solve()
          elif self.dc:
  #            if self.opt["verbose"]:
  #                print ' -- DC Optimal Power Flow\n'
              result = DCOPFSolver(om, opt=self.opt).solve()
          else:
  #            if self.opt["verbose"]:
  #                print ' -- AC Optimal Power Flow\n'
              result = PIPSSolver(om, opt=self.opt).solve()
  
          result["elapsed"] = time() - t0
  
          if self.opt.has_key("verbose"):
              if self.opt["verbose"]:
                  logger.info("OPF completed in %.3fs." % result["elapsed"])
  
          return result
docs: Solves an optimal power flow and returns a results dictionary.