8 #ifndef SRC_INCLUDE_PROPAGATION_H_ 9 #define SRC_INCLUDE_PROPAGATION_H_ 72 const std::vector<FourVector> &beam_momentum);
108 #endif // SRC_INCLUDE_PROPAGATION_H_
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.
void update_momenta(Particles *particles, double dt, const Potentials &pot, RectangularLattice< std::pair< ThreeVector, ThreeVector >> *FB_lat, RectangularLattice< std::pair< ThreeVector, ThreeVector >> *FI3_lat)
Updates the momenta of all particles at the current time step according to the equations of motion: ...
A container class to hold all the arrays on the lattice and access them.
ExpansionMode mode_
Type of metric used.
ExpansionProperties(ExpansionMode mode, double b)
Constructor of ExpansionProperties.
ExpansionMode
Defines properties of expansion for the metric (e.g.
A class that stores parameters of potentials, calculates potentials and their gradients.
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 calc_hubble(double time, const ExpansionProperties &metric)
Calculate the Hubble parameter , which describes how large the expansion flow is. ...
The Particles class abstracts the storage and manipulation of particles.
double b_
Expansion parameter in the metric (faster expansion for larger values)
Struct containing the type of the metric and the expansion parameter of the metric.
Helper structure for Experiment.