IODA
InefficientDistribution.h
Go to the documentation of this file.
1 /*
2  * (C) Copyright 2019 UCAR
3  *
4  * This software is licensed under the terms of the Apache Licence Version 2.0
5  * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
6  */
7 
8 #ifndef DISTRIBUTION_INEFFICIENTDISTRIBUTION_H_
9 #define DISTRIBUTION_INEFFICIENTDISTRIBUTION_H_
10 
11 #include <vector>
12 
13 #include "eckit/mpi/Comm.h"
14 
15 #include "oops/util/Logger.h"
16 
17 #include "ioda/distribution/Distribution.h"
18 
19 namespace ioda {
20 
21 // ---------------------------------------------------------------------
22 /*!
23  * \brief Inefficient distribution
24  *
25  * \details This class implements distribution that has copies of all
26  * observations on each processor (to be used for testing)
27  *
28  */
30  public:
31  explicit InefficientDistribution(const eckit::mpi::Comm & Comm);
33 
34  bool isMyRecord(std::size_t RecNum) const override;
35  bool isDistributed() const override { return false; }
36 };
37 
38 } // namespace ioda
39 
40 #endif // DISTRIBUTION_INEFFICIENTDISTRIBUTION_H_
ioda::Distribution
class for distributing obs across multiple process elements
Definition: src/distribution/Distribution.h:30
ioda::InefficientDistribution::InefficientDistribution
InefficientDistribution(const eckit::mpi::Comm &Comm)
Definition: InefficientDistribution.cc:19
ioda::InefficientDistribution::~InefficientDistribution
~InefficientDistribution()
Definition: InefficientDistribution.cc:25
ioda
Definition: IodaUtils.cc:13
ioda::InefficientDistribution
Inefficient distribution.
Definition: InefficientDistribution.h:29
ioda::InefficientDistribution::isDistributed
bool isDistributed() const override
Definition: InefficientDistribution.h:35
ioda::InefficientDistribution::isMyRecord
bool isMyRecord(std::size_t RecNum) const override
Inefficient distribution.
Definition: InefficientDistribution.cc:37