SeveralGhostGenerators.hpp
Go to the documentation of this file.
1 
6 #ifndef SEVERAL_GHOST_GENERATOR_HPP
7 #define SEVERAL_GHOST_GENERATOR_HPP 1
8 
9 #include "../GhostPointGenerator.hpp"
10 
15 {
16 public:
23  virtual size_t GhostChoose(Tessellation const& tess, int index)const = 0;
24 
25  virtual ~GhostCriteria(void);
26 };
27 
32 {
33 private:
34  vector<GhostPointGenerator*> ghosts_;
35  GhostCriteria const& ghost_chooser_;
36 public:
37 
42  SeveralGhostGenerators(vector<GhostPointGenerator*> ghosts,GhostCriteria const& ghostchooser);
43 
44  boost::container::flat_map<size_t, ComputationalCell> operator() (const Tessellation& tess,
45  const vector<ComputationalCell>& cells,double time,TracerStickerNames const&
46  tracerstickernames) const;
47 
48  Slope GetGhostGradient(const Tessellation& tess,
49  const vector<ComputationalCell>& cells, const vector<Slope>& gradients,
50  size_t ghost_index, double time, const Edge& edge, TracerStickerNames const&
51  tracerstickernames) const;
52 };
53 
54 #endif // SEVERAL_GHOST_GENERATOR_HPP
Class for chhosing which ghost generator to use.
virtual size_t GhostChoose(Tessellation const &tess, int index) const =0
Chooses the ghost generator.
Abstract class for tessellation.
Interface between two cells.
Definition: Edge.hpp:13
Class for spatial interpolations.
Abstract class for creating ghost points.
Class for creating computationalcells of ghost points from several different methods.
Class for keeping the names of the tracers and stickers.