ObjectiveFromBoundConstraint( const BoundConstraint<Real> &bc ) :
   lo_( bc.getLowerVectorRCP() ),
   up_( bc.getUpperVectorRCP() )
   { 
     a_ = lo_->clone();
     b_ = up_->clone();
   }
  ObjectiveFromBoundConstraint( const BoundConstraint<Real> &bc,
                                Teuchos::ParameterList &parlist ) :
    lo_( bc.getLowerVectorRCP() ),
    up_( bc.getUpperVectorRCP() ) {

    a_ = lo_->clone();
    b_ = up_->clone();

    std::string bfstring = parlist.sublist("Barrier Function").get("Type","Logarithmic");
    btype_ = StringToEBarrierType(bfstring); 
  }