45#include "EpetraExt_MultiMpiComm.h"
47#include "EpetraExt_MultiSerialComm.h"
54 const Teuchos::RCP<const Epetra_Comm>& globalComm,
55 Teuchos::ParameterList& params)
57 int num_global_stoch_blocks = basis->size();
59 int num_spatial_procs = params.get(
"Number of Spatial Processors", -1);
70 if (Cijk != Teuchos::null) {
77 bool use_isorropia = params.get(
"Rebalance Stochastic Graph",
false);
79 epetraCijk->rebalance(params.sublist(
"Isorropia"));
90 const Teuchos::RCP<const EpetraExt::MultiComm>& globalMultiComm_,
91 Teuchos::ParameterList& params) :
92 globalMultiComm(globalMultiComm_)
98 if (Cijk != Teuchos::null) {
105 bool use_isorropia = params.get(
"Rebalance Stochastic Graph",
false);
107 epetraCijk->rebalance(params.sublist(
"Isorropia"));
114Teuchos::RCP<const EpetraExt::MultiComm>
116 int num_global_stochastic_blocks,
117 int num_spatial_procs)
119 Teuchos::RCP<const EpetraExt::MultiComm> globalMultiComm;
122 if (num_spatial_procs == -1) {
125 num_spatial_procs = globalComm.
NumProc();
130 Teuchos::rcp(
new EpetraExt::MultiMpiComm(globalMpiComm.Comm(),
132 num_global_stochastic_blocks,
133 Teuchos::VERB_NONE));
136 Teuchos::rcp(
new EpetraExt::MultiSerialComm(num_global_stochastic_blocks));
139 return globalMultiComm;
142Teuchos::RCP<const Epetra_Comm>
144 const Teuchos::RCP<const EpetraExt::MultiComm>& globalMultiComm)
146 return Teuchos::rcp(&(globalMultiComm->SubDomainComm()),
false);
149Teuchos::RCP<const Epetra_Comm>
151 const Teuchos::RCP<const EpetraExt::MultiComm>& globalMultiComm)
153 return Teuchos::rcp(&(globalMultiComm->TimeDomainComm()),
false);
virtual int NumProc() const=0
Abstract base class for multivariate orthogonal polynomials.
Teuchos::RCP< Stokhos::EpetraSparse3Tensor > epetraCijk
Epetra Cijk.
ParallelData(const Teuchos::RCP< const Stokhos::OrthogPolyBasis< int, double > > &basis, const Teuchos::RCP< const Stokhos::Sparse3Tensor< int, double > > &Cijk, const Teuchos::RCP< const Epetra_Comm > &globalComm, Teuchos::ParameterList ¶ms)
Constructor.
Teuchos::RCP< const Epetra_Comm > stoch_comm
Stochastic comm.
Teuchos::RCP< const EpetraExt::MultiComm > globalMultiComm
Multi-comm.
Teuchos::RCP< const Epetra_Comm > spatial_comm
Spatial comm.
Data structure storing a sparse 3-tensor C(i,j,k) in a a compressed format.
Teuchos::RCP< const Epetra_Comm > getStochasticComm(const Teuchos::RCP< const EpetraExt::MultiComm > &globalMultiComm)
Teuchos::RCP< const Epetra_Comm > getSpatialComm(const Teuchos::RCP< const EpetraExt::MultiComm > &globalMultiComm)
Teuchos::RCP< const EpetraExt::MultiComm > buildMultiComm(const Epetra_Comm &globalComm, int num_global_stochastic_blocks, int num_spatial_procs=-1)