15 #include "atlas/library/config.h" 16 #include "atlas/util/Config.h" 17 #include "atlas/util/Object.h" 31 namespace partitioner {
42 virtual void partition(
const Grid& grid,
int part[] )
const = 0;
46 idx_t nb_partitions()
const;
48 virtual std::string type()
const = 0;
67 static Partitioner* build(
const std::string&,
const idx_t nb_partitions,
const eckit::Parametrisation& );
72 static void list( std::ostream& );
73 static bool has(
const std::string& name );
79 virtual Partitioner* make(
const idx_t nb_partitions,
const eckit::Parametrisation& ) = 0;
92 virtual Partitioner* make(
const idx_t nb_partitions ) {
return new T( nb_partitions ); }
93 virtual Partitioner* make(
const idx_t nb_partitions,
const eckit::Parametrisation& config ) {
94 return new T( nb_partitions, config );
105 static Partitioner* build(
const std::string& type,
const Mesh& partitioned );
Definition: Distribution.h:31
Most general grid container.
Definition: Grid.h:64
Definition: Partitioner.h:33
Definition: Partitioner.h:89
Definition: Partitioner.h:56
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:103
Definition: FunctionSpace.h:39