10 #ifndef ROL_NEW_CONSTRAINT_MANAGER_H
11 #define ROL_NEW_CONSTRAINT_MANAGER_H
15 #include <unordered_map>
26 template<
typename Real>
27 struct ConstraintData {
31 const Ptr<BoundConstraint<Real>>
bounds;
41 template<
typename Real>
44 Ptr<Constraint<Real>>
con_;
52 Ptr<BoundConstraint<Real>>
bnd_;
54 std::vector<Ptr<Constraint<Real>>>
cvec_;
55 std::vector<Ptr<Vector<Real>>>
lvec_;
56 std::vector<Ptr<Vector<Real>>>
rvec_;
57 std::vector<Ptr<Constraint<Real>>>
lcvec_;
58 std::vector<Ptr<Vector<Real>>>
llvec_;
59 std::vector<Ptr<Vector<Real>>>
lrvec_;
60 std::vector<Ptr<Vector<Real>>>
psvec_;
61 std::vector<Ptr<Vector<Real>>>
dsvec_;
62 std::vector<Ptr<BoundConstraint<Real>>>
sbnd_;
Ptr< Vector< Real > > multiplier
void resetSlackVariables(void)
std::vector< Ptr< Vector< Real > > > rvec_
std::vector< Ptr< Vector< Real > > > llvec_
const Ptr< BoundConstraint< Real > > bounds
Ptr< Constraint< Real > > linear_con_
std::vector< Ptr< Vector< Real > > > lvec_
const Ptr< Constraint< Real > > getLinearConstraint(void) const
Ptr< BoundConstraint< Real > > bnd_
const Ptr< Vector< Real > > multiplier
NewConstraintManager(const std::unordered_map< std::string, ConstraintData< Real >> &con, const Ptr< Vector< Real >> &xprim, const Ptr< Vector< Real >> &xdual, const Ptr< BoundConstraint< Real >> &bnd=nullPtr)
std::vector< Ptr< BoundConstraint< Real > > > sbnd_
Defines the linear algebra or vector space interface.
ConstraintData(const Ptr< Constraint< Real >> &con, const Ptr< Vector< Real >> &mul, const Ptr< Vector< Real >> &res=nullPtr, const Ptr< BoundConstraint< Real >> &bnd=nullPtr)
Ptr< Vector< Real > > xdual_
void initializeSlackVariable(const Ptr< Constraint< Real >> &con, const Ptr< BoundConstraint< Real >> &cbnd, const Ptr< Vector< Real >> &s, const Ptr< Vector< Real >> &x) const
Provides a wrapper for multiple constraints.
virtual ~NewConstraintManager(void)
const Ptr< Vector< Real > > getMultiplier(void) const
const Ptr< Vector< Real > > getOptVector(void) const
std::vector< bool > isLinearInequality_
const Ptr< Vector< Real > > residual
Ptr< Vector< Real > > mul_
const Ptr< Vector< Real > > getLinearMultiplier(void) const
Ptr< Constraint< Real > > con_
std::vector< Ptr< Vector< Real > > > psvec_
bool hasInequality(void) const
Ptr< Vector< Real > > linear_res_
Ptr< Vector< Real > > linear_mul_
Ptr< BoundConstraint< Real > > bounds
void initialize(const std::unordered_map< std::string, ConstraintData< Real >> &input_con, const Ptr< Vector< Real >> &xprim, const Ptr< Vector< Real >> &xdual, const Ptr< BoundConstraint< Real >> &bnd)
const Ptr< Vector< Real > > getDualOptVector(void) const
Ptr< Vector< Real > > residual
std::vector< Ptr< Constraint< Real > > > lcvec_
std::vector< bool > isInequality_
Ptr< Vector< Real > > res_
const Ptr< Vector< Real > > getResidual(void) const
Provides the interface to apply upper and lower bound constraints.
const Ptr< Vector< Real > > getLinearResidual(void) const
const Ptr< Constraint< Real > > getConstraint(void) const
Ptr< Vector< Real > > xprim_
Ptr< Constraint< Real > > constraint
const Ptr< BoundConstraint< Real > > getBoundConstraint(void) const
std::vector< Ptr< Constraint< Real > > > cvec_
Defines the general constraint operator interface.
std::vector< Ptr< Vector< Real > > > lrvec_
const Ptr< Constraint< Real > > constraint
std::vector< Ptr< Vector< Real > > > dsvec_