CustomMotion.hpp
Go to the documentation of this file.
1 
6 #ifndef CUSTOM_MOTION_HPP
7 #define CUSTOM_MOTION_HPP 1
8 
9 #include "../point_motion.hpp"
10 
13 {
14 public:
25  virtual bool SatisfyCriteria(size_t index, Tessellation const& tess, vector<ComputationalCell> const& cells,
26  double time,vector<Vector2D> const& velocities, double dt, TracerStickerNames const& ts)const = 0;
27 
38  virtual Vector2D CustomVelocityResult(size_t index, Tessellation const& tess, vector<ComputationalCell> const& cells,
39  double time,vector<Vector2D> const& velocities,double dt, TracerStickerNames const& ts)const = 0;
40 
42  virtual ~CustomMotionCriteria(void);
43 };
44 
47 class CustomMotion : public PointMotion
48 {
49 public:
54  CustomMotion(PointMotion const& otherpm, CustomMotionCriteria const& criteria);
55 
56  vector<Vector2D> operator()(const Tessellation& tess, const vector<ComputationalCell>& cells,
57  double time,TracerStickerNames const& tracerstickernames) const;
58 
59  vector<Vector2D> ApplyFix(Tessellation const& tess, vector<ComputationalCell> const& cells, double time,
60  double dt, vector<Vector2D> const& velocities, TracerStickerNames const& tracerstickernames)const;
61 private:
62  PointMotion const& pm_;
63  CustomMotionCriteria const& criteria_;
64 };
65 
66 #endif
Abstract class for tessellation.
Abstract class for motion of mesh generating points.
virtual bool SatisfyCriteria(size_t index, Tessellation const &tess, vector< ComputationalCell > const &cells, double time, vector< Vector2D > const &velocities, double dt, TracerStickerNames const &ts) const =0
Check if a point satisfies a certain criterion.
virtual Vector2D CustomVelocityResult(size_t index, Tessellation const &tess, vector< ComputationalCell > const &cells, double time, vector< Vector2D > const &velocities, double dt, TracerStickerNames const &ts) const =0
Calculates custom velocity.
Class for keeping the names of the tracers and stickers.
Abstract class for custom motion of mesh generating points.
Class for checking if the criteria for custom motion is applied.
2D Mathematical vector
Definition: geometry.hpp:15
virtual ~CustomMotionCriteria(void)
Class destructor.
Definition: CustomMotion.cpp:3