simulation_state_1d.cpp
2 
4 (const vector<double>& vertices,
5  const SpatialDistribution1D& density,
6  const SpatialDistribution1D& pressure,
7  const SpatialDistribution1D& para_velocity,
8  const SpatialDistribution1D& perp_velocity,
9  const vector<pair<string, const SpatialDistribution1D*> >& tracers,
10  const vector<pair<string, const BoolSpatialDistribution*> >& stickers):
11  vertices_(vertices),
12  cells_(vertices.size()-1),
13  tsn_()
14 {
15  for(size_t i=0;i<vertices_.size()-1;++i){
16  const double x = 0.5*(vertices_.at(i) + vertices_.at(i+1));
17  ComputationalCell& cell = cells_.at(i);
18  cell.density = density(x);
19  cell.pressure = pressure(x);
20  cell.velocity = Vector2D(para_velocity(x),
21  perp_velocity(x));
22  for(size_t j=0;j<tracers.size();++j){
23  cell.tracers.push_back((*tracers.at(j).second)(x));
24  tsn_.tracer_names.push_back(tracers.at(j).first);
25  }
26  for(size_t j=0;j<stickers.size();++j){
27  cell.stickers.push_back((*stickers.at(j).second)(x));
28  tsn_.sticker_names.push_back(stickers.at(j).first);
29  }
30  }
31 }
32 
33 const vector<double>& SimulationState1D::getVertices(void) const
34 {
35  return vertices_;
36 }
37 
38 const vector<ComputationalCell>& SimulationState1D::getCells(void) const
39 {
40  return cells_;
41 }
42 
44 {
45  return tsn_;
46 }
47 
48 void SimulationState1D::updateVertices(const vector<double>& vertices)
49 {
50  vertices_ = vertices;
51 }
52 
54 (const vector<ComputationalCell>& cells)
55 {
56  cells_ = cells;
57 }
Package for computational domain and hydro cells.
const vector< double > & getVertices(void) const
Access to vertices.
tvector tracers
Tracers (can transfer from one cell to another)
const TracerStickerNames & getTracerStickerNames(void) const
Access to tracer and sticker names.
void updateCells(const vector< ComputationalCell > &cells)
Updates hydro cellls.
double pressure
Pressure.
Base class for initial conditions.
const vector< ComputationalCell > & getCells(void) const
Access to hydro cells.
svector stickers
Stickers (stick to the same cell)
Class for keeping the names of the tracers and stickers.
SimulationState1D(const vector< double > &vertices, const SpatialDistribution1D &density, const SpatialDistribution1D &pressure, const SpatialDistribution1D &para_velocity, const SpatialDistribution1D &perp_velocity, const vector< pair< string, const SpatialDistribution1D *> > &tracers, const vector< pair< string, const BoolSpatialDistribution *> > &stickers)
Class constructor.
Vector2D velocity
Velocity.
2D Mathematical vector
Definition: geometry.hpp:15
void updateVertices(const vector< double > &vertices)
Updates positions of vertices.
Computational cell.