MoreauYosidaPenalty(const Teuchos::RCP<Objective<Real> > &obj, const Teuchos::RCP<BoundConstraint<Real> > &con, const ROL::Vector<Real> &x, const Real mu = 1.0) : obj_(obj), con_(con), mu_(mu), fval_(0), isConEvaluated_(false), nfval_(0), ngval_(0) { g_ = x.dual().clone(); l_ = x.clone(); l1_ = x.clone(); dl1_ = x.dual().clone(); u_ = x.clone(); u1_ = x.clone(); du1_ = x.dual().clone(); xlam_ = x.clone(); v_ = x.clone(); dv_ = x.dual().clone(); dv2_ = x.dual().clone(); lam_ = x.clone(); tmp_ = x.clone(); con_->setVectorToLowerBound(*l_); con_->setVectorToUpperBound(*u_); lam_->zero(); //lam_->set(*u_); //lam_->plus(*l_); //lam_->scale(0.5); }
AugmentedLagrangian(Objective<Real> &obj, EqualityConstraint<Real> &con, const ROL::Vector<Real> &x, const ROL::Vector<Real> &c) : mu_(0.0), fval_(0.0), isConEvaluated_(false), ncval_(0), nfval_(0), ngval_(0) { obj_ = Teuchos::rcp(&obj, false); con_ = Teuchos::rcp(&con, false); c_ = c.clone(); dc1_ = x.dual().clone(); dc2_ = c.clone(); lam_ = c.dual().clone(); dlam_ = c.dual().clone(); flag_ = true; HessianLevel_ = 1; }