|
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.