OOPS
BMatrix.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 OOPS_ASSIMILATION_BMATRIX_H_
12
#define OOPS_ASSIMILATION_BMATRIX_H_
13
14
#include <boost/noncopyable.hpp>
15
16
#include "
oops/assimilation/ControlIncrement.h
"
17
#include "
oops/assimilation/CostFunction.h
"
18
19
namespace
oops
{
20
21
/// The \f$ B \f$ matrix.
22
/*!
23
* The solvers represent matrices as objects that implement a "multiply"
24
* method. This class defines objects that apply the \f$ B \f$ matrix.
25
*/
26
27
template
<
typename
MODEL,
typename
OBS>
class
BMatrix
:
private
boost::noncopyable {
28
typedef
ControlIncrement<MODEL, OBS>
CtrlInc_
;
29
typedef
CostFunction<MODEL, OBS>
CostFct_
;
30
31
public
:
32
explicit
BMatrix
(
const
CostFct_
& j):
j_
(j) {}
33
void
multiply
(
const
CtrlInc_
& x,
CtrlInc_
& bx)
const
{
34
j_
.
jb
().
multiplyB
(x, bx);
35
}
36
37
private
:
38
CostFct_
const
&
j_
;
39
};
40
41
}
// namespace oops
42
43
#endif // OOPS_ASSIMILATION_BMATRIX_H_
oops::CostJbTotal::multiplyB
void multiplyB(const CtrlInc_ &, CtrlInc_ &) const
Multiply by covariance matrix and its inverse.
Definition:
CostJbTotal.h:303
oops
The namespace for the main oops code.
Definition:
ErrorCovarianceL95.cc:22
oops::BMatrix::j_
CostFct_ const & j_
Definition:
BMatrix.h:38
oops::BMatrix::multiply
void multiply(const CtrlInc_ &x, CtrlInc_ &bx) const
Definition:
BMatrix.h:33
CostFunction.h
oops::BMatrix::CostFct_
CostFunction< MODEL, OBS > CostFct_
Definition:
BMatrix.h:29
oops::ControlIncrement
Definition:
ControlIncrement.h:46
oops::CostFunction::jb
const JbTotal_ & jb() const
Access .
Definition:
CostFunction.h:91
oops::BMatrix::CtrlInc_
ControlIncrement< MODEL, OBS > CtrlInc_
Definition:
BMatrix.h:28
oops::BMatrix::BMatrix
BMatrix(const CostFct_ &j)
Definition:
BMatrix.h:32
ControlIncrement.h
oops::BMatrix
The matrix.
Definition:
BMatrix.h:27
oops::CostFunction
Cost Function.
Definition:
CostFunction.h:53
fv3-bundle
oops
src
oops
assimilation
BMatrix.h
Generated on Sun Oct 25 2020 12:42:56 for OOPS by
1.8.18