44#ifndef STOKHOS_AdaptivityManager_HPP
45#define STOKHOS_AdaptivityManager_HPP
47#include "Stokhos_config.h"
58#include "Teuchos_RCP.hpp"
59#include "Teuchos_Array.hpp"
63#ifdef HAVE_STOKHOS_BOOST
64#include <boost/unordered_map.hpp>
77 bool onlyUseLinear,
int kExpOrder,
130 bool onlyUseLinear=
false,
bool includeMean=
true)
const;
191 double getValue(
int i,
int j,
int k)
const;
194 #ifdef HAVE_STOKHOS_BOOST
197 IJK(
int i,
int j,
int k) : i_(i), j_(
j), k_(k) {}
199 bool operator==(
const IJK & ijk)
const
200 {
return i_==ijk.i_ && j_==ijk.j_ && k_==ijk.k_; }
204 std::size_t operator()(
const IJK & ijk)
const;
207 boost::unordered_map<IJK,double,IJKHash> hashMap_;
const Stokhos::Sparse3Tensor< int, double > & Cijk_
Sparse3TensorHash(const Stokhos::Sparse3Tensor< int, double > &Cijk)
double getValue(int i, int j, int k) const
Teuchos::RCP< const Stokhos::ProductBasis< int, double > > getMasterStochasticBasis() const
Teuchos::RCP< const Stokhos::ProductBasis< int, double > > sg_master_basis_
std::vector< int > myColGidOffsets_
Teuchos::RCP< Epetra_CrsMatrix > buildMatrixFromGraph() const
Teuchos::RCP< Epetra_Map > rowMap_
void setupOperator(Epetra_CrsMatrix &A, const Sparse3Tensor< int, double > &Cijk, Stokhos::EpetraOperatorOrthogPoly &poly, bool onlyUseLinear=false, bool includeMean=true) const
Teuchos::RCP< Epetra_CrsGraph > graph_
Teuchos::RCP< const Stokhos::ProductBasis< int, double > > getColStochasticBasis(int determLid) const
void copyToAdaptiveVector(const Stokhos::EpetraVectorOrthogPoly &x_sg, Epetra_Vector &x) const
Teuchos::RCP< const Stokhos::ProductBasis< int, double > > getRowStochasticBasis(int determLid) const
Teuchos::RCP< const Epetra_Map > getAdaptedMap() const
std::vector< int > myRowGidOffsets_
int getColStochasticBasisSize(int determLid) const
void copyFromAdaptiveVector(const Epetra_Vector &x, Stokhos::EpetraVectorOrthogPoly &x_sg) const
void setupWithGraph(const Epetra_CrsGraph &graph, bool onlyUseLinear, int kExpOrder)
int getGlobalColId(int determLid, int basisIndex) const
int getRowStochasticBasisSize(int determLid) const
void sumInOperator(Epetra_CrsMatrix &A, const Stokhos::Sparse3Tensor< int, double > &Cijk, int k, const Epetra_CrsMatrix &J_k) const
AdaptivityManager(const Teuchos::RCP< const Stokhos::ProductBasis< int, double > > &sg_master_basis, const std::vector< Teuchos::RCP< const Stokhos::ProductBasis< int, double > > > &sg_basis_row_dof, const Epetra_CrsGraph &determ_graph, bool onlyUseLinear, int kExpOrder, bool scaleOp=true)
std::vector< Teuchos::RCP< const Stokhos::ProductBasis< int, double > > > sg_basis_col_dof_
const std::vector< Teuchos::RCP< const Stokhos::ProductBasis< int, double > > > & getRowStochasticBasis() const
std::vector< Teuchos::RCP< const Stokhos::ProductBasis< int, double > > > sg_basis_row_dof_
int getGlobalRowId(int determLid, int basisIndex) const
A container class storing an orthogonal polynomial whose coefficients are vectors,...
A container class storing an orthogonal polynomial whose coefficients are vectors,...
Abstract base class for multivariate orthogonal polynomials generated from tensor products of univari...
Data structure storing a sparse 3-tensor C(i,j,k) in a a compressed format.
Top-level namespace for Stokhos classes and functions.