11 #ifndef OOPS_ASSIMILATION_COSTTERMBASE_H_
12 #define OOPS_ASSIMILATION_COSTTERMBASE_H_
68 virtual void computeCostAD(std::shared_ptr<const GeneralizedDepartures>,
74 virtual std::unique_ptr<GeneralizedDepartures>
76 virtual std::unique_ptr<GeneralizedDepartures>
80 virtual std::unique_ptr<GeneralizedDepartures>
newDualVector()
const = 0;
83 virtual std::unique_ptr<GeneralizedDepartures>
newGradientFG()
const = 0;
Base Class for Cost Function Terms.
Geometry< MODEL > Geometry_
PostProcessor< State_ > PostProc_
virtual std::unique_ptr< GeneralizedDepartures > newGradientFG() const =0
Gradient at first guess.
virtual void computeCostTL(const ControlIncrement< MODEL, OBS > &, GeneralizedDepartures &) const =0
Finish cost computation after TL model integration.
virtual void computeCostAD(std::shared_ptr< const GeneralizedDepartures >, ControlIncrement< MODEL, OBS > &, PostProcTLAD_ &) const =0
Adjoint of computeCostTL (initialize and set post-processors adjoint to force AD model)
virtual std::unique_ptr< GeneralizedDepartures > newDualVector() const =0
Provide new dual space vector (for example a Departure for Jo).
virtual void setPostProcAD() const =0
Adjoint ot setPostProcTL (clean-up)
virtual std::unique_ptr< GeneralizedDepartures > multiplyCoInv(const GeneralizedDepartures &) const =0
virtual double computeCost()=0
Finish computation of cost function term after nonlinear model integration.
virtual ~CostTermBase()
Destructor.
virtual void computeCostTraj()=0
Finish cost computation and trajectory handling after nonlinear model integration.
PostProcessorTLAD< MODEL > PostProcTLAD_
virtual void setPostProcTL(const ControlIncrement< MODEL, OBS > &, PostProcTLAD_ &) const =0
Initialize and set TL post-processors to collect data during TL model integration.
virtual void setPostProcTraj(const ControlVariable< MODEL, OBS > &, const eckit::Configuration &, const Geometry_ &, PostProcTLAD_ &)=0
Set post-processors for nonlinear model integration and save linearisation trajectory.
virtual void setPostProc(const ControlVariable< MODEL, OBS > &, const eckit::Configuration &, PostProc_ &)=0
Initialize and set post-processors to collect data during nonlinear model integration.
virtual std::unique_ptr< GeneralizedDepartures > multiplyCovar(const GeneralizedDepartures &) const =0
Multiply by covariance (or weight) matrix and its inverse.
virtual void resetLinearization()=0
Reset trajectory.
Abstract base class for quantities.
Geometry class used in oops; subclass of interface class interface::Geometry.
Control model post processing.
Control model post processing.
State class used in oops; subclass of interface class interface::State.
The namespace for the main oops code.