OOPS
oops::LETKFSolver< MODEL, OBS > Class Template Reference

Local Ensemble Tranform Kalman Filter solver. More...

#include <LETKFSolver.h>

Inheritance diagram for oops::LETKFSolver< MODEL, OBS >:
Collaboration diagram for oops::LETKFSolver< MODEL, OBS >:

Public Member Functions

 LETKFSolver (ObsSpaces_ &, const Geometry_ &, const eckit::Configuration &, size_t)
 
void measurementUpdate (const IncrementEnsemble4D_ &, const GeometryIterator_ &, IncrementEnsemble4D_ &) override
 KF update + posterior inflation at a grid point location (GeometryIterator_) More...
 
- Public Member Functions inherited from oops::LocalEnsembleSolver< MODEL, OBS >
 LocalEnsembleSolver (ObsSpaces_ &obspaces, const Geometry_ &geometry, const eckit::Configuration &config, size_t nens)
 initialize solver with obspaces, geometry, full config and nens ensemble size More...
 
virtual ~LocalEnsembleSolver ()=default
 
virtual Observations_ computeHofX (const StateEnsemble4D_ &xx, size_t iteration, bool readFromDisk)
 computes ensemble H(xx), returns mean H(xx), saves as hofx iteration More...
 
virtual void copyLocalIncrement (const IncrementEnsemble4D_ &bg, const GeometryIterator_ &i, IncrementEnsemble4D_ &an) const
 copy an[i] = bg i \a More...
 

Static Public Member Functions

static const std::string classname ()
 
- Static Public Member Functions inherited from oops::LocalEnsembleSolver< MODEL, OBS >
static const std::string classname ()
 

Protected Member Functions

virtual void computeWeights (const Departures_ &, const DeparturesEnsemble_ &, const ObsErrors_ &)
 Computes weights. More...
 
virtual void applyWeights (const IncrementEnsemble4D_ &, IncrementEnsemble4D_ &, const GeometryIterator_ &)
 Applies weights and adds posterior inflation. More...
 

Protected Attributes

LETKFSolverParameters options_
 
Eigen::MatrixXd Wa_
 
Eigen::VectorXd wa_
 
Eigen::VectorXd eival_
 
Eigen::MatrixXd eivec_
 
const size_t nens_
 
- Protected Attributes inherited from oops::LocalEnsembleSolver< MODEL, OBS >
const eckit::LocalConfiguration obsconf_
 
const ObsSpaces_obspaces_
 
CalcHofX_ hofx_
 
Departures_ omb_
 
DeparturesEnsemble_ Yb_
 

Private Types

typedef Departures< OBS > Departures_
 
typedef DeparturesEnsemble< OBS > DeparturesEnsemble_
 
typedef Geometry< MODEL > Geometry_
 
typedef GeometryIterator< MODEL > GeometryIterator_
 
typedef IncrementEnsemble4D< MODEL > IncrementEnsemble4D_
 
typedef ObsErrors< OBS > ObsErrors_
 
typedef ObsSpaces< OBS > ObsSpaces_
 

Detailed Description

template<typename MODEL, typename OBS>
class oops::LETKFSolver< MODEL, OBS >

Local Ensemble Tranform Kalman Filter solver.

An implementation of the LETKF from Hunt et al. 2007 this version is implemented using Eigen algebra and temporary Eigen matrices for Xa and Xb this verion implements RTPP and RTPS.

Hunt, B. R., Kostelich, E. J., & Szunyogh, I. (2007). Efficient data assimilation for spatiotemporal chaos: A local ensemble transform Kalman filter. Physica D: Nonlinear Phenomena, 230(1-2), 112-126.

Definition at line 45 of file LETKFSolver.h.

Member Typedef Documentation

◆ Departures_

template<typename MODEL , typename OBS >
typedef Departures<OBS> oops::LETKFSolver< MODEL, OBS >::Departures_
private

Definition at line 46 of file LETKFSolver.h.

◆ DeparturesEnsemble_

template<typename MODEL , typename OBS >
typedef DeparturesEnsemble<OBS> oops::LETKFSolver< MODEL, OBS >::DeparturesEnsemble_
private

Definition at line 47 of file LETKFSolver.h.

◆ Geometry_

template<typename MODEL , typename OBS >
typedef Geometry<MODEL> oops::LETKFSolver< MODEL, OBS >::Geometry_
private

Definition at line 48 of file LETKFSolver.h.

◆ GeometryIterator_

template<typename MODEL , typename OBS >
typedef GeometryIterator<MODEL> oops::LETKFSolver< MODEL, OBS >::GeometryIterator_
private

Definition at line 49 of file LETKFSolver.h.

◆ IncrementEnsemble4D_

template<typename MODEL , typename OBS >
typedef IncrementEnsemble4D<MODEL> oops::LETKFSolver< MODEL, OBS >::IncrementEnsemble4D_
private

Definition at line 50 of file LETKFSolver.h.

◆ ObsErrors_

template<typename MODEL , typename OBS >
typedef ObsErrors<OBS> oops::LETKFSolver< MODEL, OBS >::ObsErrors_
private

Definition at line 51 of file LETKFSolver.h.

◆ ObsSpaces_

template<typename MODEL , typename OBS >
typedef ObsSpaces<OBS> oops::LETKFSolver< MODEL, OBS >::ObsSpaces_
private

Definition at line 52 of file LETKFSolver.h.

Constructor & Destructor Documentation

◆ LETKFSolver()

template<typename MODEL , typename OBS >
oops::LETKFSolver< MODEL, OBS >::LETKFSolver ( ObsSpaces_ obspaces,
const Geometry_ geometry,
const eckit::Configuration &  config,
size_t  nens 
)

Definition at line 87 of file LETKFSolver.h.

Here is the call graph for this function:

Member Function Documentation

◆ applyWeights()

template<typename MODEL , typename OBS >
void oops::LETKFSolver< MODEL, OBS >::applyWeights ( const IncrementEnsemble4D_ bkg_pert,
IncrementEnsemble4D_ ana_pert,
const GeometryIterator_ i 
)
protectedvirtual

Applies weights and adds posterior inflation.

Definition at line 195 of file LETKFSolver.h.

Here is the call graph for this function:

◆ classname()

template<typename MODEL , typename OBS >
static const std::string oops::LETKFSolver< MODEL, OBS >::classname ( )
inlinestatic

Definition at line 55 of file LETKFSolver.h.

◆ computeWeights()

template<typename MODEL , typename OBS >
void oops::LETKFSolver< MODEL, OBS >::computeWeights ( const Departures_ dy_oops,
const DeparturesEnsemble_ Yb_oops,
const ObsErrors_ R_oops 
)
protectedvirtual

Computes weights.

Reimplemented in oops::LETKFSolverGSI< MODEL, OBS >.

Definition at line 153 of file LETKFSolver.h.

Here is the call graph for this function:

◆ measurementUpdate()

template<typename MODEL , typename OBS >
void oops::LETKFSolver< MODEL, OBS >::measurementUpdate ( const IncrementEnsemble4D_ bkg_pert,
const GeometryIterator_ i,
IncrementEnsemble4D_ ana_pert 
)
overridevirtual

KF update + posterior inflation at a grid point location (GeometryIterator_)

Implements oops::LocalEnsembleSolver< MODEL, OBS >.

Definition at line 127 of file LETKFSolver.h.

Here is the call graph for this function:

Member Data Documentation

◆ eival_

template<typename MODEL , typename OBS >
Eigen::VectorXd oops::LETKFSolver< MODEL, OBS >::eival_
protected

Definition at line 78 of file LETKFSolver.h.

◆ eivec_

template<typename MODEL , typename OBS >
Eigen::MatrixXd oops::LETKFSolver< MODEL, OBS >::eivec_
protected

Definition at line 79 of file LETKFSolver.h.

◆ nens_

template<typename MODEL , typename OBS >
const size_t oops::LETKFSolver< MODEL, OBS >::nens_
protected

Definition at line 81 of file LETKFSolver.h.

◆ options_

template<typename MODEL , typename OBS >
LETKFSolverParameters oops::LETKFSolver< MODEL, OBS >::options_
protected

Definition at line 72 of file LETKFSolver.h.

◆ Wa_

template<typename MODEL , typename OBS >
Eigen::MatrixXd oops::LETKFSolver< MODEL, OBS >::Wa_
protected

Definition at line 74 of file LETKFSolver.h.

◆ wa_

template<typename MODEL , typename OBS >
Eigen::VectorXd oops::LETKFSolver< MODEL, OBS >::wa_
protected

Definition at line 75 of file LETKFSolver.h.


The documentation for this class was generated from the following file: