OOPS
oops::LocalEnsembleSolver< MODEL, OBS > Class Template Referenceabstract

Base class for LETKF-type solvers. More...

#include <LocalEnsembleSolver.h>

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

Public Member Functions

 LocalEnsembleSolver (ObsSpaces_ &obspaces, const Geometry_ &geometry, const eckit::Configuration &config, size_t nens, const State4D_ &xbmean)
 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 measurementUpdate (const IncrementEnsemble4D_ &bg, const GeometryIterator_ &i, IncrementEnsemble4D_ &an)=0
 update background ensemble bg to analysis ensemble an at a grid point location i More...
 
virtual void copyLocalIncrement (const IncrementEnsemble4D_ &bg, const GeometryIterator_ &i, IncrementEnsemble4D_ &an) const
 copy an[i] = bg i \a More...
 
void computeHofX4D (const eckit::Configuration &, const State4D_ &, Observations_ &)
 
const ObsLocalizations_obsloc () const
 accessor to obs localizations More...
 

Static Public Member Functions

static const std::string classname ()
 

Protected Attributes

const Geometry_geometry_
 Geometry associated with the updated states. More...
 
const ObsSpaces_obspaces_
 ObsSpaces used in the update. More...
 
Departures_ omb_
 obs - mean(H(x)); set in computeHofX method More...
 
DeparturesEnsemble_ Yb_
 
std::unique_ptr< ObsErrors_R_
 observation errors, set in computeHofX method More...
 
std::unique_ptr< Departures_invVarR_
 

Private Types

typedef Observers< MODEL, OBS > Observers_
 
typedef Departures< OBS > Departures_
 
typedef DeparturesEnsemble< OBS > DeparturesEnsemble_
 
typedef Geometry< MODEL > Geometry_
 
typedef GeometryIterator< MODEL > GeometryIterator_
 
typedef IncrementEnsemble4D< MODEL > IncrementEnsemble4D_
 
typedef ObsAuxControls< OBS > ObsAux_
 
typedef ObsEnsemble< OBS > ObsEnsemble_
 
typedef ObsErrors< OBS > ObsErrors_
 
typedef Observations< OBS > Observations_
 
typedef ObsLocalizations< MODEL, OBS > ObsLocalizations_
 
typedef ObsSpaces< OBS > ObsSpaces_
 
typedef State4D< MODEL > State4D_
 
typedef StateEnsemble4D< MODEL > StateEnsemble4D_
 
typedef PseudoModelState4D< MODEL > PseudoModel_
 
typedef State< MODEL > State_
 
typedef Model< MODEL > Model_
 
typedef ModelAuxControl< MODEL > ModelAux_
 
typedef ObsDataVector< OBS, int > ObsData_
 
typedef std::vector< std::shared_ptr< ObsData_ > > ObsDataVec_
 

Private Attributes

const eckit::LocalConfiguration obsconf_
 
ObsLocalizations_ obsloc_
 observation space localization More...
 

Detailed Description

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

Base class for LETKF-type solvers.

Definition at line 44 of file LocalEnsembleSolver.h.

Member Typedef Documentation

◆ Departures_

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

Definition at line 46 of file LocalEnsembleSolver.h.

◆ DeparturesEnsemble_

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

Definition at line 47 of file LocalEnsembleSolver.h.

◆ Geometry_

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

Definition at line 48 of file LocalEnsembleSolver.h.

◆ GeometryIterator_

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

Definition at line 49 of file LocalEnsembleSolver.h.

◆ IncrementEnsemble4D_

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

Definition at line 50 of file LocalEnsembleSolver.h.

◆ Model_

template<typename MODEL , typename OBS >
typedef Model<MODEL> oops::LocalEnsembleSolver< MODEL, OBS >::Model_
private

Definition at line 61 of file LocalEnsembleSolver.h.

◆ ModelAux_

template<typename MODEL , typename OBS >
typedef ModelAuxControl<MODEL> oops::LocalEnsembleSolver< MODEL, OBS >::ModelAux_
private

Definition at line 62 of file LocalEnsembleSolver.h.

◆ ObsAux_

template<typename MODEL , typename OBS >
typedef ObsAuxControls<OBS> oops::LocalEnsembleSolver< MODEL, OBS >::ObsAux_
private

Definition at line 51 of file LocalEnsembleSolver.h.

◆ ObsData_

template<typename MODEL , typename OBS >
typedef ObsDataVector<OBS, int> oops::LocalEnsembleSolver< MODEL, OBS >::ObsData_
private

Definition at line 63 of file LocalEnsembleSolver.h.

◆ ObsDataVec_

template<typename MODEL , typename OBS >
typedef std::vector<std::shared_ptr<ObsData_> > oops::LocalEnsembleSolver< MODEL, OBS >::ObsDataVec_
private

Definition at line 64 of file LocalEnsembleSolver.h.

◆ ObsEnsemble_

template<typename MODEL , typename OBS >
typedef ObsEnsemble<OBS> oops::LocalEnsembleSolver< MODEL, OBS >::ObsEnsemble_
private

Definition at line 52 of file LocalEnsembleSolver.h.

◆ ObsErrors_

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

Definition at line 53 of file LocalEnsembleSolver.h.

◆ Observations_

template<typename MODEL , typename OBS >
typedef Observations<OBS> oops::LocalEnsembleSolver< MODEL, OBS >::Observations_
private

Definition at line 54 of file LocalEnsembleSolver.h.

◆ Observers_

template<typename MODEL , typename OBS >
typedef Observers<MODEL, OBS> oops::LocalEnsembleSolver< MODEL, OBS >::Observers_
private

Definition at line 45 of file LocalEnsembleSolver.h.

◆ ObsLocalizations_

template<typename MODEL , typename OBS >
typedef ObsLocalizations<MODEL, OBS> oops::LocalEnsembleSolver< MODEL, OBS >::ObsLocalizations_
private

Definition at line 55 of file LocalEnsembleSolver.h.

◆ ObsSpaces_

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

Definition at line 56 of file LocalEnsembleSolver.h.

◆ PseudoModel_

template<typename MODEL , typename OBS >
typedef PseudoModelState4D<MODEL> oops::LocalEnsembleSolver< MODEL, OBS >::PseudoModel_
private

Definition at line 59 of file LocalEnsembleSolver.h.

◆ State4D_

template<typename MODEL , typename OBS >
typedef State4D<MODEL> oops::LocalEnsembleSolver< MODEL, OBS >::State4D_
private

Definition at line 57 of file LocalEnsembleSolver.h.

◆ State_

template<typename MODEL , typename OBS >
typedef State<MODEL> oops::LocalEnsembleSolver< MODEL, OBS >::State_
private

Definition at line 60 of file LocalEnsembleSolver.h.

◆ StateEnsemble4D_

template<typename MODEL , typename OBS >
typedef StateEnsemble4D<MODEL> oops::LocalEnsembleSolver< MODEL, OBS >::StateEnsemble4D_
private

Definition at line 58 of file LocalEnsembleSolver.h.

Constructor & Destructor Documentation

◆ LocalEnsembleSolver()

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

initialize solver with obspaces, geometry, full config and nens ensemble size

Definition at line 110 of file LocalEnsembleSolver.h.

◆ ~LocalEnsembleSolver()

template<typename MODEL , typename OBS >
virtual oops::LocalEnsembleSolver< MODEL, OBS >::~LocalEnsembleSolver ( )
virtualdefault

Member Function Documentation

◆ classname()

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

Definition at line 67 of file LocalEnsembleSolver.h.

◆ computeHofX()

template<typename MODEL , typename OBS >
Observations< OBS > oops::LocalEnsembleSolver< MODEL, OBS >::computeHofX ( const StateEnsemble4D_ xx,
size_t  iteration,
bool  readFromDisk 
)
virtual

computes ensemble H(xx), returns mean H(xx), saves as hofx iteration

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

Definition at line 151 of file LocalEnsembleSolver.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ computeHofX4D()

template<typename MODEL , typename OBS >
void oops::LocalEnsembleSolver< MODEL, OBS >::computeHofX4D ( const eckit::Configuration &  config,
const State4D_ xx,
Observations_ yy 
)

compute H(x) based on 4D state xx and put the result into yy. Also sets up R_ based on the QC filters run during H(x)

Definition at line 120 of file LocalEnsembleSolver.h.

Here is the call graph for this function:

◆ copyLocalIncrement()

template<typename MODEL , typename OBS >
void oops::LocalEnsembleSolver< MODEL, OBS >::copyLocalIncrement ( const IncrementEnsemble4D_ bg,
const GeometryIterator_ i,
IncrementEnsemble4D_ an 
) const
virtual

copy an[i] = bg i \a

Definition at line 230 of file LocalEnsembleSolver.h.

Here is the call graph for this function:

◆ measurementUpdate()

template<typename MODEL , typename OBS >
virtual void oops::LocalEnsembleSolver< MODEL, OBS >::measurementUpdate ( const IncrementEnsemble4D_ bg,
const GeometryIterator_ i,
IncrementEnsemble4D_ an 
)
pure virtual

update background ensemble bg to analysis ensemble an at a grid point location i

Implemented in oops::LETKFSolver< MODEL, OBS >, and oops::GETKFSolver< MODEL, OBS >.

◆ obsloc()

template<typename MODEL , typename OBS >
const ObsLocalizations_& oops::LocalEnsembleSolver< MODEL, OBS >::obsloc ( ) const
inline

accessor to obs localizations

Definition at line 90 of file LocalEnsembleSolver.h.

Member Data Documentation

◆ geometry_

template<typename MODEL , typename OBS >
const Geometry_& oops::LocalEnsembleSolver< MODEL, OBS >::geometry_
protected

Geometry associated with the updated states.

Definition at line 93 of file LocalEnsembleSolver.h.

◆ invVarR_

template<typename MODEL , typename OBS >
std::unique_ptr<Departures_> oops::LocalEnsembleSolver< MODEL, OBS >::invVarR_
protected

inverse observation error variance; set in computeHofX method

Definition at line 99 of file LocalEnsembleSolver.h.

◆ obsconf_

template<typename MODEL , typename OBS >
const eckit::LocalConfiguration oops::LocalEnsembleSolver< MODEL, OBS >::obsconf_
private

Definition at line 103 of file LocalEnsembleSolver.h.

◆ obsloc_

template<typename MODEL , typename OBS >
ObsLocalizations_ oops::LocalEnsembleSolver< MODEL, OBS >::obsloc_
private

observation space localization

Definition at line 104 of file LocalEnsembleSolver.h.

◆ obspaces_

template<typename MODEL , typename OBS >
const ObsSpaces_& oops::LocalEnsembleSolver< MODEL, OBS >::obspaces_
protected

ObsSpaces used in the update.

Definition at line 94 of file LocalEnsembleSolver.h.

◆ omb_

template<typename MODEL , typename OBS >
Departures_ oops::LocalEnsembleSolver< MODEL, OBS >::omb_
protected

obs - mean(H(x)); set in computeHofX method

Definition at line 95 of file LocalEnsembleSolver.h.

◆ R_

template<typename MODEL , typename OBS >
std::unique_ptr<ObsErrors_> oops::LocalEnsembleSolver< MODEL, OBS >::R_
protected

observation errors, set in computeHofX method

Definition at line 98 of file LocalEnsembleSolver.h.

◆ Yb_

template<typename MODEL , typename OBS >
DeparturesEnsemble_ oops::LocalEnsembleSolver< MODEL, OBS >::Yb_
protected

ensemble perturbations in the observation space; set in computeHofX method

Definition at line 96 of file LocalEnsembleSolver.h.


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