42#ifndef Thyra_TpetraExplicitAdjointModelEvaluator_hpp
43#define Thyra_TpetraExplicitAdjointModelEvaluator_hpp
45#include "Thyra_ModelEvaluatorDelegatorBase.hpp"
47#include "Tpetra_RowMatrixTransposer.hpp"
61 template <
typename Scalar,
typename LocalOrdinal,
typename GlobalOrdinal=LocalOrdinal,
typename Node=KokkosClassic::DefaultNode::DefaultNodeType>
63 public ModelEvaluatorDelegatorBase<Scalar>{
69 ModelEvaluatorDelegatorBase<Scalar>(
model) {}
74 ModelEvaluatorDelegatorBase<Scalar>(
model) {}
86 ModelEvaluatorBase::InArgsSetup<Scalar>
inArgs =
88 inArgs.setModelEvalDescription(this->description());
94 typedef Tpetra::Operator<Scalar,LocalOrdinal,GlobalOrdinal,Node>
TO;
95 typedef Tpetra::CrsMatrix<Scalar,LocalOrdinal,GlobalOrdinal,Node>
TCM;
96 typedef Tpetra::RowMatrixTransposer<Scalar,LocalOrdinal,GlobalOrdinal,Node>
TRMT;
119 MEB::OutArgsSetup<Scalar>
outArgs;
120 outArgs.setModelEvalDescription(this->description());
121 outArgs.setSupports(MEB::OUT_ARG_f);
122 outArgs.setSupports(MEB::OUT_ARG_W_op);
128 const ModelEvaluatorBase::InArgs<Scalar> &
inArgs,
129 const ModelEvaluatorBase::OutArgs<Scalar> &
outArgs)
const
133 typedef Tpetra::Operator<Scalar,LocalOrdinal,GlobalOrdinal,Node>
TO;
134 typedef Tpetra::CrsMatrix<Scalar,LocalOrdinal,GlobalOrdinal,Node>
TCM;
135 typedef Tpetra::RowMatrixTransposer<Scalar,LocalOrdinal,GlobalOrdinal,Node>
TRMT;
141 outArgs.get_W_op() != Teuchos::null) {
172template <
typename Scalar>
173RCP<TpetraExplicitAdjointModelEvaluator<Scalar> >
180template <
typename Scalar>
181RCP<TpetraExplicitAdjointModelEvaluator<Scalar> >
A model evaluator decorator for computing an explicit adjoint.
RCP< Thyra::LinearOpBase< Scalar > > thyra_fwd_op
ModelEvaluatorBase::InArgs< Scalar > createInArgs() const
TpetraExplicitAdjointModelEvaluator(const RCP< const ModelEvaluator< Scalar > > &model)
Constructor.
RCP< LinearOpBase< Scalar > > create_W_op() const
void evalModelImpl(const ModelEvaluatorBase::InArgs< Scalar > &inArgs, const ModelEvaluatorBase::OutArgs< Scalar > &outArgs) const
TpetraExplicitAdjointModelEvaluator(const RCP< ModelEvaluator< Scalar > > &model)
Constructor.
ModelEvaluatorBase::OutArgs< Scalar > createOutArgsImpl() const
virtual ~TpetraExplicitAdjointModelEvaluator()=default
Destructor.
#define TEUCHOS_ASSERT(assertion_test)
TEUCHOS_DEPRECATED RCP< T > rcp(T *p, Dealloc_T dealloc, bool owns_mem)
RCP< TpetraExplicitAdjointModelEvaluator< Scalar > > tpetraExplicitAdjointModelEvaluator(const RCP< const ModelEvaluator< Scalar > > &model)