FV3-JEDI
ErrorCovariance.h
Go to the documentation of this file.
1 /*
2  * (C) Copyright 2017-2020 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_ERRORCOVARIANCE_ERRORCOVARIANCE_H_
9 #define FV3JEDI_ERRORCOVARIANCE_ERRORCOVARIANCE_H_
10 
11 #include <memory>
12 #include <ostream>
13 #include <string>
14 
15 #include "eckit/config/Configuration.h"
16 #include "eckit/memory/NonCopyable.h"
17 
18 #include "oops/util/DateTime.h"
19 #include "oops/util/ObjectCounter.h"
20 #include "oops/util/Printable.h"
21 
23 
24 // Forward declarations
25 namespace oops {
26  class Variables;
27 }
28 
29 namespace fv3jedi {
30  class Increment;
31  class State;
32 
33 // -------------------------------------------------------------------------------------------------
34 class ErrorCovariance : public util::Printable, private eckit::NonCopyable,
35  private util::ObjectCounter<ErrorCovariance> {
36  public:
37  static const std::string classname() {return "fv3jedi::ErrorCovariance";}
38 
39  ErrorCovariance(const Geometry &, const oops::Variables &, const eckit::Configuration &,
40  const State &, const State &);
42 
43  void linearize(const State &, const Geometry &);
44  void multiply(const Increment &, Increment &) const;
45  void inverseMultiply(const Increment &, Increment &) const;
46  void randomize(Increment &) const;
47 
48  private:
49  void print(std::ostream & os) const {os << "ErrorCovariance::print not implemented";}
50 };
51 // -------------------------------------------------------------------------------------------------
52 
53 } // namespace fv3jedi
54 #endif // FV3JEDI_ERRORCOVARIANCE_ERRORCOVARIANCE_H_
oops
Definition: ErrorCovariance.h:25
fv3jedi::ErrorCovariance::~ErrorCovariance
~ErrorCovariance()
Definition: ErrorCovariance.cc:30
fv3jedi::ErrorCovariance::inverseMultiply
void inverseMultiply(const Increment &, Increment &) const
Definition: ErrorCovariance.cc:42
fv3jedi::ErrorCovariance::linearize
void linearize(const State &, const Geometry &)
Geometry.h
fv3jedi::ErrorCovariance::classname
static const std::string classname()
Definition: ErrorCovariance.h:37
fv3jedi::ErrorCovariance::randomize
void randomize(Increment &) const
Definition: ErrorCovariance.cc:48
fv3jedi::Geometry
Geometry handles geometry for FV3JEDI model.
Definition: Geometry.h:41
fv3jedi::ErrorCovariance
Definition: ErrorCovariance.h:35
fv3jedi::Increment
Definition: Increment.h:52
fv3jedi::State
Definition: State.h:45
fv3jedi::ErrorCovariance::multiply
void multiply(const Increment &, Increment &) const
Definition: ErrorCovariance.cc:36
fv3jedi::ErrorCovariance::print
void print(std::ostream &os) const
Definition: ErrorCovariance.h:49
fv3jedi
Configuration files should be formatted as e.g.
Definition: ErrorCovariance.cc:20
fv3jedi::ErrorCovariance::ErrorCovariance
ErrorCovariance(const Geometry &, const oops::Variables &, const eckit::Configuration &, const State &, const State &)
Definition: ErrorCovariance.cc:23