FV3-JEDI
ModelBiasCovariance.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_MODELBIASCOVARIANCE_H_
9 #define FV3JEDI_MODELBIAS_MODELBIASCOVARIANCE_H_
10 
11 #include <ostream>
12 #include <string>
13 
14 #include "eckit/config/LocalConfiguration.h"
15 #include "eckit/memory/NonCopyable.h"
16 
17 #include "oops/util/ObjectCounter.h"
18 #include "oops/util/Printable.h"
19 
20 namespace fv3jedi {
21  class ModelBias;
22  class ModelBiasIncrement;
23  class Geometry;
24 
25 // -----------------------------------------------------------------------------
26 
27 class ModelBiasCovariance : public util::Printable,
28  private eckit::NonCopyable,
29  private util::ObjectCounter<ModelBiasCovariance> {
30  public:
31  static const std::string classname()
32  {return "fv3jedi::ModelBiasCovariance";}
33 
34 /// Constructor, destructor
35  ModelBiasCovariance(const eckit::Configuration & conf,
36  const Geometry &): conf_(conf) {}
38 
39 /// Linear algebra operators
40  void linearize(const ModelBias &, const Geometry &) {}
42  ModelBiasIncrement) const {}
44  ModelBiasIncrement) const {}
45  void randomize(ModelBiasIncrement &) const {}
46 
47  const eckit::Configuration & config() const {return conf_;}
48 
49  private:
50  void print(std::ostream & os) const {}
51  const eckit::LocalConfiguration conf_;
52 };
53 
54 // -----------------------------------------------------------------------------
55 
56 } // namespace fv3jedi
57 
58 #endif // FV3JEDI_MODELBIAS_MODELBIASCOVARIANCE_H_
fv3jedi::ModelBiasCovariance::classname
static const std::string classname()
Definition: ModelBiasCovariance.h:31
fv3jedi::ModelBiasCovariance::ModelBiasCovariance
ModelBiasCovariance(const eckit::Configuration &conf, const Geometry &)
Constructor, destructor.
Definition: ModelBiasCovariance.h:35
fv3jedi::ModelBiasCovariance::~ModelBiasCovariance
~ModelBiasCovariance()
Definition: ModelBiasCovariance.h:37
fv3jedi::ModelBiasCovariance::multiply
void multiply(const ModelBiasIncrement &, ModelBiasIncrement) const
Definition: ModelBiasCovariance.h:41
fv3jedi::ModelBias
Model error for the FV3JEDI model.
Definition: ModelBias.h:41
fv3jedi::ModelBiasCovariance::inverseMultiply
void inverseMultiply(const ModelBiasIncrement &, ModelBiasIncrement) const
Definition: ModelBiasCovariance.h:43
fv3jedi::ModelBiasCovariance::linearize
void linearize(const ModelBias &, const Geometry &)
Linear algebra operators.
Definition: ModelBiasCovariance.h:40
fv3jedi::ModelBiasCovariance::print
void print(std::ostream &os) const
Definition: ModelBiasCovariance.h:50
fv3jedi::ModelBiasCovariance
Definition: ModelBiasCovariance.h:29
fv3jedi::Geometry
Geometry handles geometry for FV3JEDI model.
Definition: Geometry.h:41
fv3jedi::ModelBiasCovariance::config
const eckit::Configuration & config() const
Definition: ModelBiasCovariance.h:47
fv3jedi::ModelBiasCovariance::conf_
const eckit::LocalConfiguration conf_
Definition: ModelBiasCovariance.h:51
fv3jedi
Configuration files should be formatted as e.g.
Definition: ErrorCovariance.cc:20
fv3jedi::ModelBiasCovariance::randomize
void randomize(ModelBiasIncrement &) const
Definition: ModelBiasCovariance.h:45
fv3jedi::ModelBiasIncrement
Definition: ModelBiasIncrement.h:27