Go to the documentation of this file.
12 #ifndef QG_MODEL_INCREMENTQG_H_
13 #define QG_MODEL_INCREMENTQG_H_
20 #include "atlas/field.h"
22 #include "eckit/config/LocalConfiguration.h"
26 #include "oops/util/DateTime.h"
27 #include "oops/util/dot_product.h"
28 #include "oops/util/Duration.h"
29 #include "oops/util/ObjectCounter.h"
30 #include "oops/util/Printable.h"
31 #include "oops/util/Serializable.h"
33 #include "oops/qg/FieldsQG.h"
34 #include "oops/qg/GeometryQG.h"
35 #include "oops/qg/GeometryQGIterator.h"
50 class ModelBiasIncrement;
51 class ErrorCovarianceQG;
64 public util::Printable,
65 public util::Serializable,
66 private util::ObjectCounter<IncrementQG> {
68 static const std::string
classname() {
return "qg::IncrementQG";}
80 void zero(
const util::DateTime &);
86 void axpy(
const double &,
const IncrementQG &,
const bool check =
true);
90 void dirac(
const eckit::Configuration &);
93 void read(
const eckit::Configuration &);
94 void write(
const eckit::Configuration &)
const;
101 void setAtlas(atlas::FieldSet *)
const;
102 void toAtlas(atlas::FieldSet *)
const;
109 std::shared_ptr<const GeometryQG>
geometry()
const {
120 void serialize(std::vector<double> &)
const override;
121 void deserialize(
const std::vector<double> &,
size_t &)
override;
125 void print(std::ostream &)
const override;
133 #endif // QG_MODEL_INCREMENTQG_H_
size_t serialSize() const override
Serialization.
The namespace for the main oops code.
const util::DateTime & validTime() const
Abstract base class for quantities.
void setAtlas(atlas::FieldSet *) const
ATLAS FieldSet.
double dot_product_with(const IncrementQG &) const
The namespace for the qg model.
std::shared_ptr< const GeometryQG > geometry() const
void deserialize(const std::vector< double > &, size_t &) override
oops::LocalIncrement getLocal(const GeometryQGIterator &) const
void updateTime(const util::Duration &dt)
IncrementQG(const GeometryQG &, const oops::Variables &, const util::DateTime &)
Constructor, destructor.
IncrementQG & operator-=(const IncrementQG &)
util::DateTime & validTime()
void diff(const StateQG &, const StateQG &)
Basic operators.
void serialize(std::vector< double > &) const override
void axpy(const double &, const IncrementQG &, const bool check=true)
Increment Class: Difference between two states.
void print(std::ostream &) const override
Data.
void write(const eckit::Configuration &) const
void setLocal(const oops::LocalIncrement &, const GeometryQGIterator &)
void dirac(const eckit::Configuration &)
IncrementQG & operator=(const IncrementQG &)
void toAtlas(atlas::FieldSet *) const
IncrementQG & operator*=(const double &)
void fromAtlas(atlas::FieldSet *)
static const std::string classname()
FieldsQG & fields()
Access to fields.
Class to represent a Fields for the QG model.
GeometryQG handles geometry for QG model.
const FieldsQG & fields() const
void read(const eckit::Configuration &)
I/O and diagnostics.
void accumul(const double &, const StateQG &)
Other.
void schur_product_with(const IncrementQG &)
std::unique_ptr< FieldsQG > fields_
IncrementQG & operator+=(const IncrementQG &)