12 #ifndef SOCA_INCREMENT_INCREMENT_H_
13 #define SOCA_INCREMENT_INCREMENT_H_
22 #include "oops/base/LocalIncrement.h"
23 #include "oops/base/Variables.h"
24 #include "oops/util/DateTime.h"
25 #include "oops/util/Duration.h"
26 #include "oops/util/ObjectCounter.h"
27 #include "oops/util/Printable.h"
28 #include "oops/util/Serializable.h"
43 class GeometryIterator;
59 public util::Printable,
60 public util::Serializable,
61 private util::ObjectCounter<Increment> {
63 static const std::string
classname() {
return "soca::Increment";}
67 const util::DateTime &);
77 void zero(
const util::DateTime &);
82 void axpy(
const double &,
const Increment &,
const bool check =
true);
86 void dirac(
const eckit::Configuration &);
93 void setAtlas(atlas::FieldSet *)
const;
94 void toAtlas(atlas::FieldSet *)
const;
98 void read(
const eckit::Configuration &);
99 void write(
const eckit::Configuration &)
const;
101 const util::DateTime &
validTime()
const;
107 void serialize(std::vector<double> &)
const override;
108 void deserialize(
const std::vector<double> &,
size_t &)
override;
114 std::shared_ptr<const Geometry>
geometry()
const;
119 void print(std::ostream &)
const override;
124 std::shared_ptr<const Geometry>
geom_;
Geometry handles geometry for SOCA model.
Increment Class: Difference between two states.
std::shared_ptr< const Geometry > geometry() const
void deserialize(const std::vector< double > &, size_t &) override
void setAtlas(atlas::FieldSet *) const
ATLAS.
static const std::string classname()
Increment & operator=(const Increment &)
void schur_product_with(const Increment &)
void read(const eckit::Configuration &)
I/O and diagnostics.
void updateTime(const util::Duration &dt)
void toAtlas(atlas::FieldSet *) const
void accumul(const double &, const State &)
Other.
size_t serialSize() const override
Serialize and deserialize.
std::shared_ptr< const Geometry > geom_
void write(const eckit::Configuration &) const
void serialize(std::vector< double > &) const override
Increment & operator-=(const Increment &)
void diff(const State &, const State &)
Basic operators.
void fromAtlas(atlas::FieldSet *)
Increment & operator+=(const Increment &)
Increment(const Geometry &, const oops::Variables &, const util::DateTime &)
Constructor, destructor.
void dirac(const eckit::Configuration &)
void setLocal(const oops::LocalIncrement &, const GeometryIterator &)
const util::DateTime & validTime() const
Increment & operator*=(const double &)
void print(std::ostream &) const override
Data.
const int & toFortran() const
double dot_product_with(const Increment &) const
oops::LocalIncrement getLocal(const GeometryIterator &) const
Getpoint/Setpoint.
void axpy(const double &, const Increment &, const bool check=true)
int F90flds
key type for soca_fields_mod::soca_fields