Version: SMASH-3.1
chemicalpotential.h
Go to the documentation of this file.
1 /*
2  *
3  * Copyright (c) 2020,2022
4  * SMASH Team
5  *
6  * GNU General Public License (GPLv3 or later)
7  *
8  */
9 
10 #ifndef SRC_INCLUDE_SMASH_CHEMICALPOTENTIAL_H_
11 #define SRC_INCLUDE_SMASH_CHEMICALPOTENTIAL_H_
12 
13 #include "gsl/gsl_multiroots.h"
14 #include "gsl/gsl_vector.h"
15 
16 #include "smash/integrate.h"
17 
18 namespace smash {
19 
25  public:
39  static double density_one_species(double degeneracy, double mass,
40  double temperature,
42  double statistics, Integrator* integrator);
43 
61  double degeneracy;
62 
64  double mass;
65 
68 
70  double temperature;
71 
76  double statistics;
77 
80  };
81 
97  double degeneracy, double mass, double number_density, double temperature,
98  double effective_chemical_potential, double statistics,
99  Integrator* integrator);
100 
113  const gsl_vector* roots_array, void* parameters, gsl_vector* function);
114 
125  unsigned int iter, gsl_multiroot_fsolver* solver);
126 
156  double degeneracy, double mass, double number_density, double temperature,
157  double statistics, double mu_initial_guess, double solution_precision,
158  Integrator* integrator, double* effective_chemical_potential);
159 
175  double effective_chemical_potential(double degeneracy, double mass,
176  double number_density, double temperature,
177  double statistics,
178  double solution_precision);
179 
180  private:
185 };
186 
187 } // namespace smash
188 
189 #endif // SRC_INCLUDE_SMASH_CHEMICALPOTENTIAL_H_
A class which encapsulates a GSL algorithm for finding the effective chemical potential and supportin...
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.
Integrator integrator_
A wrapper for gsl numerical integration.
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 per...
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 procedur...
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 ...
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,...
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.
A C++ interface for numerical integration in one dimension with the GSL CQUAD integration functions.
Definition: integrate.h:106
Definition: action.h:24
Struct, root equations, and procedure for finding the effective chemical potential for a given partic...
double temperature
temperature T of the system [GeV]
double degeneracy
degeneracy g of the particle species
double number_density
number density n of the particle species [GeV^3]
double statistics
statistics quantum statistics of the particles species (+1 for Fermi, -1 for Bose,...
Integrator * integrator
wrapper for gsl numerical integration
double mass
(pole) mass m of the particle species