OOPS
l95/src/lorenz95/ModelBias.h
Go to the documentation of this file.
1
/*
2
* (C) Copyright 2009-2016 ECMWF.
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
* In applying this licence, ECMWF does not waive the privileges and immunities
7
* granted to it by virtue of its status as an intergovernmental organisation nor
8
* does it submit to any jurisdiction.
9
*/
10
11
#ifndef LORENZ95_MODELBIAS_H_
12
#define LORENZ95_MODELBIAS_H_
13
14
#include <cmath>
15
#include <iostream>
16
#include <string>
17
#include <boost/noncopyable.hpp>
18
19
#include "oops/util/ObjectCounter.h"
20
#include "oops/util/Printable.h"
21
22
namespace
eckit
{
23
class
Configuration;
24
}
25
26
namespace
lorenz95
{
27
class
Resolution;
28
class
ModelBiasCorrection;
29
30
/// Model error for Lorenz 95 model.
31
/*!
32
* This class is used to manipulate parameters of the model that
33
* can be estimated in the assimilation. This includes model bias for
34
* example but could be used for other parameters to be estimated.
35
*/
36
37
// -----------------------------------------------------------------------------
38
39
class
ModelBias
:
public
util::Printable,
40
private
boost::noncopyable,
41
private
util::ObjectCounter<ModelBias> {
42
public
:
43
static
const
std::string
classname
() {
return
"lorenz95::ModelBias"
;}
44
45
ModelBias
(
const
Resolution
&,
const
eckit::Configuration &);
46
ModelBias
(
const
Resolution
&,
const
ModelBias
&);
47
ModelBias
(
const
ModelBias
&,
const
bool
);
48
~ModelBias
() {}
49
50
ModelBias
&
operator+=
(
const
ModelBiasCorrection
&);
51
52
const
double
&
bias
()
const
{
return
bias_
;}
53
54
/// I/O and diagnostics
55
void
read
(
const
eckit::Configuration &) {}
56
void
write
(
const
eckit::Configuration &)
const
{}
57
double
norm
()
const
{
return
std::abs(
bias_
);}
58
59
private
:
60
void
print
(std::ostream &)
const
;
61
double
bias_
;
62
bool
active_
;
63
};
64
65
// -----------------------------------------------------------------------------
66
67
}
// namespace lorenz95
68
69
#endif // LORENZ95_MODELBIAS_H_
lorenz95::ModelBias::active_
bool active_
Definition:
l95/src/lorenz95/ModelBias.h:62
lorenz95::ModelBias::~ModelBias
~ModelBias()
Definition:
l95/src/lorenz95/ModelBias.h:48
lorenz95::ModelBias::classname
static const std::string classname()
Definition:
l95/src/lorenz95/ModelBias.h:43
lorenz95::ModelBias
Model error for Lorenz 95 model.
Definition:
l95/src/lorenz95/ModelBias.h:41
lorenz95::ModelBias::print
void print(std::ostream &) const
Definition:
ModelBias.cc:50
lorenz95::Resolution
Handles resolution.
Definition:
Resolution.h:42
lorenz95::ModelBias::ModelBias
ModelBias(const Resolution &, const eckit::Configuration &)
Definition:
ModelBias.cc:23
eckit
Definition:
FieldL95.h:22
lorenz95::ModelBias::norm
double norm() const
Definition:
l95/src/lorenz95/ModelBias.h:57
lorenz95::ModelBias::write
void write(const eckit::Configuration &) const
Definition:
l95/src/lorenz95/ModelBias.h:56
lorenz95::ModelBias::operator+=
ModelBias & operator+=(const ModelBiasCorrection &)
Definition:
ModelBias.cc:45
lorenz95::ModelBias::read
void read(const eckit::Configuration &)
I/O and diagnostics.
Definition:
l95/src/lorenz95/ModelBias.h:55
lorenz95::ModelBiasCorrection
Definition:
ModelBiasCorrection.h:33
lorenz95::ModelBias::bias
const double & bias() const
Definition:
l95/src/lorenz95/ModelBias.h:52
lorenz95::ModelBias::bias_
double bias_
Definition:
l95/src/lorenz95/ModelBias.h:61
lorenz95
The namespace for the L95 model.
Definition:
l95/src/lorenz95/AnalyticInit.cc:17
fv3-bundle
oops
l95
src
lorenz95
ModelBias.h
Generated on Sun Oct 25 2020 12:42:57 for OOPS by
1.8.18