Go to the documentation of this file.
8 #ifndef OOPS_INTERFACE_VARIABLECHANGE_H_
9 #define OOPS_INTERFACE_VARIABLECHANGE_H_
14 #include <boost/noncopyable.hpp>
20 #include "oops/util/Logger.h"
21 #include "oops/util/ObjectCounter.h"
22 #include "oops/util/Printable.h"
23 #include "oops/util/Timer.h"
34 template <
typename MODEL,
typename CHVAR>
42 typedef TParameters_IfAvailableElseFallbackType_t<
45 static const std::string
classname() {
return "oops::VariableChange";}
54 void print(std::ostream &)
const override;
61 template<
typename MODEL,
typename CHVAR>
66 Log::trace() <<
"VariableChange<MODEL, CHVAR>::VariableChange starting" << std::endl;
67 util::Timer timer(
classname(),
"VariableChange");
69 parametersOrConfiguration<HasParameters_<CHVAR>::value>(params)));
70 Log::trace() <<
"VariableChange<MODEL, CHVAR>::VariableChange done" << std::endl;
75 template<
typename MODEL,
typename CHVAR>
77 Log::trace() <<
"VariableChange<MODEL, CHVAR>::~VariableChange starting" << std::endl;
78 util::Timer timer(classname(),
"~VariableChange");
80 Log::trace() <<
"VariableChange<MODEL, CHVAR>::~VariableChange done" << std::endl;
85 template<
typename MODEL,
typename CHVAR>
87 Log::trace() <<
"VariableChange<MODEL, CHVAR>::changeVar starting" << std::endl;
88 util::Timer timer(classname(),
"changeVar");
90 Log::trace() <<
"VariableChange<MODEL, CHVAR>::changeVar done" << std::endl;
95 template<
typename MODEL,
typename CHVAR>
97 Log::trace() <<
"VariableChange<MODEL, CHVAR>::changeVarInverse starting" << std::endl;
98 util::Timer timer(classname(),
"changeVarInverse");
99 chvar_->changeVarInverse(x1.
state(), x2.
state());
100 Log::trace() <<
"VariableChange<MODEL, CHVAR>::changeVarInverse done" << std::endl;
105 template<
typename MODEL,
typename CHVAR>
107 Log::trace() <<
"VariableChange<MODEL, CHVAR>::print starting" << std::endl;
108 util::Timer timer(classname(),
"print");
110 Log::trace() <<
"VariableChange<MODEL, CHVAR>::print done" << std::endl;
117 #endif // OOPS_INTERFACE_VARIABLECHANGE_H_
A subclass of VariableChangeParametersBase storing the values of all options in a single Configuratio...
The namespace for the main oops code.
void changeVarInverse(const State_ &, State_ &) const override
virtual ~VariableChange()
VariableChange(const Geometry_ &, const Parameters_ &)
State_ & state()
Interfacing.
std::unique_ptr< CHVAR > chvar_
static const std::string classname()
void changeVar(const State_ &, State_ &) const override
Geometry class used in oops; subclass of interface class above.
Encapsulates the model state.
TParameters_IfAvailableElseFallbackType_t< CHVAR, GenericVariableChangeParameters > Parameters_
Geometry< MODEL > Geometry_
Wrapper for change of variable.
void print(std::ostream &) const override
const Geometry_ & geometry() const
Interfacing with other oops classes.