ROL
ROL_StatusTestFactory.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_STATUSFACTORY_H
11#define ROL_STATUSFACTORY_H
12
13#include "ROL_Types.hpp"
14
15#include "ROL_ParameterList.hpp"
16#include "ROL_Ptr.hpp"
17
18#include "ROL_StatusTest.hpp"
22
23namespace ROL {
24 template<class Real>
26 public:
28
29 ROL::Ptr<StatusTest<Real> > getStatusTest(const std::string step,
30 ROL::ParameterList &parlist) {
31 EStep els = StringToEStep(step);
32 switch(els) {
33 case STEP_BUNDLE: return ROL::makePtr<BundleStatusTest<Real>>(parlist);
34 case STEP_AUGMENTEDLAGRANGIAN: return ROL::makePtr<ConstraintStatusTest<Real>>(parlist);
35 case STEP_COMPOSITESTEP: return ROL::makePtr<ConstraintStatusTest<Real>>(parlist);
36 case STEP_MOREAUYOSIDAPENALTY: return ROL::makePtr<ConstraintStatusTest<Real>>(parlist);
37 case STEP_INTERIORPOINT: return ROL::makePtr<ConstraintStatusTest<Real>>(parlist);
38 case STEP_LINESEARCH: return ROL::makePtr<StatusTest<Real>>(parlist);
39 case STEP_PRIMALDUALACTIVESET: return ROL::makePtr<StatusTest<Real>>(parlist);
40 case STEP_TRUSTREGION: return ROL::makePtr<StatusTest<Real>>(parlist);
41 case STEP_FLETCHER: return ROL::makePtr<FletcherStatusTest<Real>>(parlist);
42 default: return ROL::nullPtr;
43 }
44 }
45 };
46}
47
48#endif
Contains definitions of custom data types in ROL.
ROL::Ptr< StatusTest< Real > > getStatusTest(const std::string step, ROL::ParameterList &parlist)
@ STEP_PRIMALDUALACTIVESET
@ STEP_BUNDLE
@ STEP_AUGMENTEDLAGRANGIAN
@ STEP_LINESEARCH
@ STEP_COMPOSITESTEP
@ STEP_INTERIORPOINT
@ STEP_FLETCHER
@ STEP_MOREAUYOSIDAPENALTY
@ STEP_TRUSTREGION
EStep StringToEStep(std::string s)