Thyra Package Browser (Single Doxygen Collection)  Version of the Day
Public Types | Private Types | Private Member Functions | Private Attributes | Related Functions | List of all members
Thyra::EpetraModelEvaluator Class Reference

Concrete Adapter subclass that takes an EpetraExt::ModelEvaluator object and wraps it as a Thyra::ModelEvaluator object. More...

#include <Thyra_EpetraModelEvaluator.hpp>

Inherits ModelEvaluatorDefaultBase< double >, and ParameterListAcceptor.

Public Types

enum  EStateFunctionScaling { STATE_FUNC_SCALING_NONE, STATE_FUNC_SCALING_ROW_SUM }
 

Private Types

typedef Teuchos::Array< RCP< const Epetra_Map > > p_map_t
 
typedef Teuchos::Array< RCP< const Epetra_Map > > g_map_t
 
typedef std::vector< bool > p_map_is_local_t
 
typedef std::vector< bool > g_map_is_local_t
 
typedef Teuchos::Array< RCP< const VectorSpaceBase< double > > > p_space_t
 
typedef Teuchos::Array< RCP< const VectorSpaceBase< double > > > g_space_t
 

Private Member Functions

void convertInArgsFromEpetraToThyra (const EpetraExt::ModelEvaluator::InArgs &epetraInArgs, ModelEvaluatorBase::InArgs< double > *inArgs) const
 
void convertInArgsFromThyraToEpetra (const ModelEvaluatorBase::InArgs< double > &inArgs, EpetraExt::ModelEvaluator::InArgs *epetraInArgs) 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
 
void preEvalScalingSetup (EpetraExt::ModelEvaluator::InArgs *epetraInArgs, EpetraExt::ModelEvaluator::OutArgs *epetraUnscaledOutArgs, const RCP< Teuchos::FancyOStream > &out, const Teuchos::EVerbosityLevel verbLevel) const
 
void postEvalScalingSetup (const EpetraExt::ModelEvaluator::OutArgs &epetraUnscaledOutArgs, const RCP< Teuchos::FancyOStream > &out, const Teuchos::EVerbosityLevel verbLevel) 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
 
void updateNominalValuesAndBounds () const
 
void updateInArgsOutArgs () const
 
RCP< EpetraLinearOpcreate_epetra_W_op () const
 

Private Attributes

RCP< const EpetraExt::ModelEvaluator > epetraModel_
 
RCP< Teuchos::ParameterList > paramList_
 
RCP< LinearOpWithSolveFactoryBase< double > > W_factory_
 
RCP< const Epetra_Map > x_map_
 
p_map_t p_map_
 
g_map_t g_map_
 
p_map_is_local_t p_map_is_local_
 
p_map_is_local_t g_map_is_local_
 
RCP< const Epetra_Map > f_map_
 
RCP< const VectorSpaceBase< double > > x_space_
 
p_space_t p_space_
 
RCP< const VectorSpaceBase< double > > f_space_
 
g_space_t g_space_
 
ModelEvaluatorBase::InArgs< double > nominalValues_
 
ModelEvaluatorBase::InArgs< double > lowerBounds_
 
ModelEvaluatorBase::InArgs< double > upperBounds_
 
bool nominalValuesAndBoundsAreUpdated_
 
ModelEvaluatorBase::InArgs< double > finalPoint_
 
EStateFunctionScaling stateFunctionScaling_
 
RCP< const Epetra_Vector > stateFunctionScalingVec_
 
RCP< const Epetra_Vector > stateVariableScalingVec_
 
RCP< const Epetra_Vector > invStateVariableScalingVec_
 
EpetraExt::ModelEvaluator::InArgs epetraInArgsScaling_
 
EpetraExt::ModelEvaluator::OutArgs epetraOutArgsScaling_
 
RCP< Epetra_Vector > x_unscaled_
 
RCP< Epetra_Vector > x_dot_unscaled_
 
ModelEvaluatorBase::InArgs< double > prototypeInArgs_
 
ModelEvaluatorBase::OutArgs< double > prototypeOutArgs_
 
bool currentInArgsOutArgs_
 
bool finalPointWasSolved_
 

Related Functions

(Note that these are not member functions.)

RCP< EpetraModelEvaluatorepetraModelEvaluator (const RCP< const EpetraExt::ModelEvaluator > &epetraModel, const RCP< LinearOpWithSolveFactoryBase< double > > &W_factory)
 
ModelEvaluatorBase::EDerivativeMultiVectorOrientation convert (const EpetraExt::ModelEvaluator::EDerivativeMultiVectorOrientation &mvOrientation)
 
EpetraExt::ModelEvaluator::EDerivativeMultiVectorOrientation convert (const ModelEvaluatorBase::EDerivativeMultiVectorOrientation &mvOrientation)
 
ModelEvaluatorBase::DerivativeProperties convert (const EpetraExt::ModelEvaluator::DerivativeProperties &derivativeProperties)
 
ModelEvaluatorBase::DerivativeSupport convert (const EpetraExt::ModelEvaluator::DerivativeSupport &derivativeSupport)
 
EpetraExt::ModelEvaluator::Derivative convert (const ModelEvaluatorBase::Derivative< double > &derivative, const RCP< const Epetra_Map > &fnc_map, const RCP< const Epetra_Map > &var_map)
 

Constructors/initializers/accessors/utilities.

 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 EpetraExt::ModelEvaluator > getEpetraModel () const
 
void setNominalValues (const ModelEvaluatorBase::InArgs< double > &nominalValues)
 Set the nominal values. More...
 
void setStateVariableScalingVec (const RCP< const Epetra_Vector > &stateVariableScalingVec)
 Set the state variable scaling vector s_x (see above). More...
 
RCP< const Epetra_Vector > getStateVariableInvScalingVec () const
 Get the state variable scaling vector s_x (see above). More...
 
RCP< const Epetra_Vector > getStateVariableScalingVec () const
 Get the inverse state variable scaling vector inv_s_x (see above). More...
 
void setStateFunctionScalingVec (const RCP< const Epetra_Vector > &stateFunctionScalingVec)
 Set the state function scaling vector s_f (see above). More...
 
RCP< const Epetra_Vector > getStateFunctionScalingVec () const
 Get the state function scaling vector s_f (see above). More...
 
void uninitialize (RCP< const EpetraExt::ModelEvaluator > *epetraModel=NULL, RCP< LinearOpWithSolveFactoryBase< double > > *W_factory=NULL)
 
const ModelEvaluatorBase::InArgs< double > & getFinalPoint () const
 
bool finalPointWasSolved () const
 

Public functions overridden from Teuchos::Describable.

std::string description () const
 

Overridden from ParameterListAcceptor

void setParameterList (RCP< Teuchos::ParameterList > const &paramList)
 
RCP< Teuchos::ParameterList > getNonconstParameterList ()
 
RCP< Teuchos::ParameterList > unsetParameterList ()
 
RCP< const Teuchos::ParameterList > getParameterList () const
 
RCP< const Teuchos::ParameterList > getValidParameters () const
 

Public functions overridden from ModelEvaulator.

int Np () const
 
int Ng () const
 
RCP< const VectorSpaceBase< double > > get_x_space () const
 
RCP< const VectorSpaceBase< double > > get_f_space () const
 
RCP< const VectorSpaceBase< double > > get_p_space (int l) const
 
RCP< const Teuchos::Array< std::string > > get_p_names (int l) const
 
RCP< const VectorSpaceBase< double > > get_g_space (int j) const
 
Teuchos::ArrayView< const std::string > get_g_names (int j) const
 
ModelEvaluatorBase::InArgs< double > getNominalValues () const
 
ModelEvaluatorBase::InArgs< double > getLowerBounds () const
 
ModelEvaluatorBase::InArgs< double > getUpperBounds () const
 
RCP< LinearOpBase< double > > create_W_op () const
 
RCP< PreconditionerBase< double > > create_W_prec () const
 Returns null currently. More...
 
RCP< const LinearOpWithSolveFactoryBase< double > > get_W_factory () const
 
ModelEvaluatorBase::InArgs< double > createInArgs () const
 
void reportFinalPoint (const ModelEvaluatorBase::InArgs< double > &finalPoint, const bool wasSolved)
 

Private functions overridden from ModelEvaulatorDefaultBase.

RCP< LinearOpBase< double > > create_DfDp_op_impl (int l) const
 
RCP< LinearOpBase< double > > create_DgDx_dot_op_impl (int j) const
 
RCP< LinearOpBase< double > > create_DgDx_op_impl (int j) const
 
RCP< LinearOpBase< double > > create_DgDp_op_impl (int j, int l) const
 
ModelEvaluatorBase::OutArgs< double > createOutArgsImpl () const
 
void evalModelImpl (const ModelEvaluatorBase::InArgs< double > &inArgs, const ModelEvaluatorBase::OutArgs< double > &outArgs) const
 

Detailed Description

Concrete Adapter subclass that takes an EpetraExt::ModelEvaluator object and wraps it as a Thyra::ModelEvaluator object.

This class takes care of the basic details of wrapping and unwrapping Epetra from Thyra objects. This class is highly configurable and will be maintained and modified in the future as the basic link between the Epetra world and the Thyra world for nonlinear models and nonlinear algorithms.

Scaling

This class can handle scaling of the state function f(...) and of the state variables x and all of the affected derivatives.

The scaling for the state function can be set manually using setStateFunctionScalingVec() or can be computed automatically using the parameter "State Function Scaling" (see documentation output from this->getValidParameters()->print(...)) in the input parameter list set by setParameterList(). Reguardless of how the state function scaling is computed, it will compute a positive vector s_f that defines a diagonal matrix S_f = diag(s_f) that transforms the state function:

   f(...) = S_f * f_orig(...)

where f_orig(...) is the original state function as computed by the underlying EpetraExt::ModelEvaluator object and f(...) is the state function as computed by evalModel().

The scaling for the state variables must be set manually using Thyra::setStateVariableScalingVec(). The vector that is set s_x>/tt> defines a diagonal scaling matrix S_x = diag(s_x) that transforms the variables as:

   x = S_x * x_orig

where x_orig is the original unscaled state variable vector as defined by the underlying EpetraExt::ModelEvaluator object and x is the scaled state varaible vector as returned from getNominalValues() and as accepted by evalModel(). Note that when the scaled variables x are passed into evalModel that they are unscaled as:

   x_orig = inv(S_x) * x

where inv(S_x) is the inverse of the diagonals of S_x which is stored as a vector inv_s_x.

Note how these scalings affect the state function:

   f(x,...) = S_f * f_orig( inv(S_x)*x...)

which as the state/state Jacobian:

   W = d(f)/d(x) = S_f * d(f_orig)/d(x_orig) * inv(S_x)

Currently, this class does not handle scalings of the parameters p(l) or of the auxilary response functions g(j)(...).

The state varaible and state function scaling gives the following scaled quantities:

   f = S_f * f_orig

   W = S_f * W_orig * inv(S_x)

   DfDp(l) = S_f * DfDp_orig(l)

   g(j) = g_orig(j)

   DgDx_dot(j) = DgDx_dot_orig(j) * inv(S_x)

   DgDx(j) = DgDx_orig(j) * inv(S_x)
   
   DgDp(j,l) = DgDp_orig(j,l)

Since the scaling is done explicitly, the client never even sees the orginal scaling and the linear solver (and contained preconditioner) are computed from the scaled W shown above.

ToDo: Describe how scaling affects the Hessian-vector products an how you just need to scale the Lagrange mutipliers as:

 u^T * f(...) = u^T * (S_f * f_orig(...)) = u_f^T * f_orig(...)

where u_f = S_f * u.

ToDo: Finish documentation!

Definition at line 175 of file Thyra_EpetraModelEvaluator.hpp.

Member Typedef Documentation

◆ p_map_t

typedef Teuchos::Array<RCP<const Epetra_Map> > Thyra::EpetraModelEvaluator::p_map_t
private

Definition at line 352 of file Thyra_EpetraModelEvaluator.hpp.

◆ g_map_t

typedef Teuchos::Array<RCP<const Epetra_Map> > Thyra::EpetraModelEvaluator::g_map_t
private

Definition at line 353 of file Thyra_EpetraModelEvaluator.hpp.

◆ p_map_is_local_t

typedef std::vector<bool> Thyra::EpetraModelEvaluator::p_map_is_local_t
private

Definition at line 354 of file Thyra_EpetraModelEvaluator.hpp.

◆ g_map_is_local_t

typedef std::vector<bool> Thyra::EpetraModelEvaluator::g_map_is_local_t
private

Definition at line 355 of file Thyra_EpetraModelEvaluator.hpp.

◆ p_space_t

typedef Teuchos::Array<RCP<const VectorSpaceBase<double> > > Thyra::EpetraModelEvaluator::p_space_t
private

Definition at line 358 of file Thyra_EpetraModelEvaluator.hpp.

◆ g_space_t

typedef Teuchos::Array<RCP<const VectorSpaceBase<double> > > Thyra::EpetraModelEvaluator::g_space_t
private

Definition at line 360 of file Thyra_EpetraModelEvaluator.hpp.

Member Enumeration Documentation

◆ EStateFunctionScaling

Enumerator
STATE_FUNC_SCALING_NONE 
STATE_FUNC_SCALING_ROW_SUM 

Definition at line 322 of file Thyra_EpetraModelEvaluator.hpp.

Constructor & Destructor Documentation

◆ EpetraModelEvaluator() [1/2]

Thyra::EpetraModelEvaluator::EpetraModelEvaluator ( )

Definition at line 123 of file Thyra_EpetraModelEvaluator.cpp.

◆ EpetraModelEvaluator() [2/2]

Thyra::EpetraModelEvaluator::EpetraModelEvaluator ( const RCP< const EpetraExt::ModelEvaluator > &  epetraModel,
const RCP< LinearOpWithSolveFactoryBase< double > > &  W_factory 
)

Definition at line 129 of file Thyra_EpetraModelEvaluator.cpp.

References initialize().

Member Function Documentation

◆ initialize()

void Thyra::EpetraModelEvaluator::initialize ( const RCP< const EpetraExt::ModelEvaluator > &  epetraModel,
const RCP< LinearOpWithSolveFactoryBase< double > > &  W_factory 
)

◆ getEpetraModel()

RCP< const EpetraExt::ModelEvaluator > Thyra::EpetraModelEvaluator::getEpetraModel ( ) const

Definition at line 197 of file Thyra_EpetraModelEvaluator.cpp.

References epetraModel_.

◆ setNominalValues()

void Thyra::EpetraModelEvaluator::setNominalValues ( const ModelEvaluatorBase::InArgs< double > &  nominalValues)

Set the nominal values.

Warning, if scaling is being used, these must be according to the scaled values, not the original unscaled values.

Definition at line 203 of file Thyra_EpetraModelEvaluator.cpp.

References nominalValues_.

◆ setStateVariableScalingVec()

void Thyra::EpetraModelEvaluator::setStateVariableScalingVec ( const RCP< const Epetra_Vector > &  stateVariableScalingVec)

Set the state variable scaling vector s_x (see above).

This function must be called after intialize() or the constructur in order to set the scaling vector correctly!

ToDo: Move this into an external strategy class object!

Definition at line 212 of file Thyra_EpetraModelEvaluator.cpp.

References createInArgs(), invStateVariableScalingVec_, nominalValuesAndBoundsAreUpdated_, and stateVariableScalingVec_.

◆ getStateVariableInvScalingVec()

RCP< const Epetra_Vector > Thyra::EpetraModelEvaluator::getStateVariableInvScalingVec ( ) const

Get the state variable scaling vector s_x (see above).

Definition at line 234 of file Thyra_EpetraModelEvaluator.cpp.

References invStateVariableScalingVec_, and updateNominalValuesAndBounds().

◆ getStateVariableScalingVec()

RCP< const Epetra_Vector > Thyra::EpetraModelEvaluator::getStateVariableScalingVec ( ) const

Get the inverse state variable scaling vector inv_s_x (see above).

Definition at line 227 of file Thyra_EpetraModelEvaluator.cpp.

References stateVariableScalingVec_.

◆ setStateFunctionScalingVec()

void Thyra::EpetraModelEvaluator::setStateFunctionScalingVec ( const RCP< const Epetra_Vector > &  stateFunctionScalingVec)

Set the state function scaling vector s_f (see above).

Definition at line 241 of file Thyra_EpetraModelEvaluator.cpp.

References stateFunctionScalingVec_.

◆ getStateFunctionScalingVec()

RCP< const Epetra_Vector > Thyra::EpetraModelEvaluator::getStateFunctionScalingVec ( ) const

Get the state function scaling vector s_f (see above).

Definition at line 250 of file Thyra_EpetraModelEvaluator.cpp.

References stateFunctionScalingVec_.

◆ uninitialize()

void Thyra::EpetraModelEvaluator::uninitialize ( RCP< const EpetraExt::ModelEvaluator > *  epetraModel = NULL,
RCP< LinearOpWithSolveFactoryBase< double > > *  W_factory = NULL 
)

◆ getFinalPoint()

const ModelEvaluatorBase::InArgs< double > & Thyra::EpetraModelEvaluator::getFinalPoint ( ) const

Definition at line 273 of file Thyra_EpetraModelEvaluator.cpp.

References finalPoint_.

◆ finalPointWasSolved()

bool Thyra::EpetraModelEvaluator::finalPointWasSolved ( ) const

Definition at line 279 of file Thyra_EpetraModelEvaluator.cpp.

References finalPointWasSolved_.

◆ description()

std::string Thyra::EpetraModelEvaluator::description ( ) const

Definition at line 288 of file Thyra_EpetraModelEvaluator.cpp.

References epetraModel_, and W_factory_.

Referenced by updateInArgsOutArgs().

◆ setParameterList()

void Thyra::EpetraModelEvaluator::setParameterList ( RCP< Teuchos::ParameterList > const &  paramList)

◆ getNonconstParameterList()

RCP< Teuchos::ParameterList > Thyra::EpetraModelEvaluator::getNonconstParameterList ( )

Definition at line 331 of file Thyra_EpetraModelEvaluator.cpp.

References paramList_.

◆ unsetParameterList()

RCP< Teuchos::ParameterList > Thyra::EpetraModelEvaluator::unsetParameterList ( )

Definition at line 338 of file Thyra_EpetraModelEvaluator.cpp.

References paramList_.

◆ getParameterList()

RCP< const Teuchos::ParameterList > Thyra::EpetraModelEvaluator::getParameterList ( ) const

Definition at line 347 of file Thyra_EpetraModelEvaluator.cpp.

References paramList_.

◆ getValidParameters()

RCP< const Teuchos::ParameterList > Thyra::EpetraModelEvaluator::getValidParameters ( ) const

◆ Np()

int Thyra::EpetraModelEvaluator::Np ( ) const

Definition at line 403 of file Thyra_EpetraModelEvaluator.cpp.

References p_space_.

Referenced by get_p_names(), and get_p_space().

◆ Ng()

int Thyra::EpetraModelEvaluator::Ng ( ) const

Definition at line 409 of file Thyra_EpetraModelEvaluator.cpp.

References g_space_.

Referenced by get_g_names(), and get_g_space().

◆ get_x_space()

RCP< const VectorSpaceBase< double > > Thyra::EpetraModelEvaluator::get_x_space ( ) const

Definition at line 416 of file Thyra_EpetraModelEvaluator.cpp.

References x_space_.

Referenced by create_epetra_W_op().

◆ get_f_space()

RCP< const VectorSpaceBase< double > > Thyra::EpetraModelEvaluator::get_f_space ( ) const

Definition at line 423 of file Thyra_EpetraModelEvaluator.cpp.

References f_space_.

Referenced by create_epetra_W_op().

◆ get_p_space()

RCP< const VectorSpaceBase< double > > Thyra::EpetraModelEvaluator::get_p_space ( int  l) const

Definition at line 430 of file Thyra_EpetraModelEvaluator.cpp.

References Np(), and p_space_.

◆ get_p_names()

RCP< const Teuchos::Array< std::string > > Thyra::EpetraModelEvaluator::get_p_names ( int  l) const

Definition at line 440 of file Thyra_EpetraModelEvaluator.cpp.

References epetraModel_, and Np().

◆ get_g_space()

RCP< const VectorSpaceBase< double > > Thyra::EpetraModelEvaluator::get_g_space ( int  j) const

Definition at line 450 of file Thyra_EpetraModelEvaluator.cpp.

References g_space_, and Ng().

◆ get_g_names()

Teuchos::ArrayView< const std::string > Thyra::EpetraModelEvaluator::get_g_names ( int  j) const

Definition at line 458 of file Thyra_EpetraModelEvaluator.cpp.

References epetraModel_, and Ng().

◆ getNominalValues()

ModelEvaluatorBase::InArgs< double > Thyra::EpetraModelEvaluator::getNominalValues ( ) const

Definition at line 468 of file Thyra_EpetraModelEvaluator.cpp.

References nominalValues_, and updateNominalValuesAndBounds().

Referenced by evalModelImpl().

◆ getLowerBounds()

ModelEvaluatorBase::InArgs< double > Thyra::EpetraModelEvaluator::getLowerBounds ( ) const

Definition at line 476 of file Thyra_EpetraModelEvaluator.cpp.

References lowerBounds_, and updateNominalValuesAndBounds().

◆ getUpperBounds()

ModelEvaluatorBase::InArgs< double > Thyra::EpetraModelEvaluator::getUpperBounds ( ) const

Definition at line 484 of file Thyra_EpetraModelEvaluator.cpp.

References updateNominalValuesAndBounds(), and upperBounds_.

◆ create_W_op()

RCP< LinearOpBase< double > > Thyra::EpetraModelEvaluator::create_W_op ( ) const

Definition at line 492 of file Thyra_EpetraModelEvaluator.cpp.

References create_epetra_W_op().

◆ create_W_prec()

RCP< PreconditionerBase< double > > Thyra::EpetraModelEvaluator::create_W_prec ( ) const

Returns null currently.

Definition at line 499 of file Thyra_EpetraModelEvaluator.cpp.

◆ get_W_factory()

RCP< const LinearOpWithSolveFactoryBase< double > > Thyra::EpetraModelEvaluator::get_W_factory ( ) const

.

Definition at line 506 of file Thyra_EpetraModelEvaluator.cpp.

References W_factory_.

◆ createInArgs()

ModelEvaluatorBase::InArgs< double > Thyra::EpetraModelEvaluator::createInArgs ( ) const

◆ reportFinalPoint()

void Thyra::EpetraModelEvaluator::reportFinalPoint ( const ModelEvaluatorBase::InArgs< double > &  finalPoint,
const bool  wasSolved 
)

Definition at line 520 of file Thyra_EpetraModelEvaluator.cpp.

References createInArgs(), finalPoint_, and finalPointWasSolved_.

◆ create_DfDp_op_impl()

RCP< LinearOpBase< double > > Thyra::EpetraModelEvaluator::create_DfDp_op_impl ( int  l) const
private

Definition at line 535 of file Thyra_EpetraModelEvaluator.cpp.

◆ create_DgDx_dot_op_impl()

RCP< LinearOpBase< double > > Thyra::EpetraModelEvaluator::create_DgDx_dot_op_impl ( int  j) const
private

Definition at line 543 of file Thyra_EpetraModelEvaluator.cpp.

◆ create_DgDx_op_impl()

RCP< LinearOpBase< double > > Thyra::EpetraModelEvaluator::create_DgDx_op_impl ( int  j) const
private

Definition at line 551 of file Thyra_EpetraModelEvaluator.cpp.

◆ create_DgDp_op_impl()

RCP< LinearOpBase< double > > Thyra::EpetraModelEvaluator::create_DgDp_op_impl ( int  j,
int  l 
) const
private

Definition at line 559 of file Thyra_EpetraModelEvaluator.cpp.

◆ createOutArgsImpl()

ModelEvaluatorBase::OutArgs< double > Thyra::EpetraModelEvaluator::createOutArgsImpl ( ) const
private

◆ evalModelImpl()

void Thyra::EpetraModelEvaluator::evalModelImpl ( const ModelEvaluatorBase::InArgs< double > &  inArgs,
const ModelEvaluatorBase::OutArgs< double > &  outArgs 
) const
private

◆ convertInArgsFromEpetraToThyra()

void Thyra::EpetraModelEvaluator::convertInArgsFromEpetraToThyra ( const EpetraExt::ModelEvaluator::InArgs &  epetraInArgs,
ModelEvaluatorBase::InArgs< double > *  inArgs 
) const
private

Definition at line 803 of file Thyra_EpetraModelEvaluator.cpp.

References Thyra::create_Vector(), p_space_, and x_space_.

Referenced by updateNominalValuesAndBounds().

◆ convertInArgsFromThyraToEpetra()

void Thyra::EpetraModelEvaluator::convertInArgsFromThyraToEpetra ( const ModelEvaluatorBase::InArgs< double > &  inArgs,
EpetraExt::ModelEvaluator::InArgs *  epetraInArgs 
) const
private

Definition at line 846 of file Thyra_EpetraModelEvaluator.cpp.

References Thyra::get_Epetra_Vector(), p_map_, and x_map_.

Referenced by evalModelImpl().

◆ convertOutArgsFromThyraToEpetra()

void Thyra::EpetraModelEvaluator::convertOutArgsFromThyraToEpetra ( const ModelEvaluatorBase::OutArgs< double > &  outArgs,
EpetraExt::ModelEvaluator::OutArgs *  epetraUnscaledOutArgs,
RCP< LinearOpBase< double > > *  W_op,
RCP< EpetraLinearOp > *  efwdW,
RCP< Epetra_Operator > *  eW 
) const
private

Definition at line 948 of file Thyra_EpetraModelEvaluator.cpp.

References convert(), f_map_, g_map_, Thyra::get_Epetra_Vector(), p_map_, and x_map_.

Referenced by evalModelImpl().

◆ preEvalScalingSetup()

void Thyra::EpetraModelEvaluator::preEvalScalingSetup ( EpetraExt::ModelEvaluator::InArgs *  epetraInArgs,
EpetraExt::ModelEvaluator::OutArgs *  epetraUnscaledOutArgs,
const RCP< Teuchos::FancyOStream > &  out,
const Teuchos::EVerbosityLevel  verbLevel 
) const
private

◆ postEvalScalingSetup()

void Thyra::EpetraModelEvaluator::postEvalScalingSetup ( const EpetraExt::ModelEvaluator::OutArgs &  epetraUnscaledOutArgs,
const RCP< Teuchos::FancyOStream > &  out,
const Teuchos::EVerbosityLevel  verbLevel 
) const
private

◆ finishConvertingOutArgsFromEpetraToThyra()

void Thyra::EpetraModelEvaluator::finishConvertingOutArgsFromEpetraToThyra ( const EpetraExt::ModelEvaluator::OutArgs &  epetraOutArgs,
RCP< LinearOpBase< double > > &  W_op,
RCP< EpetraLinearOp > &  efwdW,
RCP< Epetra_Operator > &  eW,
const ModelEvaluatorBase::OutArgs< double > &  outArgs 
) const
private

Definition at line 1273 of file Thyra_EpetraModelEvaluator.cpp.

Referenced by evalModelImpl().

◆ updateNominalValuesAndBounds()

void Thyra::EpetraModelEvaluator::updateNominalValuesAndBounds ( ) const
private

◆ updateInArgsOutArgs()

void Thyra::EpetraModelEvaluator::updateInArgsOutArgs ( ) const
private

◆ create_epetra_W_op()

RCP< EpetraLinearOp > Thyra::EpetraModelEvaluator::create_epetra_W_op ( ) const
private

Definition at line 1503 of file Thyra_EpetraModelEvaluator.cpp.

References epetraModel_, get_f_space(), and get_x_space().

Referenced by create_W_op().

Friends And Related Function Documentation

◆ epetraModelEvaluator()

RCP< EpetraModelEvaluator > epetraModelEvaluator ( const RCP< const EpetraExt::ModelEvaluator > &  epetraModel,
const RCP< LinearOpWithSolveFactoryBase< double > > &  W_factory 
)
related

◆ convert() [1/5]

ModelEvaluatorBase::EDerivativeMultiVectorOrientation convert ( const EpetraExt::ModelEvaluator::EDerivativeMultiVectorOrientation &  mvOrientation)
related

◆ convert() [2/5]

EpetraExt::ModelEvaluator::EDerivativeMultiVectorOrientation convert ( const ModelEvaluatorBase::EDerivativeMultiVectorOrientation &  mvOrientation)
related

◆ convert() [3/5]

ModelEvaluatorBase::DerivativeProperties convert ( const EpetraExt::ModelEvaluator::DerivativeProperties &  derivativeProperties)
related

◆ convert() [4/5]

ModelEvaluatorBase::DerivativeSupport convert ( const EpetraExt::ModelEvaluator::DerivativeSupport &  derivativeSupport)
related

◆ convert() [5/5]

EpetraExt::ModelEvaluator::Derivative convert ( const ModelEvaluatorBase::Derivative< double > &  derivative,
const RCP< const Epetra_Map > &  fnc_map,
const RCP< const Epetra_Map > &  var_map 
)
related

Member Data Documentation

◆ epetraModel_

RCP<const EpetraExt::ModelEvaluator> Thyra::EpetraModelEvaluator::epetraModel_
private

◆ paramList_

RCP<Teuchos::ParameterList> Thyra::EpetraModelEvaluator::paramList_
private

◆ W_factory_

RCP<LinearOpWithSolveFactoryBase<double> > Thyra::EpetraModelEvaluator::W_factory_
private

◆ x_map_

RCP<const Epetra_Map> Thyra::EpetraModelEvaluator::x_map_
private

◆ p_map_

p_map_t Thyra::EpetraModelEvaluator::p_map_
private

◆ g_map_

g_map_t Thyra::EpetraModelEvaluator::g_map_
private

Definition at line 373 of file Thyra_EpetraModelEvaluator.hpp.

Referenced by convertOutArgsFromThyraToEpetra(), and initialize().

◆ p_map_is_local_

p_map_is_local_t Thyra::EpetraModelEvaluator::p_map_is_local_
private

Definition at line 374 of file Thyra_EpetraModelEvaluator.hpp.

Referenced by initialize().

◆ g_map_is_local_

p_map_is_local_t Thyra::EpetraModelEvaluator::g_map_is_local_
private

Definition at line 375 of file Thyra_EpetraModelEvaluator.hpp.

Referenced by initialize().

◆ f_map_

RCP<const Epetra_Map> Thyra::EpetraModelEvaluator::f_map_
private

Definition at line 376 of file Thyra_EpetraModelEvaluator.hpp.

Referenced by convertOutArgsFromThyraToEpetra(), and initialize().

◆ x_space_

RCP<const VectorSpaceBase<double> > Thyra::EpetraModelEvaluator::x_space_
private

◆ p_space_

p_space_t Thyra::EpetraModelEvaluator::p_space_
private

◆ f_space_

RCP<const VectorSpaceBase<double> > Thyra::EpetraModelEvaluator::f_space_
private

Definition at line 380 of file Thyra_EpetraModelEvaluator.hpp.

Referenced by get_f_space(), and initialize().

◆ g_space_

g_space_t Thyra::EpetraModelEvaluator::g_space_
private

Definition at line 381 of file Thyra_EpetraModelEvaluator.hpp.

Referenced by get_g_space(), initialize(), and Ng().

◆ nominalValues_

ModelEvaluatorBase::InArgs<double> Thyra::EpetraModelEvaluator::nominalValues_
mutableprivate

◆ lowerBounds_

ModelEvaluatorBase::InArgs<double> Thyra::EpetraModelEvaluator::lowerBounds_
mutableprivate

Definition at line 384 of file Thyra_EpetraModelEvaluator.hpp.

Referenced by getLowerBounds(), and updateNominalValuesAndBounds().

◆ upperBounds_

ModelEvaluatorBase::InArgs<double> Thyra::EpetraModelEvaluator::upperBounds_
mutableprivate

Definition at line 385 of file Thyra_EpetraModelEvaluator.hpp.

Referenced by getUpperBounds(), and updateNominalValuesAndBounds().

◆ nominalValuesAndBoundsAreUpdated_

bool Thyra::EpetraModelEvaluator::nominalValuesAndBoundsAreUpdated_
mutableprivate

◆ finalPoint_

ModelEvaluatorBase::InArgs<double> Thyra::EpetraModelEvaluator::finalPoint_
private

Definition at line 388 of file Thyra_EpetraModelEvaluator.hpp.

Referenced by getFinalPoint(), and reportFinalPoint().

◆ stateFunctionScaling_

EStateFunctionScaling Thyra::EpetraModelEvaluator::stateFunctionScaling_
private

◆ stateFunctionScalingVec_

RCP<const Epetra_Vector> Thyra::EpetraModelEvaluator::stateFunctionScalingVec_
mutableprivate

◆ stateVariableScalingVec_

RCP<const Epetra_Vector> Thyra::EpetraModelEvaluator::stateVariableScalingVec_
private

◆ invStateVariableScalingVec_

RCP<const Epetra_Vector> Thyra::EpetraModelEvaluator::invStateVariableScalingVec_
mutableprivate

◆ epetraInArgsScaling_

EpetraExt::ModelEvaluator::InArgs Thyra::EpetraModelEvaluator::epetraInArgsScaling_
mutableprivate

◆ epetraOutArgsScaling_

EpetraExt::ModelEvaluator::OutArgs Thyra::EpetraModelEvaluator::epetraOutArgsScaling_
mutableprivate

Definition at line 396 of file Thyra_EpetraModelEvaluator.hpp.

Referenced by evalModelImpl(), initialize(), and postEvalScalingSetup().

◆ x_unscaled_

RCP<Epetra_Vector> Thyra::EpetraModelEvaluator::x_unscaled_
mutableprivate

Definition at line 398 of file Thyra_EpetraModelEvaluator.hpp.

◆ x_dot_unscaled_

RCP<Epetra_Vector> Thyra::EpetraModelEvaluator::x_dot_unscaled_
mutableprivate

Definition at line 399 of file Thyra_EpetraModelEvaluator.hpp.

◆ prototypeInArgs_

ModelEvaluatorBase::InArgs<double> Thyra::EpetraModelEvaluator::prototypeInArgs_
mutableprivate

Definition at line 401 of file Thyra_EpetraModelEvaluator.hpp.

Referenced by createInArgs(), and updateInArgsOutArgs().

◆ prototypeOutArgs_

ModelEvaluatorBase::OutArgs<double> Thyra::EpetraModelEvaluator::prototypeOutArgs_
mutableprivate

Definition at line 402 of file Thyra_EpetraModelEvaluator.hpp.

Referenced by createOutArgsImpl(), and updateInArgsOutArgs().

◆ currentInArgsOutArgs_

bool Thyra::EpetraModelEvaluator::currentInArgsOutArgs_
mutableprivate

◆ finalPointWasSolved_

bool Thyra::EpetraModelEvaluator::finalPointWasSolved_
private

The documentation for this class was generated from the following files: