42#ifndef THYRA_EPETRA_MODEL_EVALUATOR_HPP
43#define THYRA_EPETRA_MODEL_EVALUATOR_HPP
45#include "Thyra_ModelEvaluatorDefaultBase.hpp"
47#include "Thyra_LinearOpWithSolveFactoryBase.hpp"
48#include "EpetraExt_ModelEvaluator.h"
49#include "Epetra_Map.h"
176 :
public ModelEvaluatorDefaultBase<double>,
248 const ModelEvaluatorBase::InArgs<double>&
getFinalPoint()
const;
311 ModelEvaluatorBase::InArgs<double>
createInArgs()
const;
314 const ModelEvaluatorBase::InArgs<double> &
finalPoint
341 const ModelEvaluatorBase::InArgs<double> &
inArgs,
342 const ModelEvaluatorBase::OutArgs<double> &
outArgs
413 ModelEvaluatorBase::InArgs<double> *
inArgs
418 const ModelEvaluatorBase::InArgs<double> &
inArgs,
425 const ModelEvaluatorBase::OutArgs<double> &
outArgs,
456 const ModelEvaluatorBase::OutArgs<double> &
outArgs
492ModelEvaluatorBase::EDerivativeMultiVectorOrientation
499EpetraExt::ModelEvaluator::EDerivativeMultiVectorOrientation
506ModelEvaluatorBase::DerivativeProperties
513ModelEvaluatorBase::DerivativeSupport
520EpetraExt::ModelEvaluator::Derivative
522 const ModelEvaluatorBase::Derivative<double> &
derivative,
527EpetraExt::ModelEvaluator::MPDerivative
529 const ModelEvaluatorBase::MPDerivative &
derivative,
Concrete Adapter subclass that takes an EpetraExt::ModelEvaluator object and wraps it as a Thyra::Mod...
RCP< Teuchos::ParameterList > unsetParameterList()
RCP< Teuchos::ParameterList > getNonconstParameterList()
bool finalPointWasSolved() const
void setStateFunctionScalingVec(const RCP< const Epetra_Vector > &stateFunctionScalingVec)
Set the state function scaling vector s_f (see above).
RCP< const Epetra_Vector > getStateFunctionScalingVec() const
Get the state function scaling vector s_f (see above).
RCP< LinearOpBase< double > > create_DgDx_op_impl(int j) const
RCP< const Epetra_Vector > invStateVariableScalingVec_
void updateNominalValuesAndBounds() const
Teuchos::Array< RCP< const Epetra_Map > > g_map_t
EpetraExt::ModelEvaluator::InArgs epetraInArgsScaling_
ModelEvaluatorBase::InArgs< double > nominalValues_
std::string description() const
RCP< EpetraModelEvaluator > epetraModelEvaluator(const RCP< const EpetraExt::ModelEvaluator > &epetraModel, const RCP< LinearOpWithSolveFactoryBase< double > > &W_factory)
void initialize(const RCP< const EpetraExt::ModelEvaluator > &epetraModel, const RCP< LinearOpWithSolveFactoryBase< double > > &W_factory)
RCP< const VectorSpaceBase< double > > f_space_
Teuchos::Array< RCP< const Epetra_Map > > p_map_t
ModelEvaluatorBase::InArgs< double > finalPoint_
RCP< const VectorSpaceBase< double > > get_f_space() const
RCP< LinearOpBase< double > > create_DgDp_op_impl(int j, int l) const
void setStateVariableScalingVec(const RCP< const Epetra_Vector > &stateVariableScalingVec)
Set the state variable scaling vector s_x (see above).
RCP< Epetra_Vector > x_unscaled_
RCP< LinearOpBase< double > > create_W_op() const
ModelEvaluatorBase::InArgs< double > getUpperBounds() const
void setNominalValues(const ModelEvaluatorBase::InArgs< double > &nominalValues)
Set the nominal values.
p_map_is_local_t g_map_is_local_
RCP< PreconditionerBase< double > > create_W_prec() const
Returns null currently.
RCP< const Epetra_Map > x_map_
RCP< const EpetraExt::ModelEvaluator > epetraModel_
bool nominalValuesAndBoundsAreUpdated_
RCP< const LinearOpWithSolveFactoryBase< double > > get_W_factory() const
RCP< LinearOpBase< double > > create_DgDx_dot_op_impl(int j) const
ModelEvaluatorBase::InArgs< double > getNominalValues() const
ModelEvaluatorBase::DerivativeSupport convert(const EpetraExt::ModelEvaluator::DerivativeSupport &derivativeSupport)
RCP< LinearOpBase< double > > create_DfDp_op_impl(int l) const
p_map_is_local_t p_map_is_local_
Teuchos::Array< RCP< const VectorSpaceBase< double > > > g_space_t
ModelEvaluatorBase::InArgs< double > lowerBounds_
EpetraExt::ModelEvaluator::OutArgs epetraOutArgsScaling_
void postEvalScalingSetup(const EpetraExt::ModelEvaluator::OutArgs &epetraUnscaledOutArgs, const RCP< Teuchos::FancyOStream > &out, const Teuchos::EVerbosityLevel verbLevel) const
ModelEvaluatorBase::OutArgs< double > prototypeOutArgs_
void updateInArgsOutArgs() const
RCP< const Teuchos::ParameterList > getParameterList() const
void reportFinalPoint(const ModelEvaluatorBase::InArgs< double > &finalPoint, const bool wasSolved)
ModelEvaluatorBase::InArgs< double > createInArgs() const
void finishConvertingOutArgsFromEpetraToThyra(const EpetraExt::ModelEvaluator::OutArgs &epetraOutArgs, RCP< LinearOpBase< double > > &W_op, RCP< EpetraLinearOp > &efwdW, RCP< Epetra_Operator > &eW, const ModelEvaluatorBase::OutArgs< double > &outArgs) const
std::vector< bool > p_map_is_local_t
void setParameterList(RCP< Teuchos::ParameterList > const ¶mList)
RCP< const VectorSpaceBase< double > > get_g_space(int j) const
std::vector< bool > g_map_is_local_t
void preEvalScalingSetup(EpetraExt::ModelEvaluator::InArgs *epetraInArgs, EpetraExt::ModelEvaluator::OutArgs *epetraUnscaledOutArgs, const RCP< Teuchos::FancyOStream > &out, const Teuchos::EVerbosityLevel verbLevel) const
RCP< const VectorSpaceBase< double > > x_space_
RCP< const EpetraExt::ModelEvaluator > getEpetraModel() const
ModelEvaluatorBase::OutArgs< double > createOutArgsImpl() const
EpetraExt::ModelEvaluator::EDerivativeMultiVectorOrientation convert(const ModelEvaluatorBase::EDerivativeMultiVectorOrientation &mvOrientation)
bool currentInArgsOutArgs_
RCP< Epetra_Vector > x_dot_unscaled_
void uninitialize(RCP< const EpetraExt::ModelEvaluator > *epetraModel=NULL, RCP< LinearOpWithSolveFactoryBase< double > > *W_factory=NULL)
ModelEvaluatorBase::InArgs< double > prototypeInArgs_
void convertInArgsFromThyraToEpetra(const ModelEvaluatorBase::InArgs< double > &inArgs, EpetraExt::ModelEvaluator::InArgs *epetraInArgs) const
RCP< const VectorSpaceBase< double > > get_x_space() const
RCP< const Epetra_Map > f_map_
RCP< const Epetra_Vector > getStateVariableInvScalingVec() const
Get the state variable scaling vector s_x (see above).
ModelEvaluatorBase::InArgs< double > getLowerBounds() const
EpetraExt::ModelEvaluator::Derivative convert(const ModelEvaluatorBase::Derivative< double > &derivative, const RCP< const Epetra_Map > &fnc_map, const RCP< const Epetra_Map > &var_map)
EStateFunctionScaling stateFunctionScaling_
void convertInArgsFromEpetraToThyra(const EpetraExt::ModelEvaluator::InArgs &epetraInArgs, ModelEvaluatorBase::InArgs< double > *inArgs) const
void convertOutArgsFromThyraToEpetra(const ModelEvaluatorBase::OutArgs< double > &outArgs, EpetraExt::ModelEvaluator::OutArgs *epetraUnscaledOutArgs, RCP< LinearOpBase< double > > *W_op, RCP< EpetraLinearOp > *efwdW, RCP< Epetra_Operator > *eW) const
@ STATE_FUNC_SCALING_NONE
@ STATE_FUNC_SCALING_ROW_SUM
RCP< const Epetra_Vector > getStateVariableScalingVec() const
Get the inverse state variable scaling vector inv_s_x (see above).
bool finalPointWasSolved_
void evalModelImpl(const ModelEvaluatorBase::InArgs< double > &inArgs, const ModelEvaluatorBase::OutArgs< double > &outArgs) const
RCP< const Teuchos::ParameterList > getValidParameters() const
Teuchos::ArrayView< const std::string > get_g_names(int j) const
RCP< const Epetra_Vector > stateFunctionScalingVec_
RCP< LinearOpWithSolveFactoryBase< double > > W_factory_
ModelEvaluatorBase::InArgs< double > upperBounds_
ModelEvaluatorBase::DerivativeProperties convert(const EpetraExt::ModelEvaluator::DerivativeProperties &derivativeProperties)
RCP< const Teuchos::Array< std::string > > get_p_names(int l) const
RCP< EpetraLinearOp > create_epetra_W_op() const
Teuchos::Array< RCP< const VectorSpaceBase< double > > > p_space_t
RCP< Teuchos::ParameterList > paramList_
RCP< const VectorSpaceBase< double > > get_p_space(int l) const
const ModelEvaluatorBase::InArgs< double > & getFinalPoint() const
ModelEvaluatorBase::EDerivativeMultiVectorOrientation convert(const EpetraExt::ModelEvaluator::EDerivativeMultiVectorOrientation &mvOrientation)
RCP< const Epetra_Vector > stateVariableScalingVec_
EpetraExt::ModelEvaluator::MPDerivative convert(const ModelEvaluatorBase::MPDerivative &derivative, const RCP< const Epetra_Map > &fnc_map, const RCP< const Epetra_Map > &var_map)