Geomi
Abstract_Step.hpp
1 #ifndef DEF_VARIATIONAL_ABSTRACT_STEP
2 #define DEF_VARIATIONAL_ABSTRACT_STEP
3 
4 namespace Variational {
5 namespace Abstract {
6 
7 template <typename T_M,
8  typename T_Q,
9  typename T_INTERNALS,
10  typename T_PROBLEM,
11  typename T_TQ = T_Q>
12 class Step
13 {
14 protected:
15  T_INTERNALS* m_internals;
16  T_PROBLEM& m_problem;
17 
18 public:
19  Step<T_M,T_Q,T_INTERNALS,T_PROBLEM,T_TQ> (T_PROBLEM& problem)
20  : m_problem(problem)
21  { m_internals = new T_INTERNALS(problem); }
22 
24  { }
25 
26  T_Q
27  posFromVel (T_M h, T_Q q0, T_TQ v0)
28  { return m_internals->posFromVel(h,q0,v0); }
29 
30  virtual void
31  setData (T_M h_var, T_Q q0_var, T_Q q1_var) = 0;
32 
33  virtual const T_Q
34  makeStep () = 0;
35 
36  virtual void
37  initialize () = 0;
38 };
39 } // namespace Abstract
40 } // namespace Variational
41 
42 #endif
Definition: Abstract_Step.hpp:12
Definition: Abstract_LieProblem.hpp:6
Definition: Abstract_NOXStep.hpp:9