Version: SMASH-2.0
potentials.h
Go to the documentation of this file.
1 /*
2  *
3  * Copyright (c) 2014-2020
4  * SMASH Team
5  *
6  * GNU General Public License (GPLv3 or later)
7  *
8  */
9 
10 #ifndef SRC_INCLUDE_SMASH_POTENTIALS_H_
11 #define SRC_INCLUDE_SMASH_POTENTIALS_H_
12 
13 #include <tuple>
14 #include <utility>
15 #include <vector>
16 
17 #include "configuration.h"
18 #include "density.h"
19 #include "forwarddeclarations.h"
20 #include "particledata.h"
21 #include "threevector.h"
22 
23 namespace smash {
24 
32 class Potentials {
33  public:
45  Potentials(Configuration conf, const DensityParameters &parameters);
47  virtual ~Potentials();
48 
57  double skyrme_pot(const double baryon_density) const;
58 
72  double symmetry_pot(const double baryon_isospin_density,
73  const double baryon_density) const;
74 
81  double symmetry_S(const double baryon_density) const;
82 
100  double potential(const ThreeVector &r, const ParticleList &plist,
101  const ParticleType &acts_on) const;
102 
119  static std::pair<double, int> force_scale(const ParticleType &data);
120 
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 
167  std::pair<ThreeVector, ThreeVector> symmetry_force(
168  const double rhoI3, const ThreeVector grad_rhoI3,
169  const ThreeVector djI3_dt, const ThreeVector rot_jI3, const double rhoB,
170  const ThreeVector grad_rhoB, const ThreeVector djB_dt,
171  const ThreeVector rot_jB) const;
187  virtual std::tuple<ThreeVector, ThreeVector, ThreeVector, ThreeVector>
188  all_forces(const ThreeVector &r, const ParticleList &plist) const;
189 
191  virtual bool use_skyrme() const { return use_skyrme_; }
193  virtual bool use_symmetry() const { return use_symmetry_; }
194 
196  double skyrme_a() const { return skyrme_a_; }
198  double skyrme_b() const { return skyrme_b_; }
200  double skyrme_tau() const { return skyrme_tau_; }
201 
202  private:
209 
212 
215 
220  double skyrme_a_;
221 
226  double skyrme_b_;
227 
232  double skyrme_tau_;
233 
236 
249 
265  double dVsym_drhoI3(const double rhoB, const double rhoI3) const;
266 
285  double dVsym_drhoB(const double rhoB, const double rhoI3) const;
286 };
287 
288 } // namespace smash
289 
290 #endif // SRC_INCLUDE_SMASH_POTENTIALS_H_
smash
Definition: action.h:24
smash::Potentials::symmetry_S_Pot_
double symmetry_S_Pot_
Parameter S_Pot in the symmetry potential in MeV.
Definition: potentials.h:235
particledata.h
smash::DensityParameters
A class to pre-calculate and store parameters relevant for density calculation.
Definition: density.h:108
smash::Potentials::skyrme_tau
double skyrme_tau() const
Definition: potentials.h:200
smash::Potentials::potential
double potential(const ThreeVector &r, const ParticleList &plist, const ParticleType &acts_on) const
Evaluates potential at point r.
Definition: potentials.cc:138
smash::Potentials::symmetry_pot
double symmetry_pot(const double baryon_isospin_density, const double baryon_density) const
Evaluates symmetry potential given baryon isospin density.
Definition: potentials.cc:127
smash::Potentials::force_scale
static std::pair< double, int > force_scale(const ParticleType &data)
Evaluates the scaling factor of the forces acting on the particles.
Definition: potentials.cc:164
smash::Potentials::symmetry_is_rhoB_dependent_
bool symmetry_is_rhoB_dependent_
Whether the baryon density dependence of the symmetry potential is included.
Definition: potentials.h:241
smash::Potentials::Potentials
Potentials(Configuration conf, const DensityParameters &parameters)
Potentials constructor.
smash::Potentials::all_forces
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:229
smash::Potentials::use_symmetry
virtual bool use_symmetry() const
Definition: potentials.h:193
smash::Potentials::skyrme_b
double skyrme_b() const
Definition: potentials.h:198
smash::Potentials::use_skyrme
virtual bool use_skyrme() const
Definition: potentials.h:191
smash::Configuration
Interface to the SMASH configuration files.
Definition: configuration.h:464
smash::Potentials::skyrme_b_
double skyrme_b_
Parameters of skyrme potentials: the coefficient in front of in GeV.
Definition: potentials.h:226
forwarddeclarations.h
smash::ThreeVector
Definition: threevector.h:31
smash::Potentials::dVsym_drhoB
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:215
smash::Potentials::~Potentials
virtual ~Potentials()
Standard destructor.
Definition: potentials.cc:107
smash::Potentials::symmetry_force
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:191
threevector.h
smash::ParticleType
Definition: particletype.h:97
smash::Potentials
A class that stores parameters of potentials, calculates potentials and their gradients.
Definition: potentials.h:32
smash::Potentials::skyrme_a_
double skyrme_a_
Parameter of skyrme potentials: the coefficient in front of in GeV.
Definition: potentials.h:220
smash::Potentials::symmetry_S
double symmetry_S(const double baryon_density) const
Calculate the factor in the symmetry potential.
Definition: potentials.cc:119
smash::Potentials::use_symmetry_
bool use_symmetry_
Symmetry potential on/off.
Definition: potentials.h:214
smash::Potentials::param_
const DensityParameters param_
Struct that contains the gaussian smearing width , the distance cutoff and the testparticle number n...
Definition: potentials.h:208
density.h
smash::Potentials::skyrme_tau_
double skyrme_tau_
Parameters of skyrme potentials: the power index.
Definition: potentials.h:232
smash::Potentials::skyrme_force
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:172
smash::Potentials::skyrme_a
double skyrme_a() const
Definition: potentials.h:196
smash::Potentials::dVsym_drhoI3
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:205
configuration.h
smash::Potentials::skyrme_pot
double skyrme_pot(const double baryon_density) const
Evaluates skyrme potential given a baryon density.
Definition: potentials.cc:109
smash::Potentials::use_skyrme_
bool use_skyrme_
Skyrme potential on/off.
Definition: potentials.h:211
smash::Potentials::symmetry_gamma_
double symmetry_gamma_
Power in formula for :
Definition: potentials.h:248