![]() |
Particles and Nuclei Sub-Library: Version 0.910
|
These classes in the library O2scl_part calculate the thermodynamic properties of interacting and non-interacting quantum and classical particles.
The class part is the basic structure for a particle:
The data members part::ms and part::nu allow one to specify modifications to the mass and the chemical potential due to interactions. This allows one to calculate the properties of particle due to interactions so long as the basic form of the free-particle dispersion relation is unchanged, i.e.
If the particle is non-interacting, then part::nu and part::ms are sometimes used by O2scl_part functions for temporary storage.
If part::inc_rest_mass is true
(as is the default in all of the classes except nucleus), then all functions include the rest mass energy density in the energy density, the "mu" functions expect that the rest mass is included in part::mu or part::nu as input and the "density" functions output part::mu or part::nu including the rest mass.
When part::inc_rest_mass is true, antiparticles are implemented by choosing the antiparticle chemical potential to be , and when inc_rest_mass is false, antiparticles are implemented by choosing the chemical potential of the antiparticles to be
.
The thermodynamic identity used to compute the pressure for interacting particles is
where part::nu is used. This way, the particle class doesn't need to know about the structure of the interactions to ensure that the thermodynamic identity is satisfied. Note that in the O2scl_eos library, where in the equations of state the normal thermodynamic identity is used
Frequently, the interactions which create an effective chemical potential which is different than part::mu thus create extra terms in the pressure and the energy density for the given equation of state.
At zero temperature, fermions and bosons can be treated exactly in the classes fermion and boson. The quark class is a descendant of the fermion class which contains extra data members for the quark condensate and the contribution to the bag constant. The classical classical is a descendant of both fermion and boson and calculates everything in the classical limit.
At finite temperature, there are different classes corresponding to different approaches to computing the integrals over the distribution functions. The approximation scheme from Johns96 is used in eff_boson, eff_fermion, and eff_quark. An exact method employing direct integration of the distribution functions is used in rel_boson and rel_fermion, but these are necessarily quite a bit slower.
The class eff_fermion usually works to within about 1 part in , but can be as bad as 1 part in
in some more extreme cases. The default settings for rel_fermion give an accuracy of at least 1 part in
(and frequently better than this). For rel_fermion, some additional accuracy may be obtained by decreasing the integration tolerances.
The class nonrel_fermion assumes a non-relativistic dispersion relation for fermions. It includes zero-temperature methods and an exact method for finite temperatures. The non-relativistic integrands are much simpler and nonrel_fermion uses the appropriate GSL functions (which are nearly exact) to compute them.
Units:
Factors of and
have been removed everywhere, so that mass, energy, and temperature all have the same units. Number and entropy densities have units of mass cubed (or energy cubed). This particle classes can be used with any system of units which is based on powers of one unit, i.e.
, etc.
Derivative information:
Sometimes it is useful to know derivatives like in addition to the energy and pressure. There are three classes which compute these derivatives for fermions and classical particles. The class sn_classical handles the nondegenerate limit, sn_fermion handles fermions and sn_nr_fermion handles nonrelativistic fermions. These classes compute the derivatives
All other first derivatives of the thermodynamic functions can be written in terms of these three. To see how to compute the specific heat, for example, see the discussion in the documentation of part_deriv.
Documentation generated with Doxygen. Provided under the GNU Free Documentation License (see License Information).