10#ifndef Tempus_WrapperModelEvaluatorSecondOrder_decl_hpp
11#define Tempus_WrapperModelEvaluatorSecondOrder_decl_hpp
14#include "Tempus_config.hpp"
16#include "Thyra_VectorBase.hpp"
32template <
typename Scalar>
41 const std::string schemeName)
44#ifdef VERBOSE_DEBUG_OUTPUT
45 *
out_ <<
"DEBUG: " << __PRETTY_FUNCTION__ <<
"\n";
46 *
out_ <<
" schemeName = " << schemeName <<
"\n";
48 if (schemeName ==
"Newmark Implicit a-Form" || schemeName ==
"HHT-Alpha") {
51 else if (schemeName ==
"Newmark Implicit d-Form") {
55 TEUCHOS_TEST_FOR_EXCEPTION(
56 true, std::logic_error,
57 "Error: WrapperModelEvaluatorSecondOrder called with unsopported "
58 <<
"schemeName = " << schemeName
59 <<
"! Supported schemeNames are: 'Newmark Implicit a-Form' and "
67#ifdef VERBOSE_DEBUG_OUTPUT
68 *
out_ <<
"DEBUG: " << __PRETTY_FUNCTION__ <<
"\n";
74 Teuchos::RCP<const Thyra::ModelEvaluator<Scalar> >
getAppModel()
const
76#ifdef VERBOSE_DEBUG_OUTPUT
77 *
out_ <<
"DEBUG: " << __PRETTY_FUNCTION__ <<
"\n";
84 Teuchos::RCP<const Vector> d_pred, Scalar delta_t,
85 Scalar t, Scalar beta, Scalar gamma)
87#ifdef VERBOSE_DEBUG_OUTPUT
88 *
out_ <<
"DEBUG: " << __PRETTY_FUNCTION__ <<
"\n";
102#ifdef VERBOSE_DEBUG_OUTPUT
103 *
out_ <<
"DEBUG: " << __PRETTY_FUNCTION__ <<
"\n";
108 Teuchos::RCP<const Thyra::LinearOpWithSolveFactoryBase<Scalar> >
111#ifdef VERBOSE_DEBUG_OUTPUT
112 *
out_ <<
"DEBUG: " << __PRETTY_FUNCTION__ <<
"\n";
117 Teuchos::RCP<const Thyra::VectorSpaceBase<Scalar> >
get_f_space()
const
119#ifdef VERBOSE_DEBUG_OUTPUT
120 *
out_ <<
"DEBUG: " << __PRETTY_FUNCTION__ <<
"\n";
125 Teuchos::RCP<const Thyra::VectorSpaceBase<Scalar> >
get_p_space(
int p)
const
127#ifdef VERBOSE_DEBUG_OUTPUT
128 *
out_ <<
"DEBUG: " << __PRETTY_FUNCTION__ <<
"\n";
133 Teuchos::RCP<const Teuchos::Array<std::string> >
get_p_names(
int p)
const
135#ifdef VERBOSE_DEBUG_OUTPUT
136 *
out_ <<
"DEBUG: " << __PRETTY_FUNCTION__ <<
"\n";
141 Teuchos::RCP<const Thyra::VectorSpaceBase<Scalar> >
get_x_space()
const
143#ifdef VERBOSE_DEBUG_OUTPUT
144 *
out_ <<
"DEBUG: " << __PRETTY_FUNCTION__ <<
"\n";
149 Teuchos::RCP<const Thyra::VectorSpaceBase<Scalar> >
get_g_space(
int i)
const
156#ifdef VERBOSE_DEBUG_OUTPUT
157 *
out_ <<
"DEBUG: " << __PRETTY_FUNCTION__ <<
"\n";
163 virtual Thyra::ModelEvaluatorBase::InArgs<Scalar>
getInArgs()
169 virtual Thyra::ModelEvaluatorBase::OutArgs<Scalar>
getOutArgs()
180 const int index = -1 )
184 Thyra::ModelEvaluatorBase::InArgs<Scalar>
createInArgs()
const;
188 const Thyra::ModelEvaluatorBase::InArgs<Scalar> &inArgs,
189 const Thyra::ModelEvaluatorBase::OutArgs<Scalar> &outArgs)
const;
200 Teuchos::RCP<const Thyra::ModelEvaluator<Scalar> >
appModel_;
207 Teuchos::RCP<Teuchos::FancyOStream>
out_;
A ModelEvaluator for residual evaluations given a state. This ModelEvaluator takes a state,...
void initializeNewmark(Teuchos::RCP< const Vector > v_pred, Teuchos::RCP< const Vector > d_pred, Scalar delta_t, Scalar t, Scalar beta, Scalar gamma)
Set values needed in evalModelImpl.
WrapperModelEvaluatorSecondOrder()
Default constructor - not allowed.
Thyra::ModelEvaluatorBase::InArgs< Scalar > wrapperInArgs_
virtual Thyra::ModelEvaluatorBase::InArgs< Scalar > getInArgs()
Get InArgs the wrapper ModelEvalutor.
Teuchos::RCP< const Thyra::VectorSpaceBase< Scalar > > get_g_space(int i) const
Get the g space.
Teuchos::RCP< const Thyra::VectorSpaceBase< Scalar > > get_p_space(int p) const
Get the p space.
Teuchos::RCP< const Vector > d_pred_
Teuchos::RCP< const Thyra::LinearOpWithSolveFactoryBase< Scalar > > get_W_factory() const
void setAppModel(const Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > &me)
Set the underlying application ModelEvaluator.
Teuchos::RCP< TimeDerivative< Scalar > > timeDer_
Teuchos::RCP< const Vector > v_pred_
virtual Thyra::ModelEvaluatorBase::OutArgs< Scalar > getOutArgs()
Get OutArgs the wrapper ModelEvalutor.
void evalModelImpl(const Thyra::ModelEvaluatorBase::InArgs< Scalar > &inArgs, const Thyra::ModelEvaluatorBase::OutArgs< Scalar > &outArgs) const
Teuchos::RCP< const Thyra::VectorSpaceBase< Scalar > > get_x_space() const
Get the x-solution space.
Teuchos::RCP< const Teuchos::Array< std::string > > get_p_names(int p) const
Thyra::ModelEvaluatorBase::InArgs< Scalar > getNominalValues() const
Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > appModel_
Teuchos::RCP< const Thyra::VectorSpaceBase< Scalar > > get_f_space() const
Thyra::ModelEvaluatorBase::OutArgs< Scalar > createOutArgsImpl() const
Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > getAppModel() const
Get the underlying application model 'f'.
Thyra::ModelEvaluatorBase::OutArgs< Scalar > wrapperOutArgs_
WrapperModelEvaluatorSecondOrder(const Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > &appModel, const std::string schemeName)
Constructor.
virtual void setForSolve(const Teuchos::RCP< Thyra::VectorBase< Scalar > > &x, const Teuchos::RCP< Thyra::VectorBase< Scalar > > &xDot, const Scalar time, const Teuchos::RCP< ImplicitODEParameters< Scalar > > &p, const Teuchos::RCP< Thyra::VectorBase< Scalar > > &y=Teuchos::null, const int index=-1)
Set parameters for application implicit ModelEvaluator solve.
Teuchos::RCP< Thyra::LinearOpBase< Scalar > > create_W_op() const
Teuchos::RCP< Teuchos::FancyOStream > out_
Thyra::ModelEvaluatorBase::InArgs< Scalar > createInArgs() const
Thyra::VectorBase< Scalar > Vector
A ModelEvaluator which wraps the application ModelEvaluator.