Tempus
Version of the Day
Time Integration
Tempus_StepperImplicit_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_StepperImplicit_decl_hpp
10
#define Tempus_StepperImplicit_decl_hpp
11
12
// Tempus
13
#include "
Tempus_Stepper.hpp
"
14
#include "Tempus_WrapperModelEvaluatorBasic.hpp"
15
16
17
namespace
Tempus
{
18
19
20
/** \brief Thyra Base interface for implicit time steppers.
21
*
22
*/
23
template
<
class
Scalar>
24
class
StepperImplicit
:
virtual
public
Tempus::Stepper
<Scalar>
25
{
26
public
:
27
28
/// \name Basic implicit stepper methods
29
//@{
30
virtual
void
setModel
(
31
const
Teuchos::RCP<
const
Thyra::ModelEvaluator<Scalar> >& appModel);
32
virtual
void
setNonConstModel
(
33
const
Teuchos::RCP<Thyra::ModelEvaluator<Scalar> >& appModel);
34
virtual
Teuchos::RCP<const Thyra::ModelEvaluator<Scalar> >
35
getModel
(){
return
wrapperModel_
->getAppModel();}
36
37
/// Set solver via ParameterList solver name.
38
virtual
void
setSolver
(std::string solverName);
39
/// Set solver via solver ParameterList.
40
virtual
void
setSolver
(
41
Teuchos::RCP<Teuchos::ParameterList> solverPL=Teuchos::null);
42
/// Set solver.
43
virtual
void
setSolver
(
44
Teuchos::RCP<Thyra::NonlinearSolverBase<Scalar> > solver);
45
virtual
Teuchos::RCP<Thyra::NonlinearSolverBase<Scalar> >
getSolver
()
const
46
{
return
solver_
; }
47
48
virtual
std::string
getStepperType
()
const
49
{
return
stepperPL_
->get<std::string>(
"Stepper Type"
); }
50
51
/// Solve problem using x in-place.
52
const
Thyra::SolveStatus<Scalar>
solveImplicitODE
(
53
const
Teuchos::RCP<Thyra::VectorBase<Scalar> > & x);
54
55
/// Pass initial guess to Newton solver (only relevant for implicit solvers)
56
virtual
void
setInitialGuess
(Teuchos::RCP<
const
Thyra::VectorBase<Scalar> > initial_guess)
57
{
initial_guess_
= initial_guess;}
58
59
/// Set parameter so that the initial guess is set to zero (=True) or use last timestep (=False).
60
virtual
void
setZeroInitialGuess
(
bool
zIG)
61
{
stepperPL_
->set<
bool
>(
"Zero Initial Guess"
, zIG); }
62
virtual
bool
getZeroInitialGuess
()
const
63
{
return
stepperPL_
->get<
bool
>(
"Zero Initial Guess"
,
false
); }
64
virtual
bool
getEmbedded
()
const
65
{
return
stepperPL_
->get<
bool
>(
"Use Embedded"
,
false
); }
66
virtual
Scalar
getInitTimeStep
(
67
const
Teuchos::RCP<
SolutionHistory<Scalar>
>&
solutionHistory
)
const
68
{
return
std::numeric_limits<Scalar>::max();}
69
//@}
70
71
protected
:
72
73
Teuchos::RCP<Teuchos::ParameterList>
stepperPL_
;
74
Teuchos::RCP<WrapperModelEvaluator<Scalar> >
wrapperModel_
;
75
Teuchos::RCP<Thyra::NonlinearSolverBase<Scalar> >
solver_
;
76
Teuchos::RCP<const Thyra::VectorBase<Scalar> >
initial_guess_
;
77
};
78
79
}
// namespace Tempus
80
#endif // Tempus_StepperImplicit_decl_hpp
Tempus::StepperImplicit::getEmbedded
virtual bool getEmbedded() const
Definition:
Tempus_StepperImplicit_decl.hpp:64
Tempus::solutionHistory
Teuchos::RCP< SolutionHistory< Scalar > > solutionHistory(Teuchos::RCP< Teuchos::ParameterList > pList=Teuchos::null)
Nonmember constructor.
Definition:
Tempus_SolutionHistory_impl.hpp:504
Tempus::StepperImplicit::stepperPL_
Teuchos::RCP< Teuchos::ParameterList > stepperPL_
Definition:
Tempus_StepperImplicit_decl.hpp:73
Tempus::StepperImplicit::getStepperType
virtual std::string getStepperType() const
Definition:
Tempus_StepperImplicit_decl.hpp:48
Tempus
Definition:
Tempus_AdjointAuxSensitivityModelEvaluator_decl.hpp:20
Tempus::StepperImplicit::solveImplicitODE
const Thyra::SolveStatus< Scalar > solveImplicitODE(const Teuchos::RCP< Thyra::VectorBase< Scalar > > &x)
Solve problem using x in-place.
Definition:
Tempus_StepperImplicit_impl.hpp:120
Tempus::StepperImplicit::setNonConstModel
virtual void setNonConstModel(const Teuchos::RCP< Thyra::ModelEvaluator< Scalar > > &appModel)
Definition:
Tempus_StepperImplicit_impl.hpp:36
Tempus::StepperImplicit::getModel
virtual Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > getModel()
Definition:
Tempus_StepperImplicit_decl.hpp:35
Tempus::StepperImplicit::solver_
Teuchos::RCP< Thyra::NonlinearSolverBase< Scalar > > solver_
Definition:
Tempus_StepperImplicit_decl.hpp:75
Tempus::StepperImplicit::initial_guess_
Teuchos::RCP< const Thyra::VectorBase< Scalar > > initial_guess_
Definition:
Tempus_StepperImplicit_decl.hpp:76
Tempus::StepperImplicit::setModel
virtual void setModel(const Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > &appModel)
Definition:
Tempus_StepperImplicit_impl.hpp:26
Tempus_Stepper.hpp
Tempus::StepperImplicit::setInitialGuess
virtual void setInitialGuess(Teuchos::RCP< const Thyra::VectorBase< Scalar > > initial_guess)
Pass initial guess to Newton solver (only relevant for implicit solvers)
Definition:
Tempus_StepperImplicit_decl.hpp:56
Tempus::StepperImplicit
Thyra Base interface for implicit time steppers.
Definition:
Tempus_StepperImplicit_decl.hpp:24
Tempus::StepperImplicit::setSolver
virtual void setSolver(std::string solverName)
Set solver via ParameterList solver name.
Definition:
Tempus_StepperImplicit_impl.hpp:50
Tempus::StepperImplicit::getSolver
virtual Teuchos::RCP< Thyra::NonlinearSolverBase< Scalar > > getSolver() const
Get solver.
Definition:
Tempus_StepperImplicit_decl.hpp:45
Tempus::SolutionHistory
SolutionHistory is basically a container of SolutionStates. SolutionHistory maintains a collection of...
Definition:
Tempus_Integrator.hpp:25
Tempus::Stepper
Thyra Base interface for time steppers.
Definition:
Tempus_Integrator.hpp:24
Tempus::StepperImplicit::getInitTimeStep
virtual Scalar getInitTimeStep(const Teuchos::RCP< SolutionHistory< Scalar > > &solutionHistory) const
Definition:
Tempus_StepperImplicit_decl.hpp:66
Tempus::StepperImplicit::getZeroInitialGuess
virtual bool getZeroInitialGuess() const
Definition:
Tempus_StepperImplicit_decl.hpp:62
Tempus::StepperImplicit::setZeroInitialGuess
virtual void setZeroInitialGuess(bool zIG)
Set parameter so that the initial guess is set to zero (=True) or use last timestep (=False).
Definition:
Tempus_StepperImplicit_decl.hpp:60
Tempus::StepperImplicit::wrapperModel_
Teuchos::RCP< WrapperModelEvaluator< Scalar > > wrapperModel_
Definition:
Tempus_StepperImplicit_decl.hpp:74
src
Tempus_StepperImplicit_decl.hpp
Generated by
1.8.16