Stokhos Development
Loading...
Searching...
No Matches
Stokhos::MPModelEvaluator Class Reference

Multi-point model evaluator. More...

#include <Stokhos_MPModelEvaluator.hpp>

Inheritance diagram for Stokhos::MPModelEvaluator:
Collaboration diagram for Stokhos::MPModelEvaluator:

Public Member Functions

 MPModelEvaluator (const Teuchos::RCP< EpetraExt::ModelEvaluator > &me, const Teuchos::RCP< const EpetraExt::MultiComm > &mp_comm, const Teuchos::RCP< const Epetra_Map > &mp_block_map, const Teuchos::RCP< Teuchos::ParameterList > &params)

Overridden from EpetraExt::ModelEvaluator .

Teuchos::RCP< EpetraExt::ModelEvaluator > me
 Underlying model evaluator.
unsigned int num_mp_blocks
 Number of blocks.
Teuchos::RCP< const EpetraExt::MultiComm > mp_comm
 Parallel MP communicator.
Teuchos::RCP< const Epetra_Map > mp_block_map
 Map for layout of parallel MP blocks.
Teuchos::RCP< Teuchos::ParameterList > params
 Algorithmic parameters.
bool supports_x
 Whether we support x (and thus f and W).
Teuchos::RCP< const Epetra_Map > x_map
 Underlying unknown map.
Teuchos::RCP< const Epetra_Map > f_map
 Underlying residual map.
Teuchos::RCP< const Epetra_Map > mp_x_map
 Block MP unknown map.
Teuchos::RCP< const Epetra_Map > mp_f_map
 Block MP residual map.
int num_p
 Number of parameter vectors of underlying model evaluator.
int num_p_mp
 Number of multi-point parameter vectors.
Teuchos::Array< int > mp_p_index_map
 Index map between block-p and p_mp maps.
Teuchos::Array< Teuchos::RCP< const Epetra_Map > > mp_p_map
 Block MP parameter map.
Teuchos::Array< Teuchos::RCP< Teuchos::Array< std::string > > > mp_p_names
 MP coefficient parameter names.
int num_g
 Number of response vectors of underlying model evaluator.
int num_g_mp
 Number of multi-point response vectors.
Teuchos::Array< int > mp_g_index_map
 Index map between block-g and g_mp maps.
Teuchos::Array< Teuchos::RCP< const Epetra_Map > > mp_g_map
 Block MP response map.
Teuchos::RCP< Stokhos::ProductEpetraOperatorW_mp_blocks
 W multi-point components.
Teuchos::RCP< Stokhos::ProductEpetraVectormp_x_init
 MP initial x.
Teuchos::RCP< Stokhos::ProductEpetraVectormp_x_dot_init
Teuchos::Array< Teuchos::RCP< ProductEpetraVector > > mp_p_init
 MP initial p.
Teuchos::RCP< Stokhos::BlockDiagonalOperatormy_W
 W pointer for evaluating preconditioner.
Teuchos::RCP< Epetra_Vector > my_x
 x pointer for evaluating preconditioner
Teuchos::RCP< const Epetra_Map > get_x_map () const
 Return solution vector map.
Teuchos::RCP< const Epetra_Map > get_f_map () const
 Return residual vector map.
Teuchos::RCP< const Epetra_Map > get_p_map (int l) const
 Return parameter vector map.
Teuchos::RCP< const Epetra_Map > get_g_map (int l) const
 Return response map.
Teuchos::RCP< const Teuchos::Array< std::string > > get_p_names (int l) const
 Return array of parameter names.
Teuchos::RCP< const Epetra_Vector > get_x_init () const
 Return initial solution.
Teuchos::RCP< const Epetra_Vector > get_x_dot_init () const
Teuchos::RCP< const Epetra_Vector > get_p_init (int l) const
 Return initial parameters.
Teuchos::RCP< Epetra_Operator > create_W () const
 Create W = alpha*M + beta*J matrix.
Teuchos::RCP< EpetraExt::ModelEvaluator::Preconditioner > create_WPrec () const
 Create preconditioner operator.
Teuchos::RCP< Epetra_Operator > create_DgDx_dot_op (int j) const
 Create MP operator representing dg/dxdot.
Teuchos::RCP< Epetra_Operator > create_DgDx_op (int j) const
 Create MP operator representing dg/dx.
Teuchos::RCP< Epetra_Operator > create_DgDp_op (int j, int i) const
 Create MP operator representing dg/dp.
Teuchos::RCP< Epetra_Operator > create_DfDp_op (int i) const
 Create MP operator representing df/dp.
InArgs createInArgs () const
 Create InArgs.
OutArgs createOutArgs () const
 Create OutArgs.
void evalModel (const InArgs &inArgs, const OutArgs &outArgs) const
 Evaluate model on InArgs.
void set_x_mp_init (const Stokhos::ProductEpetraVector &x_mp_in)
 Set initial multi-point solution.
void set_x_dot_mp_init (const Stokhos::ProductEpetraVector &x_dot_mp_in)
Teuchos::RCP< const Stokhos::ProductEpetraVectorget_x_mp_init () const
 Return initial SG x.
Teuchos::RCP< const Stokhos::ProductEpetraVectorget_x_dot_mp_init () const
void set_p_mp_init (int i, const Stokhos::ProductEpetraVector &p_mp_in)
 Set initial multi-point parameter.
Teuchos::RCP< const Stokhos::ProductEpetraVectorget_p_mp_init (int l) const
 Return initial SG parameters.
Teuchos::Array< int > get_p_mp_map_indices () const
 Get indices of MP parameters.
Teuchos::Array< int > get_g_mp_map_indices () const
 Get indices of MP responses.
Teuchos::Array< Teuchos::RCP< const Epetra_Map > > get_g_mp_base_maps () const
 Get base maps of MP responses.
Teuchos::RCP< Stokhos::ProductEpetraVectorcreate_x_mp (Epetra_DataAccess CV=Copy, const Epetra_Vector *v=NULL) const
 Create multi-point vector using x map and owned mp map.
Teuchos::RCP< Stokhos::ProductEpetraMultiVectorcreate_x_mv_mp (int num_vecs, Epetra_DataAccess CV=Copy, const Epetra_MultiVector *v=NULL) const
 Create multi-point vector using x map.
Teuchos::RCP< Stokhos::ProductEpetraVectorcreate_p_mp (int l, Epetra_DataAccess CV=Copy, const Epetra_Vector *v=NULL) const
 Create multi-point vector using p map.
Teuchos::RCP< Stokhos::ProductEpetraMultiVectorcreate_p_mv_mp (int l, int num_vecs, Epetra_DataAccess CV=Copy, const Epetra_MultiVector *v=NULL) const
 Create multi-point vector using p map.
Teuchos::RCP< Stokhos::ProductEpetraVectorcreate_f_mp (Epetra_DataAccess CV=Copy, const Epetra_Vector *v=NULL) const
 Create multi-point vector using f map.
Teuchos::RCP< Stokhos::ProductEpetraMultiVectorcreate_f_mv_mp (int num_vecs, Epetra_DataAccess CV=Copy, const Epetra_MultiVector *v=NULL) const
 Create multi-point multi-vector using f map.
Teuchos::RCP< Stokhos::ProductEpetraVectorcreate_g_mp (int l, Epetra_DataAccess CV=Copy, const Epetra_Vector *v=NULL) const
 Create multi-point vector using g map.
Teuchos::RCP< Stokhos::ProductEpetraMultiVectorcreate_g_mv_mp (int l, int num_vecs, Epetra_DataAccess CV=Copy, const Epetra_MultiVector *v=NULL) const
 Create multi-point multi-vector using g map.

Detailed Description

Multi-point model evaluator.

Transforms a multi-point nonlinear problem to single nonlinear problem.

Member Function Documentation

◆ create_DfDp_op()

Teuchos::RCP< Epetra_Operator > Stokhos::MPModelEvaluator::create_DfDp_op ( int i) const

Create MP operator representing df/dp.

References f_map, me, mp_block_map, mp_comm, mp_f_map, mp_p_index_map, mp_p_map, num_mp_blocks, num_p, and num_p_mp.

◆ create_DgDp_op()

Teuchos::RCP< Epetra_Operator > Stokhos::MPModelEvaluator::create_DgDp_op ( int j,
int i ) const

Create MP operator representing dg/dp.

References me, mp_block_map, mp_comm, mp_g_index_map, mp_g_map, mp_p_index_map, mp_p_map, num_g_mp, num_mp_blocks, num_p, and num_p_mp.

◆ create_DgDx_dot_op()

Teuchos::RCP< Epetra_Operator > Stokhos::MPModelEvaluator::create_DgDx_dot_op ( int j) const

Create MP operator representing dg/dxdot.

References me, mp_block_map, mp_comm, mp_g_index_map, mp_g_map, mp_x_map, num_g_mp, num_mp_blocks, supports_x, and x_map.

◆ create_DgDx_op()

Teuchos::RCP< Epetra_Operator > Stokhos::MPModelEvaluator::create_DgDx_op ( int j) const

Create MP operator representing dg/dx.

References me, mp_block_map, mp_comm, mp_g_index_map, mp_g_map, mp_x_map, num_g_mp, num_mp_blocks, supports_x, and x_map.

◆ create_f_mp()

Teuchos::RCP< Stokhos::ProductEpetraVector > Stokhos::MPModelEvaluator::create_f_mp ( Epetra_DataAccess CV = Copy,
const Epetra_Vector * v = NULL ) const

Create multi-point vector using f map.

References f_map, mp_block_map, mp_comm, and mp_f_map.

Referenced by evalModel().

◆ create_f_mv_mp()

Teuchos::RCP< Stokhos::ProductEpetraMultiVector > Stokhos::MPModelEvaluator::create_f_mv_mp ( int num_vecs,
Epetra_DataAccess CV = Copy,
const Epetra_MultiVector * v = NULL ) const

Create multi-point multi-vector using f map.

References f_map, mp_block_map, mp_comm, and mp_f_map.

◆ create_g_mp()

Teuchos::RCP< Stokhos::ProductEpetraVector > Stokhos::MPModelEvaluator::create_g_mp ( int l,
Epetra_DataAccess CV = Copy,
const Epetra_Vector * v = NULL ) const

Create multi-point vector using g map.

References me, mp_block_map, mp_comm, mp_g_index_map, and mp_g_map.

Referenced by evalModel().

◆ create_g_mv_mp()

Teuchos::RCP< Stokhos::ProductEpetraMultiVector > Stokhos::MPModelEvaluator::create_g_mv_mp ( int l,
int num_vecs,
Epetra_DataAccess CV = Copy,
const Epetra_MultiVector * v = NULL ) const

Create multi-point multi-vector using g map.

References me, mp_block_map, mp_comm, mp_g_index_map, and mp_g_map.

◆ create_p_mp()

Teuchos::RCP< Stokhos::ProductEpetraVector > Stokhos::MPModelEvaluator::create_p_mp ( int l,
Epetra_DataAccess CV = Copy,
const Epetra_Vector * v = NULL ) const

Create multi-point vector using p map.

References me, mp_block_map, mp_comm, mp_p_index_map, and mp_p_map.

Referenced by evalModel().

◆ create_p_mv_mp()

Teuchos::RCP< Stokhos::ProductEpetraMultiVector > Stokhos::MPModelEvaluator::create_p_mv_mp ( int l,
int num_vecs,
Epetra_DataAccess CV = Copy,
const Epetra_MultiVector * v = NULL ) const

Create multi-point vector using p map.

References me, mp_block_map, mp_comm, mp_p_index_map, and mp_p_map.

◆ create_W()

Teuchos::RCP< Epetra_Operator > Stokhos::MPModelEvaluator::create_W ( ) const

Create W = alpha*M + beta*J matrix.

References f_map, mp_comm, mp_f_map, mp_x_map, my_W, num_mp_blocks, supports_x, W_mp_blocks, and x_map.

◆ create_WPrec()

Teuchos::RCP< EpetraExt::ModelEvaluator::Preconditioner > Stokhos::MPModelEvaluator::create_WPrec ( ) const

Create preconditioner operator.

References Stokhos::MPPreconditionerFactory::build(), mp_comm, mp_x_map, num_mp_blocks, params, supports_x, and x_map.

◆ create_x_mp()

Teuchos::RCP< Stokhos::ProductEpetraVector > Stokhos::MPModelEvaluator::create_x_mp ( Epetra_DataAccess CV = Copy,
const Epetra_Vector * v = NULL ) const

Create multi-point vector using x map and owned mp map.

References mp_block_map, mp_comm, mp_x_map, and x_map.

Referenced by evalModel().

◆ create_x_mv_mp()

Teuchos::RCP< Stokhos::ProductEpetraMultiVector > Stokhos::MPModelEvaluator::create_x_mv_mp ( int num_vecs,
Epetra_DataAccess CV = Copy,
const Epetra_MultiVector * v = NULL ) const

Create multi-point vector using x map.

References mp_block_map, mp_comm, mp_x_map, and x_map.

◆ createInArgs()

EpetraExt::ModelEvaluator::InArgs Stokhos::MPModelEvaluator::createInArgs ( ) const

Create InArgs.

References me, num_p, and num_p_mp.

◆ createOutArgs()

EpetraExt::ModelEvaluator::OutArgs Stokhos::MPModelEvaluator::createOutArgs ( ) const

Create OutArgs.

References me, mp_g_index_map, mp_p_index_map, num_g_mp, num_p, and num_p_mp.

◆ evalModel()

void Stokhos::MPModelEvaluator::evalModel ( const InArgs & inArgs,
const OutArgs & outArgs ) const

◆ get_f_map()

Teuchos::RCP< const Epetra_Map > Stokhos::MPModelEvaluator::get_f_map ( ) const

Return residual vector map.

References mp_f_map.

◆ get_g_map()

Teuchos::RCP< const Epetra_Map > Stokhos::MPModelEvaluator::get_g_map ( int l) const

Return response map.

References mp_g_map, and num_g_mp.

◆ get_g_mp_base_maps()

Teuchos::Array< Teuchos::RCP< const Epetra_Map > > Stokhos::MPModelEvaluator::get_g_mp_base_maps ( ) const

Get base maps of MP responses.

References me, and num_g.

◆ get_g_mp_map_indices()

Teuchos::Array< int > Stokhos::MPModelEvaluator::get_g_mp_map_indices ( ) const

Get indices of MP responses.

These indices determine which response vectors support MP

References mp_g_index_map.

◆ get_p_init()

Teuchos::RCP< const Epetra_Vector > Stokhos::MPModelEvaluator::get_p_init ( int l) const

Return initial parameters.

References me, mp_p_init, num_p, and num_p_mp.

◆ get_p_map()

Teuchos::RCP< const Epetra_Map > Stokhos::MPModelEvaluator::get_p_map ( int l) const

Return parameter vector map.

References me, mp_p_map, num_p, and num_p_mp.

◆ get_p_mp_init()

Teuchos::RCP< const Stokhos::ProductEpetraVector > Stokhos::MPModelEvaluator::get_p_mp_init ( int l) const

Return initial SG parameters.

References mp_p_index_map, and mp_p_init.

◆ get_p_mp_map_indices()

Teuchos::Array< int > Stokhos::MPModelEvaluator::get_p_mp_map_indices ( ) const

Get indices of MP parameters.

These indices determine which parameter vectors support MP

References mp_p_index_map.

◆ get_p_names()

Teuchos::RCP< const Teuchos::Array< std::string > > Stokhos::MPModelEvaluator::get_p_names ( int l) const

Return array of parameter names.

References me, mp_p_names, num_p, and num_p_mp.

◆ get_x_init()

Teuchos::RCP< const Epetra_Vector > Stokhos::MPModelEvaluator::get_x_init ( ) const

Return initial solution.

References mp_x_init.

◆ get_x_map()

Teuchos::RCP< const Epetra_Map > Stokhos::MPModelEvaluator::get_x_map ( ) const

Return solution vector map.

References mp_x_map.

◆ get_x_mp_init()

Teuchos::RCP< const Stokhos::ProductEpetraVector > Stokhos::MPModelEvaluator::get_x_mp_init ( ) const

Return initial SG x.

References mp_x_init.

◆ set_p_mp_init()

void Stokhos::MPModelEvaluator::set_p_mp_init ( int i,
const Stokhos::ProductEpetraVector & p_mp_in )

Set initial multi-point parameter.

References mp_p_index_map, and mp_p_init.

◆ set_x_mp_init()

void Stokhos::MPModelEvaluator::set_x_mp_init ( const Stokhos::ProductEpetraVector & x_mp_in)

Set initial multi-point solution.

References mp_x_init.

Member Data Documentation

◆ f_map

Teuchos::RCP<const Epetra_Map> Stokhos::MPModelEvaluator::f_map
protected

Underlying residual map.

Referenced by create_DfDp_op(), create_f_mp(), create_f_mv_mp(), and create_W().

◆ me

Teuchos::RCP<EpetraExt::ModelEvaluator> Stokhos::MPModelEvaluator::me
protected

◆ mp_block_map

Teuchos::RCP<const Epetra_Map> Stokhos::MPModelEvaluator::mp_block_map
protected

◆ mp_comm

Teuchos::RCP<const EpetraExt::MultiComm> Stokhos::MPModelEvaluator::mp_comm
protected

◆ mp_f_map

Teuchos::RCP<const Epetra_Map> Stokhos::MPModelEvaluator::mp_f_map
protected

Block MP residual map.

Referenced by create_DfDp_op(), create_f_mp(), create_f_mv_mp(), create_W(), evalModel(), and get_f_map().

◆ mp_g_index_map

Teuchos::Array<int> Stokhos::MPModelEvaluator::mp_g_index_map
protected

◆ mp_g_map

Teuchos::Array< Teuchos::RCP<const Epetra_Map> > Stokhos::MPModelEvaluator::mp_g_map
protected

◆ mp_p_index_map

Teuchos::Array<int> Stokhos::MPModelEvaluator::mp_p_index_map
protected

◆ mp_p_init

Teuchos::Array< Teuchos::RCP<ProductEpetraVector> > Stokhos::MPModelEvaluator::mp_p_init
protected

MP initial p.

Referenced by evalModel(), get_p_init(), get_p_mp_init(), and set_p_mp_init().

◆ mp_p_map

Teuchos::Array< Teuchos::RCP<const Epetra_Map> > Stokhos::MPModelEvaluator::mp_p_map
protected

◆ mp_p_names

Teuchos::Array< Teuchos::RCP< Teuchos::Array<std::string> > > Stokhos::MPModelEvaluator::mp_p_names
protected

MP coefficient parameter names.

Referenced by get_p_names().

◆ mp_x_init

Teuchos::RCP<Stokhos::ProductEpetraVector> Stokhos::MPModelEvaluator::mp_x_init
protected

MP initial x.

Referenced by get_x_init(), get_x_mp_init(), and set_x_mp_init().

◆ mp_x_map

Teuchos::RCP<const Epetra_Map> Stokhos::MPModelEvaluator::mp_x_map
protected

◆ my_W

Teuchos::RCP<Stokhos::BlockDiagonalOperator> Stokhos::MPModelEvaluator::my_W
mutableprotected

W pointer for evaluating preconditioner.

Referenced by create_W(), and evalModel().

◆ my_x

Teuchos::RCP<Epetra_Vector> Stokhos::MPModelEvaluator::my_x
mutableprotected

x pointer for evaluating preconditioner

Referenced by evalModel().

◆ num_g

int Stokhos::MPModelEvaluator::num_g
protected

Number of response vectors of underlying model evaluator.

Referenced by get_g_mp_base_maps().

◆ num_g_mp

int Stokhos::MPModelEvaluator::num_g_mp
protected

Number of multi-point response vectors.

Referenced by create_DgDp_op(), create_DgDx_dot_op(), create_DgDx_op(), createOutArgs(), evalModel(), and get_g_map().

◆ num_mp_blocks

unsigned int Stokhos::MPModelEvaluator::num_mp_blocks
protected

◆ num_p

int Stokhos::MPModelEvaluator::num_p
protected

Number of parameter vectors of underlying model evaluator.

Referenced by create_DfDp_op(), create_DgDp_op(), createInArgs(), createOutArgs(), evalModel(), get_p_init(), get_p_map(), and get_p_names().

◆ num_p_mp

int Stokhos::MPModelEvaluator::num_p_mp
protected

Number of multi-point parameter vectors.

Referenced by create_DfDp_op(), create_DgDp_op(), createInArgs(), createOutArgs(), evalModel(), get_p_init(), get_p_map(), and get_p_names().

◆ params

Teuchos::RCP<Teuchos::ParameterList> Stokhos::MPModelEvaluator::params
protected

Algorithmic parameters.

Referenced by create_WPrec().

◆ supports_x

bool Stokhos::MPModelEvaluator::supports_x
protected

Whether we support x (and thus f and W).

Referenced by create_DgDx_dot_op(), create_DgDx_op(), create_W(), and create_WPrec().

◆ W_mp_blocks

Teuchos::RCP< Stokhos::ProductEpetraOperator> Stokhos::MPModelEvaluator::W_mp_blocks
mutableprotected

W multi-point components.

Referenced by create_W(), and evalModel().

◆ x_map

Teuchos::RCP<const Epetra_Map> Stokhos::MPModelEvaluator::x_map
protected

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