OOPS
oops::interface::Geometry< MODEL > Class Template Reference

Interface class for the geometry of the model/state space. More...

#include <Geometry.h>

Inheritance diagram for oops::interface::Geometry< MODEL >:
Collaboration diagram for oops::interface::Geometry< MODEL >:

Public Types

typedef TParameters_IfAvailableElseFallbackType_t< Geometry_, GenericParameters > Parameters_
 

Public Member Functions

 Geometry (const Parameters_ &, const eckit::mpi::Comm &)
 Constructors from yaml (and mpi communicator), implement one (using Parameters preferred) More...
 
 Geometry (const eckit::Configuration &, const eckit::mpi::Comm &)
 
 Geometry (std::shared_ptr< const Geometry_ >)
 Constructor from pointer to the MODEL::Geometry (used in 1DVar filter) More...
 
virtual ~Geometry ()
 Destructor (overridden for timer and log purposes) More...
 
GeometryIterator_ begin () const
 Iterator to the first gridpoint of Geometry (only used in LocalEnsembleDA) More...
 
GeometryIterator_ end () const
 Iterator to the last gridpoint fo Geometry (only used in LocalEnsembleDA) More...
 
std::vector< double > verticalCoord (std::string &) const
 Values of vertical coordinate in units specified by string (only used in GETKF) More...
 
const eckit::mpi::Comm & getComm () const
 Accessor to the geometry communicator. More...
 
atlas::FunctionSpace * atlasFunctionSpace () const
 
atlas::FieldSet * atlasFieldSet () const
 

Static Public Member Functions

static const std::string classname ()
 

Protected Attributes

std::shared_ptr< const Geometry_geom_
 

Private Types

typedef MODEL::Geometry Geometry_
 
typedef GeometryIterator< MODEL > GeometryIterator_
 

Private Member Functions

void print (std::ostream &) const
 pointer to the Geometry implementation More...
 

Detailed Description

template<typename MODEL>
class oops::interface::Geometry< MODEL >

Interface class for the geometry of the model/state space.

Can contain information about model resolution, gridpoints, MPI distribution

Note: implementations of this interface can opt to extract their settings either from a Configuration object or from a subclass of Parameters.

In the former case, they should provide a constructor with the following signature:

Geometry(const eckit::LocalConfiguration &, const eckit::mpi::Comm &);

In the latter case, the implementer should first define a subclass of Parameters holding the settings of the geometry in question. The implementation of the Geometry interface should then typedef Parameters_ to the name of that subclass and provide a constructor with the following signature:

Geometry(const Parameters_ &, const eckit::mpi::Comm &);

Definition at line 59 of file oops/interface/Geometry.h.

Member Typedef Documentation

◆ Geometry_

template<typename MODEL >
typedef MODEL::Geometry oops::interface::Geometry< MODEL >::Geometry_
private

Definition at line 61 of file oops/interface/Geometry.h.

◆ GeometryIterator_

template<typename MODEL >
typedef GeometryIterator<MODEL> oops::interface::Geometry< MODEL >::GeometryIterator_
private

Definition at line 62 of file oops/interface/Geometry.h.

◆ Parameters_

template<typename MODEL >
typedef TParameters_IfAvailableElseFallbackType_t<Geometry_, GenericParameters> oops::interface::Geometry< MODEL >::Parameters_

Set to Geometry_::Parameters_ if Geometry_ provides a type called Parameters_ and to GenericParameters (a thin wrapper of an eckit::LocalConfiguration object) if not.

Definition at line 67 of file oops/interface/Geometry.h.

Constructor & Destructor Documentation

◆ Geometry() [1/3]

template<typename MODEL >
oops::interface::Geometry< MODEL >::Geometry ( const Parameters_ parameters,
const eckit::mpi::Comm &  comm 
)

Constructors from yaml (and mpi communicator), implement one (using Parameters preferred)

Definition at line 109 of file oops/interface/Geometry.h.

Here is the call graph for this function:

◆ Geometry() [2/3]

template<typename MODEL >
oops::interface::Geometry< MODEL >::Geometry ( const eckit::Configuration &  config,
const eckit::mpi::Comm &  comm 
)

Definition at line 101 of file oops/interface/Geometry.h.

◆ Geometry() [3/3]

template<typename MODEL >
oops::interface::Geometry< MODEL >::Geometry ( std::shared_ptr< const Geometry_ ptr)
explicit

Constructor from pointer to the MODEL::Geometry (used in 1DVar filter)

Definition at line 122 of file oops/interface/Geometry.h.

◆ ~Geometry()

template<typename MODEL >
oops::interface::Geometry< MODEL >::~Geometry
virtual

Destructor (overridden for timer and log purposes)

Definition at line 131 of file oops/interface/Geometry.h.

Member Function Documentation

◆ atlasFieldSet()

template<typename MODEL >
atlas::FieldSet* oops::interface::Geometry< MODEL >::atlasFieldSet ( ) const
inline

Definition at line 89 of file oops/interface/Geometry.h.

◆ atlasFunctionSpace()

template<typename MODEL >
atlas::FunctionSpace* oops::interface::Geometry< MODEL >::atlasFunctionSpace ( ) const
inline

Definition at line 88 of file oops/interface/Geometry.h.

◆ begin()

template<typename MODEL >
GeometryIterator< MODEL > oops::interface::Geometry< MODEL >::begin

Iterator to the first gridpoint of Geometry (only used in LocalEnsembleDA)

Definition at line 141 of file oops/interface/Geometry.h.

Here is the caller graph for this function:

◆ classname()

template<typename MODEL >
static const std::string oops::interface::Geometry< MODEL >::classname ( )
inlinestatic

Definition at line 69 of file oops/interface/Geometry.h.

Here is the caller graph for this function:

◆ end()

template<typename MODEL >
GeometryIterator< MODEL > oops::interface::Geometry< MODEL >::end

Iterator to the last gridpoint fo Geometry (only used in LocalEnsembleDA)

Definition at line 161 of file oops/interface/Geometry.h.

Here is the caller graph for this function:

◆ getComm()

template<typename MODEL >
const eckit::mpi::Comm& oops::interface::Geometry< MODEL >::getComm ( ) const
inline

Accessor to the geometry communicator.

Definition at line 87 of file oops/interface/Geometry.h.

◆ print()

template<typename MODEL >
void oops::interface::Geometry< MODEL >::print ( std::ostream &  os) const
private

pointer to the Geometry implementation

Definition at line 171 of file oops/interface/Geometry.h.

◆ verticalCoord()

template<typename MODEL >
std::vector< double > oops::interface::Geometry< MODEL >::verticalCoord ( std::string &  str) const

Values of vertical coordinate in units specified by string (only used in GETKF)

Definition at line 151 of file oops/interface/Geometry.h.

Here is the caller graph for this function:

Member Data Documentation

◆ geom_

template<typename MODEL >
std::shared_ptr<const Geometry_> oops::interface::Geometry< MODEL >::geom_
protected

Definition at line 92 of file oops/interface/Geometry.h.


The documentation for this class was generated from the following file: