11#ifndef __Panzer_ResponseMESupportBase_hpp__
12#define __Panzer_ResponseMESupportBase_hpp__
16#include "Teuchos_RCP.hpp"
18#include "PanzerDiscFE_config.hpp"
19#ifdef PANZER_HAVE_EPETRA_STACK
20#include "Epetra_Map.h"
21#include "Epetra_Vector.h"
22#include "Epetra_MultiVector.h"
23#include "Epetra_Operator.h"
26#include "Thyra_VectorSpaceBase.hpp"
27#include "Thyra_VectorBase.hpp"
28#include "Thyra_MultiVectorBase.hpp"
29#include "Thyra_LinearOpBase.hpp"
35template <
typename EvalT>
43#ifdef PANZER_HAVE_EPETRA_STACK
48 virtual Teuchos::RCP<const Epetra_Map> getMap()
const = 0;
53 virtual void setVector(
const Teuchos::RCP<Epetra_Vector> & destVec) = 0;
60 virtual Teuchos::RCP<const Thyra::VectorSpaceBase<double> >
getVectorSpace()
const = 0;
84#ifdef PANZER_HAVE_EPETRA_STACK
89 virtual Teuchos::RCP<Epetra_MultiVector> buildEpetraDerivative()
const = 0;
93 virtual void setDerivative(
const Teuchos::RCP<Epetra_MultiVector> & derivative) = 0;
121#ifdef PANZER_HAVE_EPETRA_STACK
126 virtual Teuchos::RCP<const Epetra_Map> getMap()
const = 0;
131 virtual void setVector(
const Teuchos::RCP<Epetra_MultiVector> & destVec) = 0;
138 virtual Teuchos::RCP<const Thyra::VectorSpaceBase<double> >
getVectorSpace()
const = 0;
151#ifdef Panzer_BUILD_HESSIAN_SUPPORT
virtual void setDerivative(const Teuchos::RCP< Thyra::MultiVectorBase< double > > &derivative)=0
virtual bool supportsDerivative() const =0
Does this response support derivative evaluation?
virtual ~ResponseMESupportBase()
ResponseMESupportBase(const std::string &responseName)
virtual Teuchos::RCP< Thyra::MultiVectorBase< double > > buildDerivative() const =0
Get an Epetra_Operator for this response, map is constructed lazily.
ResponseMESupportBase(const ResponseMESupportBase< panzer::Traits::Hessian > &)
ResponseMESupportBase(const std::string &responseName)
virtual bool supportsDerivative() const =0
Does this response support derivative evaluation?
virtual Teuchos::RCP< Thyra::MultiVectorBase< double > > buildDerivative() const =0
Get an Epetra_Operator for this response, map is constructed lazily.
virtual ~ResponseMESupportBase()
ResponseMESupportBase(const ResponseMESupportBase< panzer::Traits::Jacobian > &)
virtual void setDerivative(const Teuchos::RCP< Thyra::MultiVectorBase< double > > &derivative)=0
ResponseMESupportBase(const std::string &responseName)
virtual void setVector(const Teuchos::RCP< Thyra::MultiVectorBase< double > > &destVec)=0
virtual Teuchos::RCP< const Thyra::VectorSpaceBase< double > > getVectorSpace() const =0
Get the vector space for this response, vector space is constructed lazily.
virtual ~ResponseMESupportBase()
ResponseMESupportBase(const ResponseMESupportBase< panzer::Traits::Tangent > &)
virtual Teuchos::RCP< const Thyra::VectorSpaceBase< double > > getVectorSpace() const =0
Get the vector space for this response, vector space is constructed lazily.
ResponseMESupportBase(const ResponseMESupportBase< EvalT > &)
ResponseMESupportBase(const std::string &responseName)
virtual void setVector(const Teuchos::RCP< Thyra::VectorBase< double > > &destVec)=0
virtual ~ResponseMESupportBase()