ROL
src
status
ROL_StatusTestFactory.hpp
Go to the documentation of this file.
1
// @HEADER
2
// ************************************************************************
3
//
4
// Rapid Optimization Library (ROL) Package
5
// Copyright (2014) Sandia Corporation
6
//
7
// Under terms of Contract DE-AC04-94AL85000, there is a non-exclusive
8
// license for use of this work by or on behalf of the U.S. Government.
9
//
10
// Redistribution and use in source and binary forms, with or without
11
// modification, are permitted provided that the following conditions are
12
// met:
13
//
14
// 1. Redistributions of source code must retain the above copyright
15
// notice, this list of conditions and the following disclaimer.
16
//
17
// 2. Redistributions in binary form must reproduce the above copyright
18
// notice, this list of conditions and the following disclaimer in the
19
// documentation and/or other materials provided with the distribution.
20
//
21
// 3. Neither the name of the Corporation nor the names of the
22
// contributors may be used to endorse or promote products derived from
23
// this software without specific prior written permission.
24
//
25
// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY
26
// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
27
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
28
// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE
29
// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
30
// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
31
// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
32
// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
33
// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
34
// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
35
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
36
//
37
// Questions? Contact lead developers:
38
// Drew Kouri (dpkouri@sandia.gov) and
39
// Denis Ridzal (dridzal@sandia.gov)
40
//
41
// ************************************************************************
42
// @HEADER
43
44
#ifndef ROL_STATUSFACTORY_H
45
#define ROL_STATUSFACTORY_H
46
47
#include "
ROL_Types.hpp
"
48
49
#include "ROL_ParameterList.hpp"
50
#include "ROL_Ptr.hpp"
51
52
#include "
ROL_StatusTest.hpp
"
53
#include "
ROL_BundleStatusTest.hpp
"
54
#include "
ROL_ConstraintStatusTest.hpp
"
55
#include "
ROL_FletcherStatusTest.hpp
"
56
57
namespace
ROL
{
58
template
<
class
Real>
59
class
StatusTestFactory
{
60
public
:
61
~StatusTestFactory
(
void
){}
62
63
ROL::Ptr<StatusTest<Real> >
getStatusTest
(
const
std::string step,
64
ROL::ParameterList &parlist) {
65
EStep
els =
StringToEStep
(step);
66
switch
(els) {
67
case
STEP_BUNDLE
:
return
ROL::makePtr<BundleStatusTest<Real>>(parlist);
68
case
STEP_AUGMENTEDLAGRANGIAN
:
return
ROL::makePtr<ConstraintStatusTest<Real>>(parlist);
69
case
STEP_COMPOSITESTEP
:
return
ROL::makePtr<ConstraintStatusTest<Real>>(parlist);
70
case
STEP_MOREAUYOSIDAPENALTY
:
return
ROL::makePtr<ConstraintStatusTest<Real>>(parlist);
71
case
STEP_INTERIORPOINT
:
return
ROL::makePtr<ConstraintStatusTest<Real>>(parlist);
72
case
STEP_LINESEARCH
:
return
ROL::makePtr<StatusTest<Real>>(parlist);
73
case
STEP_PRIMALDUALACTIVESET
:
return
ROL::makePtr<StatusTest<Real>>(parlist);
74
case
STEP_TRUSTREGION
:
return
ROL::makePtr<StatusTest<Real>>(parlist);
75
case
STEP_FLETCHER
:
return
ROL::makePtr<FletcherStatusTest<Real>>(parlist);
76
default
:
return
ROL::nullPtr;
77
}
78
}
79
};
80
}
81
82
#endif
ROL_BundleStatusTest.hpp
ROL_ConstraintStatusTest.hpp
ROL_FletcherStatusTest.hpp
ROL_StatusTest.hpp
ROL_Types.hpp
Contains definitions of custom data types in ROL.
ROL::StatusTestFactory
Definition
ROL_StatusTestFactory.hpp:59
ROL::StatusTestFactory::getStatusTest
ROL::Ptr< StatusTest< Real > > getStatusTest(const std::string step, ROL::ParameterList &parlist)
Definition
ROL_StatusTestFactory.hpp:63
ROL::StatusTestFactory::~StatusTestFactory
~StatusTestFactory(void)
Definition
ROL_StatusTestFactory.hpp:61
ROL
Definition
ROL_ElementwiseVector.hpp:61
ROL::EStep
EStep
Definition
ROL_Types.hpp:276
ROL::STEP_PRIMALDUALACTIVESET
@ STEP_PRIMALDUALACTIVESET
Definition
ROL_Types.hpp:282
ROL::STEP_BUNDLE
@ STEP_BUNDLE
Definition
ROL_Types.hpp:278
ROL::STEP_AUGMENTEDLAGRANGIAN
@ STEP_AUGMENTEDLAGRANGIAN
Definition
ROL_Types.hpp:277
ROL::STEP_LINESEARCH
@ STEP_LINESEARCH
Definition
ROL_Types.hpp:280
ROL::STEP_COMPOSITESTEP
@ STEP_COMPOSITESTEP
Definition
ROL_Types.hpp:279
ROL::STEP_INTERIORPOINT
@ STEP_INTERIORPOINT
Definition
ROL_Types.hpp:284
ROL::STEP_FLETCHER
@ STEP_FLETCHER
Definition
ROL_Types.hpp:285
ROL::STEP_MOREAUYOSIDAPENALTY
@ STEP_MOREAUYOSIDAPENALTY
Definition
ROL_Types.hpp:281
ROL::STEP_TRUSTREGION
@ STEP_TRUSTREGION
Definition
ROL_Types.hpp:283
ROL::StringToEStep
EStep StringToEStep(std::string s)
Definition
ROL_Types.hpp:391
Generated by
1.10.0