FV3-JEDI
ModelBiasIncrement.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 FV3JEDI_MODELBIAS_MODELBIASINCREMENT_H_
9 #define FV3JEDI_MODELBIAS_MODELBIASINCREMENT_H_
10 
11 #include <iostream>
12 #include <vector>
13 
14 #include "oops/util/Printable.h"
15 
16 namespace eckit {
17  class Configuration;
18 }
19 
20 namespace fv3jedi {
21  class ModelBias;
22  class ModelBiasCovariance;
23  class Geometry;
24 
25 // -----------------------------------------------------------------------------
26 
27 class ModelBiasIncrement : public util::Printable {
28  public:
29 /// Constructor, destructor
31  const eckit::Configuration &) {}
33  const bool) {}
35  const eckit::Configuration &) {}
37 
38 /// Linear algebra operators
39  void diff(const ModelBias &, const ModelBias &) {}
40  void zero() {}
42  ModelBiasIncrement &) {return *this;}
44  ModelBiasIncrement &) {return *this;}
46  ModelBiasIncrement &) {return *this;}
47  ModelBiasIncrement & operator*=(const double) {return *this;}
48  void axpy(const double, const ModelBiasIncrement &) {}
50  const {return 0.0;}
51 
52 /// Serialize-Deserialize
53  size_t serialSize() {return 0;}
54  void serialize(std::vector<double> & vect) const {}
55  void deserialize(const std::vector<double> &, size_t & index) {}
56 
57 /// I/O and diagnostics
58  void read(const eckit::Configuration &) {}
59  void write(const eckit::Configuration &) const {}
60  double norm() const {return 0.0;}
61 
62  private:
64  void print(std::ostream & os) const {}
65 };
66 
67 // -----------------------------------------------------------------------------
68 
69 } // namespace fv3jedi
70 
71 #endif // FV3JEDI_MODELBIAS_MODELBIASINCREMENT_H_
fv3jedi::ModelBiasIncrement::operator+=
ModelBiasIncrement & operator+=(const ModelBiasIncrement &)
Definition: ModelBiasIncrement.h:43
fv3jedi::ModelBiasIncrement::dot_product_with
double dot_product_with(const ModelBiasIncrement &) const
Definition: ModelBiasIncrement.h:49
fv3jedi::ModelBiasIncrement::norm
double norm() const
Definition: ModelBiasIncrement.h:60
fv3jedi::ModelBiasIncrement::ModelBiasIncrement
ModelBiasIncrement(const Geometry &, const eckit::Configuration &)
Constructor, destructor.
Definition: ModelBiasIncrement.h:30
fv3jedi::ModelBiasIncrement::deserialize
void deserialize(const std::vector< double > &, size_t &index)
Definition: ModelBiasIncrement.h:55
fv3jedi::ModelBiasIncrement::serialSize
size_t serialSize()
Serialize-Deserialize.
Definition: ModelBiasIncrement.h:53
fv3jedi::ModelBiasIncrement::ModelBiasIncrement
ModelBiasIncrement(const ModelBiasIncrement &, const bool)
Definition: ModelBiasIncrement.h:32
fv3jedi::ModelBiasIncrement::zero
void zero()
Definition: ModelBiasIncrement.h:40
fv3jedi::ModelBiasIncrement::operator*=
ModelBiasIncrement & operator*=(const double)
Definition: ModelBiasIncrement.h:47
fv3jedi::ModelBias
Model error for the FV3JEDI model.
Definition: ModelBias.h:41
eckit
Definition: FieldsMetadata.h:25
fv3jedi::ModelBiasCovariance
Definition: ModelBiasCovariance.h:29
fv3jedi::ModelBiasIncrement::operator-=
ModelBiasIncrement & operator-=(const ModelBiasIncrement &)
Definition: ModelBiasIncrement.h:45
fv3jedi::ModelBiasIncrement::ModelBiasIncrement
ModelBiasIncrement(const ModelBiasIncrement &, const eckit::Configuration &)
Definition: ModelBiasIncrement.h:34
fv3jedi::ModelBiasIncrement::operator=
ModelBiasIncrement & operator=(const ModelBiasIncrement &)
Definition: ModelBiasIncrement.h:41
fv3jedi::Geometry
Geometry handles geometry for FV3JEDI model.
Definition: Geometry.h:41
fv3jedi::ModelBiasIncrement::serialize
void serialize(std::vector< double > &vect) const
Definition: ModelBiasIncrement.h:54
fv3jedi::ModelBiasIncrement::ModelBiasIncrement
ModelBiasIncrement(const ModelBiasCovariance &)
fv3jedi::ModelBiasIncrement::write
void write(const eckit::Configuration &) const
Definition: ModelBiasIncrement.h:59
fv3jedi::ModelBiasIncrement::axpy
void axpy(const double, const ModelBiasIncrement &)
Definition: ModelBiasIncrement.h:48
fv3jedi::ModelBiasIncrement::read
void read(const eckit::Configuration &)
I/O and diagnostics.
Definition: ModelBiasIncrement.h:58
fv3jedi::ModelBiasIncrement::diff
void diff(const ModelBias &, const ModelBias &)
Linear algebra operators.
Definition: ModelBiasIncrement.h:39
fv3jedi::ModelBiasIncrement::~ModelBiasIncrement
~ModelBiasIncrement()
Definition: ModelBiasIncrement.h:36
fv3jedi
Configuration files should be formatted as e.g.
Definition: ErrorCovariance.cc:20
fv3jedi::ModelBiasIncrement
Definition: ModelBiasIncrement.h:27
fv3jedi::ModelBiasIncrement::print
void print(std::ostream &os) const
Definition: ModelBiasIncrement.h:64