Version: SMASH-1.5
propagation.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2015-2018
3  * SMASH Team
4  *
5  * GNU General Public License (GPLv3 or later)
6  */
7 
8 #ifndef SRC_INCLUDE_PROPAGATION_H_
9 #define SRC_INCLUDE_PROPAGATION_H_
10 
11 #include <vector>
12 
13 #include "lattice.h"
14 #include "particles.h"
15 #include "potentials.h"
16 
17 namespace smash {
18 
29  double b_;
36  ExpansionProperties(ExpansionMode mode, double b) : mode_(mode), b_(b) {}
37 };
38 
49 double calc_hubble(double time, const ExpansionProperties &metric);
50 
71 double propagate_straight_line(Particles *particles, double to_time,
72  const std::vector<FourVector> &beam_momentum);
73 
84 void expand_space_time(Particles *particles,
85  const ExperimentParameters &parameters,
86  const ExpansionProperties &metric);
87 
102 void update_momenta(
103  Particles *particles, double dt, const Potentials &pot,
104  RectangularLattice<std::pair<ThreeVector, ThreeVector>> *FB_lat,
105  RectangularLattice<std::pair<ThreeVector, ThreeVector>> *FI3_lat);
106 
107 } // namespace smash
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.
Definition: propagation.cc:43
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: ...
Definition: propagation.cc:111
ExpansionMode mode_
Type of metric used.
Definition: propagation.h:27
ExpansionProperties(ExpansionMode mode, double b)
Constructor of ExpansionProperties.
Definition: propagation.h:36
ExpansionMode
Defines properties of expansion for the metric (e.g.
void expand_space_time(Particles *particles, const ExperimentParameters &parameters, const ExpansionProperties &metric)
Modifies positions and momentum of all particles to account for space-time deformation.
Definition: propagation.cc:86
double calc_hubble(double time, const ExpansionProperties &metric)
Calculate the Hubble parameter , which describes how large the expansion flow is. ...
Definition: propagation.cc:20
double b_
Expansion parameter in the metric (faster expansion for larger values)
Definition: propagation.h:29
Struct containing the type of the metric and the expansion parameter of the metric.
Definition: propagation.h:25
Definition: action.h:24