Version: SMASH-3.4
fluidizationaction.h
Go to the documentation of this file.
1 /*
2  *
3  * Copyright (c) 2022-2025
4  * SMASH Team
5  *
6  * GNU General Public License (GPLv3 or later)
7  *
8  */
9 
10 #ifndef SRC_INCLUDE_SMASH_FLUIDIZATIONACTION_H_
11 #define SRC_INCLUDE_SMASH_FLUIDIZATIONACTION_H_
12 
13 #include "action.h"
14 
15 namespace smash {
16 
17 /**
18  * \ingroup action
19  * FluidizationAction is a special action indicating that a particle will be
20  * removed from the hadronic evolution, and considered a fluid to be evolved
21  * with an external hydrodynamics model. This can be done with a fixed iso-tau
22  * prescription applicable to high beam energy collisions, or dynamically
23  * according to the local energy density and using the fluidized particles as
24  * sources, which is suitable for low beam energies. */
25 class FluidizationAction : public Action {
26  public:
27  /**
28  * Construct action of fluidization.
29  * \param[in] in_part Incoming particle which surpass the energy density.
30  * \param[in] out_part Same particle as above, but propagated to the point of
31  * crossing the hypersurface, in case of an iso-tau condition.
32  * \param[in] time_until How long until the action is performed in fm.
33  */
34  FluidizationAction(const ParticleData &in_part, const ParticleData &out_part,
35  const double time_until)
36  : Action(in_part, out_part, time_until,
39  double get_total_weight() const override { return 0.0; };
40  double get_partial_weight() const override { return 0.0; };
41  void format_debug_output(std::ostream &out) const override {
42  out << "Fluidization of " << incoming_particles_;
43  }
44 
45  /**
46  * Generate the final state of particles to be fluidized and removes them from
47  * the evolution.
48  */
49  void generate_final_state() override;
50 
51  /**
52  * Conservation laws should not be obeyed, since particles are being removed.
53  *
54  * \param[in] id_process process id only used for debugging output.
55  */
56  double check_conservation(const uint32_t id_process) const override;
57 
58  /// Whether fluidization actions remove the particle from the evolution.
59  inline static bool
60  remove_particle_; // true in Constant Tau, false in Dynamic Fluid
61 };
62 
63 } // namespace smash
64 
65 #endif // SRC_INCLUDE_SMASH_FLUIDIZATIONACTION_H_
Action is the base class for a generic process that takes a number of incoming particles and transfor...
Definition: action.h:35
ParticleList incoming_particles_
List with data of incoming particles.
Definition: action.h:355
FluidizationAction is a special action indicating that a particle will be removed from the hadronic e...
static bool remove_particle_
Whether fluidization actions remove the particle from the evolution.
void generate_final_state() override
Generate the final state of particles to be fluidized and removes them from the evolution.
FluidizationAction(const ParticleData &in_part, const ParticleData &out_part, const double time_until)
Construct action of fluidization.
double check_conservation(const uint32_t id_process) const override
Conservation laws should not be obeyed, since particles are being removed.
void format_debug_output(std::ostream &out) const override
Writes information about this action to the out stream.
double get_partial_weight() const override
Return the specific weight for the chosen outgoing channel, which is mainly used for the partial weig...
double get_total_weight() const override
Return the total weight value, which is mainly used for the weight output entry.
ParticleData contains the dynamic information of a certain particle.
Definition: particledata.h:59
Definition: action.h:24
ProcessType
ProcessTypes are used to identify the type of the process.
Definition: processbranch.h:39
@ FluidizationNoRemoval
See here for a short description.
@ Fluidization
See here for a short description.