Cyclopts

This is a PR of the current changes to Cyclus required for my present work (I wanted to get one in before it got too large). This PR is largely comprised of:

* updating the OSI header files from an errant sed 's/model/agent/g'
* fixed a bug in exchange graph translation that did not account for the exclusivity flag
* all solvers now return objective values
* the calculation of costs associated with unmet demand are now shared by all solvers through the ExchangeSolver API
* the prog solver now uses a cbc CLI-like solve (it's much faster)
* the greedy solver now copies any state of exchange graph that it mutates
On Fri, Aug 1, 2014 at 1:10 PM, Anthony Scopatz <notifications@github.com>
wrote:

> In src/solver_factory.cc:
>
> > +      }
> > +    }
> > +    return noAction;
> > +  }
> > +
> > +  inline double time() const {return time_;}
> > +  inline double obj() const {return obj_;}
> > +  inline bool found() const {return found_;}
> > +
> > + private:
> > +  double obj_, time_;
> > +  bool found_;
> > +};
> > +
> > +
> > +// 10800 s = 3 hrs * 60 min/hr * 60 s/min
>
> This kind of variable should be #defined somewhere rather than being
> hard-coded in multiple locations. CYCLUS_SOLVER_TIMEOUT might be a
> reasonable name. Better still, it would be configurable by the user at
> runtime, though a #define would work for now.
>
In the (near?) future, I imagine there being many user-configurable
options, this being one of them. I'll #defined for now.

>  —
> Reply to this email directly or view it on GitHub
> <https://github.com/cyclus/cyclus/pull/978/files#r15710171>.
>



-- 
Matthew Gidden
Ph.D. Candidate, Nuclear Engineering
The University of Wisconsin -- Madison
Ph. 225.892.3192