Version: SMASH-2.0
propagation.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2015-2020
3  * SMASH Team
4  *
5  * GNU General Public License (GPLv3 or later)
6  */
7 
8 #ifndef SRC_INCLUDE_SMASH_PROPAGATION_H_
9 #define SRC_INCLUDE_SMASH_PROPAGATION_H_
10 
11 #include <utility>
12 #include <vector>
13 
14 #include "lattice.h"
15 #include "particles.h"
16 #include "potentials.h"
17 
18 namespace smash {
19 
30  double b_;
37  ExpansionProperties(ExpansionMode mode, double b) : mode_(mode), b_(b) {}
38 };
39 
50 double calc_hubble(double time, const ExpansionProperties &metric);
51 
72 double propagate_straight_line(Particles *particles, double to_time,
73  const std::vector<FourVector> &beam_momentum);
74 
85 void expand_space_time(Particles *particles,
86  const ExperimentParameters &parameters,
87  const ExpansionProperties &metric);
88 
103 void update_momenta(
104  Particles *particles, double dt, const Potentials &pot,
105  RectangularLattice<std::pair<ThreeVector, ThreeVector>> *FB_lat,
106  RectangularLattice<std::pair<ThreeVector, ThreeVector>> *FI3_lat);
107 
108 } // namespace smash
109 #endif // SRC_INCLUDE_SMASH_PROPAGATION_H_
smash
Definition: action.h:24
smash::expand_space_time
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
smash::ExpansionProperties::mode_
ExpansionMode mode_
Type of metric used.
Definition: propagation.h:28
lattice.h
smash::calc_hubble
double calc_hubble(double time, const ExpansionProperties &metric)
Calculate the Hubble parameter , which describes how large the expansion flow is.
Definition: propagation.cc:21
particles.h
smash::ExpansionProperties::b_
double b_
Expansion parameter in the metric (faster expansion for larger values)
Definition: propagation.h:30
smash::ExpansionProperties::ExpansionProperties
ExpansionProperties(ExpansionMode mode, double b)
Constructor of ExpansionProperties.
Definition: propagation.h:37
smash::propagate_straight_line
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:44
ExpansionMode
ExpansionMode
Defines properties of expansion for the metric (e.g.
Definition: forwarddeclarations.h:168
smash::ExpansionProperties
Struct containing the type of the metric and the expansion parameter of the metric.
Definition: propagation.h:26
smash::update_momenta
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
potentials.h