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_