Thyra Version of the Day
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.

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
 

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.

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]

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