#include <dynamicfluidfinder.h>
Finder for dynamic fluidizations.
Loops through all particles and checks if they reach the energy density threshold. This happens at the end of every time step for all hadrons that participated in a fluidizable process. For string fragmentation products, fluidization happens only after the fraction of formation time of the particle, controlled by Formation_Time_Fraction.
Definition at line 32 of file dynamicfluidfinder.h.
Public Member Functions | |
| DynamicFluidizationFinder (const RectangularLattice< EnergyMomentumTensor > &lattice, const std::map< int32_t, double > &background, const InitialConditionParameters &ic_params) | |
| Construct finder for fluidization action. More... | |
| 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. More... | |
| ActionList | find_actions_with_neighbors (const ParticleList &, const ParticleList &, const double, const std::vector< FourVector > &) const override |
| Ignore the neighbor search for fluidization. More... | |
| ActionList | find_actions_with_surrounding_particles (const ParticleList &, const Particles &, double, const std::vector< FourVector > &) const override |
| Ignore the surrounding searches for fluidization. More... | |
| ActionList | find_final_actions (const Particles &search_list) const override |
| Prepare corona particles left in the IC for the afterburner. More... | |
| bool | above_threshold (const ParticleData &pdata) const |
| Determine if fluidization condition is satisfied. More... | |
| bool | is_process_fluidizable (const HistoryData &history) const |
| Checks if a given process type is in fluidizable_processes_. More... | |
Public Member Functions inherited from smash::ActionFinderInterface | |
| virtual | ~ActionFinderInterface ()=default |
Private Attributes | |
| const RectangularLattice< EnergyMomentumTensor > & | energy_density_lattice_ |
| Lattice where energy momentum tensor is computed. More... | |
| const std::map< int32_t, double > & | background_ |
| Background energy density at positions of particles, using the id as key. More... | |
| const double | energy_density_threshold_ = smash_NaN<double> |
| Minimum energy density surrounding the particle to fluidize it. More... | |
| const double | min_time_ = smash_NaN<double> |
| Minimum time (in lab frame) in fm to allow fluidization. More... | |
| const double | max_time_ = smash_NaN<double> |
| Maximum time (in lab frame) in fm to allow fluidization. More... | |
| const double | formation_time_fraction_ = smash_NaN<double> |
| Fraction of formation time after which a particles can fluidize. More... | |
| const double | smearing_kernel_at_0_ = smash_NaN<double> |
| Smearing kernel at the position of the particle of interest. More... | |
| const int | fluid_cells_ = smash_NaN<int> |
| Number of cells to interpolate the energy density. More... | |
| const FluidizableProcessesBitSet | fluidizable_processes_ |
| Processes that create a fluidizable particle. More... | |
| const bool | delay_initial_elastic_ = true |
| Whether the first elastic interaction of an initial nucleon is fluidizable. More... | |
| int | particles_in_core_ = 0 |
| Accumulated number of core particles. More... | |
| double | energy_in_core_ = 0. |
| Accumulated energy of core particles. More... | |
|
inline |
Construct finder for fluidization action.
| [in] | lattice | Lattice used for the energy density interpolation |
| [in] | background | Background map between particle indices and the corresponding background energy density |
| [in] | ic_params | Parameters for dynamic fluidization |
energy_density_lattice and energy_density_background are both "in" parameters because the class stores references, but the values are non constant. Definition at line 45 of file dynamicfluidfinder.h.
|
overridevirtual |
Find particles to fluidize, depending on the energy density around them.
| [in] | search_list | List of candidate particles to fluidize. |
| [in] | dt | Time step duration in fm. |
| [in] | gcell_vol | Volume of the grid cell in fm³, |
| [in] | beam_momentum | Unused. |
Implements smash::ActionFinderInterface.
Definition at line 19 of file dynamicfluidfinder.cc.
|
inlineoverridevirtual |
Ignore the neighbor search for fluidization.
Implements smash::ActionFinderInterface.
Definition at line 74 of file dynamicfluidfinder.h.
|
inlineoverridevirtual |
Ignore the surrounding searches for fluidization.
Implements smash::ActionFinderInterface.
Definition at line 81 of file dynamicfluidfinder.h.
|
overridevirtual |
Prepare corona particles left in the IC for the afterburner.
| [in] | search_list | All particles at the end of the simulation. |
Implements smash::ActionFinderInterface.
Definition at line 113 of file dynamicfluidfinder.cc.
| bool smash::DynamicFluidizationFinder::above_threshold | ( | const ParticleData & | pdata | ) | const |
Determine if fluidization condition is satisfied.
| [in] | pdata | Particle to be checked for fluidization. |
Definition at line 55 of file dynamicfluidfinder.cc.
| bool smash::DynamicFluidizationFinder::is_process_fluidizable | ( | const HistoryData & | history | ) | const |
Checks if a given process type is in fluidizable_processes_.
In particular, initially sampled hadrons are not fluidizable and have ProcessType::None, which falls in the default case for the switch.
Definition at line 79 of file dynamicfluidfinder.cc.
|
private |
Lattice where energy momentum tensor is computed.
Definition at line 129 of file dynamicfluidfinder.h.
|
private |
Background energy density at positions of particles, using the id as key.
Definition at line 136 of file dynamicfluidfinder.h.
|
private |
Minimum energy density surrounding the particle to fluidize it.
Definition at line 138 of file dynamicfluidfinder.h.
|
private |
Minimum time (in lab frame) in fm to allow fluidization.
Definition at line 140 of file dynamicfluidfinder.h.
|
private |
Maximum time (in lab frame) in fm to allow fluidization.
Definition at line 142 of file dynamicfluidfinder.h.
|
private |
Fraction of formation time after which a particles can fluidize.
Definition at line 144 of file dynamicfluidfinder.h.
|
private |
Smearing kernel at the position of the particle of interest.
Definition at line 146 of file dynamicfluidfinder.h.
|
private |
Number of cells to interpolate the energy density.
Definition at line 148 of file dynamicfluidfinder.h.
|
private |
Processes that create a fluidizable particle.
Definition at line 150 of file dynamicfluidfinder.h.
|
private |
Whether the first elastic interaction of an initial nucleon is fluidizable.
Definition at line 152 of file dynamicfluidfinder.h.
|
mutableprivate |
Accumulated number of core particles.
Definition at line 155 of file dynamicfluidfinder.h.
|
mutableprivate |
Accumulated energy of core particles.
Definition at line 157 of file dynamicfluidfinder.h.