FV3 Bundle
oops::ControlVariable< MODEL > Class Template Reference

Control variable. More...

#include <ControlVariable.h>

Inheritance diagram for oops::ControlVariable< MODEL >:
[legend]
Collaboration diagram for oops::ControlVariable< MODEL >:
[legend]

Public Member Functions

 ControlVariable (const eckit::Configuration &, const Variables &, const Geometry_ &)
 The arguments define the number of sub-windows and the resolution. More...
 
 ControlVariable (const ControlVariable &)
 
 ~ControlVariable ()
 
void read (const eckit::Configuration &)
 I/O and diagnostics. More...
 
void write (const eckit::Configuration &) const
 
double norm () const
 
State4D_state ()
 Get state control variable. More...
 
const State4D_state () const
 
ModelAux_modVar ()
 Get augmented model control variable. More...
 
const ModelAux_modVar () const
 
ObsAuxCtrl_obsVar ()
 Get augmented observation control variable. More...
 
const ObsAuxCtrl_obsVar () const
 

Static Public Member Functions

static const std::string classname ()
 

Private Types

typedef Geometry< MODEL > Geometry_
 
typedef ModelAuxControl< MODEL > ModelAux_
 
typedef ObsAuxControl< MODEL > ObsAuxCtrl_
 
typedef State4D< MODEL > State4D_
 

Private Member Functions

ControlVariableoperator= (const ControlVariable &)
 
void print (std::ostream &) const
 

Private Attributes

State4D_ state4d_
 
ModelAux_ modbias_
 
ObsAuxCtrl_ obsbias_
 

Detailed Description

template<typename MODEL>
class oops::ControlVariable< MODEL >

Control variable.

The control variable acts as a container for the inputs of the variational data assimilation cost functions in physical space. That includes the states at the start the assimilation window or of each sub-window but also additional variables such as model bias, VarBC coefficients, or other control variables for algorithms that use them. This is mostly a convenience class that is used to keep things together and reduce the number of arguments to be passed around.

Definition at line 40 of file ControlVariable.h.

Member Typedef Documentation

◆ Geometry_

template<typename MODEL>
typedef Geometry<MODEL> oops::ControlVariable< MODEL >::Geometry_
private

Definition at line 46 of file ControlVariable.h.

◆ ModelAux_

template<typename MODEL>
typedef ModelAuxControl<MODEL> oops::ControlVariable< MODEL >::ModelAux_
private

Definition at line 47 of file ControlVariable.h.

◆ ObsAuxCtrl_

template<typename MODEL>
typedef ObsAuxControl<MODEL> oops::ControlVariable< MODEL >::ObsAuxCtrl_
private

Definition at line 48 of file ControlVariable.h.

◆ State4D_

template<typename MODEL>
typedef State4D<MODEL> oops::ControlVariable< MODEL >::State4D_
private

Definition at line 49 of file ControlVariable.h.

Constructor & Destructor Documentation

◆ ControlVariable() [1/2]

template<typename MODEL >
oops::ControlVariable< MODEL >::ControlVariable ( const eckit::Configuration &  conf,
const Variables vars,
const Geometry_ resol 
)

The arguments define the number of sub-windows and the resolution.

Definition at line 88 of file ControlVariable.h.

◆ ControlVariable() [2/2]

template<typename MODEL >
oops::ControlVariable< MODEL >::ControlVariable ( const ControlVariable< MODEL > &  other)
explicit

Definition at line 100 of file ControlVariable.h.

◆ ~ControlVariable()

template<typename MODEL >
oops::ControlVariable< MODEL >::~ControlVariable ( )

Definition at line 109 of file ControlVariable.h.

Member Function Documentation

◆ classname()

template<typename MODEL>
static const std::string oops::ControlVariable< MODEL >::classname ( )
inlinestatic

Definition at line 52 of file ControlVariable.h.

◆ modVar() [1/2]

template<typename MODEL>
ModelAux_& oops::ControlVariable< MODEL >::modVar ( )
inline

Get augmented model control variable.

Definition at line 69 of file ControlVariable.h.

Here is the caller graph for this function:

◆ modVar() [2/2]

template<typename MODEL>
const ModelAux_& oops::ControlVariable< MODEL >::modVar ( ) const
inline

Definition at line 70 of file ControlVariable.h.

◆ norm()

template<typename MODEL >
double oops::ControlVariable< MODEL >::norm ( ) const

Definition at line 143 of file ControlVariable.h.

◆ obsVar() [1/2]

template<typename MODEL>
ObsAuxCtrl_& oops::ControlVariable< MODEL >::obsVar ( )
inline

Get augmented observation control variable.

Definition at line 73 of file ControlVariable.h.

Here is the caller graph for this function:

◆ obsVar() [2/2]

template<typename MODEL>
const ObsAuxCtrl_& oops::ControlVariable< MODEL >::obsVar ( ) const
inline

Definition at line 74 of file ControlVariable.h.

◆ operator=()

template<typename MODEL>
ControlVariable& oops::ControlVariable< MODEL >::operator= ( const ControlVariable< MODEL > &  )
private

◆ print()

template<typename MODEL >
void oops::ControlVariable< MODEL >::print ( std::ostream &  outs) const
private

Definition at line 134 of file ControlVariable.h.

◆ read()

template<typename MODEL >
void oops::ControlVariable< MODEL >::read ( const eckit::Configuration &  config)

I/O and diagnostics.

Definition at line 116 of file ControlVariable.h.

◆ state() [1/2]

template<typename MODEL>
State4D_& oops::ControlVariable< MODEL >::state ( )
inline

Get state control variable.

Definition at line 65 of file ControlVariable.h.

Here is the caller graph for this function:

◆ state() [2/2]

template<typename MODEL>
const State4D_& oops::ControlVariable< MODEL >::state ( ) const
inline

Definition at line 66 of file ControlVariable.h.

◆ write()

template<typename MODEL >
void oops::ControlVariable< MODEL >::write ( const eckit::Configuration &  config) const

Definition at line 125 of file ControlVariable.h.

Member Data Documentation

◆ modbias_

template<typename MODEL>
ModelAux_ oops::ControlVariable< MODEL >::modbias_
private

Definition at line 81 of file ControlVariable.h.

◆ obsbias_

template<typename MODEL>
ObsAuxCtrl_ oops::ControlVariable< MODEL >::obsbias_
private

Definition at line 82 of file ControlVariable.h.

◆ state4d_

template<typename MODEL>
State4D_ oops::ControlVariable< MODEL >::state4d_
private

Definition at line 80 of file ControlVariable.h.


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