ROL
ROL_TypeE_StabilizedLCLAlgorithm.hpp
Go to the documentation of this file.
1// @HEADER
2// *****************************************************************************
3// Rapid Optimization Library (ROL) Package
4//
5// Copyright 2014 NTESS and the ROL contributors.
6// SPDX-License-Identifier: BSD-3-Clause
7// *****************************************************************************
8// @HEADER
9
10#ifndef ROL_TYPEE_STABILIZEDLCLALGORITHM_H
11#define ROL_TYPEE_STABILIZEDLCLALGORITHM_H
12
17#include "ROL_Secant.hpp"
18
24namespace ROL {
25namespace TypeE {
26
27
28template<typename Real>
30private:
31 const Ptr<Secant<Real>> secant_;
32 ParameterList list_;
33 // Lagrange multiplier update
38 Real sigma_;
41 // Optimality tolerance update
46 // Feasibility tolerance update
51 // Subproblem information
52 int maxit_;
54 std::string subStep_;
59 // Scaling information
61 Real fscale_;
62 Real cscale_;
63 // Verbosity flag
67
68 using TypeE::Algorithm<Real>::state_;
69 using TypeE::Algorithm<Real>::status_;
70
72 const Vector<Real> &g,
73 const Vector<Real> &l,
74 const Vector<Real> &c,
77 std::ostream &outStream = std::cout);
78
79public:
80
81 StabilizedLCLAlgorithm(ParameterList &list, const Ptr<Secant<Real>> &secant = nullPtr);
82
83 using TypeE::Algorithm<Real>::run;
84 virtual void run( Problem<Real> &problem,
85 std::ostream &outStream = std::cout) override;
86
87 virtual void run( Vector<Real> &x,
88 const Vector<Real> &g,
89 Objective<Real> &obj,
90 Constraint<Real> &econ,
91 Vector<Real> &emul,
92 const Vector<Real> &eres,
93 std::ostream &outStream = std::cout) override;
94
95 virtual void writeHeader( std::ostream& os ) const override;
96
97 virtual void writeName( std::ostream& os ) const override;
98
99 virtual void writeOutput( std::ostream& os, const bool print_header = false ) const override;
100
101}; // class ROL::TypeE::StabilizedLCLAlgorithm
102
103} // namespace TypeE
104} // namespace ROL
105
107
108#endif
Defines the general constraint operator interface.
Provides the interface to evaluate the elastic augmented Lagrangian.
Provides the interface to evaluate objective functions.
Provides interface for and implements limited-memory secant operators.
const Ptr< AlgorithmState< Real > > state_
const Ptr< CombinedStatusTest< Real > > status_
Provides an interface to run equality constrained optimization algorithms using Stabilized LCL.
void initialize(Vector< Real > &x, const Vector< Real > &g, const Vector< Real > &l, const Vector< Real > &c, ElasticObjective< Real > &alobj, Constraint< Real > &con, std::ostream &outStream=std::cout)
virtual void writeOutput(std::ostream &os, const bool print_header=false) const override
Print iterate status.
virtual void writeHeader(std::ostream &os) const override
Print iterate header.
virtual void run(Problem< Real > &problem, std::ostream &outStream=std::cout) override
Run algorithm on equality constrained problems (Type-E). This is the primary Type-E interface.
virtual void writeName(std::ostream &os) const override
Print step name.
Defines the linear algebra or vector space interface.