FV3-JEDI
TlmId.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_TLM_TLMID_H_
9 #define FV3JEDI_TLM_TLMID_H_
10 
11 #include <string>
12 
13 #include "oops/base/LinearModelBase.h"
14 #include "oops/util/Duration.h"
15 #include "oops/util/ObjectCounter.h"
16 #include "oops/util/Printable.h"
17 
20 
21 // Forward declarations
22 namespace eckit {
23  class Configuration;
24 }
25 
26 namespace fv3jedi {
27 
28 // -----------------------------------------------------------------------------
29 /// FV3JEDI linear identity model definition.
30 /*!
31  * FV3JEDI linear identity model definition and configuration parameters.
32  */
33 
34 class TlmId: public oops::LinearModelBase<Traits>,
35  private util::ObjectCounter<TlmId> {
36  public:
37  static const std::string classname() {return "fv3jedi::TlmId";}
38 
39  TlmId(const Geometry &, const eckit::Configuration &);
40  ~TlmId();
41 
42 /// Model trajectory computation
43  void setTrajectory(const State &, State &,
44  const ModelBias &) override;
45 
46 /// Run TLM and its adjoint
47  void initializeTL(Increment &) const override;
48  void stepTL(Increment &, const ModelBiasIncrement &)
49  const override;
50  void finalizeTL(Increment &) const override;
51 
52  void initializeAD(Increment &) const override;
54  const override;
55  void finalizeAD(Increment &) const override;
56 
57 /// Other utilities
58  const util::Duration & timeResolution() const override {return tstep_;}
59  const Geometry & resolution() const {return resol_;}
60  const oops::Variables & variables() const override {return linvars_;}
61 
62  private:
63  void print(std::ostream &) const override;
64 
65 // Data
66  util::Duration tstep_;
68  const oops::Variables linvars_;
69 };
70 // -----------------------------------------------------------------------------
71 
72 } // namespace fv3jedi
73 #endif // FV3JEDI_TLM_TLMID_H_
fv3jedi::TlmId::resol_
const Geometry resol_
Definition: TlmId.h:67
Traits.h
fv3jedi::TlmId::stepAD
void stepAD(Increment &, ModelBiasIncrement &) const override
Definition: TlmId.cc:59
fv3jedi::TlmId::stepTL
void stepTL(Increment &, const ModelBiasIncrement &) const override
Definition: TlmId.cc:46
fv3jedi::TlmId
FV3JEDI linear identity model definition.
Definition: TlmId.h:35
fv3jedi::TlmId::initializeAD
void initializeAD(Increment &) const override
Definition: TlmId.cc:55
fv3jedi::TlmId::timeResolution
const util::Duration & timeResolution() const override
Other utilities.
Definition: TlmId.h:58
Tlm.interface.h
fv3jedi::TlmId::print
void print(std::ostream &) const override
Definition: TlmId.cc:68
fv3jedi::TlmId::TlmId
TlmId(const Geometry &, const eckit::Configuration &)
Definition: TlmId.cc:27
fv3jedi::TlmId::setTrajectory
void setTrajectory(const State &, State &, const ModelBias &) override
Model trajectory computation.
Definition: TlmId.cc:39
fv3jedi::TlmId::tstep_
util::Duration tstep_
Definition: TlmId.h:66
fv3jedi::TlmId::~TlmId
~TlmId()
Definition: TlmId.cc:35
fv3jedi::ModelBias
Model error for the FV3JEDI model.
Definition: ModelBias.h:41
eckit
Definition: FieldsMetadata.h:25
fv3jedi::TlmId::finalizeTL
void finalizeTL(Increment &) const override
Definition: TlmId.cc:51
fv3jedi::TlmId::finalizeAD
void finalizeAD(Increment &) const override
Definition: TlmId.cc:64
fv3jedi::TlmId::classname
static const std::string classname()
Definition: TlmId.h:37
fv3jedi::TlmId::variables
const oops::Variables & variables() const override
Definition: TlmId.h:60
fv3jedi::Geometry
Geometry handles geometry for FV3JEDI model.
Definition: Geometry.h:41
fv3jedi::TlmId::resolution
const Geometry & resolution() const
Definition: TlmId.h:59
fv3jedi::Increment
Definition: Increment.h:52
fv3jedi::State
Definition: State.h:45
fv3jedi::TlmId::linvars_
const oops::Variables linvars_
Definition: TlmId.h:68
fv3jedi::TlmId::initializeTL
void initializeTL(Increment &) const override
Run TLM and its adjoint.
Definition: TlmId.cc:42
fv3jedi
Configuration files should be formatted as e.g.
Definition: ErrorCovariance.cc:20
fv3jedi::ModelBiasIncrement
Definition: ModelBiasIncrement.h:27