SOCA
ModelBiasIncrement.h
Go to the documentation of this file.
1 /*
2  * (C) Copyright 2017-2021 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 SOCA_MODELBIAS_MODELBIASINCREMENT_H_
9 #define SOCA_MODELBIAS_MODELBIASINCREMENT_H_
10 
11 #include <ostream>
12 #include <vector>
13 
14 #include "oops/util/Printable.h"
15 #include "oops/util/Serializable.h"
16 
17 // Forward declarations
18 namespace eckit {
19  class Configuration;
20 }
21 namespace soca {
22  class Geometry;
23  class ModelBias;
24  class ModelBiasCovariance;
25 }
26 
27 // -----------------------------------------------------------------------------
28 
29 namespace soca {
30 
31 class ModelBiasIncrement : public util::Printable,
32  public util::Serializable {
33  public:
34 /// Constructor, destructor
35  ModelBiasIncrement(const Geometry &, const eckit::Configuration &) {}
36  ModelBiasIncrement(const ModelBiasIncrement &, const bool) {}
38  const eckit::Configuration &) {}
40 
41 /// Linear algebra operators
42  void diff(const ModelBias &, const ModelBias &) {}
43  void zero() {}
44  ModelBiasIncrement & operator=(const ModelBiasIncrement &) {return *this;}
47  ModelBiasIncrement & operator*=(const double) {return *this;}
48  void axpy(const double, const ModelBiasIncrement &) {}
49  double dot_product_with(const ModelBiasIncrement &) const {return 0.0;}
50 
51 /// I/O and diagnostics
52  void read(const eckit::Configuration &) {}
53  void write(const eckit::Configuration &) const {}
54  double norm() const {return 0.0;}
55 
56 /// Serialize and deserialize
57  size_t serialSize() const override {return 0;}
58  void serialize(std::vector<double> &) const override {}
59  void deserialize(const std::vector<double> &, size_t &) override {}
60 
61  private:
63  void print(std::ostream & os) const override {}
64 };
65 
66 // -----------------------------------------------------------------------------
67 
68 } // namespace soca
69 
70 #endif // SOCA_MODELBIAS_MODELBIASINCREMENT_H_
Geometry handles geometry for SOCA model.
Definition: Geometry.h:48
Model error for the SOCA model.
Definition: ModelBias.h:43
void diff(const ModelBias &, const ModelBias &)
Linear algebra operators.
ModelBiasIncrement & operator=(const ModelBiasIncrement &)
size_t serialSize() const override
Serialize and deserialize.
void axpy(const double, const ModelBiasIncrement &)
double dot_product_with(const ModelBiasIncrement &) const
void print(std::ostream &os) const override
ModelBiasIncrement & operator-=(const ModelBiasIncrement &)
ModelBiasIncrement(const ModelBiasIncrement &, const bool)
ModelBiasIncrement(const ModelBiasCovariance &)
void serialize(std::vector< double > &) const override
void read(const eckit::Configuration &)
I/O and diagnostics.
ModelBiasIncrement & operator+=(const ModelBiasIncrement &)
ModelBiasIncrement(const Geometry &, const eckit::Configuration &)
Constructor, destructor.
ModelBiasIncrement & operator*=(const double)
ModelBiasIncrement(const ModelBiasIncrement &, const eckit::Configuration &)
void write(const eckit::Configuration &) const
void deserialize(const std::vector< double > &, size_t &) override