FV3-JEDI
LinVarChaModel2GeoVaLs.h
Go to the documentation of this file.
1 /*
2  * (C) Copyright 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 #pragma once
9 
10 #include <memory>
11 #include <ostream>
12 #include <string>
13 
14 #include "eckit/config/Configuration.h"
15 
16 #include "oops/util/Printable.h"
17 
20 
21 // Forward declarations
22 namespace eckit {
23  class Configuration;
24 }
25 
26 namespace fv3jedi {
27  class Geometry;
28  class State;
29  class Increment;
30 
31 // -------------------------------------------------------------------------------------------------
32 
33 class LinVarChaModel2GeoVaLs: public util::Printable,
34  private util::ObjectCounter<LinVarChaModel2GeoVaLs> {
35  public:
36  static const std::string classname() {return "fv3jedi::LinVarChaModel2GeoVaLs";}
37 
38  explicit LinVarChaModel2GeoVaLs(const State &, const State &, const Geometry &,
39  const eckit::Configuration &);
41 
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  std::shared_ptr<const Geometry> geom_;
50  void print(std::ostream &) const override;
51 };
52 // -------------------------------------------------------------------------------------------------
53 
54 } // namespace fv3jedi
fv3jedi::LinVarChaModel2GeoVaLs::multiplyAD
void multiplyAD(const Increment &, Increment &) const
Definition: LinVarChaModel2GeoVaLs.cc:63
fv3jedi::LinVarChaModel2GeoVaLs::keyFtnConfig_
F90lvc_M2G keyFtnConfig_
Definition: LinVarChaModel2GeoVaLs.h:49
fv3jedi::LinVarChaModel2GeoVaLs::LinVarChaModel2GeoVaLs
LinVarChaModel2GeoVaLs(const State &, const State &, const Geometry &, const eckit::Configuration &)
Definition: LinVarChaModel2GeoVaLs.cc:29
fv3jedi::F90lvc_M2G
int F90lvc_M2G
Definition: LinVarChaModel2GeoVaLs.interface.h:11
fv3jedi::LinVarChaModel2GeoVaLs::~LinVarChaModel2GeoVaLs
~LinVarChaModel2GeoVaLs()
Definition: LinVarChaModel2GeoVaLs.cc:41
Geometry.h
LinVarChaModel2GeoVaLs.interface.h
fv3jedi::LinVarChaModel2GeoVaLs::classname
static const std::string classname()
Definition: LinVarChaModel2GeoVaLs.h:36
fv3jedi::LinVarChaModel2GeoVaLs::multiply
void multiply(const Increment &, Increment &) const
Definition: LinVarChaModel2GeoVaLs.cc:48
eckit
Definition: FieldsMetadata.h:25
fv3jedi::LinVarChaModel2GeoVaLs::print
void print(std::ostream &) const override
Definition: LinVarChaModel2GeoVaLs.cc:78
fv3jedi::Geometry
Geometry handles geometry for FV3JEDI model.
Definition: Geometry.h:41
fv3jedi::Increment
Definition: Increment.h:52
fv3jedi::State
Definition: State.h:45
fv3jedi::LinVarChaModel2GeoVaLs::multiplyInverseAD
void multiplyInverseAD(const Increment &, Increment &) const
Definition: LinVarChaModel2GeoVaLs.cc:71
fv3jedi
Configuration files should be formatted as e.g.
Definition: ErrorCovariance.cc:20
fv3jedi::LinVarChaModel2GeoVaLs::multiplyInverse
void multiplyInverse(const Increment &, Increment &) const
Definition: LinVarChaModel2GeoVaLs.cc:56
fv3jedi::LinVarChaModel2GeoVaLs
Definition: LinVarChaModel2GeoVaLs.h:34
fv3jedi::LinVarChaModel2GeoVaLs::geom_
std::shared_ptr< const Geometry > geom_
Definition: LinVarChaModel2GeoVaLs.h:48