Tempus Version of the Day
Time Integration
Loading...
Searching...
No Matches
Tempus_StepperFactory_decl.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_StepperFactory_decl_hpp
11#define Tempus_StepperFactory_decl_hpp
12
13#include "Teuchos_ParameterList.hpp"
14
15#include "Tempus_config.hpp"
16#include "Tempus_Stepper.hpp"
17
18namespace Tempus {
19
23template <class Scalar>
25 public:
28
30 virtual ~StepperFactory() {}
31
33
34
35 Teuchos::RCP<Stepper<Scalar> > createStepper(
36 std::string stepperType = "Forward Euler",
37 const Teuchos::RCP<const Thyra::ModelEvaluator<Scalar> >& model =
38 Teuchos::null);
39
41 Teuchos::RCP<Stepper<Scalar> > createStepper(
42 Teuchos::RCP<Teuchos::ParameterList> stepperPL,
43 const Teuchos::RCP<const Thyra::ModelEvaluator<Scalar> >& model =
44 Teuchos::null);
45
47 Teuchos::RCP<Stepper<Scalar> > createStepper(
48 Teuchos::RCP<Teuchos::ParameterList> stepperPL,
49 std::vector<Teuchos::RCP<const Thyra::ModelEvaluator<Scalar> > > models);
51
52 private:
54 Teuchos::RCP<Stepper<Scalar> > createStepper(
55 std::string stepperType, Teuchos::RCP<Teuchos::ParameterList> stepperPL,
56 const Teuchos::RCP<const Thyra::ModelEvaluator<Scalar> >& model);
57};
58
59} // namespace Tempus
60#endif // Tempus_StepperFactory_decl_hpp
Teuchos::RCP< Stepper< Scalar > > createStepper(std::string stepperType="Forward Euler", const Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > &model=Teuchos::null)
Create stepper from stepper type.