8 #ifndef SRC_INCLUDE_SMASH_PROPAGATION_H_ 
    9 #define SRC_INCLUDE_SMASH_PROPAGATION_H_ 
   50 double calc_hubble(
double time, 
const ExpansionProperties &metric);
 
   73                                const std::vector<FourVector> &beam_momentum);
 
   86                        const ExperimentParameters ¶meters,
 
   87                        const ExpansionProperties &metric);
 
  105     std::vector<Particles> &particles, 
double dt, 
const Potentials &pot,
 
  106     RectangularLattice<std::pair<ThreeVector, ThreeVector>> *FB_lat,
 
  107     RectangularLattice<std::pair<ThreeVector, ThreeVector>> *FI3_lat,
 
  108     RectangularLattice<std::pair<ThreeVector, ThreeVector>> *EM_lat);
 
ExpansionMode
Defines properties of expansion for the metric (e.g.
 
void update_momenta(std::vector< Particles > &particles, double dt, const Potentials &pot, RectangularLattice< std::pair< ThreeVector, ThreeVector >> *FB_lat, RectangularLattice< std::pair< ThreeVector, ThreeVector >> *FI3_lat, RectangularLattice< std::pair< ThreeVector, ThreeVector >> *EM_lat)
Updates the momenta of all particles at the current time step according to the equations of motion:
 
void expand_space_time(Particles *particles, const ExperimentParameters ¶meters, const ExpansionProperties &metric)
Modifies positions and momentum of all particles to account for space-time deformation.
 
double propagate_straight_line(Particles *particles, double to_time, const std::vector< FourVector > &beam_momentum)
Propagates the positions of all particles on a straight line to a given moment.
 
double calc_hubble(double time, const ExpansionProperties &metric)
Calculate the Hubble parameter , which describes how large the expansion flow is.
 
Struct containing the type of the metric and the expansion parameter of the metric.
 
double b_
Expansion parameter in the metric (faster expansion for larger values)
 
ExpansionMode mode_
Type of metric used.
 
ExpansionProperties(ExpansionMode mode, double b)
Constructor of ExpansionProperties.