10#ifndef ROL_CONSTRAINT_ASSEMBLER_H
11#define ROL_CONSTRAINT_ASSEMBLER_H
15#include <unordered_map>
26template<
typename Real>
41template<
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_;
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.
Ptr< Constraint< Real > > constraint
Ptr< Vector< Real > > multiplier
Ptr< Vector< Real > > residual
Ptr< BoundConstraint< Real > > bounds
ConstraintData(const Ptr< Constraint< Real > > &con, const Ptr< Vector< Real > > &mul, const Ptr< Vector< Real > > &res=nullPtr, const Ptr< BoundConstraint< Real > > &bnd=nullPtr)