cylindrical_complementary_1d.cpp
1 #ifndef __clang__
2 #define _USE_MATH_DEFINES
3 #endif // __clang__
4 #include <cmath>
5 #include "cylindrical_complementary_1d.hpp"
6 
7 CylindricalComplementary1D::CylindricalComplementary1D(void) {}
8 
9 Extensive CylindricalComplementary1D::operator()
10  (const SimulationState1D& state,
11  size_t point,
12  double /*t*/,
13  double /*dt*/) const
14 {
15  const vector<ComputationalCell>& cells = state.getCells();
16  const vector<double>& vertices = state.getVertices();
17  const size_t i = point;
18  const double p = cells.at(i).pressure;
19  const double r = 0.5*(vertices.at(i)+vertices.at(i+1));
20  const double volume =
21  (4./3.)*M_PI*(pow(vertices.at(i+1),3)-
22  pow(vertices.at(i),3));
23 
24  Extensive res;
25  res.mass = 0;
26  res.momentum = 2*volume*(p/r)*Vector2D(1,0);
27  res.energy = 0;
28  res.tracers = vector<double>(cells.at(point).tracers.size(),0);
29  return res;
30 }
Extensive variables.
Definition: extensive.hpp:18
Vector2D momentum
momentum, in relativity it is = rho*h*gamma*v
Definition: extensive.hpp:31
double mass
rest mass times gamma
Definition: extensive.hpp:25
const vector< double > & getVertices(void) const
Access to vertices.
double energy
energy, in relativity it is = rho*h*gamma^2-P-rho
Definition: extensive.hpp:28
tvector tracers
tracers
Definition: extensive.hpp:34
const vector< ComputationalCell > & getCells(void) const
Access to hydro cells.
Package for computational domain and hydro cells.
2D Mathematical vector
Definition: geometry.hpp:15