FV3 Bundle
|
Cost Function. More...
#include <CostFunction.h>
Public Member Functions | |
CostFunction (const eckit::Configuration &, const Geometry_ &, const Model_ &) | |
virtual | ~CostFunction () |
double | evaluate (const CtrlVar_ &, const eckit::Configuration &config=eckit::LocalConfiguration(), PostProcessor< State_ > post=PostProcessor< State_ >()) const |
double | linearize (const CtrlVar_ &, const eckit::Configuration &, PostProcessor< State_ > post=PostProcessor< State_ >()) |
virtual void | runTLM (CtrlInc_ &, PostProcessorTLAD< MODEL > &, PostProcessor< Increment_ > post=PostProcessor< Increment_ >(), const bool idModel=false) const =0 |
virtual void | runADJ (CtrlInc_ &, PostProcessorTLAD< MODEL > &, PostProcessor< Increment_ > post=PostProcessor< Increment_ >(), const bool idModel=false) const =0 |
virtual void | zeroAD (CtrlInc_ &) const =0 |
virtual void | runNL (CtrlVar_ &, PostProcessor< State_ > &) const =0 |
void | addIncrement (CtrlVar_ &, const CtrlInc_ &, PostProcessor< Increment_ > post=PostProcessor< Increment_ >()) const |
void | resetLinearization () |
void | computeGradientFG (CtrlInc_ &) const |
Compute cost function gradient at first guess (without Jb). More... | |
const JbTotal_ & | jb () const |
Access \( J_b\). More... | |
const CostBase_ & | jterm (const unsigned ii) const |
Access terms of the cost function other than \( J_b\). More... | |
unsigned | nterms () const |
const double | getCostJb () const |
const double | getCostJoJc () const |
Protected Member Functions | |
void | setupTerms (const eckit::Configuration &) |
const Model_ & | getModel () const |
const LinearModel_ & | getTLM (const unsigned isub=0) const |
Private Types | |
typedef ControlIncrement< MODEL > | CtrlInc_ |
typedef ControlVariable< MODEL > | CtrlVar_ |
typedef CostJbTotal< MODEL > | JbTotal_ |
typedef CostTermBase< MODEL > | CostBase_ |
typedef JqTerm< MODEL > | JqTerm_ |
typedef JqTermTLAD< MODEL > | JqTermTLAD_ |
typedef Geometry< MODEL > | Geometry_ |
typedef Model< MODEL > | Model_ |
typedef LinearModel< MODEL > | LinearModel_ |
typedef State< MODEL > | State_ |
typedef Increment< MODEL > | Increment_ |
Private Member Functions | |
virtual void | addIncr (CtrlVar_ &, const CtrlInc_ &, PostProcessor< Increment_ > &) const =0 |
virtual CostJbState< MODEL > * | newJb (const eckit::Configuration &, const Geometry_ &, const CtrlVar_ &) const =0 |
virtual CostJo< MODEL > * | newJo (const eckit::Configuration &) const =0 |
virtual CostTermBase< MODEL > * | newJc (const eckit::Configuration &, const Geometry_ &) const =0 |
virtual void | doLinearize (const Geometry_ &, const eckit::Configuration &, const CtrlVar_ &, const CtrlVar_ &)=0 |
Private Attributes | |
const Geometry_ & | resol_ |
const Model_ & | model_ |
boost::scoped_ptr< const CtrlVar_ > | xb_ |
boost::scoped_ptr< JbTotal_ > | jb_ |
boost::ptr_vector< CostBase_ > | jterms_ |
boost::ptr_vector< LinearModel_ > | tlm_ |
double | costJb_ |
double | costJoJc_ |
const Variables | anvars_ |
Cost Function.
The CostFunction defines and manages the computation of all the terms of the variational data assimilation cost function.
Definition at line 56 of file CostFunction.h.
|
private |
Definition at line 60 of file CostFunction.h.
|
private |
Definition at line 57 of file CostFunction.h.
|
private |
Definition at line 58 of file CostFunction.h.
|
private |
Definition at line 63 of file CostFunction.h.
|
private |
Definition at line 67 of file CostFunction.h.
|
private |
Definition at line 59 of file CostFunction.h.
|
private |
Definition at line 61 of file CostFunction.h.
|
private |
Definition at line 62 of file CostFunction.h.
|
private |
Definition at line 65 of file CostFunction.h.
|
private |
Definition at line 64 of file CostFunction.h.
|
private |
Definition at line 66 of file CostFunction.h.
oops::CostFunction< MODEL >::CostFunction | ( | const eckit::Configuration & | config, |
const Geometry_ & | resol, | ||
const Model_ & | model | ||
) |
Definition at line 202 of file CostFunction.h.
|
inlinevirtual |
Definition at line 71 of file CostFunction.h.
|
privatepure virtual |
void oops::CostFunction< MODEL >::addIncrement | ( | CtrlVar_ & | xx, |
const CtrlInc_ & | dx, | ||
PostProcessor< Increment_ > | post = PostProcessor<Increment_>() |
||
) | const |
Definition at line 337 of file CostFunction.h.
void oops::CostFunction< MODEL >::computeGradientFG | ( | CtrlInc_ & | grad | ) | const |
Compute cost function gradient at first guess (without Jb).
Definition at line 319 of file CostFunction.h.
|
privatepure virtual |
double oops::CostFunction< MODEL >::evaluate | ( | const CtrlVar_ & | fguess, |
const eckit::Configuration & | config = eckit::LocalConfiguration() , |
||
PostProcessor< State_ > | post = PostProcessor<State_>() |
||
) | const |
|
inline |
Definition at line 101 of file CostFunction.h.
|
inline |
Definition at line 102 of file CostFunction.h.
|
inlineprotected |
Definition at line 106 of file CostFunction.h.
|
inlineprotected |
Definition at line 107 of file CostFunction.h.
|
inline |
Access \( J_b\).
Definition at line 97 of file CostFunction.h.
|
inline |
Access terms of the cost function other than \( J_b\).
Definition at line 99 of file CostFunction.h.
double oops::CostFunction< MODEL >::linearize | ( | const CtrlVar_ & | fguess, |
const eckit::Configuration & | innerConf, | ||
PostProcessor< State_ > | post = PostProcessor<State_>() |
||
) |
Definition at line 277 of file CostFunction.h.
|
privatepure virtual |
|
privatepure virtual |
|
privatepure virtual |
|
inline |
void oops::CostFunction< MODEL >::resetLinearization | ( | ) |
|
pure virtual |
Implemented in oops::CostFct4DEnsVar< MODEL >, oops::CostFct4DVar< MODEL >, oops::CostFctWeak< MODEL >, and oops::CostFct3DVar< MODEL >.
|
pure virtual |
|
pure virtual |
Implemented in oops::CostFct4DEnsVar< MODEL >, oops::CostFct4DVar< MODEL >, oops::CostFctWeak< MODEL >, and oops::CostFct3DVar< MODEL >.
|
protected |
|
pure virtual |
Implemented in oops::CostFct4DEnsVar< MODEL >, oops::CostFct4DVar< MODEL >, oops::CostFctWeak< MODEL >, and oops::CostFct3DVar< MODEL >.
|
private |
Definition at line 129 of file CostFunction.h.
|
mutableprivate |
Definition at line 127 of file CostFunction.h.
|
mutableprivate |
Definition at line 128 of file CostFunction.h.
|
private |
Definition at line 123 of file CostFunction.h.
|
private |
Definition at line 124 of file CostFunction.h.
|
private |
Definition at line 121 of file CostFunction.h.
|
private |
Definition at line 120 of file CostFunction.h.
|
private |
Definition at line 125 of file CostFunction.h.
|
private |
Definition at line 122 of file CostFunction.h.