Version: SMASH-1.7
potentials.h
Go to the documentation of this file.
1 /*
2  *
3  * Copyright (c) 2014-2019
4  * SMASH Team
5  *
6  * GNU General Public License (GPLv3 or later)
7  *
8  */
9 
10 #ifndef SRC_INCLUDE_POTENTIALS_H_
11 #define SRC_INCLUDE_POTENTIALS_H_
12 
13 #include <utility>
14 #include <vector>
15 
16 #include "configuration.h"
17 #include "density.h"
18 #include "forwarddeclarations.h"
19 #include "particledata.h"
20 #include "threevector.h"
21 
22 namespace smash {
23 
31 class Potentials {
32  public:
44  Potentials(Configuration conf, const DensityParameters &parameters);
46  virtual ~Potentials();
47 
56  double skyrme_pot(const double baryon_density) const;
57 
71  double symmetry_pot(const double baryon_isospin_density,
72  const double baryon_density) const;
73 
80  double symmetry_S(const double baryon_density) const;
81 
99  double potential(const ThreeVector &r, const ParticleList &plist,
100  const ParticleType &acts_on) const;
101 
118  std::pair<double, int> force_scale(const ParticleType &data) const;
119 
136  std::pair<ThreeVector, ThreeVector> skyrme_force(
137  const double density, const ThreeVector grad_rho, const ThreeVector dj_dt,
138  const ThreeVector rot_j) const;
139 
165  std::pair<ThreeVector, ThreeVector> symmetry_force(
166  const double rhoI3, const ThreeVector grad_rhoI3,
167  const ThreeVector djI3_dt, const ThreeVector rot_jI3, const double rhoB,
168  const ThreeVector grad_rhoB, const ThreeVector djB_dt,
169  const ThreeVector rot_jB) const;
185  virtual std::tuple<ThreeVector, ThreeVector, ThreeVector, ThreeVector>
186  all_forces(const ThreeVector &r, const ParticleList &plist) const;
187 
189  virtual bool use_skyrme() const { return use_skyrme_; }
191  virtual bool use_symmetry() const { return use_symmetry_; }
192 
193  private:
200 
203 
206 
211  double skyrme_a_;
212 
217  double skyrme_b_;
218 
223  double skyrme_tau_;
224 
227 
240 
256  double dVsym_drhoI3(const double rhoB, const double rhoI3) const;
257 
276  double dVsym_drhoB(const double rhoB, const double rhoI3) const;
277 };
278 
279 } // namespace smash
280 
281 #endif // SRC_INCLUDE_POTENTIALS_H_
A class to pre-calculate and store parameters relevant for density calculation.
Definition: density.h:106
double symmetry_pot(const double baryon_isospin_density, const double baryon_density) const
Evaluates symmetry potential given baryon isospin density.
Definition: potentials.cc:125
The ThreeVector class represents a physical three-vector with the components .
Definition: threevector.h:31
bool symmetry_is_rhoB_dependent_
Wheter the baryon density dependence of the symmetry potential is included.
Definition: potentials.h:232
double skyrme_pot(const double baryon_density) const
Evaluates skyrme potential given a baryon density.
Definition: potentials.cc:107
double symmetry_gamma_
Power in formula for : .
Definition: potentials.h:239
double skyrme_a_
Parameter of skyrme potentials: the coefficient in front of in GeV.
Definition: potentials.h:211
bool use_symmetry_
Symmetry potential on/off.
Definition: potentials.h:205
virtual ~Potentials()
Standard destructor.
Definition: potentials.cc:105
Potentials(Configuration conf, const DensityParameters &parameters)
Potentials constructor.
Interface to the SMASH configuration files.
virtual std::tuple< ThreeVector, ThreeVector, ThreeVector, ThreeVector > all_forces(const ThreeVector &r, const ParticleList &plist) const
Evaluates the electrical and magnetic components of the forces at point r.
Definition: potentials.cc:231
std::pair< ThreeVector, ThreeVector > symmetry_force(const double rhoI3, const ThreeVector grad_rhoI3, const ThreeVector djI3_dt, const ThreeVector rot_jI3, const double rhoB, const ThreeVector grad_rhoB, const ThreeVector djB_dt, const ThreeVector rot_jB) const
Evaluates the electrical and magnetic components of the symmetry force.
Definition: potentials.cc:193
virtual bool use_skyrme() const
Definition: potentials.h:189
double symmetry_S_Pot_
Parameter S_Pot in the symmetry potential in MeV.
Definition: potentials.h:226
double dVsym_drhoI3(const double rhoB, const double rhoI3) const
Calculate the derivative of the symmetry potential with respect to the isospin density in GeV * fm^3 ...
Definition: potentials.cc:207
double symmetry_S(const double baryon_density) const
Calculate the factor in the symmetry potential.
Definition: potentials.cc:117
Particle type contains the static properties of a particle species.
Definition: particletype.h:97
const DensityParameters param_
Struct that contains the gaussian smearing width , the distance cutoff and the testparticle number n...
Definition: potentials.h:199
bool use_skyrme_
Skyrme potential on/off.
Definition: potentials.h:202
double dVsym_drhoB(const double rhoB, const double rhoI3) const
Calculate the derivative of the symmetry potential with respect to the net baryon density in GeV * fm...
Definition: potentials.cc:217
double skyrme_b_
Parameters of skyrme potentials: the coefficient in front of in GeV.
Definition: potentials.h:217
double potential(const ThreeVector &r, const ParticleList &plist, const ParticleType &acts_on) const
Evaluates potential at point r.
Definition: potentials.cc:136
virtual bool use_symmetry() const
Definition: potentials.h:191
std::pair< double, int > force_scale(const ParticleType &data) const
Evaluates the scaling factor of the forces acting on the particles.
Definition: potentials.cc:162
double skyrme_tau_
Parameters of skyrme potentials: the power index.
Definition: potentials.h:223
std::pair< ThreeVector, ThreeVector > skyrme_force(const double density, const ThreeVector grad_rho, const ThreeVector dj_dt, const ThreeVector rot_j) const
Evaluates the electrical and magnetic components of the skyrme force.
Definition: potentials.cc:178
A class that stores parameters of potentials, calculates potentials and their gradients.
Definition: potentials.h:31
Definition: action.h:24