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