Stokhos  Development
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator
Public Member Functions | Static Public Member Functions | Protected Attributes
Stokhos::SGModelEvaluator_Interlaced Class Reference

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

#include <Stokhos_SGModelEvaluator_Interlaced.hpp>

List of all members.

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)
void set_x_sg_init (const Stokhos::EpetraVectorOrthogPoly &x_sg_in)
 Set initial solution polynomial.
Teuchos::RCP< const
Stokhos::EpetraVectorOrthogPoly
get_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::EpetraVectorOrthogPoly
get_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::EpetraVectorOrthogPoly
create_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::EpetraVectorOrthogPoly
create_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::EpetraMultiVectorOrthogPoly
create_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::EpetraMultiVectorOrthogPoly
create_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::EpetraVectorOrthogPoly
create_p_sg (int l, Epetra_DataAccess CV=Copy, const Epetra_Vector *v=NULL) const
 Create vector orthog poly using p map.
Teuchos::RCP
< Stokhos::EpetraVectorOrthogPoly
create_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::EpetraVectorOrthogPoly
create_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::EpetraMultiVectorOrthogPoly
create_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::EpetraMultiVectorOrthogPoly
create_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::EpetraVectorOrthogPoly
create_g_sg (int l, Epetra_DataAccess CV=Copy, const Epetra_Vector *v=NULL) const
 Create vector orthog poly using g map.
Teuchos::RCP
< Stokhos::EpetraMultiVectorOrthogPoly
create_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.
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.

Static Public Member Functions

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)

Protected Attributes

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::ParallelData
sg_parallel_data
 Parallel SG data.
Teuchos::RCP< const
EpetraExt::MultiComm > 
sg_comm
 Parallel SG communicator.
Teuchos::RCP< const
Stokhos::EpetraSparse3Tensor
epetraCijk
 Epetra Cijk.
Teuchos::RCP< const
Stokhos::EpetraSparse3Tensor
serialCijk
 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::EpetraVectorOrthogPoly
x_dot_sg_blocks
 x_dot stochastic Galerkin components
Teuchos::RCP
< Stokhos::EpetraVectorOrthogPoly
x_sg_blocks
 x stochastic Galerkin components
Teuchos::RCP
< Stokhos::EpetraVectorOrthogPoly
f_sg_blocks
 f stochastic Galerkin components
Teuchos::RCP
< Stokhos::EpetraOperatorOrthogPoly
W_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::EpetraVectorOrthogPoly
sg_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

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

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!

Copy from a SG EpetraPolyOrthogVector object to an interlaced vector

Copy from a SG EpetraPolyOrthogVector object to an interlaced vector

Get indices of SG responses.

These indices determine which response vectors support SG

Get indices of SG parameters.

These indices determine which parameter vectors support SG


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