contour.hpp
Go to the documentation of this file.
1 
6 #ifndef CONTOUR_HPP
7 #define CONTOUR_HPP 1
8 
9 #include <memory>
10 #include "main_loop_2d.hpp"
11 #include "index2filename.hpp"
12 #include "trigger.hpp"
13 
16 {
17 public:
18 
24  virtual std::pair<bool,Vector2D> operator()
25  (const Edge& edge, const hdsim& sim) const = 0;
26 
28  virtual ~LocalContourCriterion(void);
29 };
30 
33 {
34 public:
35 
41  SequentialContour(Trigger* p_trigger,
42  Index2FileName* p_i2f,
43  LocalContourCriterion* p_lcc);
44 
45  void operator()(const hdsim& sim);
46 
47 private:
48 
49 #if (__cplusplus >= 201103L)
50  std::unique_ptr<Trigger> p_trigger_;
51 #else
52  std::auto_ptr<Trigger> p_trigger_;
53 #endif
54  int count_;
55 
56 #if (__cplusplus >= 201103L)
57  std::unique_ptr<Index2FileName> p_i2f_;
58  std::unique_ptr<LocalContourCriterion> p_lcc_;
59 #else
60  std::auto_ptr<Index2FileName> p_i2f_;
61  std::auto_ptr<LocalContourCriterion> p_lcc_;
62 #endif
63 };
64 
65 #endif // CONTOUR_HPP
virtual ~LocalContourCriterion(void)
Class destructor.
Definition: contour.cpp:8
Newtonian hydrodynamic simulation.
Definition: hdsim2d.hpp:43
virtual std::pair< bool, Vector2D > operator()(const Edge &edge, const hdsim &sim) const =0
Calculates the intersection of the contour with the line between neighboring mesh generating points...
Interface between two cells.
Definition: Edge.hpp:13
Standard simulation time advance loop.
Abstract class for a diagnostic function.
Write contour files at consecutive times.
Definition: contour.hpp:32
Class for generating sequential file names.
Abstract class for triggering events.
Definition: trigger.hpp:12
Recipe for creating a contour from the simulation.
Definition: contour.hpp:15
Trigger for diagnostic function.