50 #ifndef _ZOLTAN2_COLORINGPROBLEM_HPP_
51 #define _ZOLTAN2_COLORINGPROBLEM_HPP_
87 template<
typename Adapter>
93 typedef typename Adapter::gno_t
gno_t;
94 typedef typename Adapter::lno_t
lno_t;
95 typedef typename Adapter::user_t
user_t;
98 #ifdef HAVE_ZOLTAN2_MPI
99 typedef Teuchos::OpaqueWrapper<MPI_Comm> mpiWrapper_t;
109 const Teuchos::RCP<
const Teuchos::Comm<int> > &comm) :
113 createColoringProblem();
116 #ifdef HAVE_ZOLTAN2_MPI
121 rcp<const Comm<int> >(new
Teuchos::MpiComm<int>(
122 Teuchos::opaqueWrapper(mpicomm))))
136 RCP<Teuchos::StringValidator> color_method_Validator = Teuchos::rcp(
137 new Teuchos::StringValidator(
138 Teuchos::tuple<std::string>(
"SerialGreedy" )));
139 pl.set(
"color_method",
"SerialGreedy",
"coloring algorithm",
140 color_method_Validator);
159 void solve(
bool updateInputData=
true);
167 return solution_.getRawPtr();
171 void createColoringProblem();
173 RCP<ColoringSolution<Adapter> > solution_;
178 template <
typename Adapter>
183 size_t nVtx = this->baseModel_->getLocalNumObjects();
194 std::string method = this->params_->template get<std::string>(
"color_method",
"SerialGreedy");
199 if (method.compare(
"SerialGreedy") == 0)
202 this->env_, this->comm_);
203 alg.
color(this->solution_);
206 else if (method.compare(
"speculative") == 0)
208 AlgGM<base_adapter_t> alg(this->graphModel_, this->comm_);
209 alg.color(this->solution_, this->params_);
229 template <
typename Adapter>
233 using Teuchos::ParameterList;
248 std::bitset<NUM_MODEL_FLAGS> graphFlags;
249 std::bitset<NUM_MODEL_FLAGS> idFlags;
257 this->baseInputAdapter_, this->envConst_, this->comm_, graphFlags));
269 <<
" not yet supported." << std::endl;