00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029 #ifndef RYTHMOS_FORWARD_SENSITIVITY_MODEL_EVALUATOR_BASE_HPP
00030 #define RYTHMOS_FORWARD_SENSITIVITY_MODEL_EVALUATOR_BASE_HPP
00031
00032
00033 #include "Rythmos_IntegratorBase.hpp"
00034 #include "Thyra_ModelEvaluator.hpp"
00035 #include "Thyra_StateFuncModelEvaluatorBase.hpp"
00036 #include "Thyra_DefaultProductVectorSpace.hpp"
00037 #include "Thyra_PhysicallyBlockedLinearOpWithSolveBase.hpp"
00038 #include "Thyra_DefaultBlockedTriangularLinearOpWithSolve.hpp"
00039 #include "Thyra_ModelEvaluatorDelegatorBase.hpp"
00040 #include "Thyra_ModelEvaluatorHelpers.hpp"
00041 #include "Thyra_DefaultMultiVectorProductVectorSpace.hpp"
00042 #include "Thyra_DefaultMultiVectorProductVector.hpp"
00043 #include "Thyra_DefaultMultiVectorLinearOpWithSolve.hpp"
00044 #include "Teuchos_implicit_cast.hpp"
00045 #include "Teuchos_Assert.hpp"
00046
00047
00048 namespace Rythmos {
00049
00050
00060 template<class Scalar>
00061 class ForwardSensitivityModelEvaluatorBase
00062 : virtual public Thyra::StateFuncModelEvaluatorBase<Scalar>
00063 {
00064 public:
00065
00081 virtual void initializeStructure(
00082 const RCP<const Thyra::ModelEvaluator<Scalar> > &stateModel,
00083 const int p_index
00084 ) =0;
00085
00087 virtual RCP<const Thyra::ModelEvaluator<Scalar> >
00088 getStateModel() const =0;
00089
00091 virtual int get_p_index() const =0;
00092
00093 };
00094
00095 }
00096
00097
00098 #endif // RYTHMOS_FORWARD_SENSITIVITY_MODEL_EVALUATOR_BASE_HPP