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

Container of dual space vectors for all terms of the cost function. More...

#include <DualVector.h>

Public Member Functions

 DualVector ()
 
 DualVector (const DualVector &)
 
 ~DualVector ()
 
void dx (CtrlInc_ *dx)
 
const CtrlInc_dx () const
 
CtrlInc_dx ()
 
void append (std::unique_ptr< GeneralizedDepartures > &&)
 
std::shared_ptr< const GeneralizedDeparturesgetv (const unsigned) const
 
DualVectoroperator= (const DualVector &)
 
DualVectoroperator+= (const DualVector &)
 
DualVectoroperator-= (const DualVector &)
 
DualVectoroperator*= (const double)
 
void zero ()
 
void axpy (const double, const DualVector &)
 
double dot_product_with (const DualVector &) const
 
void saveDep (const std::string &) const
 
void clear ()
 

Private Types

typedef Increment< MODEL > Increment_
 
typedef ControlIncrement< MODEL, OBS > CtrlInc_
 
typedef Departures< OBS > Departures_
 

Private Member Functions

bool compatible (const DualVector &other) const
 

Private Attributes

std::unique_ptr< CtrlInc_dxjb_
 
std::vector< std::shared_ptr< Departures_ > > dxjo_
 
std::vector< std::shared_ptr< Increment_ > > dxjc_
 
std::vector< unsigned > ijo_
 
std::vector< unsigned > ijc_
 
unsigned size_
 

Detailed Description

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

Container of dual space vectors for all terms of the cost function.

Contains dual space vectors for all terms of the cost function, that is Departures for Jo, an Increment_ for Jc, a ControlIncrement for Jb and Jq.

Definition at line 35 of file DualVector.h.

Member Typedef Documentation

◆ CtrlInc_

template<typename MODEL , typename OBS >
typedef ControlIncrement<MODEL, OBS> oops::DualVector< MODEL, OBS >::CtrlInc_
private

Definition at line 37 of file DualVector.h.

◆ Departures_

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

Definition at line 38 of file DualVector.h.

◆ Increment_

template<typename MODEL , typename OBS >
typedef Increment<MODEL> oops::DualVector< MODEL, OBS >::Increment_
private

Definition at line 36 of file DualVector.h.

Constructor & Destructor Documentation

◆ DualVector() [1/2]

template<typename MODEL , typename OBS >
oops::DualVector< MODEL, OBS >::DualVector ( )
inline

Definition at line 41 of file DualVector.h.

◆ DualVector() [2/2]

template<typename MODEL , typename OBS >
oops::DualVector< MODEL, OBS >::DualVector ( const DualVector< MODEL, OBS > &  other)

Definition at line 82 of file DualVector.h.

◆ ~DualVector()

template<typename MODEL , typename OBS >
oops::DualVector< MODEL, OBS >::~DualVector ( )
inline

Definition at line 43 of file DualVector.h.

Member Function Documentation

◆ append()

template<typename MODEL , typename OBS >
void oops::DualVector< MODEL, OBS >::append ( std::unique_ptr< GeneralizedDepartures > &&  uv)

Definition at line 110 of file DualVector.h.

Here is the caller graph for this function:

◆ axpy()

template<typename MODEL , typename OBS >
void oops::DualVector< MODEL, OBS >::axpy ( const double  zz,
const DualVector< MODEL, OBS > &  rhs 
)

Definition at line 215 of file DualVector.h.

Here is the caller graph for this function:

◆ clear()

template<typename MODEL , typename OBS >
void oops::DualVector< MODEL, OBS >::clear

Definition at line 100 of file DualVector.h.

Here is the caller graph for this function:

◆ compatible()

template<typename MODEL , typename OBS >
bool oops::DualVector< MODEL, OBS >::compatible ( const DualVector< MODEL, OBS > &  other) const
private

Definition at line 245 of file DualVector.h.

◆ dot_product_with()

template<typename MODEL , typename OBS >
double oops::DualVector< MODEL, OBS >::dot_product_with ( const DualVector< MODEL, OBS > &  x2) const

Definition at line 229 of file DualVector.h.

◆ dx() [1/3]

template<typename MODEL , typename OBS >
CtrlInc_& oops::DualVector< MODEL, OBS >::dx ( )
inline

Definition at line 48 of file DualVector.h.

◆ dx() [2/3]

template<typename MODEL , typename OBS >
const CtrlInc_& oops::DualVector< MODEL, OBS >::dx ( ) const
inline

Definition at line 47 of file DualVector.h.

Here is the caller graph for this function:

◆ dx() [3/3]

template<typename MODEL , typename OBS >
void oops::DualVector< MODEL, OBS >::dx ( CtrlInc_ dx)
inline

Definition at line 46 of file DualVector.h.

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

◆ getv()

template<typename MODEL , typename OBS >
std::shared_ptr< const GeneralizedDepartures > oops::DualVector< MODEL, OBS >::getv ( const unsigned  ii) const

Definition at line 129 of file DualVector.h.

Here is the caller graph for this function:

◆ operator*=()

template<typename MODEL , typename OBS >
DualVector< MODEL, OBS > & oops::DualVector< MODEL, OBS >::operator*= ( const double  zz)

Definition at line 188 of file DualVector.h.

◆ operator+=()

template<typename MODEL , typename OBS >
DualVector< MODEL, OBS > & oops::DualVector< MODEL, OBS >::operator+= ( const DualVector< MODEL, OBS > &  rhs)

Definition at line 158 of file DualVector.h.

◆ operator-=()

template<typename MODEL , typename OBS >
DualVector< MODEL, OBS > & oops::DualVector< MODEL, OBS >::operator-= ( const DualVector< MODEL, OBS > &  rhs)

Definition at line 173 of file DualVector.h.

◆ operator=()

template<typename MODEL , typename OBS >
DualVector< MODEL, OBS > & oops::DualVector< MODEL, OBS >::operator= ( const DualVector< MODEL, OBS > &  rhs)

Definition at line 143 of file DualVector.h.

◆ saveDep()

template<typename MODEL , typename OBS >
void oops::DualVector< MODEL, OBS >::saveDep ( const std::string &  name) const

Definition at line 253 of file DualVector.h.

Here is the caller graph for this function:

◆ zero()

template<typename MODEL , typename OBS >
void oops::DualVector< MODEL, OBS >::zero

Definition at line 202 of file DualVector.h.

Here is the caller graph for this function:

Member Data Documentation

◆ dxjb_

template<typename MODEL , typename OBS >
std::unique_ptr<CtrlInc_> oops::DualVector< MODEL, OBS >::dxjb_
private

Definition at line 71 of file DualVector.h.

◆ dxjc_

template<typename MODEL , typename OBS >
std::vector<std::shared_ptr<Increment_> > oops::DualVector< MODEL, OBS >::dxjc_
private

Definition at line 73 of file DualVector.h.

◆ dxjo_

template<typename MODEL , typename OBS >
std::vector<std::shared_ptr<Departures_> > oops::DualVector< MODEL, OBS >::dxjo_
private

Definition at line 72 of file DualVector.h.

◆ ijc_

template<typename MODEL , typename OBS >
std::vector<unsigned> oops::DualVector< MODEL, OBS >::ijc_
private

Definition at line 75 of file DualVector.h.

◆ ijo_

template<typename MODEL , typename OBS >
std::vector<unsigned> oops::DualVector< MODEL, OBS >::ijo_
private

Definition at line 74 of file DualVector.h.

◆ size_

template<typename MODEL , typename OBS >
unsigned oops::DualVector< MODEL, OBS >::size_
private

Definition at line 76 of file DualVector.h.


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