44#ifndef ROL_CONSTRAINT_ASSEMBLER_H
45#define ROL_CONSTRAINT_ASSEMBLER_H
49#include <unordered_map>
60template<
typename Real>
65 const Ptr<BoundConstraint<Real>>
bounds;
75template<
typename Real>
78 Ptr<Constraint<Real>>
con_;
86 Ptr<BoundConstraint<Real>>
bnd_;
88 std::vector<Ptr<Constraint<Real>>>
cvec_;
89 std::vector<Ptr<Vector<Real>>>
lvec_;
90 std::vector<Ptr<Vector<Real>>>
rvec_;
91 std::vector<Ptr<Constraint<Real>>>
lcvec_;
92 std::vector<Ptr<Vector<Real>>>
llvec_;
93 std::vector<Ptr<Vector<Real>>>
lrvec_;
94 std::vector<Ptr<Vector<Real>>>
psvec_;
95 std::vector<Ptr<Vector<Real>>>
dsvec_;
96 std::vector<Ptr<BoundConstraint<Real>>>
sbnd_;
Provides the interface to apply upper and lower bound constraints.
Provides a wrapper for multiple constraints.
std::vector< Ptr< Vector< Real > > > lvec_
void initializeSlackVariable(const Ptr< Constraint< Real > > &con, const Ptr< BoundConstraint< Real > > &cbnd, const Ptr< Vector< Real > > &s, const Ptr< Vector< Real > > &x) const
const Ptr< Constraint< Real > > & getLinearConstraint() const
std::vector< bool > isInequality_
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)
Ptr< Constraint< Real > > con_
Ptr< BoundConstraint< Real > > bnd_
void resetSlackVariables()
std::vector< Ptr< Vector< Real > > > psvec_
std::vector< Ptr< Constraint< Real > > > cvec_
Ptr< Vector< Real > > mul_
Ptr< Constraint< Real > > linear_con_
const Ptr< Vector< Real > > & getMultiplier() const
std::vector< Ptr< Vector< Real > > > dsvec_
virtual ~ConstraintAssembler()
std::vector< bool > isLinearInequality_
const Ptr< Vector< Real > > & getLinearResidual() const
const Ptr< Vector< Real > > & getDualOptVector() const
Ptr< Vector< Real > > linear_mul_
std::vector< Ptr< Vector< Real > > > rvec_
Ptr< Vector< Real > > xdual_
const Ptr< BoundConstraint< Real > > & getBoundConstraint() const
std::vector< Ptr< Vector< Real > > > llvec_
Ptr< Vector< Real > > linear_res_
Ptr< Vector< Real > > xprim_
std::vector< Ptr< BoundConstraint< Real > > > sbnd_
const Ptr< Constraint< Real > > & getConstraint() const
const Ptr< Vector< Real > > & getLinearMultiplier() const
Ptr< Vector< Real > > res_
std::vector< Ptr< Vector< Real > > > lrvec_
const Ptr< Vector< Real > > & getOptVector() const
bool hasInequality() const
std::vector< Ptr< Constraint< Real > > > lcvec_
const Ptr< Vector< Real > > & getResidual() const
Defines the general constraint operator interface.
Defines the linear algebra or vector space interface.
const Ptr< Constraint< Real > > constraint
const Ptr< BoundConstraint< Real > > bounds
const Ptr< Vector< Real > > residual
const Ptr< Vector< Real > > multiplier
ConstraintData(const Ptr< Constraint< Real > > &con, const Ptr< Vector< Real > > &mul, const Ptr< Vector< Real > > &res=nullPtr, const Ptr< BoundConstraint< Real > > &bnd=nullPtr)