42#ifndef STOKHOS_EPETRA_SPARSE_3_TENSOR_HPP
43#define STOKHOS_EPETRA_SPARSE_3_TENSOR_HPP
45#include "Teuchos_RCP.hpp"
46#include "Teuchos_ParameterList.hpp"
49#include "EpetraExt_MultiComm.h"
76 int k_begin_ = 0,
int k_end_ = -1);
82 void rebalance(Teuchos::ParameterList& isorropia_params);
115 Teuchos::RCP<const EpetraExt::MultiComm>
119 Teuchos::RCP<const Epetra_Comm>
123 Teuchos::RCP<const Epetra_BlockMap>
127 Teuchos::RCP<const Epetra_BlockMap>
131 Teuchos::RCP<const Stokhos::Sparse3Tensor<int,double> >
135 Teuchos::RCP<const Stokhos::Sparse3Tensor<int,double> >
139 Teuchos::RCP<const Epetra_CrsGraph>
152 Teuchos::RCP<const Stokhos::OrthogPolyBasis<int,double> >
basis;
155 Teuchos::RCP<const Cijk_type>
Cijk;
Stokhos::Sparse3Tensor< int, double > Cijk_type
Teuchos::RCP< const Epetra_CrsGraph > stoch_graph
Stochastic operator graph.
void transformToLocal()
Transform Cijk to local i and j indices.
EpetraSparse3Tensor(const Teuchos::RCP< const Stokhos::OrthogPolyBasis< int, double > > &basis, const Teuchos::RCP< const Stokhos::Sparse3Tensor< int, double > > &Cijk, const Teuchos::RCP< const EpetraExt::MultiComm > &globalMultiComm, int k_begin=0, int k_end=-1)
Constructor from a full Cijk.
Teuchos::RCP< const Stokhos::Sparse3Tensor< int, double > > getCijk() const
Get Cijk.
int GRID(int lrid) const
Return global row id for given local row id.
Teuchos::RCP< const Stokhos::Sparse3Tensor< int, double > > getParallelCijk() const
Get parallel Cijk.
void rebalance(Teuchos::ParameterList &isorropia_params)
Rebalance maps and graph using Isorropia.
Teuchos::RCP< const Epetra_Comm > getStochasticComm() const
Get stochastic comm.
int numMyCols() const
Return number of columns on this processor.
bool myGRID(int grid) const
Return true if global row id is on processor.
Teuchos::RCP< Cijk_type > buildParallelCijk() const
Build parallel Cijk tensor from a parallel row map.
int numMyRows() const
Return number of rows on this processor.
Teuchos::RCP< const Epetra_BlockMap > getStochasticColMap() const
Get stochastic column map.
Teuchos::RCP< const EpetraExt::MultiComm > getMultiComm() const
Get global comm.
Teuchos::RCP< const Stokhos::OrthogPolyBasis< int, double > > basis
Basis.
bool isStochasticParallel() const
Return whether stochastic blocks are parallel distributed.
Teuchos::RCP< const Epetra_BlockMap > getStochasticRowMap() const
Get stochastic row map.
int num_global_stoch_blocks
Number of global stochastic blocks.
bool myGCID(int gcid) const
Return true if global column id is on processor.
Teuchos::RCP< const Cijk_type > Cijk_parallel
Cijk tensor parallel over i.
int k_begin
Beginning of k index.
Teuchos::RCP< const Epetra_BlockMap > stoch_row_map
Stochastic row-map.
Teuchos::RCP< const EpetraExt::MultiComm > globalMultiComm
Multi-comm.
int getKEnd() const
Return k_end index.
int getKBegin() const
Return k_begin index.
Teuchos::RCP< const Epetra_CrsGraph > getStochasticGraph() const
Get stochastic graph.
Teuchos::RCP< const Cijk_type > Cijk
Triple product.
Teuchos::RCP< const Epetra_BlockMap > stoch_col_map
Stochastic col-map.
bool is_parallel
Whether stochastic blocks are parallel.
~EpetraSparse3Tensor()
Destructor.
Teuchos::RCP< const Epetra_Comm > stoch_comm
Stochastic comm.
int GCID(int lcid) const
Return global column id for given local column id.
Abstract base class for multivariate orthogonal polynomials.
Data structure storing a sparse 3-tensor C(i,j,k) in a a compressed format.
Top-level namespace for Stokhos classes and functions.