Go to the documentation of this file.
11 #ifndef OOPS_ASSIMILATION_COSTTERMBASE_H_
12 #define OOPS_ASSIMILATION_COSTTERMBASE_H_
41 typedef std::shared_ptr<PostBase<State_> >
PostPtr_;
50 const eckit::Configuration &) = 0;
52 const Geometry_ &,
const eckit::Configuration &) = 0;
66 virtual std::unique_ptr<GeneralizedDepartures>
68 virtual std::unique_ptr<GeneralizedDepartures>
72 virtual std::unique_ptr<GeneralizedDepartures>
newDualVector()
const = 0;
75 virtual std::unique_ptr<GeneralizedDepartures>
newGradientFG()
const = 0;
85 #endif // OOPS_ASSIMILATION_COSTTERMBASE_H_
The namespace for the main oops code.
virtual std::unique_ptr< GeneralizedDepartures > multiplyCoInv(const GeneralizedDepartures &) const =0
virtual std::unique_ptr< GeneralizedDepartures > multiplyCovar(const GeneralizedDepartures &) const =0
Multiply by covariance (or weight) matrix and its inverse.
Abstract base class for quantities.
Geometry< MODEL > Geometry_
Base Class for Cost Function Terms.
virtual PostPtr_ initialize(const ControlVariable< MODEL, OBS > &, const eckit::Configuration &)=0
Initialize before nonlinear model integration.
Increment< MODEL > Increment_
std::shared_ptr< PostBaseTLAD< MODEL > > PostPtrTLAD_
virtual std::unique_ptr< GeneralizedDepartures > newGradientFG() const =0
Gradient at first guess.
virtual void finalizeTraj()=0
virtual PostPtrTLAD_ setupAD(std::shared_ptr< const GeneralizedDepartures >, ControlIncrement< MODEL, OBS > &) const =0
Initialize before starting the AD run.
virtual PostPtrTLAD_ initializeTraj(const ControlVariable< MODEL, OBS > &, const Geometry_ &, const eckit::Configuration &)=0
virtual void resetLinearization()=0
Reset trajectory.
std::shared_ptr< PostBase< State_ > > PostPtr_
virtual PostPtrTLAD_ setupTL(const ControlIncrement< MODEL, OBS > &) const =0
Initialize before starting the TL run.
virtual double finalize()=0
Finalize computation after nonlinear model integration.
Geometry class used in oops; subclass of interface class above.
virtual std::unique_ptr< GeneralizedDepartures > newDualVector() const =0
Provide new dual space vector (for example a Departure for Jo).
Encapsulates the model state.
Increment Class: Difference between two states.
virtual ~CostTermBase()
Destructor.