11 #ifndef OOPS_ASSIMILATION_COSTTERMBASE_H_ 12 #define OOPS_ASSIMILATION_COSTTERMBASE_H_ 14 #include <boost/shared_ptr.hpp> 41 typedef boost::shared_ptr<PostBase<State_> >
PostPtr_;
51 const Geometry_ &,
const eckit::Configuration &) = 0;
54 virtual double finalize(
const eckit::Configuration &)
const = 0;
82 #endif // OOPS_ASSIMILATION_COSTTERMBASE_H_ virtual PostPtrTLAD_ initializeTraj(const ControlVariable< MODEL > &, const Geometry_ &, const eckit::Configuration &)=0
Encapsulates the model state.
virtual void finalizeTraj()=0
The namespace for the main oops code.
virtual double finalize(const eckit::Configuration &) const =0
Finalize computation after nonlinear model integration.
virtual ~CostTermBase()
Destructor.
virtual GeneralizedDepartures * newDualVector() const =0
Provide new dual space vector (for example a Departure for Jo).
virtual GeneralizedDepartures * newGradientFG() const =0
Gradient at first guess.
boost::shared_ptr< PostBaseTLAD< MODEL > > PostPtrTLAD_
boost::shared_ptr< PostBase< State_ > > PostPtr_
Increment Class: Difference between two states.
Base Class for Cost Function Terms.
virtual PostPtrTLAD_ setupAD(boost::shared_ptr< const GeneralizedDepartures >, ControlIncrement< MODEL > &) const =0
Initialize before starting the AD run.
virtual GeneralizedDepartures * multiplyCovar(const GeneralizedDepartures &) const =0
Multiply by covariance (or weight) matrix and its inverse.
virtual GeneralizedDepartures * multiplyCoInv(const GeneralizedDepartures &) const =0
Abstract base class for quantities.
virtual PostPtrTLAD_ setupTL(const ControlIncrement< MODEL > &) const =0
Initialize before starting the TL run.
virtual PostPtr_ initialize(const ControlVariable< MODEL > &) const =0
Initialize before nonlinear model integration.
virtual void resetLinearization()=0
Reset trajectory.
Increment< MODEL > Increment_
Geometry< MODEL > Geometry_