Stokhos Development
Loading...
Searching...
No Matches
Public Member Functions | List of all members
Stokhos::SGModelEvaluator_Interlaced Class Reference

Nonlinear, stochastic Galerkin ModelEvaluator that constructs a interlaced Jacobian. More...

#include <Stokhos_SGModelEvaluator_Interlaced.hpp>

Inheritance diagram for Stokhos::SGModelEvaluator_Interlaced:
Inheritance graph
[legend]
Collaboration diagram for Stokhos::SGModelEvaluator_Interlaced:
Collaboration graph
[legend]

Public Member Functions

 SGModelEvaluator_Interlaced (const Teuchos::RCP< EpetraExt::ModelEvaluator > &me, const Teuchos::RCP< const Stokhos::OrthogPolyBasis< int, double > > &sg_basis, const Teuchos::RCP< const Stokhos::Quadrature< int, double > > &sg_quad, const Teuchos::RCP< Stokhos::OrthogPolyExpansion< int, double > > &sg_exp, const Teuchos::RCP< const Stokhos::ParallelData > &sg_parallel_data, const Teuchos::RCP< Teuchos::ParameterList > &params, bool scaleOP=true)
 
Overridden from EpetraExt::ModelEvaluator .
Teuchos::RCP< const Epetra_Map > get_x_map () const
 Return solution vector map.
 
Teuchos::RCP< const Epetra_Map > get_p_map (int l) const
 Return parameter vector 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_p_init (int l) const
 Return initial parameters.
 
Teuchos::RCP< const Epetra_Map > get_f_map () const
 Return residual vector map.
 
Teuchos::RCP< const Epetra_Map > get_g_map (int l) const
 Return response map.
 
Teuchos::RCP< Epetra_Operator > create_W () const
 Create W = alpha*M + beta*J matrix.
 
InArgs createInArgs () const
 Create InArgs.
 
OutArgs createOutArgs () const
 Create OutArgs.
 
void evalModel (const InArgs &inArgs, const OutArgs &outArgs) const
 Evaluate model on InArgs.
 
- Public Member Functions inherited from Stokhos::SGModelEvaluatorBase
virtual ~SGModelEvaluatorBase ()
 Destructor.
 

Overridden from Stokhos::SGModelEvaluatorBase .

Teuchos::RCP< EpetraExt::ModelEvaluator > me
 Underlying model evaluator.
 
Teuchos::RCP< const Stokhos::OrthogPolyBasis< int, double > > sg_basis
 Stochastic Galerkin basis.
 
Teuchos::RCP< const Stokhos::Quadrature< int, double > > sg_quad
 Stochastic Galerkin quadrature.
 
Teuchos::RCP< Stokhos::OrthogPolyExpansion< int, double > > sg_exp
 Stochastic Galerkin expansion.
 
Teuchos::RCP< Teuchos::ParameterList > params
 Algorithmic parameters.
 
unsigned int num_sg_blocks
 Number of stochastic blocks.
 
unsigned int num_W_blocks
 Number of W stochastic blocks (may be smaller than num_sg_blocks)
 
unsigned int num_p_blocks
 Number of p stochastic blocks (may be smaller than num_sg_blocks)
 
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 Stokhos::ParallelDatasg_parallel_data
 Parallel SG data.
 
Teuchos::RCP< const EpetraExt::MultiComm > sg_comm
 Parallel SG communicator.
 
Teuchos::RCP< const Stokhos::EpetraSparse3TensorepetraCijk
 Epetra Cijk.
 
Teuchos::RCP< const Stokhos::EpetraSparse3TensorserialCijk
 Serial Epetra Cijk for dgdx*.
 
Teuchos::RCP< const Epetra_BlockMap > stoch_row_map
 Map for stochastic blocks.
 
Teuchos::RCP< const Epetra_BlockMap > overlapped_stoch_row_map
 Overlapped map for stochastic blocks (local map)
 
Teuchos::RCP< const Epetra_BlockMap > overlapped_stoch_p_map
 Overlapped map for p stochastic blocks (local map)
 
Teuchos::RCP< const Epetra_Map > interlace_x_map
 Block SG unknown map.
 
Teuchos::RCP< const Epetra_Map > interlace_overlapped_x_map
 Block SG overlapped unknown map.
 
Teuchos::RCP< const Epetra_Map > interlace_f_map
 Block SG residual map.
 
Teuchos::RCP< const Epetra_Map > interlace_overlapped_f_map
 Block SG overlapped residual map.
 
Teuchos::RCP< Epetra_Import > interlace_overlapped_x_importer
 Importer from SG to SG-overlapped maps.
 
Teuchos::RCP< Epetra_Export > interlace_overlapped_f_exporter
 Exporter from SG-overlapped to SG maps.
 
int num_p
 Number of parameter vectors of underlying model evaluator.
 
int num_p_sg
 Number of stochastic parameter vectors.
 
Teuchos::Array< int > sg_p_index_map
 Index map between block-p and p_sg maps.
 
Teuchos::Array< Teuchos::RCP< const Epetra_Map > > sg_p_map
 Block SG parameter map.
 
Teuchos::Array< Teuchos::RCP< Teuchos::Array< std::string > > > sg_p_names
 SG coefficient parameter names.
 
int num_g
 Number of response vectors of underlying model evaluator.
 
int num_g_sg
 Number of stochastic response vectors.
 
Teuchos::Array< int > sg_g_index_map
 Index map between block-g and g_sg maps.
 
Teuchos::Array< Teuchos::RCP< const Epetra_Map > > sg_g_map
 Block SG response map.
 
Teuchos::RCP< Stokhos::EpetraVectorOrthogPolyx_dot_sg_blocks
 x_dot stochastic Galerkin components
 
Teuchos::RCP< Stokhos::EpetraVectorOrthogPolyx_sg_blocks
 x stochastic Galerkin components
 
Teuchos::RCP< Stokhos::EpetraVectorOrthogPolyf_sg_blocks
 f stochastic Galerkin components
 
Teuchos::RCP< Stokhos::EpetraOperatorOrthogPolyW_sg_blocks
 W stochastic Galerkin components.
 
Teuchos::Array< Teuchos::RCP< Stokhos::EpetraMultiVectorOrthogPoly > > dfdp_sg_blocks
 
Teuchos::Array< Teuchos::RCP< Stokhos::EpetraMultiVectorOrthogPoly > > dgdx_dot_sg_blocks
 dg/dxdot stochastic Galerkin components
 
Teuchos::Array< Teuchos::RCP< Stokhos::EpetraMultiVectorOrthogPoly > > dgdx_sg_blocks
 dg/dx stochastic Galerkin components
 
Teuchos::RCP< Stokhos::EpetraVectorOrthogPolysg_x_init
 SG initial x.
 
Teuchos::Array< Teuchos::RCP< Stokhos::EpetraVectorOrthogPoly > > sg_p_init
 SG initial p.
 
bool eval_W_with_f
 Whether to always evaluate W with f.
 
Teuchos::RCP< Stokhos::SGOperatormy_W
 W pointer for evaluating W with f.
 
Teuchos::RCP< Epetra_Vector > my_x
 x pointer for evaluating preconditioner
 
bool scaleOP
 
void set_x_sg_init (const Stokhos::EpetraVectorOrthogPoly &x_sg_in)
 Set initial solution polynomial.
 
Teuchos::RCP< const Stokhos::EpetraVectorOrthogPolyget_x_sg_init () const
 Return initial SG x.
 
void set_p_sg_init (int i, const Stokhos::EpetraVectorOrthogPoly &p_sg_in)
 Set initial parameter polynomial.
 
Teuchos::RCP< const Stokhos::EpetraVectorOrthogPolyget_p_sg_init (int l) const
 Return initial SG parameters.
 
Teuchos::Array< int > get_p_sg_map_indices () const
 Get indices of SG parameters.
 
Teuchos::Array< int > get_g_sg_map_indices () const
 Get indices of SG responses.
 
Teuchos::Array< Teuchos::RCP< const Epetra_Map > > get_g_sg_base_maps () const
 Get base maps of SG responses.
 
Teuchos::RCP< const Epetra_BlockMap > get_overlap_stochastic_map () const
 Return overlap stochastic map.
 
Teuchos::RCP< const Epetra_BlockMap > get_x_sg_overlap_map () const
 Return x sg overlap map.
 
Teuchos::RCP< const Epetra_Import > get_x_sg_importer () const
 Return x sg importer.
 
Teuchos::RCP< Stokhos::EpetraVectorOrthogPolycreate_x_sg (Epetra_DataAccess CV=Copy, const Epetra_Vector *v=NULL) const
 Create vector orthog poly using x map and owned sg map.
 
Teuchos::RCP< Stokhos::EpetraVectorOrthogPolycreate_x_sg_overlap (Epetra_DataAccess CV=Copy, const Epetra_Vector *v=NULL) const
 Create vector orthog poly using x map and overlap sg map.
 
Teuchos::RCP< Stokhos::EpetraMultiVectorOrthogPolycreate_x_mv_sg (int num_vecs, Epetra_DataAccess CV=Copy, const Epetra_MultiVector *v=NULL) const
 Create vector orthog poly using x map and owned sg map.
 
Teuchos::RCP< Stokhos::EpetraMultiVectorOrthogPolycreate_x_mv_sg_overlap (int num_vecs, Epetra_DataAccess CV=Copy, const Epetra_MultiVector *v=NULL) const
 Create vector orthog poly using x map and overlap sg map.
 
Teuchos::RCP< Stokhos::EpetraVectorOrthogPolycreate_p_sg (int l, Epetra_DataAccess CV=Copy, const Epetra_Vector *v=NULL) const
 Create vector orthog poly using p map.
 
Teuchos::RCP< Stokhos::EpetraVectorOrthogPolycreate_f_sg (Epetra_DataAccess CV=Copy, const Epetra_Vector *v=NULL) const
 Create vector orthog poly using f map and owned sg map.
 
Teuchos::RCP< Stokhos::EpetraVectorOrthogPolycreate_f_sg_overlap (Epetra_DataAccess CV=Copy, const Epetra_Vector *v=NULL) const
 Create vector orthog poly using f map and overlap sg map.
 
Teuchos::RCP< Stokhos::EpetraMultiVectorOrthogPolycreate_f_mv_sg (int num_vecs, Epetra_DataAccess CV=Copy, const Epetra_MultiVector *v=NULL) const
 Create multi-vector orthog poly using f map and owned sg map.
 
Teuchos::RCP< Stokhos::EpetraMultiVectorOrthogPolycreate_f_mv_sg_overlap (int num_vecs, Epetra_DataAccess CV=Copy, const Epetra_MultiVector *v=NULL) const
 Create multi-vector orthog poly using f map and overlap sg map.
 
Teuchos::RCP< Stokhos::EpetraVectorOrthogPolycreate_g_sg (int l, Epetra_DataAccess CV=Copy, const Epetra_Vector *v=NULL) const
 Create vector orthog poly using g map.
 
Teuchos::RCP< Stokhos::EpetraMultiVectorOrthogPolycreate_g_mv_sg (int l, int num_vecs, Epetra_DataAccess CV=Copy, const Epetra_MultiVector *v=NULL) const
 Create multi-vector orthog poly using g map.
 
static Teuchos::RCP< Epetra_Map > buildInterlaceMap (const Epetra_BlockMap &determ_map, const Epetra_BlockMap &stocha_map)
 
static void copyToInterlacedVector (const Stokhos::EpetraVectorOrthogPoly &x_sg, Epetra_Vector &x)
 
static void copyToPolyOrthogVector (const Epetra_Vector &x, Stokhos::EpetraVectorOrthogPoly &x_sg)
 

Detailed Description

Nonlinear, stochastic Galerkin ModelEvaluator that constructs a interlaced Jacobian.

SGModelEvaluator_Interlaced is an implementation of EpetraExt::ModelEvaluator that generates a nonlinear problem from a stochastic Galerkin expansion, the Jacobian and solution vectors are interlaced. It wraps a supplied ModelEvaluator that supports the SG versions of p, x, and possibly x_dot InArgs, and f and W OutArgs, and translates those into a new nonlinear problem. It does so by concatenating all of the SG components of p, x, x_dot, and f into extended block vectors that form the parameters, solution vector, time derivative vector and residual for the new nonlinear problem. Only forming a fully-assembled SG matrix is possible. The W operator of the underlying model evaluator must be an Epetra_CrsMatrix.

Member Function Documentation

◆ buildInterlaceMap()

Teuchos::RCP< Epetra_Map > Stokhos::SGModelEvaluator_Interlaced::buildInterlaceMap ( const Epetra_BlockMap & determ_map,
const Epetra_BlockMap & stocha_map )
static

Build an interlaced map containing stochastic degrees of freedom for each element of the detministic map. This is not an adaptive map!

◆ copyToInterlacedVector()

void Stokhos::SGModelEvaluator_Interlaced::copyToInterlacedVector ( const Stokhos::EpetraVectorOrthogPoly & x_sg,
Epetra_Vector & x )
static

Copy from a SG EpetraPolyOrthogVector object to an interlaced vector

References Stokhos::ProductEpetraVector::getBlockVector(), and Stokhos::ProductContainer< coeff_type >::size().

◆ copyToPolyOrthogVector()

void Stokhos::SGModelEvaluator_Interlaced::copyToPolyOrthogVector ( const Epetra_Vector & x,
Stokhos::EpetraVectorOrthogPoly & x_sg )
static

Copy from a SG EpetraPolyOrthogVector object to an interlaced vector

References Stokhos::ProductEpetraVector::getBlockVector(), and Stokhos::ProductContainer< coeff_type >::size().

◆ create_f_mv_sg()

Teuchos::RCP< Stokhos::EpetraMultiVectorOrthogPoly > Stokhos::SGModelEvaluator_Interlaced::create_f_mv_sg ( int num_vecs,
Epetra_DataAccess CV = Copy,
const Epetra_MultiVector * v = NULL ) const
virtual

Create multi-vector orthog poly using f map and owned sg map.

Implements Stokhos::SGModelEvaluatorBase.

◆ create_f_mv_sg_overlap()

Teuchos::RCP< Stokhos::EpetraMultiVectorOrthogPoly > Stokhos::SGModelEvaluator_Interlaced::create_f_mv_sg_overlap ( int num_vecs,
Epetra_DataAccess CV = Copy,
const Epetra_MultiVector * v = NULL ) const
virtual

Create multi-vector orthog poly using f map and overlap sg map.

Implements Stokhos::SGModelEvaluatorBase.

◆ create_f_sg()

Teuchos::RCP< Stokhos::EpetraVectorOrthogPoly > Stokhos::SGModelEvaluator_Interlaced::create_f_sg ( Epetra_DataAccess CV = Copy,
const Epetra_Vector * v = NULL ) const
virtual

Create vector orthog poly using f map and owned sg map.

Implements Stokhos::SGModelEvaluatorBase.

◆ create_f_sg_overlap()

Teuchos::RCP< Stokhos::EpetraVectorOrthogPoly > Stokhos::SGModelEvaluator_Interlaced::create_f_sg_overlap ( Epetra_DataAccess CV = Copy,
const Epetra_Vector * v = NULL ) const
virtual

Create vector orthog poly using f map and overlap sg map.

Implements Stokhos::SGModelEvaluatorBase.

◆ create_g_mv_sg()

Teuchos::RCP< Stokhos::EpetraMultiVectorOrthogPoly > Stokhos::SGModelEvaluator_Interlaced::create_g_mv_sg ( int l,
int num_vecs,
Epetra_DataAccess CV = Copy,
const Epetra_MultiVector * v = NULL ) const
virtual

Create multi-vector orthog poly using g map.

Implements Stokhos::SGModelEvaluatorBase.

◆ create_g_sg()

Teuchos::RCP< Stokhos::EpetraVectorOrthogPoly > Stokhos::SGModelEvaluator_Interlaced::create_g_sg ( int l,
Epetra_DataAccess CV = Copy,
const Epetra_Vector * v = NULL ) const
virtual

Create vector orthog poly using g map.

Implements Stokhos::SGModelEvaluatorBase.

◆ create_p_sg()

Teuchos::RCP< Stokhos::EpetraVectorOrthogPoly > Stokhos::SGModelEvaluator_Interlaced::create_p_sg ( int l,
Epetra_DataAccess CV = Copy,
const Epetra_Vector * v = NULL ) const
virtual

Create vector orthog poly using p map.

Implements Stokhos::SGModelEvaluatorBase.

◆ create_x_mv_sg()

Teuchos::RCP< Stokhos::EpetraMultiVectorOrthogPoly > Stokhos::SGModelEvaluator_Interlaced::create_x_mv_sg ( int num_vecs,
Epetra_DataAccess CV = Copy,
const Epetra_MultiVector * v = NULL ) const
virtual

Create vector orthog poly using x map and owned sg map.

Implements Stokhos::SGModelEvaluatorBase.

◆ create_x_mv_sg_overlap()

Teuchos::RCP< Stokhos::EpetraMultiVectorOrthogPoly > Stokhos::SGModelEvaluator_Interlaced::create_x_mv_sg_overlap ( int num_vecs,
Epetra_DataAccess CV = Copy,
const Epetra_MultiVector * v = NULL ) const
virtual

Create vector orthog poly using x map and overlap sg map.

Implements Stokhos::SGModelEvaluatorBase.

◆ create_x_sg()

Teuchos::RCP< Stokhos::EpetraVectorOrthogPoly > Stokhos::SGModelEvaluator_Interlaced::create_x_sg ( Epetra_DataAccess CV = Copy,
const Epetra_Vector * v = NULL ) const
virtual

Create vector orthog poly using x map and owned sg map.

Implements Stokhos::SGModelEvaluatorBase.

◆ create_x_sg_overlap()

Teuchos::RCP< Stokhos::EpetraVectorOrthogPoly > Stokhos::SGModelEvaluator_Interlaced::create_x_sg_overlap ( Epetra_DataAccess CV = Copy,
const Epetra_Vector * v = NULL ) const
virtual

Create vector orthog poly using x map and overlap sg map.

Implements Stokhos::SGModelEvaluatorBase.

◆ get_g_sg_base_maps()

Teuchos::Array< Teuchos::RCP< const Epetra_Map > > Stokhos::SGModelEvaluator_Interlaced::get_g_sg_base_maps ( ) const
virtual

Get base maps of SG responses.

Implements Stokhos::SGModelEvaluatorBase.

◆ get_g_sg_map_indices()

Teuchos::Array< int > Stokhos::SGModelEvaluator_Interlaced::get_g_sg_map_indices ( ) const
virtual

Get indices of SG responses.

These indices determine which response vectors support SG

Implements Stokhos::SGModelEvaluatorBase.

◆ get_overlap_stochastic_map()

Teuchos::RCP< const Epetra_BlockMap > Stokhos::SGModelEvaluator_Interlaced::get_overlap_stochastic_map ( ) const
virtual

Return overlap stochastic map.

Implements Stokhos::SGModelEvaluatorBase.

◆ get_p_sg_init()

Teuchos::RCP< const Stokhos::EpetraVectorOrthogPoly > Stokhos::SGModelEvaluator_Interlaced::get_p_sg_init ( int l) const
virtual

Return initial SG parameters.

Implements Stokhos::SGModelEvaluatorBase.

◆ get_p_sg_map_indices()

Teuchos::Array< int > Stokhos::SGModelEvaluator_Interlaced::get_p_sg_map_indices ( ) const
virtual

Get indices of SG parameters.

These indices determine which parameter vectors support SG

Implements Stokhos::SGModelEvaluatorBase.

◆ get_x_sg_importer()

Teuchos::RCP< const Epetra_Import > Stokhos::SGModelEvaluator_Interlaced::get_x_sg_importer ( ) const
virtual

Return x sg importer.

Implements Stokhos::SGModelEvaluatorBase.

◆ get_x_sg_init()

Teuchos::RCP< const Stokhos::EpetraVectorOrthogPoly > Stokhos::SGModelEvaluator_Interlaced::get_x_sg_init ( ) const
virtual

Return initial SG x.

Implements Stokhos::SGModelEvaluatorBase.

◆ get_x_sg_overlap_map()

Teuchos::RCP< const Epetra_BlockMap > Stokhos::SGModelEvaluator_Interlaced::get_x_sg_overlap_map ( ) const
virtual

Return x sg overlap map.

Implements Stokhos::SGModelEvaluatorBase.

◆ set_p_sg_init()

void Stokhos::SGModelEvaluator_Interlaced::set_p_sg_init ( int i,
const Stokhos::EpetraVectorOrthogPoly & p_sg_in )
virtual

Set initial parameter polynomial.

Implements Stokhos::SGModelEvaluatorBase.

◆ set_x_sg_init()

void Stokhos::SGModelEvaluator_Interlaced::set_x_sg_init ( const Stokhos::EpetraVectorOrthogPoly & x_sg_in)
virtual

Set initial solution polynomial.

Implements Stokhos::SGModelEvaluatorBase.


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