11 #ifndef OOPS_ASSIMILATION_HTRINVHMATRIX_H_    12 #define OOPS_ASSIMILATION_HTRINVHMATRIX_H_    14 #include <boost/noncopyable.hpp>    15 #include <boost/scoped_ptr.hpp>    16 #include <boost/shared_ptr.hpp>    23 #include "oops/util/dot_product.h"    24 #include "oops/util/formats.h"    25 #include "oops/util/Logger.h"    26 #include "oops/util/PrintAdjTest.h"    38 template<
typename MODEL> 
class HtRinvHMatrix : 
private boost::noncopyable {
    56 template<
typename MODEL>
    58   : j_(
j), test_(
test), iter_(0)
    63 template<
typename MODEL>
    70   for (
unsigned jj = 0; jj < j_.nterms(); ++jj) {
    76   j_.runTLM(mdx, costtl);
    85   for (
unsigned jj = 0; jj < j_.nterms(); ++jj) {
    87     zz.
append(j_.jterm(jj).multiplyCoInv(*ww.
getv(jj)));
    92   j_.runADJ(dz, costad);
    96      double adj_tst_fwd = dot_product(ww, zz);
    98      double adj_tst_bwd = dot_product(dx, dz);
   100      Log::info() << 
"Online adjoint test, iteration: " << iter_ << std::endl
   101                  << util::PrintAdjTest(adj_tst_fwd, adj_tst_bwd, 
"G")
   110 #endif  // OOPS_ASSIMILATION_HTRINVHMATRIX_H_ 
GeneralizedDepartures * releaseOutputFromTL(unsigned int ii)
Get TL dual space output. 
 
Container of dual space vectors for all terms of the cost function. 
 
HtRinvHMatrix(const CostFct_ &j, const bool test=false)
 
ControlIncrement< MODEL > CtrlInc_
 
CostFunction< MODEL > CostFct_
 
Increment< MODEL > Increment_
 
l_size ! loop over number of fields ke do j
 
The namespace for the main oops code. 
 
void multiply(const CtrlInc_ &dx, CtrlInc_ &dz) const
 
subroutine, public info(self)
 
Control model post processing. 
 
void enrollProcessor(PostBaseTLAD_ *pp)
 
Increment Class: Difference between two states. 
 
void append(GeneralizedDepartures *)
 
boost::shared_ptr< const GeneralizedDepartures > getv(const unsigned) const