1 #ifndef __Panzer_ResponseMESupportBase_hpp__ 2 #define __Panzer_ResponseMESupportBase_hpp__ 6 #include "Teuchos_RCP.hpp" 8 #include "Epetra_Map.h" 9 #include "Epetra_Vector.h" 10 #include "Epetra_MultiVector.h" 11 #include "Epetra_Operator.h" 13 #include "Thyra_VectorSpaceBase.hpp" 14 #include "Thyra_VectorBase.hpp" 15 #include "Thyra_MultiVectorBase.hpp" 16 #include "Thyra_LinearOpBase.hpp" 22 template <
typename EvalT>
34 virtual Teuchos::RCP<const Epetra_Map>
getMap()
const = 0;
39 virtual void setVector(
const Teuchos::RCP<Epetra_Vector> & destVec) = 0;
45 virtual Teuchos::RCP<const Thyra::VectorSpaceBase<double> >
getVectorSpace()
const = 0;
67 virtual bool supportsDerivative()
const = 0;
73 virtual Teuchos::RCP<Epetra_MultiVector> buildEpetraDerivative()
const = 0;
77 virtual void setDerivative(
const Teuchos::RCP<Epetra_MultiVector> & derivative) = 0;
83 virtual Teuchos::RCP<Thyra::MultiVectorBase<double> > buildDerivative()
const = 0;
88 virtual void setDerivative(
const Teuchos::RCP<Thyra::MultiVectorBase<double> > & derivative) = 0;
108 virtual Teuchos::RCP<const Epetra_Map>
getMap()
const = 0;
113 virtual void setVector(
const Teuchos::RCP<Epetra_MultiVector> & destVec) = 0;
119 virtual Teuchos::RCP<const Thyra::VectorSpaceBase<double> >
getVectorSpace()
const = 0;
124 virtual void setVector(
const Teuchos::RCP<Thyra::MultiVectorBase<double> > & destVec) = 0;
132 #ifdef Panzer_BUILD_HESSIAN_SUPPORT 134 class ResponseMESupportBase<
panzer::Traits::Hessian> :
public ResponseBase {
142 virtual bool supportsDerivative()
const = 0;
148 virtual Teuchos::RCP<Thyra::MultiVectorBase<double> > buildDerivative()
const = 0;
153 virtual void setDerivative(
const Teuchos::RCP<Thyra::MultiVectorBase<double> > & derivative) = 0;
ResponseMESupportBase(const std::string &responseName)
virtual ~ResponseMESupportBase()
virtual ~ResponseMESupportBase()
ResponseMESupportBase(const std::string &responseName)
virtual Teuchos::RCP< const Thyra::VectorSpaceBase< double > > getVectorSpace() const =0
Get the vector space for this response, vector space is constructed lazily.
virtual ~ResponseMESupportBase()
virtual Teuchos::RCP< const Epetra_Map > getMap() const =0
Get the Epetra_Map for this response, map is constructed lazily.
ResponseMESupportBase(const std::string &responseName)
virtual void setVector(const Teuchos::RCP< Epetra_Vector > &destVec)=0