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);
106 std::vector<Particles> &particles,
double dt,
const Potentials &pot,
107 RectangularLattice<std::pair<ThreeVector, ThreeVector>> *FB_lat,
108 RectangularLattice<std::pair<ThreeVector, ThreeVector>> *FI3_lat,
109 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, DensityLattice *jB_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.
RectangularLattice< DensityOnLattice > DensityLattice
Conveniency typedef for lattice of density.
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.