15 #include "atlas/grid/detail/distribution/DistributionImpl.h" 16 #include "atlas/library/config.h" 17 #include "atlas/util/Config.h" 18 #include "atlas/util/ObjectHandle.h" 19 #include "atlas/util/vector.h" 31 class Distribution : DOXYGEN_HIDE( public util::ObjectHandle<DistributionImpl> ) {
58 ATLAS_ALWAYS_INLINE
int partition(
gidx_t index )
const {
return get()->partition( index ); }
60 template <
typename PartitionContainer>
61 void partition(
gidx_t begin,
gidx_t end, PartitionContainer& partitions )
const {
62 ATLAS_ASSERT( end - begin <= partitions.size() );
63 return get()->partition( begin, end, partitions.data() );
66 size_t footprint()
const {
return get()->footprint(); }
68 ATLAS_ALWAYS_INLINE
idx_t nb_partitions()
const {
return get()->nb_partitions(); }
70 ATLAS_ALWAYS_INLINE
gidx_t size()
const {
return get()->size(); }
72 const std::vector<idx_t>& nb_pts()
const;
74 idx_t max_pts()
const;
76 idx_t min_pts()
const;
78 const std::string& type()
const;
80 friend std::ostream& operator<<( std::ostream& os,
const Distribution& distribution );
82 std::string hash()
const;
84 void hash( eckit::Hash& )
const;
Definition: Distribution.h:31
Most general grid container.
Definition: Grid.h:64
long gidx_t
Integer type for global indices.
Definition: config.h:34
Contains all atlas classes and methods.
Definition: atlas-grids.cc:33
long idx_t
Integer type for indices in connectivity tables.
Definition: config.h:42
Definition: Partitioner.h:68
Configuration class used to construct various atlas components.
Definition: Config.h:27