50 #ifndef _ZOLTAN2_PARTITIONMAPPING_HPP_ 51 #define _ZOLTAN2_PARTITIONMAPPING_HPP_ 54 #include "Teuchos_Comm.hpp" 64 template <
typename Adapter>
69 #ifndef DOXYGEN_SHOULD_SKIP_THIS 70 typedef typename Adapter::gno_t
gno_t;
71 typedef typename Adapter::scalar_t
scalar_t;
72 typedef typename Adapter::scalar_t pcoord_t;
73 typedef typename Adapter::lno_t
lno_t;
75 typedef typename Adapter::user_t user_t;
78 const Teuchos::RCP <const Teuchos::Comm<int> >
comm;
79 const Teuchos::RCP <const Zoltan2::MachineRepresentation <pcoord_t,part_t> >
machine;
81 const Teuchos::RCP <const Zoltan2::PartitioningSolution<Adapter> >
soln;
82 const Teuchos::RCP <const Environment >
env;
94 const Teuchos::RCP <
const Teuchos::Comm<int> >comm_,
97 const Teuchos::RCP <const Adapter> input_adapter_,
100 const Teuchos::RCP <const Environment > envConst_
105 input_adapter(input_adapter_),
107 env(envConst_),num_parts(soln_->getActualGlobalNumberOfParts()),
108 solution_parts(soln_->getPartListView())
112 const Teuchos::RCP <
const Teuchos::Comm<int> >comm_,
115 const Teuchos::RCP <const Adapter> input_adapter_,
117 const part_t num_parts_,
118 const part_t *result_parts,
119 const Teuchos::RCP <const Environment > envConst_
124 input_adapter(input_adapter_),
126 env(envConst_),num_parts(num_parts_),
127 solution_parts(result_parts)
131 const Teuchos::RCP <
const Teuchos::Comm<int> >comm_,
132 const Teuchos::RCP <const Environment > envConst_
139 env(envConst_),num_parts(0),
149 solution_parts(NULL){};
156 env(envConst_),num_parts(0),
157 solution_parts(NULL){};
160 const Teuchos::RCP <const Environment > envConst_,
161 const Teuchos::RCP <
const Teuchos::Comm<int> >comm_,
168 env(envConst_),num_parts(0),
169 solution_parts(NULL){};
189 virtual void getPartsForProc(
int procId, part_t &numParts, part_t *&parts)
200 virtual void getProcsForPart(part_t partId, part_t &numProcs, part_t *&procs)
const = 0;
Defines the Model interface.
PartitionMapping(const Teuchos::RCP< const Teuchos::Comm< int > >comm_, const Teuchos::RCP< const Zoltan2::MachineRepresentation< pcoord_t, part_t > >machine_, const Teuchos::RCP< const Adapter > input_adapter_, const part_t num_parts_, const part_t *result_parts, const Teuchos::RCP< const Environment > envConst_)
const part_t * solution_parts
PartitionMapping(const Teuchos::RCP< const Environment > envConst_, const Teuchos::RCP< const Teuchos::Comm< int > >comm_, const Teuchos::RCP< const MachineRepresentation< pcoord_t, part_t > >machine_)
Defines the PartitioningSolution class.
PartitionMapping(const Teuchos::RCP< const Teuchos::Comm< int > >comm_, const Teuchos::RCP< const Zoltan2::MachineRepresentation< pcoord_t, part_t > >machine_, const Teuchos::RCP< const Adapter > input_adapter_, const Teuchos::RCP< const Zoltan2::PartitioningSolution< Adapter > >soln_, const Teuchos::RCP< const Environment > envConst_)
Constructor Constructor builds the map from parts to ranks. KDDKDD WILL NEED THE SOLUTION FOR INTELLI...
const Teuchos::RCP< const Zoltan2::PartitioningSolution< Adapter > > soln
SparseMatrixAdapter_t::part_t part_t
Adapter::scalar_t scalar_t
PartitionMapping maps a solution or an input distribution to ranks.
A PartitioningSolution is a solution to a partitioning problem.
PartitionMapping(const Teuchos::RCP< const Teuchos::Comm< int > >comm_, const Teuchos::RCP< const Environment > envConst_)
Algorithm defines the base class for all algorithms.
MachineRepresentation Class Base class for representing machine coordinates, networks, etc.
virtual void getPartsForProc(int procId, part_t &numParts, part_t *&parts) const =0
Get the parts belonging to a process.
const Teuchos::RCP< const Adapter > input_adapter
const Teuchos::RCP< const Zoltan2::MachineRepresentation< pcoord_t, part_t > > machine
const Teuchos::RCP< const Teuchos::Comm< int > > comm
Defines the Environment class.
PartitionMapping(const Teuchos::RCP< const Environment >envConst_)
virtual ~PartitionMapping()
virtual size_t getLocalNumberOfParts() const =0
Returns the number of parts to be assigned to this process.
const Teuchos::RCP< const Environment > env
virtual void getProcsForPart(part_t partId, part_t &numProcs, part_t *&procs) const =0
Get the processes containing a part.