SOCA
ModelBias.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_MODELBIAS_H_
9 #define SOCA_MODELBIAS_MODELBIAS_H_
10 
11 #include <iostream>
12 #include <string>
13 
14 #include <boost/noncopyable.hpp>
15 
16 #include "oops/util/ObjectCounter.h"
17 #include "oops/util/Printable.h"
18 
19 // Forward declarations
20 namespace eckit {
21  class Configuration;
22 }
23 namespace soca {
24  class Geometry;
25  class ModelBiasIncrement;
26 }
27 
28 // -----------------------------------------------------------------------------
29 
30 namespace soca {
31 
32 /// Model error for the SOCA model.
33 /*!
34  * This class is used to manipulate parameters of the model that
35  * can be estimated in the assimilation. This includes model bias for
36  * example but could be used for other parameters to be estimated.
37  * This is sometimes referred to as augmented state or augmented
38  * control variable in the litterature.
39  * The augmented state is understood here as an augmented 4D state.
40  */
41 class ModelBias : public util::Printable,
42  private boost::noncopyable,
43  private util::ObjectCounter<ModelBias> {
44  public:
45  static const std::string classname() {return "soca::ModelBias";}
46 
47  ModelBias(const Geometry &, const eckit::Configuration &) {}
48  ModelBias(const Geometry &, const ModelBias &) {}
49  ModelBias(const ModelBias &, const bool) {}
51 
52  ModelBias & operator+=(const ModelBiasIncrement &) {return *this;}
53 
54 /// I/O and diagnostics
55  void read(const eckit::Configuration &) {}
56  void write(const eckit::Configuration &) const {}
57  double norm() const {return 0.0;}
58 
59  private:
60  void print(std::ostream & os) const {}
61 };
62 
63 // -----------------------------------------------------------------------------
64 
65 } // namespace soca
66 
67 #endif // SOCA_MODELBIAS_MODELBIAS_H_
Geometry handles geometry for SOCA model.
Definition: Geometry.h:48
Model error for the SOCA model.
Definition: ModelBias.h:43
ModelBias(const Geometry &, const ModelBias &)
Definition: ModelBias.h:48
void read(const eckit::Configuration &)
I/O and diagnostics.
Definition: ModelBias.h:55
double norm() const
Definition: ModelBias.h:57
ModelBias & operator+=(const ModelBiasIncrement &)
Definition: ModelBias.h:52
void write(const eckit::Configuration &) const
Definition: ModelBias.h:56
void print(std::ostream &os) const
Definition: ModelBias.h:60
ModelBias(const Geometry &, const eckit::Configuration &)
Definition: ModelBias.h:47
ModelBias(const ModelBias &, const bool)
Definition: ModelBias.h:49
static const std::string classname()
Definition: ModelBias.h:45