round_cells.hpp
Go to the documentation of this file.
1 
6 #ifndef ROUND_CELLS_HPP
7 #define ROUND_CELLS_HPP 1
8 
9 #include "../point_motion.hpp"
10 #include "../../common/equation_of_state.hpp"
11 #include "../OuterBoundary.hpp"
12 #include "../geometric_outer_boundaries/PeriodicBox.hpp"
13 
16 class RoundCells: public PointMotion
17 {
18 public:
19 
28  RoundCells(const PointMotion& pm, const EquationOfState& eos, OuterBoundary const& outer,
29  double chi = 0.15, double eta = 0.02, bool cold = false, double cold_speed = 0.15);
30 
31 
39  RoundCells(const PointMotion& pm, const EquationOfState& eos, double chi = 0.15, double eta = 0.02,bool cold = false
40  , double cold_speed = 0.15);
41 
42  vector<Vector2D> operator()(const Tessellation& tess,const vector<ComputationalCell>& cells,double time,
43  TracerStickerNames const& tracerstickernames) const;
44 
45  vector<Vector2D> ApplyFix(Tessellation const& tess, vector<ComputationalCell> const& cells, double time,
46  double dt, vector<Vector2D> const& velocities, TracerStickerNames const& tracerstickernames)const;
47 private:
48 
49  Vector2D calc_dw(size_t i, const Tessellation& tess,const vector<ComputationalCell>& cells,
50  TracerStickerNames const& tracerstickernames) const;
51 
52  Vector2D calc_dw(size_t i, const Tessellation& tess, double dt,vector<ComputationalCell> const& cells,
53  TracerStickerNames const& tracerstickernames)const;
54 
55  const PointMotion& pm_;
56  const EquationOfState& eos_;
57  PeriodicBox pouter_;
58  OuterBoundary const& outer_;
59  const double chi_;
60  const double eta_;
61  const bool cold_;
62  const double cold_speed_;
63 };
64 
65 #endif // ROUND_CELLS_HPP
Abstract class for tessellation.
Square box outer boundary conditions.
Definition: PeriodicBox.hpp:12
Abstract class for motion of mesh generating points.
vector< Vector2D > operator()(const Tessellation &tess, const vector< ComputationalCell > &cells, double time, TracerStickerNames const &tracerstickernames) const
Calculates the velocity of all mesh points.
Base class for equation of state.
Class for keeping the names of the tracers and stickers.
vector< Vector2D > ApplyFix(Tessellation const &tess, vector< ComputationalCell > const &cells, double time, double dt, vector< Vector2D > const &velocities, TracerStickerNames const &tracerstickernames) const
Applies a small fix to the velocity of all mesh points once the time step is known.
Abstract class for geometric boundary conditions for the tessellation.
Correction to point velocities that keeps cells round.
Definition: round_cells.hpp:16
2D Mathematical vector
Definition: geometry.hpp:15
RoundCells(const PointMotion &pm, const EquationOfState &eos, OuterBoundary const &outer, double chi=0.15, double eta=0.02, bool cold=false, double cold_speed=0.15)
Class constructor.
Definition: round_cells.cpp:7