Zoltan2
|
VectorAdapter defines the interface for vector input. More...
#include <Zoltan2_VectorAdapter.hpp>
Public Member Functions | |
virtual | ~VectorAdapter () |
Destructor. More... | |
enum BaseAdapterType | adapterType () const |
Returns the type of adapter. More... | |
virtual int | getNumEntriesPerID () const =0 |
Return the number of vectors (typically one). More... | |
virtual void | getEntriesView (const scalar_t *&elements, int &stride, int idx=0) const =0 |
Provide a pointer to the elements of the specified vector. More... | |
int | getDimension () const |
void | getCoordinatesView (const scalar_t *&elements, int &stride, int idx=0) const |
![]() | |
virtual | ~BaseAdapter () |
Destructor. More... | |
virtual size_t | getLocalNumIDs () const =0 |
Returns the number of objects on this process. More... | |
virtual void | getIDsView (const gno_t *&Ids) const =0 |
Provide a pointer to this process' identifiers. More... | |
virtual int | getNumWeightsPerID () const =0 |
Returns the number of weights per object. Number of weights per object should be zero or greater. If zero, then it is assumed that all objects are equally weighted. More... | |
virtual void | getWeightsView (const scalar_t *&wgt, int &stride, int idx=0) const =0 |
Provide pointer to a weight array with stride. More... | |
void | getPartsView (const part_t *&inputPart) const |
Provide pointer to an array containing the input part assignment for each ID. The input part information may be used for re-partitioning to reduce data movement, or for mapping parts to processes. Adapters may return NULL for this pointer (the default behavior); if NULL is returned, algorithms will assume the rank. More... | |
template<typename Adapter > | |
void | applyPartitioningSolution (const User &in, User *&out, const PartitioningSolution< Adapter > &solution) const |
Apply a PartitioningSolution to an input. More... | |
Additional Inherited Members | |
![]() | |
typedef InputTraits< User >::gno_t | gno_t |
typedef InputTraits< User >::scalar_t | scalar_t |
typedef InputTraits< User >::part_t | part_t |
VectorAdapter defines the interface for vector input.
Adapter objects provide access for Zoltan2 to the user's data. Many built-in adapters are already defined for common data structures, such as Tpetra and Epetra objects and C-language pointers to arrays.
Data types:
scalar_t
weights and vector element values lno_t
local indices and local counts gno_t
global indices and global counts node_t
is a Kokkos Node typeThe Kokkos node type can be safely ignored.
The template parameter User
is a user-defined data type which, through a traits mechanism, provides the actual data types with which the Zoltan2 library will be compiled. User
may be the actual class or structure used by application to represent a vector, or it may be the helper class BasicUserTypes. See InputTraits for more information.
The scalar_t
type, representing use data such as matrix values, is used by Zoltan2 for weights, coordinates, part sizes and quality metrics. Some User types (like Tpetra::CrsMatrix) have an inherent scalar type, and some (like Tpetra::CrsGraph) do not. For such objects, the scalar type is set by Zoltan2 to float
. If you wish to change it to double, set the second template parameter to double
.
VectorAdapter may be a single vector or a set of corresponding vectors which have with the same global identifiers and the same distribution across processes.
Definition at line 98 of file Zoltan2_VectorAdapter.hpp.
|
inlinevirtual |
Destructor.
Definition at line 115 of file Zoltan2_VectorAdapter.hpp.
|
inlinevirtual |
Returns the type of adapter.
Implements Zoltan2::BaseAdapter< User >.
Definition at line 121 of file Zoltan2_VectorAdapter.hpp.
|
pure virtual |
Return the number of vectors (typically one).
Implemented in Zoltan2::BasicVectorAdapter< User >, and Zoltan2::XpetraMultiVectorAdapter< User >.
|
pure virtual |
Provide a pointer to the elements of the specified vector.
elements | will on return point to the vector values corresponding to the global Ids. |
stride | the k'th element is located at elements[stride*k] |
idx | ranges from zero to one less than getNumVectors(), and represents the vector for which data is being requested. |
Implemented in Zoltan2::XpetraMultiVectorAdapter< User >.
|
inline |
Definition at line 149 of file Zoltan2_VectorAdapter.hpp.
|
inline |
Definition at line 151 of file Zoltan2_VectorAdapter.hpp.