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