11 #ifndef OOPS_ASSIMILATION_JQTERM_H_ 12 #define OOPS_ASSIMILATION_JQTERM_H_ 20 #include "oops/util/DateTime.h" 21 #include "oops/util/Duration.h" 27 template <
typename MODEL>
class JqTerm :
public PostBase< State<MODEL> > {
49 template <
typename MODEL>
51 Log::trace() <<
"JqTerm::doFinalize start" << std::endl;
52 if (mxi_.size() < nsubwin_ - 1) mxi_.push_back(xx);
53 Log::trace() <<
"JqTerm::doFinalize done" << std::endl;
58 template <
typename MODEL>
60 Log::trace() <<
"JqTerm::computeModelError start" << std::endl;
62 for (
unsigned jsub = 1; jsub < nsubwin_; ++jsub) {
63 dx[jsub].
diff(fg[jsub], mxi_[jsub-1]);
64 Log::info() <<
"CostJbJq: x_" << jsub <<
" - M(x_" << jsub-1 <<
")" << dx[jsub] << std::endl;
67 Log::trace() <<
"JqTerm::computeModelError done" << std::endl;
74 #endif // OOPS_ASSIMILATION_JQTERM_H_
void doProcessing(const State_ &) override
Actual processing.
void computeModelError(const State4D_ &, Increment4D_ &)
State4D< MODEL > State4D_
void diff(const State4D_ &, const State4D_ &)
Linear algebra operators.
Encapsulates the model state.
void doFinalize(const State_ &) override
std::vector< State_ > mxi_
The namespace for the main oops code.
subroutine, public info(self)
Increment4D< MODEL > Increment4D_
void doInitialize(const State_ &, const util::DateTime &, const util::Duration &) override