Tempus
Version of the Day
Time Integration
Toggle main menu visibility
Loading...
Searching...
No Matches
src
Tempus_StepperExplicit_decl.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_StepperExplicit_decl_hpp
10
#define Tempus_StepperExplicit_decl_hpp
11
12
// Tempus
13
#include "Tempus_config.hpp"
14
#include "Tempus_Stepper.hpp"
15
16
17
template
<
class
Scalar>
18
class
ExplicitODEParameters
19
{
20
public
:
22
ExplicitODEParameters
()
23
:
timeStepSize_
(Scalar(0.0)),
stageNumber_
(0)
24
{}
25
27
ExplicitODEParameters
(Scalar timeStepSize,
int
stageNumber = 0)
28
:
timeStepSize_
(timeStepSize),
stageNumber_
(stageNumber)
29
{}
30
31
Scalar
timeStepSize_
;
32
int
stageNumber_
;
33
};
34
35
36
namespace
Tempus
{
37
38
42
template
<
class
Scalar>
43
class
StepperExplicit
:
virtual
public
Tempus::Stepper
<Scalar>
44
{
45
public
:
46
48
49
50
virtual
void
setModel
(
51
const
Teuchos::RCP<
const
Thyra::ModelEvaluator<Scalar>
>& appModel);
52
54
virtual
Teuchos::RCP<const Thyra::ModelEvaluator<Scalar> >
55
getModel
()
const
{
return
appModel_
;}
56
57
virtual
Scalar
getInitTimeStep
(
58
const
Teuchos::RCP<
SolutionHistory<Scalar>
>&
/* solutionHistory */
)
const
59
{
return
std::numeric_limits<Scalar>::max();}
60
62
virtual
void
setInitialConditions
(
63
const
Teuchos::RCP<
SolutionHistory<Scalar>
>& solutionHistory);
64
65
virtual
void
setSolver
(
66
Teuchos::RCP<Thyra::NonlinearSolverBase<Scalar> > solver);
67
68
virtual
Teuchos::RCP<Thyra::NonlinearSolverBase<Scalar> >
getSolver
()
const
69
{
return
Teuchos::null; }
70
72
// thus a no-op for explicit steppers.
73
virtual
void
setInitialGuess
(
74
Teuchos::RCP<
const
Thyra::VectorBase<Scalar>
>
/* initial_guess */
){}
75
76
virtual
bool
isExplicit
()
const
{
return
true
;}
77
virtual
bool
isImplicit
()
const
{
return
false
;}
78
virtual
bool
isExplicitImplicit
()
const
79
{
return
isExplicit
() &&
isImplicit
();}
80
virtual
bool
isOneStepMethod
()
const
{
return
true
;}
81
virtual
bool
isMultiStepMethod
()
const
{
return
!
isOneStepMethod
();}
82
84
virtual
void
evaluateExplicitODE
(
85
Teuchos::RCP<
Thyra::VectorBase<Scalar>
> xDot,
86
Teuchos::RCP<
const
Thyra::VectorBase<Scalar>
> x,
87
const
Scalar time,
88
const
Teuchos::RCP<
ExplicitODEParameters<Scalar>
> & p );
89
91
virtual
void
evaluateExplicitODE
(
92
Teuchos::RCP<
Thyra::VectorBase<Scalar>
> xDotDot,
93
Teuchos::RCP<
const
Thyra::VectorBase<Scalar>
> x,
94
Teuchos::RCP<
const
Thyra::VectorBase<Scalar>
> xDot,
95
const
Scalar time,
96
const
Teuchos::RCP<
ExplicitODEParameters<Scalar>
> & p );
98
100
101
virtual
void
describe
(Teuchos::FancyOStream & out,
102
const
Teuchos::EVerbosityLevel verbLevel)
const
;
104
105
virtual
bool
isValidSetup
(Teuchos::FancyOStream & out)
const
;
106
108
void
setStepperExplicitValues
(Teuchos::RCP<Teuchos::ParameterList> pl);
109
110
protected
:
111
113
Teuchos::RCP<const Thyra::ModelEvaluator<Scalar> >
appModel_
;
114
115
Thyra::ModelEvaluatorBase::InArgs<Scalar>
inArgs_
;
116
Thyra::ModelEvaluatorBase::OutArgs<Scalar>
outArgs_
;
117
118
};
119
120
121
}
// namespace Tempus
122
#endif
// Tempus_StepperExplicit_decl_hpp
ExplicitODEParameters
Definition
Tempus_StepperExplicit_decl.hpp:19
ExplicitODEParameters::ExplicitODEParameters
ExplicitODEParameters()
Constructor.
Definition
Tempus_StepperExplicit_decl.hpp:22
ExplicitODEParameters::stageNumber_
int stageNumber_
Definition
Tempus_StepperExplicit_decl.hpp:32
ExplicitODEParameters::timeStepSize_
Scalar timeStepSize_
Definition
Tempus_StepperExplicit_decl.hpp:31
ExplicitODEParameters::ExplicitODEParameters
ExplicitODEParameters(Scalar timeStepSize, int stageNumber=0)
Constructor.
Definition
Tempus_StepperExplicit_decl.hpp:27
Tempus::SolutionHistory
SolutionHistory is basically a container of SolutionStates. SolutionHistory maintains a collection of...
Definition
Tempus_SolutionHistory_decl.hpp:121
Tempus::StepperExplicit
Thyra Base interface for implicit time steppers.
Definition
Tempus_StepperExplicit_decl.hpp:44
Tempus::StepperExplicit::evaluateExplicitODE
virtual void evaluateExplicitODE(Teuchos::RCP< Thyra::VectorBase< Scalar > > xDot, Teuchos::RCP< const Thyra::VectorBase< Scalar > > x, const Scalar time, const Teuchos::RCP< ExplicitODEParameters< Scalar > > &p)
Evaluate xDot = f(x,t).
Definition
Tempus_StepperExplicit_impl.hpp:258
Tempus::StepperExplicit::getModel
virtual Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > getModel() const
Return the application ModelEvaluator.
Definition
Tempus_StepperExplicit_decl.hpp:55
Tempus::StepperExplicit::isOneStepMethod
virtual bool isOneStepMethod() const
Definition
Tempus_StepperExplicit_decl.hpp:80
Tempus::StepperExplicit::setInitialConditions
virtual void setInitialConditions(const Teuchos::RCP< SolutionHistory< Scalar > > &solutionHistory)
Set the initial conditions, make them consistent, and set needed memory.
Definition
Tempus_StepperExplicit_impl.hpp:31
Tempus::StepperExplicit::setInitialGuess
virtual void setInitialGuess(Teuchos::RCP< const Thyra::VectorBase< Scalar > >)
Pass initial guess to Newton solver (only relevant for implicit solvers).
Definition
Tempus_StepperExplicit_decl.hpp:73
Tempus::StepperExplicit::isExplicit
virtual bool isExplicit() const
Definition
Tempus_StepperExplicit_decl.hpp:76
Tempus::StepperExplicit::getSolver
virtual Teuchos::RCP< Thyra::NonlinearSolverBase< Scalar > > getSolver() const
Get solver.
Definition
Tempus_StepperExplicit_decl.hpp:68
Tempus::StepperExplicit::inArgs_
Thyra::ModelEvaluatorBase::InArgs< Scalar > inArgs_
Definition
Tempus_StepperExplicit_decl.hpp:115
Tempus::StepperExplicit::outArgs_
Thyra::ModelEvaluatorBase::OutArgs< Scalar > outArgs_
Definition
Tempus_StepperExplicit_decl.hpp:116
Tempus::StepperExplicit::isImplicit
virtual bool isImplicit() const
Definition
Tempus_StepperExplicit_decl.hpp:77
Tempus::StepperExplicit::appModel_
Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > appModel_
Explicit ODE ModelEvaluator.
Definition
Tempus_StepperExplicit_decl.hpp:113
Tempus::StepperExplicit::getInitTimeStep
virtual Scalar getInitTimeStep(const Teuchos::RCP< SolutionHistory< Scalar > > &) const
Definition
Tempus_StepperExplicit_decl.hpp:57
Tempus::StepperExplicit::setModel
virtual void setModel(const Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > &appModel)
Set model.
Definition
Tempus_StepperExplicit_impl.hpp:19
Tempus::StepperExplicit::setStepperExplicitValues
void setStepperExplicitValues(Teuchos::RCP< Teuchos::ParameterList > pl)
Set StepperExplicit member data from the ParameterList.
Definition
Tempus_StepperExplicit_impl.hpp:350
Tempus::StepperExplicit::isValidSetup
virtual bool isValidSetup(Teuchos::FancyOStream &out) const
Definition
Tempus_StepperExplicit_impl.hpp:334
Tempus::StepperExplicit::isMultiStepMethod
virtual bool isMultiStepMethod() const
Definition
Tempus_StepperExplicit_decl.hpp:81
Tempus::StepperExplicit::isExplicitImplicit
virtual bool isExplicitImplicit() const
Definition
Tempus_StepperExplicit_decl.hpp:78
Tempus::StepperExplicit::describe
virtual void describe(Teuchos::FancyOStream &out, const Teuchos::EVerbosityLevel verbLevel) const
Definition
Tempus_StepperExplicit_impl.hpp:319
Tempus::StepperExplicit::setSolver
virtual void setSolver(Teuchos::RCP< Thyra::NonlinearSolverBase< Scalar > > solver)
Set solver.
Definition
Tempus_StepperExplicit_impl.hpp:246
Tempus::Stepper
Thyra Base interface for time steppers.
Definition
Tempus_Stepper_decl.hpp:60
Thyra::ModelEvaluator
Thyra::VectorBase
Tempus
Definition
Tempus_AdjointAuxSensitivityModelEvaluator_decl.hpp:21
Generated by
1.17.0