IODA
src/distribution/Distribution.h
Go to the documentation of this file.
1
/*
2
* (C) Copyright 2017 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_DISTRIBUTION_H_
9
#define DISTRIBUTION_DISTRIBUTION_H_
10
11
#include <vector>
12
13
#include "eckit/mpi/Comm.h"
14
15
namespace
ioda
{
16
17
// ---------------------------------------------------------------------
18
/*!
19
* \brief class for distributing obs across multiple process elements
20
*
21
* \details This Distribution class is a base class where various subclasses of
22
* this class define different methods for distributing obs.
23
*
24
* The subclasses of this base class need to fill in the isMyRecord method
25
* with the appropriate function. The client will use the isMyRecord method
26
* to determine what records to keep when reading in observations.
27
*
28
* \author Xin Zhang (JCSDA)
29
*/
30
class
Distribution
{
31
public
:
32
explicit
Distribution
(
const
eckit::mpi::Comm & Comm);
33
virtual
~Distribution
() = 0;
34
35
virtual
bool
isMyRecord
(std::size_t RecNum)
const
= 0;
36
virtual
bool
isDistributed
()
const
= 0;
37
38
protected
:
39
/*! \brief Local MPI communicator */
40
const
eckit::mpi::Comm &
comm_
;
41
};
42
43
}
// namespace ioda
44
45
#endif // DISTRIBUTION_DISTRIBUTION_H_
ioda::Distribution
class for distributing obs across multiple process elements
Definition:
src/distribution/Distribution.h:30
ioda::Distribution::Distribution
Distribution(const eckit::mpi::Comm &Comm)
Definition:
Distribution.cc:17
ioda
Definition:
IodaUtils.cc:13
ioda::Distribution::comm_
const eckit::mpi::Comm & comm_
Local MPI communicator.
Definition:
src/distribution/Distribution.h:40
ioda::Distribution::isMyRecord
virtual bool isMyRecord(std::size_t RecNum) const =0
ioda::Distribution::~Distribution
virtual ~Distribution()=0
Definition:
Distribution.cc:23
ioda::Distribution::isDistributed
virtual bool isDistributed() const =0
fv3-bundle
ioda
src
distribution
Distribution.h
Generated on Sat Oct 24 2020 18:46:40 for IODA by
1.8.18