FV3 Bundle
qg/model/ModelBias.h
Go to the documentation of this file.
1 /*
2  * (C) Copyright 2009-2016 ECMWF.
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  * In applying this licence, ECMWF does not waive the privileges and immunities
7  * granted to it by virtue of its status as an intergovernmental organisation nor
8  * does it submit to any jurisdiction.
9  */
10 
11 #ifndef QG_MODEL_MODELBIAS_H_
12 #define QG_MODEL_MODELBIAS_H_
13 
14 #include <iostream>
15 #include <string>
16 #include <boost/noncopyable.hpp>
17 
18 #include "oops/util/ObjectCounter.h"
19 #include "oops/util/Printable.h"
20 
21 namespace eckit {
22  class Configuration;
23 }
24 
25 namespace qg {
26  class GeometryQG;
27  class ModelBiasIncrement;
28 
29 /// Model error for the QG model.
30 /*!
31  * This class is used to manipulate parameters of the model that
32  * can be estimated in the assimilation. This includes model bias for
33  * example but could be used for other parameters to be estimated.
34  * This is sometimes referred to as augmented state or augmented
35  * control variable in the litterature.
36  * The augmented state is understood here as an augmented 4D state.
37  */
38 
39 // -----------------------------------------------------------------------------
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 "qg::ModelBias";}
46 
47  ModelBias(const GeometryQG &, const eckit::Configuration &) {}
48  ModelBias(const GeometryQG &, 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 qg
66 
67 #endif // QG_MODEL_MODELBIAS_H_
Model error for the QG model.
static const std::string classname()
double norm() const
ModelBias(const ModelBias &, const bool)
ModelBias & operator+=(const ModelBiasIncrement &)
GeometryQG handles geometry for QG model.
Definition: GeometryQG.h:33
void print(std::ostream &os) const
ModelBias(const GeometryQG &, const eckit::Configuration &)
void read(const eckit::Configuration &)
I/O and diagnostics.
void write(const eckit::Configuration &) const
The namespace for the qg model.
ModelBias(const GeometryQG &, const ModelBias &)