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: Time Integration and Sensitivity Analysis Package
4
//
5
// Copyright 2017 NTESS and the Tempus contributors.
6
// SPDX-License-Identifier: BSD-3-Clause
7
// *****************************************************************************
8
//@HEADER
9
10
#ifndef Tempus_ModelEvaluatorPairIMEX_StaggeredFSA_hpp
11
#define Tempus_ModelEvaluatorPairIMEX_StaggeredFSA_hpp
12
13
#include "Tempus_config.hpp"
14
#include "
Tempus_SensitivityModelEvaluatorBase.hpp
"
15
#include "Tempus_WrapperModelEvaluatorPairIMEX_Basic.hpp"
16
#include "Tempus_StaggeredForwardSensitivityModelEvaluator.hpp"
17
18
namespace
Tempus
{
19
26
template
<
typename
Scalar>
27
class
WrapperModelEvaluatorPairIMEX_StaggeredFSA
28
:
public
SensitivityModelEvaluatorBase
<Scalar>,
29
public
WrapperModelEvaluatorPairIMEX_Basic
<Scalar> {
30
public
:
32
WrapperModelEvaluatorPairIMEX_StaggeredFSA
(
33
const
Teuchos::RCP<
const
WrapperModelEvaluatorPairIMEX_Basic<Scalar>
>&
34
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_
=
42
rcp(
new
FSAME
(
appExplicitModel_
,
appExplicitModel_
,
appExplicitModel_
,
43
is_pseudotransient, pList));
44
fsaImplicitModel_
=
45
rcp(
new
FSAME
(
appImplicitModel_
,
appImplicitModel_
,
appImplicitModel_
,
46
is_pseudotransient, pList));
47
Base::setup(
fsaExplicitModel_
,
fsaImplicitModel_
);
48
}
49
51
virtual
~WrapperModelEvaluatorPairIMEX_StaggeredFSA
() {}
52
54
55
57
virtual
Teuchos::RCP<const Thyra::ModelEvaluator<Scalar> >
getForwardModel
()
58
const
59
{
60
return
forwardModel_
;
61
}
62
64
virtual
void
setForwardSolutionHistory
(
65
const
Teuchos::RCP<
const
Tempus::SolutionHistory<Scalar>
>& sh)
66
{
67
fsaExplicitModel_
->setForwardSolutionHistory(sh);
68
fsaImplicitModel_
->setForwardSolutionHistory(sh);
69
}
70
72
virtual
void
setForwardSolutionState
(
73
const
Teuchos::RCP<
const
Tempus::SolutionState<Scalar>
>& s)
74
{
75
fsaExplicitModel_
->setForwardSolutionState(s);
76
fsaImplicitModel_
->setForwardSolutionState(s);
77
}
78
80
virtual
void
setSolver
(
81
const
Teuchos::RCP<Thyra::NonlinearSolverBase<Scalar> >& solver,
82
const
bool
force_W_update)
83
{
84
fsaImplicitModel_
->setSolver(solver, force_W_update);
85
}
86
88
89
private
:
91
WrapperModelEvaluatorPairIMEX_StaggeredFSA
() {}
92
93
protected
:
94
typedef
WrapperModelEvaluatorPairIMEX_Basic<Scalar>
Base
;
95
typedef
StaggeredForwardSensitivityModelEvaluator<Scalar>
FSAME
;
96
97
Teuchos::RCP<const WrapperModelEvaluatorPairIMEX_Basic<Scalar> >
98
forwardModel_
;
99
Teuchos::RCP<const Thyra::ModelEvaluator<Scalar> >
appExplicitModel_
;
100
Teuchos::RCP<const Thyra::ModelEvaluator<Scalar> >
appImplicitModel_
;
101
Teuchos::RCP<FSAME>
fsaExplicitModel_
;
102
Teuchos::RCP<FSAME>
fsaImplicitModel_
;
103
};
104
105
}
// namespace Tempus
106
107
#endif
// Tempus_ModelEvaluatorPairIMEX_StaggeredFSA_hpp
Tempus_SensitivityModelEvaluatorBase.hpp
Tempus::SensitivityModelEvaluatorBase
A ModelEvaluator decorator for sensitivity analysis.
Definition
Tempus_SensitivityModelEvaluatorBase.hpp:29
Tempus::SolutionHistory
SolutionHistory is basically a container of SolutionStates. SolutionHistory maintains a collection of...
Definition
Tempus_SolutionHistory_decl.hpp:119
Tempus::SolutionState
Solution state for integrators and steppers.
Definition
Tempus_SolutionState_decl.hpp:139
Tempus::StaggeredForwardSensitivityModelEvaluator
Transform a ModelEvaluator's sensitivity equations to its residual.
Definition
Tempus_StaggeredForwardSensitivityModelEvaluator_decl.hpp:52
Tempus::WrapperModelEvaluatorPairIMEX_Basic
ModelEvaluator pair for implicit and explicit (IMEX) evaulations.
Definition
Tempus_WrapperModelEvaluatorPairIMEX_Basic_decl.hpp:40
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:102
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:72
Tempus::WrapperModelEvaluatorPairIMEX_StaggeredFSA::getForwardModel
virtual Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > getForwardModel() const
Get the underlying forward model.
Definition
Tempus_WrapperModelEvaluatorPairIMEX_StaggeredFSA.hpp:57
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:64
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:80
Tempus::WrapperModelEvaluatorPairIMEX_StaggeredFSA::FSAME
StaggeredForwardSensitivityModelEvaluator< Scalar > FSAME
Definition
Tempus_WrapperModelEvaluatorPairIMEX_StaggeredFSA.hpp:95
Tempus::WrapperModelEvaluatorPairIMEX_StaggeredFSA::appImplicitModel_
Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > appImplicitModel_
Definition
Tempus_WrapperModelEvaluatorPairIMEX_StaggeredFSA.hpp:100
Tempus::WrapperModelEvaluatorPairIMEX_StaggeredFSA::WrapperModelEvaluatorPairIMEX_StaggeredFSA
WrapperModelEvaluatorPairIMEX_StaggeredFSA()
Default constructor - not allowed.
Definition
Tempus_WrapperModelEvaluatorPairIMEX_StaggeredFSA.hpp:91
Tempus::WrapperModelEvaluatorPairIMEX_StaggeredFSA::appExplicitModel_
Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > appExplicitModel_
Definition
Tempus_WrapperModelEvaluatorPairIMEX_StaggeredFSA.hpp:99
Tempus::WrapperModelEvaluatorPairIMEX_StaggeredFSA::~WrapperModelEvaluatorPairIMEX_StaggeredFSA
virtual ~WrapperModelEvaluatorPairIMEX_StaggeredFSA()
Destructor.
Definition
Tempus_WrapperModelEvaluatorPairIMEX_StaggeredFSA.hpp:51
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:32
Tempus::WrapperModelEvaluatorPairIMEX_StaggeredFSA::fsaExplicitModel_
Teuchos::RCP< FSAME > fsaExplicitModel_
Definition
Tempus_WrapperModelEvaluatorPairIMEX_StaggeredFSA.hpp:101
Tempus::WrapperModelEvaluatorPairIMEX_StaggeredFSA::forwardModel_
Teuchos::RCP< const WrapperModelEvaluatorPairIMEX_Basic< Scalar > > forwardModel_
Definition
Tempus_WrapperModelEvaluatorPairIMEX_StaggeredFSA.hpp:98
Tempus::WrapperModelEvaluatorPairIMEX_StaggeredFSA::Base
WrapperModelEvaluatorPairIMEX_Basic< Scalar > Base
Definition
Tempus_WrapperModelEvaluatorPairIMEX_StaggeredFSA.hpp:94
Tempus
Definition
Tempus_AdjointAuxSensitivityModelEvaluator_decl.hpp:22
Generated on Thu Oct 9 2025 20:59:09 for Tempus by
1.9.8