Stokhos
Development
|
Nonlinear, stochastic Galerkin ModelEvaluator that constructs a interlaced Jacobian. More...
#include <Stokhos_SGModelEvaluator_Interlaced.hpp>
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 > ¶ms, 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. | |
Overridden from Stokhos::SGModelEvaluatorBase . | |
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. More... | |
Teuchos::Array< int > | get_g_sg_map_indices () const |
Get indices of SG responses. More... | |
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. | |
Public Member Functions inherited from Stokhos::SGModelEvaluatorBase | |
virtual | ~SGModelEvaluatorBase () |
Destructor. | |
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::SGOperator > | my_W |
W pointer for evaluating W with f. | |
Teuchos::RCP< Epetra_Vector > | my_x |
x pointer for evaluating preconditioner | |
bool | scaleOP |
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.
|
static |
Build an interlaced map containing stochastic degrees of freedom for each element of the detministic map. This is not an adaptive map!
|
static |
Copy from a SG EpetraPolyOrthogVector object to an interlaced vector
References Stokhos::ProductEpetraVector::getBlockVector(), and Stokhos::ProductContainer< coeff_type >::size().
|
static |
Copy from a SG EpetraPolyOrthogVector object to an interlaced vector
References Stokhos::ProductEpetraVector::getBlockVector(), and Stokhos::ProductContainer< coeff_type >::size().
|
virtual |
Get indices of SG responses.
These indices determine which response vectors support SG
Implements Stokhos::SGModelEvaluatorBase.
|
virtual |
Get indices of SG parameters.
These indices determine which parameter vectors support SG
Implements Stokhos::SGModelEvaluatorBase.