hdsim.hpp
Go to the documentation of this file.
1 
6 #ifndef HDSIM_1D_HPP
7 #define HDSIM_1D_HPP 1
8 
9 #include "../common/equation_of_state.hpp"
11 #include "../common/riemann_solver.hpp"
12 #include "vertex_motion.hpp"
15 #include "source_term_1d.hpp"
16 #include "physical_geometry_1d.hpp"
17 #include "cell_updater_1d.hpp"
18 #include "simulation_state_1d.hpp"
20 #include "../two_dimensional/extensive.hpp"
21 #include "extensive_updater_1d.hpp"
22 #include "flux_calculator_1d.hpp"
23 
25 class hdsim1D
26 {
27 private:
28 
29  const PhysicalGeometry1D& pg_;
30 
32 
33  EquationOfState const& eos_;
34 
35  vector<Extensive> extensives_;
36 
37  VertexMotion const& vm_;
38 
39  SourceTerm1D const& force_;
40 
41  const TimeStepFunction1D& tsf_;
42 
43  const FluxCalculator1D& fc_;
44 
45  const ExtensiveUpdater1D& eu_;
46 
47  const CellUpdater1D& cu_;
48 
49  double time_;
50 
51  int cycle_;
52 
53  vector<vector<double> > tracers_intensive_;
54 
55  vector<vector<double> > tracers_extensive_;
56 
57 public:
58 
70  hdsim1D
71  (const PhysicalGeometry1D& pg,
72  const SimulationState1D& ss,
73  const EquationOfState& eos,
74  const VertexMotion& vm,
75  const SourceTerm1D& force,
76  const TimeStepFunction1D& tsf,
77  const FluxCalculator1D& fc,
78  const ExtensiveUpdater1D& eu,
79  const CellUpdater1D& cu);
80 
82  void TimeAdvance(void);
83 
85  void TimeAdvance2(void);
86 
90  const SimulationState1D& getState(void) const;
91 
92  // Diagnostics
93 
97  double GetTime(void) const;
98 
102  int GetCycle(void) const;
103 
107  // vector<Conserved> const& getFluxes(void) const;
108 };
109 
110 #endif // HDSIM_1D_HPP
Abstract class for a flux calculator.
Newtonian hydrodynamic simulation.
Definition: hdsim.hpp:25
Arbitrary motion of the vertices.
Abstract class for external forces.
Base class for boundary conditions.
Package for computational domain and hydro cells.
Base class for a flux calculator.
Base class for physical geometry.
Extensive updater abstract class.
Base class for cell update schemes.
Abstract class for a time step function.
double GetTime(void) const
Returns the time of the simulation.
Definition: hdsim.cpp:15
Base class for vertex motion.
int GetCycle(void) const
Returns the number of times time advance was called.
Definition: hdsim.cpp:20
hdsim1D(const PhysicalGeometry1D &pg, const SimulationState1D &ss, const EquationOfState &eos, const VertexMotion &vm, const SourceTerm1D &force, const TimeStepFunction1D &tsf, const FluxCalculator1D &fc, const ExtensiveUpdater1D &eu, const CellUpdater1D &cu)
Class constructor.
Definition: hdsim.cpp:74
void TimeAdvance2(void)
Second order time advance.
Definition: hdsim.cpp:205
void TimeAdvance(void)
Advances the simulation in time.
Definition: hdsim.cpp:152
Base class for equation of state.
Abstract class for external forces.
Abstract class for the cell update scheme.
Method for updating the extensive variables.
Spatial reconstruction.
Abstract class for initial conditions.
Base class for a time step calculator.
const SimulationState1D & getState(void) const
Access to computational domain and hydro cells.
Definition: hdsim.cpp:25
Package for computational domain and hydro cells.
Physical geometry of the grid.