#include <chemicalpotential.h>
A class which encapsulates a GSL algorithm for finding the effective chemical potential and supporting functions.
Definition at line 24 of file chemicalpotential.h.
Classes | |
struct | ParametersForChemPotSolver |
Struct, root equations, and procedure for finding the effective chemical potential for a given particle species. More... | |
Public Member Functions | |
double | effective_chemical_potential (double degeneracy, double mass, double number_density, double temperature, double statistics, double solution_precision) |
Convenience wrapper for finding the effective chemical potential for a given particle species and performing sanity checks on the result. More... | |
Static Public Member Functions | |
static double | density_one_species (double degeneracy, double mass, double temperature, double effective_chemical_potential, double statistics, Integrator *integrator) |
Vector number density of one particle species, obtained through integrating the Juttner distribution function over the momentum space. More... | |
static double | root_equation_effective_chemical_potential (double degeneracy, double mass, double number_density, double temperature, double effective_chemical_potential, double statistics, Integrator *integrator) |
Root equation for finding the value of the effective chemical potential for one particle species. More... | |
static int | root_equation_effective_chemical_potential_for_GSL (const gsl_vector *roots_array, void *parameters, gsl_vector *function) |
Root equation for finding the value of the effective chemical potential for one particle species, suited for the GSL root finding procedure. More... | |
static void | print_state_effective_chemical_potential (unsigned int iter, gsl_multiroot_fsolver *solver) |
A GSL utility which allows for printing out the status of the solver during the root finding procedure. More... | |
static int | find_effective_chemical_potential (double degeneracy, double mass, double number_density, double temperature, double statistics, double mu_initial_guess, double solution_precision, Integrator *integrator, double *effective_chemical_potential) |
A GSL root solver for finding the effective chemical potential. More... | |
Private Attributes | |
Integrator | integrator_ = Integrator(1E6) |
A wrapper for gsl numerical integration. More... | |
|
static |
Vector number density of one particle species, obtained through integrating the Juttner distribution function over the momentum space.
Vector number density of one particle species.
[in] | degeneracy | degeneracy g of the particle species |
[in] | mass | (pole) mass m of the particle species [GeV] |
[in] | temperature | temperature T of the system [GeV] |
[in] | effective_chemical_potential | effective chemical potential of the system [GeV] |
[in] | statistics | quantum statistics of the particles species (+1 for Fermi, -1 for Bose, 0 for Boltzmann) |
[in] | integrator | wrapper for gsl numerical integration |
Definition at line 30 of file chemicalpotential.cc.
|
static |
Root equation for finding the value of the effective chemical potential for one particle species.
[in] | degeneracy | degeneracy g of the particle species |
[in] | mass | (pole) mass m of the particle species |
[in] | number_density | number density n of the particle species [GeV^3] |
[in] | temperature | temperature T of the system [GeV] |
[in] | effective_chemical_potential | effective chemical potential of the system [GeV] |
[in] | statistics | quantum statistics of the particles species (+1 for Fermi, -1 for Bose, 0 for Boltzmann) |
[in] | integrator | wrapper for gsl numerical integration |
Definition at line 50 of file chemicalpotential.cc.
|
static |
Root equation for finding the value of the effective chemical potential for one particle species, suited for the GSL root finding procedure.
[in] | roots_array | an array holding the current best estimate of the roots of the solved equation |
[in] | parameters | refers to the parameters as provided in the GSL root solving procedure |
[in] | function | refers to the root equation(s) as provided in the GSL root solving procedure (where it's called "function") |
Definition at line 61 of file chemicalpotential.cc.
|
static |
A GSL utility which allows for printing out the status of the solver during the root finding procedure.
[in] | iter | variable keeping track of how many steps in the root solving procedure have been taken |
[in] | solver | GSL solver object, which has access to the current best estimate of the roots and the corresponding function values |
Definition at line 83 of file chemicalpotential.cc.
|
static |
A GSL root solver for finding the effective chemical potential.
In practice one should use the convenience wrapper effective_chemical_potential(), which also performs sanity checks on the obtained solution.
Solver of the equation for chemical potential \( \mu \)
\[ n = \frac{g}{2 \pi^2} \int \frac{p^2 dp}{ e^{(\sqrt{p^2 + m^2} - \mu)/T} \pm 1} \]
given the density \( n \), and temperature \( T \).
[in] | degeneracy | degeneracy g of the particle species |
[in] | mass | m (pole) mass m of the particle species [GeV] |
[in] | number_density | number density n of the particle species n [GeV^3] |
[in] | temperature | temperature T of the system in GeV |
[in] | statistics | quantum statistics of the particles species (+1 for Fermi, -1 for Bose, 0 for Boltzmann) |
[in] | mu_initial_guess | the initial guess for the value of the effective chemical potential [GeV] |
[in] | solution_precision | precision with which the solution is found; note that this precision also goes into the precision of integrals calculated in the process |
[in] | integrator | wrapper for gsl numerical integration |
[out] | effective_chemical_potential | the solution stored in an array object (we use an array in anticipation of generalizing to multidimensional root finding, needed for example when scalar interactions are present and effective mass is calculated at the same time as the effective chemical potential) |
Definition at line 92 of file chemicalpotential.cc.
double smash::ChemicalPotentialSolver::effective_chemical_potential | ( | double | degeneracy, |
double | mass, | ||
double | number_density, | ||
double | temperature, | ||
double | statistics, | ||
double | solution_precision | ||
) |
Convenience wrapper for finding the effective chemical potential for a given particle species and performing sanity checks on the result.
[in] | degeneracy | degeneracy g of the particle species |
[in] | mass | (pole) mass m of the particle species [GeV] |
[in] | number_density | number density n of the particle species [GeV^3] |
[in] | temperature | temperature T of the system [GeV] |
[in] | statistics | quantum statistics of the particles species (+1 for Fermi, -1 for Bose, 0 for Boltzmann) |
[in] | solution_precision | precision with which the solution is found; note that this precision also goes into the precision of integrals calculated in the process |
Integration precision should be better than solving precision
value of small_p in GeV; value is chosen to be small (arbitrary choice)
Definition at line 180 of file chemicalpotential.cc.
|
private |
A wrapper for gsl numerical integration.
Definition at line 184 of file chemicalpotential.h.