10 #ifndef SRC_INCLUDE_SMASH_POTENTIALS_H_
11 #define SRC_INCLUDE_SMASH_POTENTIALS_H_
57 double skyrme_pot(
const double baryon_density)
const;
73 const double baryon_density)
const;
81 double symmetry_S(
const double baryon_density)
const;
225 std::pow(dr.
abs(), 3);
244 std::pow(dr.
abs(), 3);
284 std::pair<ThreeVector, ThreeVector>
vdf_force(
285 double rhoB,
const double drhoB_dt,
const ThreeVector grad_rhoB,
286 const ThreeVector gradrhoB_cross_vecjB,
const double j0B,
307 std::pair<ThreeVector, ThreeVector>
vdf_force(
326 virtual std::tuple<ThreeVector, ThreeVector, ThreeVector, ThreeVector>
441 double dVsym_drhoI3(
const double rhoB,
const double rhoI3)
const;
461 double dVsym_drhoB(
const double rhoB,
const double rhoI3)
const;
Interface to the SMASH configuration files.
A class for time-efficient (time-memory trade-off) calculation of density on the lattice.
double rho(const double norm_factor=1.0)
Compute the net Eckart density on the local lattice.
FourVector jmu_net() const
A class to pre-calculate and store parameters relevant for density calculation.
The FourVector class holds relevant values in Minkowski spacetime with (+, −, −, −) metric signature.
ThreeVector threevec() const
Particle type contains the static properties of a particle species.
A class that stores parameters of potentials, calculates potentials and their gradients.
const std::vector< double > & powers() const
bool use_skyrme_
Skyrme potential on/off.
bool use_symmetry_
Symmetry potential on/off.
double skyrme_pot(const double baryon_density) const
Evaluates skyrme potential given a baryon density.
virtual bool use_symmetry() const
double symmetry_pot(const double baryon_isospin_density, const double baryon_density) const
Evaluates symmetry potential given baryon isospin density.
const std::vector< double > & coeffs() const
static ThreeVector B_field_integrand(ThreeVector pos, DensityOnLattice &charge_density, ThreeVector point)
Integrand for calculating the magnetic field using the Biot-Savart formula.
static ThreeVector E_field_integrand(ThreeVector pos, DensityOnLattice &charge_density, ThreeVector point)
Integrand for calculating the electric field.
std::pair< ThreeVector, ThreeVector > symmetry_force(const double rhoI3, const ThreeVector grad_j0I3, const ThreeVector dvecjI3_dt, const ThreeVector curl_vecjI3, const double rhoB, const ThreeVector grad_j0B, const ThreeVector dvecjB_dt, const ThreeVector curl_vecjB) const
Evaluates the electric and magnetic components of the symmetry force.
virtual bool use_skyrme() const
double potential(const ThreeVector &r, const ParticleList &plist, const ParticleType &acts_on) const
Evaluates potential (Skyrme with optional Symmetry or VDF) at point r.
FourVector vdf_pot(double rhoB, const FourVector jmuB_net) const
Evaluates the FourVector potential in the VDF model given the rest frame density and the computationa...
std::vector< double > powers_
Parameters of the VDF potential: exponents .
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...
virtual bool use_coulomb() const
double symmetry_S(const double baryon_density) const
Calculate the factor in the symmetry potential.
double symmetry_S_Pot_
Parameter S_Pot in the symmetry potential in MeV.
double skyrme_a_
Parameter of skyrme potentials: the coefficient in front of in GeV.
std::vector< double > coeffs_
Parameters of the VDF potential: coefficients , in GeV.
std::pair< ThreeVector, ThreeVector > vdf_force(double rhoB, const double drhoB_dt, const ThreeVector grad_rhoB, const ThreeVector gradrhoB_cross_vecjB, const double j0B, const ThreeVector grad_j0B, const ThreeVector vecjB, const ThreeVector dvecjB_dt, const ThreeVector curl_vecjB) const
Evaluates the electric and magnetic components of force in the VDF model given the derivatives of the...
double skyrme_tau() const
double coulomb_r_cut() const
double skyrme_tau_
Parameters of skyrme potentials: the power index.
double symmetry_S_pot() const
Potentials(Configuration conf, const DensityParameters ¶meters)
Potentials constructor.
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.
int number_of_terms() const
static std::pair< double, int > force_scale(const ParticleType &data)
Evaluates the scaling factor of the forces acting on the particles.
std::pair< ThreeVector, ThreeVector > skyrme_force(const double rhoB, const ThreeVector grad_j0B, const ThreeVector dvecjB_dt, const ThreeVector curl_vecjB) const
Evaluates the electric and magnetic components of the skyrme force.
virtual std::tuple< ThreeVector, ThreeVector, ThreeVector, ThreeVector > all_forces(const ThreeVector &r, const ParticleList &plist) const
Evaluates the electric and magnetic components of the forces at point r.
bool use_coulomb_
Coulomb potential on/Off.
double symmetry_gamma_
Power in formula for :
bool symmetry_is_rhoB_dependent_
Whether the baryon density dependence of the symmetry potential is included.
double coulomb_r_cut_
Cutoff in integration for coulomb potential.
virtual bool use_vdf() const
const DensityParameters param_
Struct that contains the gaussian smearing width , the distance cutoff and the testparticle number n...
double saturation_density() const
bool use_vdf_
VDF potential on/off.
double saturation_density_
Saturation density of nuclear matter used in the VDF potential; it may vary between different paramet...
virtual ~Potentials()
Standard destructor.
double skyrme_b_
Parameters of skyrme potentials: the coefficient in front of in GeV.
The ThreeVector class represents a physical three-vector with the components .
ThreeVector cross_product(const ThreeVector &b) const
constexpr double really_small
Numerical error tolerance.
const double elementary_charge
Elementary electric charge in natural units, approximately 0.3.