Tempus
Version of the Day
Time Integration
Tempus_WrapperModelEvaluatorPairIMEX_StaggeredFSA.hpp
Go to the documentation of this file.
1
// @HEADER
2
// ****************************************************************************
3
// Tempus: Copyright (2017) Sandia Corporation
4
//
5
// Distributed under BSD 3-clause license (See accompanying file Copyright.txt)
6
// ****************************************************************************
7
// @HEADER
8
9
#ifndef Tempus_ModelEvaluatorPairIMEX_StaggeredFSA_hpp
10
#define Tempus_ModelEvaluatorPairIMEX_StaggeredFSA_hpp
11
12
#include "
Tempus_SensitivityModelEvaluatorBase.hpp
"
13
#include "Tempus_WrapperModelEvaluatorPairIMEX_Basic.hpp"
14
#include "Tempus_StaggeredForwardSensitivityModelEvaluator.hpp"
15
16
namespace
Tempus
{
17
18
/** \brief Specialization of IMEX ME for "staggered" FSA method.
19
*
20
* This specializes the implementation of several parts of
21
* WrapperModelEvaluatorPairIMEX_Basic for forward-sensitivity analysis
22
* with StaggeredForwardSensitivityModelEvaluator.
23
*/
24
template
<
typename
Scalar>
25
class
WrapperModelEvaluatorPairIMEX_StaggeredFSA
26
:
public
SensitivityModelEvaluatorBase
<Scalar>,
27
public
WrapperModelEvaluatorPairIMEX_Basic
<Scalar>
28
{
29
public
:
30
31
/// Constructor
32
WrapperModelEvaluatorPairIMEX_StaggeredFSA
(
33
const
Teuchos::RCP<
const
WrapperModelEvaluatorPairIMEX_Basic<Scalar>
>& forwardModel,
34
const
Teuchos::RCP<const Teuchos::ParameterList>& pList = Teuchos::null)
35
{
36
forwardModel_
= forwardModel;
37
appExplicitModel_
=
forwardModel_
->getExplicitModel();
38
appImplicitModel_
=
forwardModel_
->getImplicitModel();
39
fsaExplicitModel_
= rcp(
new
FSAME
(
appExplicitModel_
, pList));
40
fsaImplicitModel_
= rcp(
new
FSAME
(
appImplicitModel_
, pList));
41
Base::setup
(
fsaExplicitModel_
,
fsaImplicitModel_
);
42
}
43
44
/// Destructor
45
virtual
~WrapperModelEvaluatorPairIMEX_StaggeredFSA
() {}
46
47
/// \name Overridden from Tempus::SensitivityModelEvaluatorBase
48
//@{
49
50
/// Get the underlying forward model
51
virtual
Teuchos::RCP<const Thyra::ModelEvaluator<Scalar> >
52
getForwardModel
()
const
53
{
54
return
forwardModel_
;
55
}
56
57
/// Set solution history from forward state evaluation (for interpolation)
58
virtual
void
setForwardSolutionHistory
(
59
const
Teuchos::RCP<
const
Tempus::SolutionHistory<Scalar>
>& sh)
60
{
61
fsaExplicitModel_
->setForwardSolutionHistory(sh);
62
fsaImplicitModel_
->setForwardSolutionHistory(sh);
63
}
64
65
/// Set solution state from forward state evaluation (for frozen state)
66
virtual
void
setForwardSolutionState
(
67
const
Teuchos::RCP<
const
Tempus::SolutionState<Scalar>
>& s)
68
{
69
fsaExplicitModel_
->setForwardSolutionState(s);
70
fsaImplicitModel_
->setForwardSolutionState(s);
71
}
72
73
/// Set the solver of the underlying model if you want to reuse it
74
virtual
void
setSolver
(
75
const
Teuchos::RCP<Thyra::NonlinearSolverBase<Scalar> >& solver,
76
const
bool
force_W_update)
77
{
78
fsaImplicitModel_
->setSolver(solver, force_W_update);
79
}
80
81
//@}
82
83
private
:
84
85
/// Default constructor - not allowed
86
WrapperModelEvaluatorPairIMEX_StaggeredFSA
(){}
87
88
protected
:
89
90
typedef
WrapperModelEvaluatorPairIMEX_Basic<Scalar>
Base
;
91
typedef
StaggeredForwardSensitivityModelEvaluator<Scalar>
FSAME
;
92
93
Teuchos::RCP<const WrapperModelEvaluatorPairIMEX_Basic<Scalar> >
forwardModel_
;
94
Teuchos::RCP<const Thyra::ModelEvaluator<Scalar> >
appExplicitModel_
;
95
Teuchos::RCP<const Thyra::ModelEvaluator<Scalar> >
appImplicitModel_
;
96
Teuchos::RCP<FSAME>
fsaExplicitModel_
;
97
Teuchos::RCP<FSAME>
fsaImplicitModel_
;
98
};
99
100
}
// namespace Tempus
101
102
#endif // Tempus_ModelEvaluatorPairIMEX_StaggeredFSA_hpp
Tempus::WrapperModelEvaluatorPairIMEX_StaggeredFSA::FSAME
StaggeredForwardSensitivityModelEvaluator< Scalar > FSAME
Definition:
Tempus_WrapperModelEvaluatorPairIMEX_StaggeredFSA.hpp:91
Tempus::WrapperModelEvaluatorPairIMEX_Basic
ModelEvaluator pair for implicit and explicit (IMEX) evaulations.
Definition:
Tempus_WrapperModelEvaluatorPairIMEX_Basic_decl.hpp:38
Tempus::WrapperModelEvaluatorPairIMEX_StaggeredFSA::setSolver
virtual void setSolver(const Teuchos::RCP< Thyra::NonlinearSolverBase< Scalar > > &solver, const bool force_W_update)
Set the solver of the underlying model if you want to reuse it.
Definition:
Tempus_WrapperModelEvaluatorPairIMEX_StaggeredFSA.hpp:74
Tempus::SensitivityModelEvaluatorBase
A ModelEvaluator decorator for sensitivity analysis.
Definition:
Tempus_SensitivityModelEvaluatorBase.hpp:26
Tempus::WrapperModelEvaluatorPairIMEX_StaggeredFSA::~WrapperModelEvaluatorPairIMEX_StaggeredFSA
virtual ~WrapperModelEvaluatorPairIMEX_StaggeredFSA()
Destructor.
Definition:
Tempus_WrapperModelEvaluatorPairIMEX_StaggeredFSA.hpp:45
Tempus_SensitivityModelEvaluatorBase.hpp
Tempus::WrapperModelEvaluatorPairIMEX_StaggeredFSA::fsaExplicitModel_
Teuchos::RCP< FSAME > fsaExplicitModel_
Definition:
Tempus_WrapperModelEvaluatorPairIMEX_StaggeredFSA.hpp:96
Tempus
Definition:
Tempus_AdjointAuxSensitivityModelEvaluator_decl.hpp:20
Tempus::WrapperModelEvaluatorPairIMEX_StaggeredFSA::setForwardSolutionHistory
virtual void setForwardSolutionHistory(const Teuchos::RCP< const Tempus::SolutionHistory< Scalar > > &sh)
Set solution history from forward state evaluation (for interpolation)
Definition:
Tempus_WrapperModelEvaluatorPairIMEX_StaggeredFSA.hpp:58
Tempus::WrapperModelEvaluatorPairIMEX_StaggeredFSA::appExplicitModel_
Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > appExplicitModel_
Definition:
Tempus_WrapperModelEvaluatorPairIMEX_StaggeredFSA.hpp:94
Tempus::WrapperModelEvaluatorPairIMEX_StaggeredFSA::WrapperModelEvaluatorPairIMEX_StaggeredFSA
WrapperModelEvaluatorPairIMEX_StaggeredFSA()
Default constructor - not allowed.
Definition:
Tempus_WrapperModelEvaluatorPairIMEX_StaggeredFSA.hpp:86
Tempus::SolutionState
Solution state for integrators and steppers. SolutionState contains the metadata for solutions and th...
Definition:
Tempus_SolutionState_decl.hpp:56
Tempus::WrapperModelEvaluatorPairIMEX_StaggeredFSA::setForwardSolutionState
virtual void setForwardSolutionState(const Teuchos::RCP< const Tempus::SolutionState< Scalar > > &s)
Set solution state from forward state evaluation (for frozen state)
Definition:
Tempus_WrapperModelEvaluatorPairIMEX_StaggeredFSA.hpp:66
Tempus::StaggeredForwardSensitivityModelEvaluator
Transform a ModelEvaluator's sensitivity equations to its residual.
Definition:
Tempus_StaggeredForwardSensitivityModelEvaluator_decl.hpp:48
Tempus::WrapperModelEvaluatorPairIMEX_StaggeredFSA::getForwardModel
virtual Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > getForwardModel() const
Get the underlying forward model.
Definition:
Tempus_WrapperModelEvaluatorPairIMEX_StaggeredFSA.hpp:52
Tempus::WrapperModelEvaluatorPairIMEX_StaggeredFSA::appImplicitModel_
Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > appImplicitModel_
Definition:
Tempus_WrapperModelEvaluatorPairIMEX_StaggeredFSA.hpp:95
Tempus::WrapperModelEvaluatorPairIMEX_StaggeredFSA::fsaImplicitModel_
Teuchos::RCP< FSAME > fsaImplicitModel_
Definition:
Tempus_WrapperModelEvaluatorPairIMEX_StaggeredFSA.hpp:97
Tempus::SolutionHistory
SolutionHistory is basically a container of SolutionStates. SolutionHistory maintains a collection of...
Definition:
Tempus_Integrator.hpp:25
Tempus::WrapperModelEvaluatorPairIMEX_StaggeredFSA
Specialization of IMEX ME for "staggered" FSA method.
Definition:
Tempus_WrapperModelEvaluatorPairIMEX_StaggeredFSA.hpp:25
Tempus::WrapperModelEvaluatorPairIMEX_StaggeredFSA::forwardModel_
Teuchos::RCP< const WrapperModelEvaluatorPairIMEX_Basic< Scalar > > forwardModel_
Definition:
Tempus_WrapperModelEvaluatorPairIMEX_StaggeredFSA.hpp:93
Tempus::WrapperModelEvaluatorPairIMEX_StaggeredFSA::WrapperModelEvaluatorPairIMEX_StaggeredFSA
WrapperModelEvaluatorPairIMEX_StaggeredFSA(const Teuchos::RCP< const WrapperModelEvaluatorPairIMEX_Basic< Scalar > > &forwardModel, const Teuchos::RCP< const Teuchos::ParameterList > &pList=Teuchos::null)
Constructor.
Definition:
Tempus_WrapperModelEvaluatorPairIMEX_StaggeredFSA.hpp:32
Tempus::WrapperModelEvaluatorPairIMEX_Basic::setup
void setup(const Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > &explicitModel, const Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > &implicitModel)
Setup ME when using default constructor – for derived classes.
Definition:
Tempus_WrapperModelEvaluatorPairIMEX_Basic_decl.hpp:149
Tempus::WrapperModelEvaluatorPairIMEX_StaggeredFSA::Base
WrapperModelEvaluatorPairIMEX_Basic< Scalar > Base
Definition:
Tempus_WrapperModelEvaluatorPairIMEX_StaggeredFSA.hpp:90
src
Tempus_WrapperModelEvaluatorPairIMEX_StaggeredFSA.hpp
Generated by
1.8.16