3 #include <boost/foreach.hpp> 16 const vector<ComputationalCell>& cells,
18 const vector<Vector2D>& edge_velocities,
20 tess_(tess), cells_(cells),
21 edge_velocities_(edge_velocities), eos_(eos), tracerstickernames_(tracerstickernames){}
23 size_t size(
void)
const 25 return static_cast<size_t>(tess_.GetPointNo());
28 double operator[](
size_t i)
const 31 const double radius = tess_.GetWidth(static_cast<int>(i));
32 const double c = eos_.dp2c
36 tracerstickernames_.tracer_names);
37 const Vector2D v = cells_.at(i).velocity;
40 tess_.GetCellEdges(static_cast<int>(i))){
41 const Vector2D ve = edge_velocities_.at(static_cast<size_t>(index));
42 Edge const& edge = tess_.GetEdge(index);
54 const vector<ComputationalCell>& cells_;
55 const vector<Vector2D>& edge_velocities_;
62 const vector<ComputationalCell>& cells,
64 const vector<Vector2D>& point_velocities,
70 MPI_Allreduce(&res, &res_new, 1, MPI_DOUBLE, MPI_MIN, MPI_COMM_WORLD);
SimpleCFL(const double cfl)
Class constructor.
Abstract class for time step calculator.
T lazy_min(const LazyList< T > &i2m)
Finds the minimum of a lazy list.
Abstract class for tessellation.
Interface between two cells.
Ordered list whose terms are evaluated lazily.
Time step based on CFL criterion.
double ScalarProd(Vector3D const &v1, Vector3D const &v2)
Scalar product of two vectors.
Base class for equation of state.
double operator()(const Tessellation &tess, const vector< ComputationalCell > &cells, const EquationOfState &eos, const vector< Vector2D > &point_velocities, const double time, TracerStickerNames const &tracerstickernames) const
Calculates the time step.
Vector2D normalize(const Vector2D &v)
Normalized a vector.
Class for keeping the names of the tracers and stickers.
std::pair< int, int > neighbors
Neighboring cells.
Various manipulations of hydrodynamic variables.
double abs(Vector3D const &v)
Norm of a vector.