|
OOPS
|
Cost Function. More...
#include <CostFunction.h>


Public Member Functions | |
| CostFunction (const eckit::Configuration &) | |
| virtual | ~CostFunction () |
| double | evaluate (const CtrlVar_ &, const eckit::Configuration &config=eckit::LocalConfiguration(), PostProcessor< State_ > post=PostProcessor< State_ >()) |
| 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 size_t ii) const |
| Access terms of the cost function other than \( J_b\). More... | |
| size_t | nterms () const |
| double | getCostJb () const |
| double | getCostJoJc () const |
Protected Member Functions | |
| void | setupTerms (const eckit::Configuration &) |
| const CtrlVar_ & | background () const |
Private Types | |
| typedef ControlIncrement< MODEL, OBS > | CtrlInc_ |
| typedef ControlVariable< MODEL, OBS > | CtrlVar_ |
| typedef CostJbTotal< MODEL, OBS > | JbTotal_ |
| typedef CostTermBase< MODEL, OBS > | CostBase_ |
| typedef JqTermTLAD< MODEL > | JqTermTLAD_ |
| typedef Geometry< MODEL > | Geometry_ |
| 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, OBS > * | newJo (const eckit::Configuration &) const =0 |
| virtual CostTermBase< MODEL, OBS > * | newJc (const eckit::Configuration &, const Geometry_ &) const =0 |
| virtual void | doLinearize (const Geometry_ &, const eckit::Configuration &, const CtrlVar_ &, const CtrlVar_ &, PostProcessor< State_ > &, PostProcessorTLAD< MODEL > &)=0 |
| virtual const Geometry_ & | geometry () const =0 |
Private Attributes | |
| std::unique_ptr< const CtrlVar_ > | xb_ |
| std::unique_ptr< JbTotal_ > | jb_ |
| boost::ptr_vector< CostBase_ > | jterms_ |
| double | costJb_ |
| double | costJoJc_ |
Cost Function.
The CostFunction defines and manages the computation of all the terms of the variational data assimilation cost function.
Definition at line 53 of file CostFunction.h.
|
private |
Definition at line 57 of file CostFunction.h.
|
private |
Definition at line 54 of file CostFunction.h.
|
private |
Definition at line 55 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 56 of file CostFunction.h.
|
private |
Definition at line 58 of file CostFunction.h.
|
private |
Definition at line 60 of file CostFunction.h.
|
explicit |
Definition at line 187 of file CostFunction.h.
|
inlinevirtual |
Definition at line 65 of file CostFunction.h.
|
privatepure virtual |
| void oops::CostFunction< MODEL, OBS >::addIncrement | ( | CtrlVar_ & | xx, |
| const CtrlInc_ & | dx, | ||
| PostProcessor< Increment_ > | post = PostProcessor<Increment_>() |
||
| ) | const |
Definition at line 312 of file CostFunction.h.


|
inlineprotected |
Definition at line 100 of file CostFunction.h.
| void oops::CostFunction< MODEL, OBS >::computeGradientFG | ( | CtrlInc_ & | grad | ) | const |
Compute cost function gradient at first guess (without Jb).
Definition at line 288 of file CostFunction.h.
|
privatepure virtual |
| double oops::CostFunction< MODEL, OBS >::evaluate | ( | const CtrlVar_ & | fguess, |
| const eckit::Configuration & | config = eckit::LocalConfiguration(), |
||
| PostProcessor< State_ > | post = PostProcessor<State_>() |
||
| ) |
Definition at line 222 of file CostFunction.h.
|
privatepure virtual |
|
inline |
Definition at line 95 of file CostFunction.h.
|
inline |
Definition at line 96 of file CostFunction.h.
|
inline |
Access \( J_b\).
Definition at line 91 of file CostFunction.h.

|
inline |
Access terms of the cost function other than \( J_b\).
Definition at line 93 of file CostFunction.h.

| double oops::CostFunction< MODEL, OBS >::linearize | ( | const CtrlVar_ & | fguess, |
| const eckit::Configuration & | innerConf, | ||
| PostProcessor< State_ > | post = PostProcessor<State_>() |
||
| ) |
Definition at line 254 of file CostFunction.h.


|
privatepure virtual |
|
privatepure virtual |
|
privatepure virtual |
|
inline |
| void oops::CostFunction< MODEL, OBS >::resetLinearization |
|
pure virtual |
Implemented in oops::CostFct3DVar< MODEL, OBS >, oops::CostFctWeak< MODEL, OBS >, oops::CostFct4DVar< MODEL, OBS >, and oops::CostFct4DEnsVar< MODEL, OBS >.

|
pure virtual |
|
pure virtual |
Implemented in oops::CostFct3DVar< MODEL, OBS >, oops::CostFctWeak< MODEL, OBS >, oops::CostFct4DVar< MODEL, OBS >, and oops::CostFct4DEnsVar< MODEL, OBS >.

|
protected |
Definition at line 194 of file CostFunction.h.


|
pure virtual |
Implemented in oops::CostFctWeak< MODEL, OBS >, oops::CostFct4DVar< MODEL, OBS >, oops::CostFct4DEnsVar< MODEL, OBS >, and oops::CostFct3DVar< MODEL, OBS >.

|
mutableprivate |
Definition at line 120 of file CostFunction.h.
|
mutableprivate |
Definition at line 121 of file CostFunction.h.
|
private |
Definition at line 117 of file CostFunction.h.
|
private |
Definition at line 118 of file CostFunction.h.
|
private |
Definition at line 116 of file CostFunction.h.