SOCA
BkgErrGodas.h
Go to the documentation of this file.
1 /*
2  * (C) Copyright 2017-2021 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 SOCA_TRANSFORMS_BKGERRGODAS_BKGERRGODAS_H_
9 #define SOCA_TRANSFORMS_BKGERRGODAS_BKGERRGODAS_H_
10 
11 #include <ostream>
12 #include <string>
13 
14 #include "oops/util/DateTime.h"
15 #include "oops/util/Printable.h"
16 
17 // Forward declarations
18 namespace eckit {
19  class Configuration;
20 }
21 namespace soca {
22  class Fields;
23  class State;
24  class Increment;
25  class Geometry;
26 }
27 
28 // -----------------------------------------------------------------------------
29 
30 namespace soca {
31 
32 /// SOCA linear change of variable
33 class BkgErrGodas: public util::Printable {
34  public:
35  static const std::string classname() {return "soca::BkgErrGodas";}
36 
37  explicit BkgErrGodas(const State &, const State &, const Geometry &,
38  const eckit::Configuration &);
39  ~BkgErrGodas();
40 
41 /// Perform linear transforms
42  void multiply(const Increment &, Increment &) const;
43  void multiplyInverse(const Increment &, Increment &) const;
44  void multiplyAD(const Increment &, Increment &) const;
45  void multiplyInverseAD(const Increment &, Increment &) const;
46 
47  private:
48  void print(std::ostream &) const override;
50 };
51 // -----------------------------------------------------------------------------
52 
53 } // namespace soca
54 #endif // SOCA_TRANSFORMS_BKGERRGODAS_BKGERRGODAS_H_
SOCA linear change of variable.
Definition: BkgErrGodas.h:33
void print(std::ostream &) const override
Definition: BkgErrGodas.cc:77
void multiplyInverse(const Increment &, Increment &) const
Definition: BkgErrGodas.cc:61
void multiplyInverseAD(const Increment &, Increment &) const
Definition: BkgErrGodas.cc:72
void multiplyAD(const Increment &, Increment &) const
Definition: BkgErrGodas.cc:66
static const std::string classname()
Definition: BkgErrGodas.h:35
void multiply(const Increment &, Increment &) const
Perform linear transforms.
Definition: BkgErrGodas.cc:55
BkgErrGodas(const State &, const State &, const Geometry &, const eckit::Configuration &)
Definition: BkgErrGodas.cc:33
Geometry handles geometry for SOCA model.
Definition: Geometry.h:48
Increment Class: Difference between two states.
Definition: Increment.h:61
SOCA model state.
Definition: State.h:48