47 #ifndef _ZOLTAN2_SPHYNXPROBLEM_HPP_
48 #define _ZOLTAN2_SPHYNXPROBLEM_HPP_
68 template <
typename Adapter>
83 Teuchos::RCP<Teuchos::ParameterList> p,
84 const Teuchos::RCP<
const Teuchos::Comm<int> > &comm):
93 numberOfWeights_ = this->inputAdapter_->getNumWeightsPerID();
94 numberOfCriteria_ = (numberOfWeights_ > 1) ? numberOfWeights_ : 1;
96 Teuchos::ArrayRCP<part_t> *noIds =
97 new Teuchos::ArrayRCP<part_t> [numberOfCriteria_];
98 Teuchos::ArrayRCP<weight_t> *noSizes =
99 new Teuchos::ArrayRCP<weight_t> [numberOfCriteria_];
101 partIds_ = Teuchos::arcp(noIds, 0, numberOfCriteria_,
true);
102 partSizes_ = Teuchos::arcp(noSizes, 0, numberOfCriteria_,
true);
105 const Teuchos::ParameterEntry *pe = params_->getEntryPtr(
"num_global_parts");
107 nparts = pe->getValue<
int>(&nparts);
110 throw std::runtime_error(
"\nUser did not set num_global_parts"
111 "in the parameter list!n");
114 envParams_ = Teuchos::rcp(
new Teuchos::ParameterList());
115 envParams_->set(
"num_global_parts", nparts);
117 env_ = Teuchos::rcp(
new Environment(*envParams_, comm_));
118 envConst_ = Teuchos::rcp_const_cast<const Environment>(env_);
122 #ifdef HAVE_ZOLTAN2_MPI
125 Teuchos::RCP<Teuchos::ParameterList> p,
129 (
Teuchos::opaqueWrapper(mpicomm))))
135 Teuchos::RCP<Teuchos::ParameterList> p):
155 return *(solution_.getRawPtr());
164 Teuchos::RCP<Adapter> inputAdapter_;
165 Teuchos::RCP<Teuchos::ParameterList> params_;
166 Teuchos::RCP<const Teuchos::Comm<int>> comm_;
167 Teuchos::RCP<Algorithm<Adapter> > algorithm_;
169 Teuchos::RCP<Teuchos::ParameterList> envParams_;
170 Teuchos::RCP<Environment> env_;
171 Teuchos::RCP<const Environment> envConst_;
173 Teuchos::RCP<PartitioningSolution<Adapter> > solution_;
175 int numberOfWeights_;
176 int numberOfCriteria_;
178 Teuchos::ArrayRCP<Teuchos::ArrayRCP<part_t> > partIds_;
179 Teuchos::ArrayRCP<Teuchos::ArrayRCP<weight_t> > partSizes_;
187 template <
typename Adapter>
193 this->inputAdapter_));
201 partIds_.view(0, numberOfCriteria_),
202 partSizes_.view(0, numberOfCriteria_), this->algorithm_);
206 solution_ = Teuchos::rcp(soln);
211 this->algorithm_->partition(solution_);
#define Z2_FORWARD_EXCEPTIONS
Forward an exception back through call stack.
Defines the PartitioningSolution class.
The user parameters, debug, timing and memory profiling output objects, and error checking methods.
A PartitioningSolution is a solution to a partitioning problem.
typename Adapter::part_t part_t
SphynxProblem(Teuchos::RCP< Adapter > A, Teuchos::RCP< Teuchos::ParameterList > p)
SphynxProblem(Teuchos::RCP< Adapter > A, Teuchos::RCP< Teuchos::ParameterList > p, const Teuchos::RCP< const Teuchos::Comm< int > > &comm)
const PartitioningSolution< Adapter > & getSolution()
typename Adapter::scalar_t weight_t
Created by mbenlioglu on Aug 31, 2020.
SparseMatrixAdapter_t::part_t part_t