Thyra Package Browser (Single Doxygen Collection) Version of the Day
Private Attributes
Thyra::DiagonalQuadraticResponseOnlyModelEvaluator< Scalar > Class Template Reference

Simple parallel response-only ModelEvaluator. More...

#include <Thyra_DiagonalQuadraticResponseOnlyModelEvaluator_decl.hpp>

Inheritance diagram for Thyra::DiagonalQuadraticResponseOnlyModelEvaluator< Scalar >:
Inheritance graph
[legend]

List of all members.

Private Attributes

int Np_
int Ng_
RCP< const Teuchos::Comm
< Ordinal > > 
comm_
const int localDim_
RCP< const VectorSpaceBase
< Scalar > > 
g_space_
RCP< VectorSpaceBase< Scalar > > p_space_
RCP< const VectorBase< Scalar > > ps_
RCP< const VectorBase< Scalar > > diag_
Scalar nonlinearTermFactor_
Scalar g_offset_
RCP< const VectorBase< Scalar > > diag_bar_
RCP< const VectorBase< Scalar > > s_bar_

Constructors/Initializers/Accessors.

 DiagonalQuadraticResponseOnlyModelEvaluator (const int localDim, const RCP< const Teuchos::Comm< Ordinal > > &comm=Teuchos::null)
 
void setSolutionVector (const RCP< const VectorBase< Scalar > > &ps)
 Set the solution vector ps .
const RCP< const VectorBase
< Scalar > > 
getSolutionVector () const
 Get the solution vector ps .
void setDiagonalVector (const RCP< const VectorBase< Scalar > > &diag)
 Set the diagonal vector diag.
void setDiagonalBarVector (const RCP< const VectorBase< Scalar > > &diag_bar)
 Set the diagonal vector diag_bar.
void setNonlinearTermFactor (const Scalar &nonlinearTermFactor)
 Set nonlinear term factory.
void setScalarOffset (const Scalar &g_offset)
 Set offset scalar g_offset .

Public functions overridden from ModelEvaulator.

int Np () const
 
int Ng () const
 
RCP< const VectorSpaceBase
< Scalar > > 
get_p_space (int l) const
 
RCP< const VectorSpaceBase
< Scalar > > 
get_g_space (int j) const
 
ModelEvaluatorBase::InArgs
< Scalar > 
createInArgs () const
 

Private functions overridden from ModelEvaulatorDefaultBase.

ModelEvaluatorBase::OutArgs
< Scalar > 
createOutArgsImpl () const
 
void evalModelImpl (const ModelEvaluatorBase::InArgs< Scalar > &inArgs, const ModelEvaluatorBase::OutArgs< Scalar > &outArgs) const
 

Detailed Description

template<class Scalar>
class Thyra::DiagonalQuadraticResponseOnlyModelEvaluator< Scalar >

Simple parallel response-only ModelEvaluator.

The representation of the model in coefficient form is:


   g(p) = 0.5 * sum( diag[i] * (p[i] - ps[i])^2, i=0...n-1 )
          + 0.5 * nonlinearTermFactor * sum( (p[i] - ps[i])^3, i=0...n-1 )
          + g_offset

 

In vector coefficient form it becomes:


   g(p) = 0.5 * (p-ps)^T * D * (p-ps) + cubicTerm(p) + g_offset

 

where D = diag(diag) and cubitTerm(p) is given above.

This test model implementation also supports the definition of diagonal scalar product implementation. The impact of this is the definition of new abstract Thyra Euclidean vectors of the form:


   p_bar = E_p * p

   g_grad_bar = E_p * g_grad

 

In this notation, we say that the Thyra vectors themselves p_bar are vectors in a Euclidean space (from the standpoint of the ANA clients) and that p are the coefficient vectors in the new non-Euclidean space S_p with scalar product:


   y_bar^T * x_bar = y^T * E_p^T * E_p * x
                   = y^T * S_p * x
                   = <y, x>_p

 

The ideas is that by providing this new vector space basis E_p and inner product <.,.>_p, we change the function that the ANA sees.

This testing class allows a client to specify the desirable diagonal D_bar matrix by passing in the vector diag_bar. From diag_bar and diag, the diagonal s_diag for S_p = diag(s_diag) as:


   s_diag[i] = diag_bar[i] / diag[i]

 

The inner product is therefore:


   scalarProd(y_bar, x_bar) = sum( s_diag[i] * y[i] * x[i], i=0...n-1 )

 

Definition at line 83 of file Thyra_DiagonalQuadraticResponseOnlyModelEvaluator_decl.hpp.


Constructor & Destructor Documentation

template<class Scalar >
Thyra::DiagonalQuadraticResponseOnlyModelEvaluator< Scalar >::DiagonalQuadraticResponseOnlyModelEvaluator ( const int  localDim,
const RCP< const Teuchos::Comm< Ordinal > > &  comm = Teuchos::null 
)

Member Function Documentation

template<class Scalar >
void Thyra::DiagonalQuadraticResponseOnlyModelEvaluator< Scalar >::setSolutionVector ( const RCP< const VectorBase< Scalar > > &  ps)

Set the solution vector ps .

Definition at line 74 of file Thyra_DiagonalQuadraticResponseOnlyModelEvaluator_def.hpp.

template<class Scalar >
const RCP< const Thyra::VectorBase< Scalar > > Thyra::DiagonalQuadraticResponseOnlyModelEvaluator< Scalar >::getSolutionVector ( ) const

Get the solution vector ps .

Definition at line 83 of file Thyra_DiagonalQuadraticResponseOnlyModelEvaluator_def.hpp.

template<class Scalar >
void Thyra::DiagonalQuadraticResponseOnlyModelEvaluator< Scalar >::setDiagonalVector ( const RCP< const VectorBase< Scalar > > &  diag)

Set the diagonal vector diag.

Definition at line 90 of file Thyra_DiagonalQuadraticResponseOnlyModelEvaluator_def.hpp.

template<class Scalar >
void Thyra::DiagonalQuadraticResponseOnlyModelEvaluator< Scalar >::setDiagonalBarVector ( const RCP< const VectorBase< Scalar > > &  diag_bar)

Set the diagonal vector diag_bar.

NOTE: You must call setDiagonalVector(diag) first in order to set the objective diagonal.

Definition at line 99 of file Thyra_DiagonalQuadraticResponseOnlyModelEvaluator_def.hpp.

References Thyra::ele_wise_divide(), Thyra::ScalarProdVectorSpaceBase< Scalar >::setScalarProd(), and Thyra::V_S().

template<class Scalar >
void Thyra::DiagonalQuadraticResponseOnlyModelEvaluator< Scalar >::setNonlinearTermFactor ( const Scalar &  nonlinearTermFactor)

Set nonlinear term factory.

Definition at line 131 of file Thyra_DiagonalQuadraticResponseOnlyModelEvaluator_def.hpp.

template<class Scalar >
void Thyra::DiagonalQuadraticResponseOnlyModelEvaluator< Scalar >::setScalarOffset ( const Scalar &  g_offset)

Set offset scalar g_offset .

Definition at line 139 of file Thyra_DiagonalQuadraticResponseOnlyModelEvaluator_def.hpp.

template<class Scalar >
int Thyra::DiagonalQuadraticResponseOnlyModelEvaluator< Scalar >::Np ( ) const [virtual]
template<class Scalar >
int Thyra::DiagonalQuadraticResponseOnlyModelEvaluator< Scalar >::Ng ( ) const [virtual]
template<class Scalar >
RCP< const Thyra::VectorSpaceBase< Scalar > > Thyra::DiagonalQuadraticResponseOnlyModelEvaluator< Scalar >::get_p_space ( int  l) const [virtual]
template<class Scalar >
RCP< const Thyra::VectorSpaceBase< Scalar > > Thyra::DiagonalQuadraticResponseOnlyModelEvaluator< Scalar >::get_g_space ( int  j) const [virtual]
template<class Scalar >
Thyra::ModelEvaluatorBase::InArgs< Scalar > Thyra::DiagonalQuadraticResponseOnlyModelEvaluator< Scalar >::createInArgs ( ) const [virtual]
template<class Scalar >
Thyra::ModelEvaluatorBase::OutArgs< Scalar > Thyra::DiagonalQuadraticResponseOnlyModelEvaluator< Scalar >::createOutArgsImpl ( ) const [private, virtual]
template<class Scalar >
void Thyra::DiagonalQuadraticResponseOnlyModelEvaluator< Scalar >::evalModelImpl ( const ModelEvaluatorBase::InArgs< Scalar > &  inArgs,
const ModelEvaluatorBase::OutArgs< Scalar > &  outArgs 
) const [private, virtual]

Member Data Documentation

template<class Scalar >
int Thyra::DiagonalQuadraticResponseOnlyModelEvaluator< Scalar >::Np_ [private]
template<class Scalar >
int Thyra::DiagonalQuadraticResponseOnlyModelEvaluator< Scalar >::Ng_ [private]
template<class Scalar >
RCP<const Teuchos::Comm<Ordinal> > Thyra::DiagonalQuadraticResponseOnlyModelEvaluator< Scalar >::comm_ [private]
template<class Scalar >
const int Thyra::DiagonalQuadraticResponseOnlyModelEvaluator< Scalar >::localDim_ [private]
template<class Scalar >
RCP<const VectorSpaceBase<Scalar> > Thyra::DiagonalQuadraticResponseOnlyModelEvaluator< Scalar >::g_space_ [private]
template<class Scalar >
RCP<VectorSpaceBase<Scalar> > Thyra::DiagonalQuadraticResponseOnlyModelEvaluator< Scalar >::p_space_ [private]
template<class Scalar >
RCP<const VectorBase<Scalar> > Thyra::DiagonalQuadraticResponseOnlyModelEvaluator< Scalar >::ps_ [private]
template<class Scalar >
RCP<const VectorBase<Scalar> > Thyra::DiagonalQuadraticResponseOnlyModelEvaluator< Scalar >::diag_ [private]
template<class Scalar >
Scalar Thyra::DiagonalQuadraticResponseOnlyModelEvaluator< Scalar >::nonlinearTermFactor_ [private]
template<class Scalar >
Scalar Thyra::DiagonalQuadraticResponseOnlyModelEvaluator< Scalar >::g_offset_ [private]
template<class Scalar >
RCP<const VectorBase<Scalar> > Thyra::DiagonalQuadraticResponseOnlyModelEvaluator< Scalar >::diag_bar_ [private]
template<class Scalar >
RCP<const VectorBase<Scalar> > Thyra::DiagonalQuadraticResponseOnlyModelEvaluator< Scalar >::s_bar_ [private]

The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines