hdsim_3d.hpp
1 #ifndef HDSIM_3D_HPP
2 #define HDSIM_3D_HPP 1
3 
4 #include "computational_cell.hpp"
5 #include "../../3D/GeometryCommon/Tessellation3D.hpp"
6 #include "conserved_3d.hpp"
7 #include "../common/equation_of_state.hpp"
8 #include "point_motion_3d.hpp"
10 #include "flux_calculator_3d.hpp"
11 #include "cell_updater_3d.hpp"
12 
14 class HDSim3D
15 {
16 public:
17 
20  {
21  public:
22 
24  ProgressTracker(void);
25 
29  void update(double dt);
30 
34  double getTime(void) const;
35 
39  double getCycle(void) const;
40 
41  private:
42  double time_;
43  int cycle_;
44  };
45 
55  HDSim3D(Tessellation3D& tess,
56  const vector<ComputationalCell>& cells,
57  const EquationOfState& eos,
58  const PointMotion3D& pm,
59  const TimeStepCalculator& tsc,
60  const FluxCalculator3D& fc,
61  const CellUpdater3D& cu);
62 
64  void timeAdvance();
65 
69  const Tessellation3D& getTesselation(void) const;
70 
74  const vector<ComputationalCell>& getCells(void) const;
75 
76 private:
77  Tessellation3D& tess_;
78  const EquationOfState& eos_;
79  vector<ComputationalCell> cells_;
80  vector<Conserved3D> extensive_;
81  const PointMotion3D& pm_;
82  const TimeStepCalculator& tsc_;
83  const FluxCalculator3D& fc_;
84  const CellUpdater3D& cu_;
85  ProgressTracker pt_;
86 };
87 
88 #endif // HDSIM_3D_HPP
const vector< ComputationalCell > & getCells(void) const
Access to computational cells.
Definition: hdsim_3d.cpp:150
Abstract class for the motion of the mesh generating points.
Abstract class for flux calculator.
void timeAdvance()
Advances the simulation in time (first order)
Definition: hdsim_3d.cpp:131
Abstract class for time step calculator.
Abstract class for time step calculator.
Abstract class for tessellation in 3D.
Three dimensional simulation.
Definition: hdsim_3d.hpp:14
Abstract class for flux calculator.
Abstract class for point motion.
Tracks the progress of a simulation.
Definition: hdsim_3d.hpp:19
double getCycle(void) const
Returns the number of times time advance was called.
Definition: hdsim_3d.cpp:19
HDSim3D(Tessellation3D &tess, const vector< ComputationalCell > &cells, const EquationOfState &eos, const PointMotion3D &pm, const TimeStepCalculator &tsc, const FluxCalculator3D &fc, const CellUpdater3D &cu)
Class constructor.
Definition: hdsim_3d.cpp:24
double getTime(void) const
Returns the current time of the simulation.
Definition: hdsim_3d.cpp:14
void update(double dt)
Update the progress tracker.
Definition: hdsim_3d.cpp:8
ProgressTracker(void)
Class constructor.
Definition: hdsim_3d.cpp:5
Base class for equation of state.
Abstract clas for cell update scheme.
Abstract class for cell update scheme.
A container for the hydrodynamic variables.
const Tessellation3D & getTesselation(void) const
Access to tessellation.
Definition: hdsim_3d.cpp:145