11 #ifndef LORENZ95_ERRORCOVARIANCEL95_H_
12 #define LORENZ95_ERRORCOVARIANCEL95_H_
14 #include <unsupported/Eigen/FFT>
19 #include <boost/noncopyable.hpp>
21 #include "eckit/config/Configuration.h"
23 #include "oops/util/DateTime.h"
24 #include "oops/util/ObjectCounter.h"
25 #include "oops/util/parameters/Parameters.h"
26 #include "oops/util/parameters/RequiredParameter.h"
27 #include "oops/util/Printable.h"
43 ModelSpaceCovarianceParametersBase<L95Traits>)
46 oops::RequiredParameter<util::DateTime> date{
"date",
this};
48 oops::RequiredParameter<double>
lengthScale{
"length_scale",
this};
58 private boost::noncopyable,
59 private util::ObjectCounter<ErrorCovarianceL95> {
63 static const std::string
classname() {
return "lorenz95::ErrorCovarianceL95";}
74 void print(std::ostream &)
const;
81 mutable Eigen::FFT<double>
fft_;
Background error covariance matrix for Lorenz 95 model.
std::vector< double > bcoefs_
void print(std::ostream &) const
static const std::string classname()
Eigen::FFT< double > fft_
void multiply(const IncrementL95 &, IncrementL95 &) const
ErrorCovarianceL95Parameters Parameters_
void inverseMultiply(const IncrementL95 &, IncrementL95 &) const
const util::DateTime time_
ErrorCovarianceL95(const Resolution &, const oops::Variables &, const ErrorCovarianceL95Parameters &, const StateL95 &, const StateL95 &)
void randomize(IncrementL95 &) const
oops::RequiredParameter< double > lengthScale
OOPS_CONCRETE_PARAMETERS(ErrorCovarianceL95Parameters, ModelSpaceCovarianceParametersBase< L95Traits >) public oops::RequiredParameter< double > standardDeviation
Increment Class: Difference between two states.
Base class for classes storing parameters of a particular model-space error covariance implementation...
The namespace for the L95 model.
The namespace for the main oops code.