main.h

00001 /*
00002   -------------------------------------------------------------------
00003   
00004   Copyright (C) 2006, 2007, 2008, Andrew W. Steiner
00005   
00006   This file is part of O2scl.
00007   
00008   O2scl is free software; you can redistribute it and/or modify
00009   it under the terms of the GNU General Public License as published by
00010   the Free Software Foundation; either version 3 of the License, or
00011   (at your option) any later version.
00012   
00013   O2scl is distributed in the hope that it will be useful,
00014   but WITHOUT ANY WARRANTY; without even the implied warranty of
00015   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00016   GNU General Public License for more details.
00017   
00018   You should have received a copy of the GNU General Public License
00019   along with O2scl. If not, see <http://www.gnu.org/licenses/>.
00020 
00021   -------------------------------------------------------------------
00022 */
00023 /** \mainpage
00024 
00025     \section part_ug_section User's guide
00026 
00027     - \ref part_section
00028     - \ref nuclei_section
00029     - \ref todo
00030     - \ref bug
00031     - \ref partref_section
00032 
00033     \htmlonly
00034     <a href="../latex/refman.pdf">PDF documentation</a>
00035     \endhtmlonly
00036 
00037     \hline
00038     \section part_section Particles
00039 
00040     These classes in the library \c o2scl_part calculate the
00041     thermodynamic properties of interacting and non-interacting
00042     quantum and classical particles.
00043 
00044     The class \ref part is the basic structure for a particle:
00045     - m - mass
00046     - g - degeneracy factor (i.e. \f$2j+1\f$)
00047     - n - number density
00048     - ns - scalar number density 
00049     - ed - energy density
00050     - pr - pressure
00051     - en - entropy
00052     - ms - effective mass
00053     - nu - effective chemical potential
00054     - bool inc_rest_mass - True if the rest mass is included
00055     - bool non_interacting - False if the particle includes interactions
00056     - std::string name - the name
00057 
00058     The data members part::ms and part::nu allow one to specify
00059     modifications to the mass and the chemical potential due to
00060     interactions. This allows one to calculate the properties of
00061     particle due to interactions so long as the basic form of the
00062     free-particle dispersion relation is unchanged, i.e.
00063     \f[
00064     \sqrt{k^2+m^2} - \mu \rightarrow \sqrt{k^2+m^{* 2}} - \nu 
00065     \f]
00066     Typically, if the particle is
00067     non-interacting, then \c mu and \c m are copied to \c nu and
00068     \c ms, computations are performed with \c nu and \c ms, and
00069     then, if necessary, the result for \c nu is copied back to 
00070     \c mu.
00071 
00072     If part::inc_rest_mass is \c true (as is the default), then all
00073     functions include the rest mass energy density in the energy
00074     density, the "mu" functions expect that the rest mass is included
00075     in part::mu or part::nu as input and the "density" functions
00076     output part::mu or part::nu including the rest mass.
00077     
00078     When inc_rest_mass is true, antiparticles are implemented by
00079     choosing the antiparticle chemical potential to be \f$ - \mu \f$,
00080     and when inc_rest_mass is false, antiparticles are implemented by
00081     choosing the chemical potential of the antiparticles to be \f$ -
00082     \mu - 2 m \f$.
00083 
00084     The thermodynamic identity used to compute the pressure for
00085     interacting particles is
00086     \f[
00087     P = -\varepsilon + s T + \nu n
00088     \f]
00089     where \c nu is used. This way, the particle class doesn't need to
00090     know about the structure of the interactions to ensure that the
00091     thermodynamic identity is satisfied. Note that in the \c o2scl_eos
00092     library, where in the equations of state the normal thermodynamic
00093     identity is used
00094     \f[
00095     P = -\varepsilon + s T + \mu n
00096     \f]
00097     Frequently, the interactions which create an effective chemical
00098     potential which is different than \c mu thus create extra terms in
00099     the pressure and the energy density for the given equation of
00100     state.
00101 
00102     At zero temperature, fermions and bosons can be treated exactly in
00103     the classes \ref fermion and \ref boson. \ref quark is a
00104     descendant of the \ref fermion class which contains extra data
00105     members for the quark condensate and the contribution to the bag
00106     constant. \ref classical is a descendant of both fermion and boson
00107     and calculates everything in the classical limit.
00108 
00109     At finite temperature, there are a couple different approaches.  The
00110     approximation scheme from \ref Johns96 is used in eff_boson,
00111     eff_fermion, and eff_quark. An exact method is used in rel_boson
00112     and rel_fermion, but these are necessarily quite a bit slower.
00113 
00114     The class nonrel_fermion can be used to assume a non-relativistic
00115     dispersion relation for fermions and includes zero-temperature
00116     methods and an exact method for finite temperatures.
00117 
00118     \hline
00119 
00120     <b>Units:</b>
00121 
00122     Factors of \f$ \hbar, c \f$ and \f$ k_B \f$ have been removed
00123     everywhere, so that mass, energy, and temperature all have the
00124     same units.  Number densities have units of mass cubed (or energy
00125     cubed), and entropy is unitless.
00126 
00127     \hline
00128     \section nuclei_section Atomic nuclei
00129 
00130     \b Nuclei
00131 
00132     Atomic nuclei, class \ref nucleus, are implemented as descendants of
00133     \ref classical. This class sets the value of nucleus::inc_rest_mass to
00134     false by default. 
00135 
00136     Nuclear mass formulas are given as children of \ref nuclear_mass. 
00137     The class mnms95_mass provides the mass formula from \ref Moller95,
00138     and the class ame_mass provides the mass formula from \ref Audi95
00139     or \ref Audi03. 
00140     
00141     The class \ref nuclear_dist provides an experimental generic base
00142     class for a collection of several nuclei with an STL-like
00143     iterator.  The sole descendant, simple_dist, provides a simple
00144     collection of nuclei.
00145 
00146     \hline
00147     \section parttodo_section Other Todos and Bugs
00148 
00149     Only more general items which aren't particular to a specific
00150     class are listed here. See the full lists at \ref todo and \ref bug. 
00151 
00152     \bug 
00153     - Most of the boson classes don't work right now. 
00154 
00155     \hline
00156     \section partref_section Bibliography
00157 
00158     Some of the references which contain links should direct you to
00159     the work referred to directly through dx.doi.org.
00160 
00161     \anchor Audi95 Audi95: 
00162     \htmlonly
00163     <a href="http://dx.doi.org/10.1016/0375-9474(95)00445-9">
00164     G. Audi and A. H. Wapstra</a>,
00165     \endhtmlonly
00166     \latexonly
00167     \href{http://dx.doi.org/10.1016/0375-9474(95)00445-9}{
00168     G. Audi and A. H. Wapstra},
00169     \endlatexonly
00170     Nucl. Phys. A \b 595 (1995) 409-480.
00171 
00172     \anchor Audi03 Audi03: 
00173     \htmlonly
00174     <a href="http://dx.doi.org/10.1016/j.nuclphysa.2003.11.003">
00175     G.Audi, A. H. Wapstra and C. Thibault</a>,
00176     \endhtmlonly
00177     \latexonly
00178     \href{http://dx.doi.org/10.1016/j.nuclphysa.2003.11.003}{
00179     G.Audi, A. H. Wapstra and C. Thibault} ,
00180     \endlatexonly
00181     Nucl. Phys. A729 (2003) 337.
00182 
00183     \anchor Eggleton73 Eggleton73:
00184     P.P. Eggleton, J. Faulkner, and B.P. Flannery,
00185     Astron. and Astrophys. 23 (1973) 325.
00186 
00187     \anchor Johns96 Johns96:
00188     \htmlonly
00189     <a href="http://dx.doi.org/10.1086/178212">
00190     Johns, P.J. Ellis, and J.M. Lattimer</a>, 
00191     \endhtmlonly
00192     \latexonly
00193     \href{http://dx.doi.org/10.1086/178212}{
00194     Johns, P.J. Ellis, and J.M. Lattimer}, 
00195     \endlatexonly
00196     Astrophys. J. \b 473, (1996) 1020.
00197 
00198     \anchor Moller95 Moller95:
00199     \htmlonly
00200     <a href="http://dx.doi.org/10.1006/adnd.1995.1002">
00201     P. Moller, J.R. Nix, W.D. Myers, and W.J. Switecki</a>,
00202     \endhtmlonly
00203     \latexonly
00204     \href{http://dx.doi.org/10.1006/adnd.1995.1002}{
00205     P. Moller, J.R. Nix, W.D. Myers, and W.J. Switecki},
00206     \endlatexonly
00207     At. Data Nucl. Data Tables \b 59 (1995) 185.
00208 
00209 */

Documentation generated with Doxygen and provided under the GNU Free Documentation License. See License Information for details.

Project hosting provided by SourceForge.net Logo, O2scl Sourceforge Project Page