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"));
114 Teuchos::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;
142 Teuchos::RCP<const Epetra_Comm>
144 const Teuchos::RCP<const EpetraExt::MultiComm>& globalMultiComm)
146 return Teuchos::rcp(&(globalMultiComm->SubDomainComm()),
false);
149 Teuchos::RCP<const Epetra_Comm>
151 const Teuchos::RCP<const EpetraExt::MultiComm>& globalMultiComm)
153 return Teuchos::rcp(&(globalMultiComm->TimeDomainComm()),
false);