LinearGaussImproved.hpp
Go to the documentation of this file.
1 
6 #ifndef LINEAR_GAUSS_IMPROVED
7 #define LINEAR_GAUSS_IMPROVED 1
8 
9 #include "../../common/equation_of_state.hpp"
10 #include "../spatial_reconstruction.hpp"
11 #include <cmath>
12 #include "../../../misc/universal_error.hpp"
13 #include "../GhostPointGenerator.hpp"
14 #include "../../../misc/serializable.hpp"
15 
18 {
19 public:
20 
33  (EquationOfState const& eos,
34  GhostPointGenerator const& ghost,
35  bool slf = true,
36  double delta_v = 0.2,
37  double theta = 0.5,
38  double delta_P = 0.7,
39  const vector<string>& calc_tracers =
40  vector<string>(),
41  string skip_key=string(),
42  bool SR=false);
43 
44  void operator() (const Tessellation& tess,const vector<ComputationalCell>& cells,double time,
45  vector<pair<ComputationalCell, ComputationalCell> > &res,TracerStickerNames const& tracerstickersnames,CacheData const& cd)const;
46 
55  ComputationalCell Interp(ComputationalCell const& cell, size_t cell_index, Vector2D const& cm, Vector2D const& target)const;
56 
61  vector<Slope>& GetSlopes(void)const;
62 
67  vector<Slope>& GetSlopesUnlimited(void)const;
68 
69 private:
70  EquationOfState const& eos_;
71  GhostPointGenerator const& ghost_;
72  mutable vector<Slope> rslopes_;
73  mutable vector<Slope> naive_rslopes_;
74  const bool slf_;
75  const double shockratio_;
76  const double diffusecoeff_;
77  const double pressure_ratio_;
78  const vector<string> calc_tracers_;
79  const string skip_key_;
80  mutable vector<size_t> to_skip_;
81  bool SR_;
82 
84  (const LinearGaussImproved& origin);
85 
86  LinearGaussImproved& operator=
87  (const LinearGaussImproved& origin);
88 
89 };
90 #endif //LINEAR_GAUSS_IMPROVED
91 
vector< Slope > & GetSlopes(void) const
Returns the gradients.
vector< Slope > & GetSlopesUnlimited(void) const
Returns the unsloped limtied gradients.
Spatial reconstruction of the primitive functions.
Abstract class for tessellation.
ComputationalCell Interp(ComputationalCell const &cell, size_t cell_index, Vector2D const &cm, Vector2D const &target) const
Interpolates a cell.
Abstract class for creating ghost points.
LinearGaussImproved(EquationOfState const &eos, GhostPointGenerator const &ghost, bool slf=true, double delta_v=0.2, double theta=0.5, double delta_P=0.7, const vector< string > &calc_tracers=vector< string >(), string skip_key=string(), bool SR=false)
Class constructor.
Linear gauss interpolation.
Base class for equation of state.
Container for cache data.
Definition: cache_data.hpp:14
Class for keeping the names of the tracers and stickers.
void operator()(const Tessellation &tess, const vector< ComputationalCell > &cells, double time, vector< pair< ComputationalCell, ComputationalCell > > &res, TracerStickerNames const &tracerstickersnames, CacheData const &cd) const
interpolates values on both sides of each interface
2D Mathematical vector
Definition: geometry.hpp:15
Computational cell.