RemovalStrategy.hpp
Go to the documentation of this file.
1 
6 #ifndef REMOVALSTRATEGY_HPP
7 #define REMOVALSTRATEGY_HPP 1
8 
9 #include "../../tessellation/tessellation.hpp"
10 #include "../two_dimensional/computational_cell_2d.hpp"
11 #include <algorithm>
12 #include "../../misc/universal_error.hpp"
13 
18 {
19 public:
27  virtual vector<int> CellsToRemove
28  (Tessellation const& tess,
29  vector<ComputationalCell> const& cells,
30  double time)const=0;
31 
37  void CheckOutput(Tessellation const& tess,vector<int> & ToRemove) const;
38 
45  vector<int> RemoveNeighbors(vector<double> const& merits,vector<int> const&
46  candidates,Tessellation const& tess) const;
52  vector<int> RemoveNearBoundary(vector<int> const& ToRemove,Tessellation
53  const& tess)const;
54 
56  virtual ~RemovalStrategy(void);
57 };
58 
59 #endif //REMOVALSTRATEGY_HPP
Abstract class for tessellation.
vector< int > RemoveNearBoundary(vector< int > const &ToRemove, Tessellation const &tess) const
Removed from the list cells near periodic boundaries.
void CheckOutput(Tessellation const &tess, vector< int > &ToRemove) const
Checks if the removed list is good, throws an error if not.
Abstract class for derefinment strategies.
virtual vector< int > CellsToRemove(Tessellation const &tess, vector< ComputationalCell > const &cells, double time) const =0
Removal abstract class. Can&#39;t remove neighboring cells or cells near peiodic boundary. Use CheckOutput to check correctness.
virtual ~RemovalStrategy(void)
Virtual destructor.
vector< int > RemoveNeighbors(vector< double > const &merits, vector< int > const &candidates, Tessellation const &tess) const
Removes neighboring points and cells near the boundary which are not rigid walls. ...