1 #ifndef CONDITION_ACTION_SEQUENCE2_HPP 2 #define CONDITION_ACTION_SEQUENCE2_HPP 1 4 #include "condition_action_sequence.hpp" 6 #include "../common/LagrangianHLLC.hpp" 31 virtual void operator()
36 const vector<ComputationalCell>& cells,
39 const pair<ComputationalCell, ComputationalCell> & edge_values,
46 virtual void Reset(
void)
const {}
59 (
const vector<pair<const ConditionActionSequence::Condition*, const ConditionActionSequence::Action*> >& sequence,
60 const vector<pair<const ConditionActionSequence::Condition*, const ConditionActionSequence2::Action2*> >& sequence2,
65 vector<Extensive> operator()
67 const vector<Vector2D>& edge_velocities,
68 const vector<ComputationalCell>& cells,
69 const vector<Extensive>& extensives,
77 const vector<pair<const ConditionActionSequence::Condition*, const ConditionActionSequence::Action*> > sequence_;
78 const vector<pair<const ConditionActionSequence::Condition*, const Action2*> > sequence2_;
80 mutable vector<pair<ComputationalCell, ComputationalCell> > edge_values_;
98 const vector<ComputationalCell>& cells,
101 const pair<ComputationalCell, ComputationalCell> & edge_values,
126 const vector<ComputationalCell>& cells,
129 const pair<ComputationalCell, ComputationalCell> & edge_values,
153 const vector<ComputationalCell>& cells,
156 const pair<ComputationalCell, ComputationalCell> & edge_values,
192 const vector<ComputationalCell>& cells,
195 const pair<ComputationalCell, ComputationalCell> & edge_values,
214 const vector<ComputationalCell>& cells,
217 const pair<ComputationalCell, ComputationalCell> & edge_values,
223 void Reset(
void)
const;
226 mutable vector<double>
ws_;
247 const vector<ComputationalCell>& cells,
250 const pair<ComputationalCell, ComputationalCell> & edge_values,
255 #endif // CONDITION_ACTION_SEQUENCE2_HPP
LagrangianHLLC Riemann solver for an Eulerian grid.
Calculates flux assuming rigid wall boundary conditions.
Spatial reconstruction of the primitive functions.
virtual void Reset(void) const
Return instance to initial state.
Abstract class for tessellation.
Condition on when to apply mass transfer fix.
vector< bool > Lag_calc_
Was this edge calculated Lagrangialy.
virtual void operator()(const Edge &edge, const size_t index, const Tessellation &tess, const Vector2D &edge_velocity, const vector< ComputationalCell > &cells, const EquationOfState &eos, const bool aux, const pair< ComputationalCell, ComputationalCell > &edge_values, Extensive &res, double time, TracerStickerNames const &tracerstickernames) const =0
Calculates flux.
Interface between two cells.
Base class for Riemann solver.
Allows matter to flow in only one direction.
Base class for flux calculator.
Base class for equation of state.
Second order flux calculator based on a series of conditions and actions.
Container for cache data.
Estimate flux assuming free flow boundary conditions.
Calculates flux between two regular bulk cells.
Class for keeping the names of the tracers and stickers.
Action taken to calculate flux.
A flux scheme that minimises mass transfer between cells.
Abstract class for interpolation of the hydrodynamic variables.
ConditionActionSequence2(const vector< pair< const ConditionActionSequence::Condition *, const ConditionActionSequence::Action *> > &sequence, const vector< pair< const ConditionActionSequence::Condition *, const ConditionActionSequence2::Action2 *> > &sequence2, SpatialReconstruction const &interp)
Class constructor.
vector< double > edge_vel_
Velocity of the edges.
Criteria for having mass flux at outer edges of domain.
vector< double > ws_
Velocity of the interfaces.