10 #ifndef SRC_INCLUDE_SMASH_DYNAMICFLUIDFINDER_H_
11 #define SRC_INCLUDE_SMASH_DYNAMICFLUIDFINDER_H_
47 const std::map<int32_t, double> &background,
70 const ParticleList &search_list,
double dt,
double gcell_vol,
71 const std::vector<FourVector> &beam_momentum)
const override;
75 const ParticleList &,
const ParticleList &,
const double,
76 const std::vector<FourVector> &)
const override {
82 const ParticleList &,
const Particles &,
double,
83 const std::vector<FourVector> &)
const override {
ActionFinderInterface is the abstract base class for all action finders, i.e.
Finder for dynamic fluidizations.
const RectangularLattice< EnergyMomentumTensor > & energy_density_lattice_
Lattice where energy momentum tensor is computed.
ActionList find_actions_with_surrounding_particles(const ParticleList &, const Particles &, double, const std::vector< FourVector > &) const override
Ignore the surrounding searches for fluidization.
const double min_time_
Minimum time (in lab frame) in fm to allow fluidization.
const double formation_time_fraction_
Fraction of formation time after which a particles can fluidize.
ActionList find_final_actions(const Particles &search_list) const override
Prepare corona particles left in the IC for the afterburner.
ActionList find_actions_with_neighbors(const ParticleList &, const ParticleList &, const double, const std::vector< FourVector > &) const override
Ignore the neighbor search for fluidization.
bool is_process_fluidizable(const HistoryData &history) const
Checks if a given process type is in fluidizable_processes_.
DynamicFluidizationFinder(const RectangularLattice< EnergyMomentumTensor > &lattice, const std::map< int32_t, double > &background, const InitialConditionParameters &ic_params)
Construct finder for fluidization action.
int particles_in_core_
Accumulated number of core particles.
const bool delay_initial_elastic_
Whether the first elastic interaction of an initial nucleon is fluidizable.
bool above_threshold(const ParticleData &pdata) const
Determine if fluidization condition is satisfied.
ActionList find_actions_in_cell(const ParticleList &search_list, double dt, double gcell_vol, const std::vector< FourVector > &beam_momentum) const override
Find particles to fluidize, depending on the energy density around them.
const std::map< int32_t, double > & background_
Background energy density at positions of particles, using the id as key.
const double max_time_
Maximum time (in lab frame) in fm to allow fluidization.
double energy_in_core_
Accumulated energy of core particles.
const FluidizableProcessesBitSet fluidizable_processes_
Processes that create a fluidizable particle.
const int fluid_cells_
Number of cells to interpolate the energy density.
const double energy_density_threshold_
Minimum energy density surrounding the particle to fluidize it.
const double smearing_kernel_at_0_
Smearing kernel at the position of the particle of interest.
ParticleData contains the dynamic information of a certain particle.
The Particles class abstracts the storage and manipulation of particles.
A container class to hold all the arrays on the lattice and access them.
std::bitset< 5 > FluidizableProcessesBitSet
A structure to hold information about the history of the particle, e.g.
The variables in this POD struct are of type std::optional<double> so that only the relevant paramete...