OOPS
ErrorCovarianceQG.cc
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 
12 
13 #include <cmath>
14 
15 #include "eckit/config/Configuration.h"
16 #include "model/FieldsQG.h"
17 #include "model/GeometryQG.h"
18 #include "model/IncrementQG.h"
19 #include "model/QgFortran.h"
20 #include "model/StateQG.h"
23 #include "oops/base/Variables.h"
24 #include "oops/util/Logger.h"
25 
26 // -----------------------------------------------------------------------------
27 namespace qg {
28 // -----------------------------------------------------------------------------
30  const eckit::Configuration & conf,
31  const StateQG &, const StateQG &) {
33  oops::Log::trace() << "ErrorCovarianceQG created" << std::endl;
34 }
35 // -----------------------------------------------------------------------------
38  oops::Log::trace() << "ErrorCovarianceQG destructed" << std::endl;
39 }
40 // -----------------------------------------------------------------------------
41 void ErrorCovarianceQG::multiply(const IncrementQG & dxin, IncrementQG & dxout) const {
43 }
44 // -----------------------------------------------------------------------------
45 void ErrorCovarianceQG::inverseMultiply(const IncrementQG & dxin, IncrementQG & dxout) const {
47  dxout.zero();
48  GMRESR(dxout, dxin, *this, Id, 20, 1.0e-5);
49 }
50 // -----------------------------------------------------------------------------
53 }
54 // -----------------------------------------------------------------------------
55 void ErrorCovarianceQG::print(std::ostream & os) const {
56  os << "ErrorCovarianceQG::print not implemented";
57 }
58 // -----------------------------------------------------------------------------
59 
60 } // namespace qg
oops::GMRESR
double GMRESR(VECTOR &xx, const VECTOR &bb, const AMATRIX &A, const PMATRIX &precond, const int maxiter, const double tolerance)
Definition: GMRESR.h:63
ErrorCovarianceQG.h
IdentityMatrix.h
qg::ErrorCovarianceQG::ErrorCovarianceQG
ErrorCovarianceQG(const GeometryQG &, const oops::Variables &, const eckit::Configuration &, const StateQG &, const StateQG &)
Definition: ErrorCovarianceQG.cc:29
FieldsQG.h
qg
The namespace for the qg model.
Definition: qg/model/AnalyticInit.cc:13
qg::StateQG
QG model state.
Definition: StateQG.h:42
qg::ErrorCovarianceQG::randomize
void randomize(IncrementQG &) const
Definition: ErrorCovarianceQG.cc:51
QgFortran.h
qg::ErrorCovarianceQG::print
void print(std::ostream &) const
Definition: ErrorCovarianceQG.cc:55
qg::ErrorCovarianceQG::keyConfig_
F90error_covariance keyConfig_
Definition: ErrorCovarianceQG.h:54
GMRESR.h
GMRESR solver for Ax=b.
GeometryQG.h
qg::qg_error_covariance_mult_f90
void qg_error_covariance_mult_f90(const F90error_covariance &, const F90flds &, const F90flds &)
qg::IncrementQG::zero
void zero()
Definition: IncrementQG.cc:102
qg::qg_error_covariance_setup_f90
void qg_error_covariance_setup_f90(F90error_covariance &, const eckit::Configuration &, const F90geom &)
qg::qg_error_covariance_delete_f90
void qg_error_covariance_delete_f90(F90error_covariance &)
qg::GeometryQG::toFortran
const F90geom & toFortran() const
Definition: GeometryQG.h:64
qg::FieldsQG::toFortran
const int & toFortran() const
Definition: FieldsQG.h:99
qg::IncrementQG
Increment Class: Difference between two states.
Definition: IncrementQG.h:66
IncrementQG.h
qg::ErrorCovarianceQG::~ErrorCovarianceQG
~ErrorCovarianceQG()
Definition: ErrorCovarianceQG.cc:36
StateQG.h
oops::IdentityMatrix
Identity matrix.
Definition: IdentityMatrix.h:18
qg::qg_error_covariance_randomize_f90
void qg_error_covariance_randomize_f90(const F90error_covariance &, const F90flds &)
qg::IncrementQG::fields
FieldsQG & fields()
Access to fields.
Definition: IncrementQG.h:106
oops::Variables
Definition: oops/base/Variables.h:23
qg::ErrorCovarianceQG::inverseMultiply
void inverseMultiply(const IncrementQG &, IncrementQG &) const
Definition: ErrorCovarianceQG.cc:45
qg::GeometryQG
GeometryQG handles geometry for QG model.
Definition: GeometryQG.h:54
qg::ErrorCovarianceQG::multiply
void multiply(const IncrementQG &, IncrementQG &) const
Definition: ErrorCovarianceQG.cc:41
Variables.h