Tempus
Version of the Day
Time Integration
Loading...
Searching...
No Matches
src
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_config.hpp"
13
#include "
Tempus_SensitivityModelEvaluatorBase.hpp
"
14
#include "Tempus_WrapperModelEvaluatorPairIMEX_Basic.hpp"
15
#include "Tempus_StaggeredForwardSensitivityModelEvaluator.hpp"
16
17
namespace
Tempus
{
18
25
template
<
typename
Scalar>
26
class
WrapperModelEvaluatorPairIMEX_StaggeredFSA
27
:
public
SensitivityModelEvaluatorBase
<Scalar>,
28
public
WrapperModelEvaluatorPairIMEX_Basic
<Scalar>
29
{
30
public
:
31
33
WrapperModelEvaluatorPairIMEX_StaggeredFSA
(
34
const
Teuchos::RCP<
const
WrapperModelEvaluatorPairIMEX_Basic<Scalar> >& forwardModel,
35
const
bool
is_pseudotransient,
36
const
Teuchos::RCP<const Teuchos::ParameterList>& pList = Teuchos::null)
37
{
38
forwardModel_
= forwardModel;
39
appExplicitModel_
=
forwardModel_
->getExplicitModel();
40
appImplicitModel_
=
forwardModel_
->getImplicitModel();
41
fsaExplicitModel_
= rcp(
new
FSAME
(
appExplicitModel_
,
appExplicitModel_
,
appExplicitModel_
, is_pseudotransient, pList));
42
fsaImplicitModel_
= rcp(
new
FSAME
(
appImplicitModel_
,
appImplicitModel_
,
appImplicitModel_
, is_pseudotransient, pList));
43
Base::setup(
fsaExplicitModel_
,
fsaImplicitModel_
);
44
}
45
47
virtual
~WrapperModelEvaluatorPairIMEX_StaggeredFSA
() {}
48
50
51
53
virtual
Teuchos::RCP<const Thyra::ModelEvaluator<Scalar> >
54
getForwardModel
()
const
55
{
56
return
forwardModel_
;
57
}
58
60
virtual
void
setForwardSolutionHistory
(
61
const
Teuchos::RCP<
const
Tempus::SolutionHistory<Scalar>
>& sh)
62
{
63
fsaExplicitModel_
->setForwardSolutionHistory(sh);
64
fsaImplicitModel_
->setForwardSolutionHistory(sh);
65
}
66
68
virtual
void
setForwardSolutionState
(
69
const
Teuchos::RCP<
const
Tempus::SolutionState<Scalar>
>& s)
70
{
71
fsaExplicitModel_
->setForwardSolutionState(s);
72
fsaImplicitModel_
->setForwardSolutionState(s);
73
}
74
76
virtual
void
setSolver
(
77
const
Teuchos::RCP<Thyra::NonlinearSolverBase<Scalar> >& solver,
78
const
bool
force_W_update)
79
{
80
fsaImplicitModel_
->setSolver(solver, force_W_update);
81
}
82
84
85
private
:
86
88
WrapperModelEvaluatorPairIMEX_StaggeredFSA
(){}
89
90
protected
:
91
92
typedef
WrapperModelEvaluatorPairIMEX_Basic<Scalar>
Base
;
93
typedef
StaggeredForwardSensitivityModelEvaluator<Scalar>
FSAME
;
94
95
Teuchos::RCP<const WrapperModelEvaluatorPairIMEX_Basic<Scalar> >
forwardModel_
;
96
Teuchos::RCP<const Thyra::ModelEvaluator<Scalar> >
appExplicitModel_
;
97
Teuchos::RCP<const Thyra::ModelEvaluator<Scalar> >
appImplicitModel_
;
98
Teuchos::RCP<FSAME>
fsaExplicitModel_
;
99
Teuchos::RCP<FSAME>
fsaImplicitModel_
;
100
};
101
102
}
// namespace Tempus
103
104
#endif
// Tempus_ModelEvaluatorPairIMEX_StaggeredFSA_hpp
Tempus_SensitivityModelEvaluatorBase.hpp
Tempus::SensitivityModelEvaluatorBase
A ModelEvaluator decorator for sensitivity analysis.
Definition
Tempus_SensitivityModelEvaluatorBase.hpp:28
Tempus::SolutionHistory
SolutionHistory is basically a container of SolutionStates. SolutionHistory maintains a collection of...
Definition
Tempus_SolutionHistory_decl.hpp:121
Tempus::SolutionState
Solution state for integrators and steppers. SolutionState contains the metadata for solutions and th...
Definition
Tempus_SolutionState_decl.hpp:59
Tempus::WrapperModelEvaluatorPairIMEX_Basic
ModelEvaluator pair for implicit and explicit (IMEX) evaulations.
Definition
Tempus_WrapperModelEvaluatorPairIMEX_Basic_decl.hpp:41
Tempus::WrapperModelEvaluatorPairIMEX_StaggeredFSA
Specialization of IMEX ME for "staggered" FSA method.
Definition
Tempus_WrapperModelEvaluatorPairIMEX_StaggeredFSA.hpp:29
Tempus::WrapperModelEvaluatorPairIMEX_StaggeredFSA::fsaImplicitModel_
Teuchos::RCP< FSAME > fsaImplicitModel_
Definition
Tempus_WrapperModelEvaluatorPairIMEX_StaggeredFSA.hpp:99
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:68
Tempus::WrapperModelEvaluatorPairIMEX_StaggeredFSA::getForwardModel
virtual Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > getForwardModel() const
Get the underlying forward model.
Definition
Tempus_WrapperModelEvaluatorPairIMEX_StaggeredFSA.hpp:54
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:60
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:76
Tempus::WrapperModelEvaluatorPairIMEX_StaggeredFSA::FSAME
StaggeredForwardSensitivityModelEvaluator< Scalar > FSAME
Definition
Tempus_WrapperModelEvaluatorPairIMEX_StaggeredFSA.hpp:93
Tempus::WrapperModelEvaluatorPairIMEX_StaggeredFSA::appImplicitModel_
Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > appImplicitModel_
Definition
Tempus_WrapperModelEvaluatorPairIMEX_StaggeredFSA.hpp:97
Tempus::WrapperModelEvaluatorPairIMEX_StaggeredFSA::WrapperModelEvaluatorPairIMEX_StaggeredFSA
WrapperModelEvaluatorPairIMEX_StaggeredFSA()
Default constructor - not allowed.
Definition
Tempus_WrapperModelEvaluatorPairIMEX_StaggeredFSA.hpp:88
Tempus::WrapperModelEvaluatorPairIMEX_StaggeredFSA::appExplicitModel_
Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > appExplicitModel_
Definition
Tempus_WrapperModelEvaluatorPairIMEX_StaggeredFSA.hpp:96
Tempus::WrapperModelEvaluatorPairIMEX_StaggeredFSA::~WrapperModelEvaluatorPairIMEX_StaggeredFSA
virtual ~WrapperModelEvaluatorPairIMEX_StaggeredFSA()
Destructor.
Definition
Tempus_WrapperModelEvaluatorPairIMEX_StaggeredFSA.hpp:47
Tempus::WrapperModelEvaluatorPairIMEX_StaggeredFSA::WrapperModelEvaluatorPairIMEX_StaggeredFSA
WrapperModelEvaluatorPairIMEX_StaggeredFSA(const Teuchos::RCP< const WrapperModelEvaluatorPairIMEX_Basic< Scalar > > &forwardModel, const bool is_pseudotransient, const Teuchos::RCP< const Teuchos::ParameterList > &pList=Teuchos::null)
Constructor.
Definition
Tempus_WrapperModelEvaluatorPairIMEX_StaggeredFSA.hpp:33
Tempus::WrapperModelEvaluatorPairIMEX_StaggeredFSA::fsaExplicitModel_
Teuchos::RCP< FSAME > fsaExplicitModel_
Definition
Tempus_WrapperModelEvaluatorPairIMEX_StaggeredFSA.hpp:98
Tempus::WrapperModelEvaluatorPairIMEX_StaggeredFSA::forwardModel_
Teuchos::RCP< const WrapperModelEvaluatorPairIMEX_Basic< Scalar > > forwardModel_
Definition
Tempus_WrapperModelEvaluatorPairIMEX_StaggeredFSA.hpp:95
Tempus::WrapperModelEvaluatorPairIMEX_StaggeredFSA::Base
WrapperModelEvaluatorPairIMEX_Basic< Scalar > Base
Definition
Tempus_WrapperModelEvaluatorPairIMEX_StaggeredFSA.hpp:92
Tempus
Definition
Tempus_AdjointAuxSensitivityModelEvaluator_decl.hpp:21
Generated by
1.10.0