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 \htmlonly 00026 <a href="../latex/refman.pdf">PDF documentation</a> 00027 \endhtmlonly 00028 00029 \hline 00030 \section part_ug_section Quick Reference to User's Guide 00031 - \ref part_section 00032 - \ref nuclei_section 00033 - \ref partsource_section 00034 - \ref partref_section 00035 00036 \hline 00037 \section part_section Particles 00038 00039 These classes in the library \o2p calculate the 00040 thermodynamic properties of interacting and non-interacting 00041 quantum and \classical particles. 00042 00043 The class \ref part is the basic structure for a particle: 00044 - part::m - mass 00045 - part::g - degeneracy factor (e.g. \f$2j+1\f$) 00046 - part::n - number density 00047 - part::ed - energy density 00048 - part::pr - pressure 00049 - part::en - entropy density 00050 - part::ms - effective mass, i.e. \f$ m^{*} \f$ 00051 - part::nu - effective chemical potential, i.e. \f$ \nu \f$ 00052 - part::inc_rest_mass - True if the rest mass is included 00053 - part::non_interacting - False if the particle includes interactions 00054 00055 The data members part::ms and part::nu allow one to specify 00056 modifications to the mass and the chemical potential due to 00057 interactions. This allows one to calculate the properties of 00058 particle due to interactions so long as the basic form of the 00059 free-particle dispersion relation is unchanged, i.e. 00060 \f[ 00061 \sqrt{k^2+m^2} - \mu \rightarrow \sqrt{k^2+m^{* 2}} - \nu 00062 \f] 00063 If the particle is non-interacting, then part::nu and part::ms are 00064 sometimes used by \o2p functions for temporary storage. 00065 00066 If part::inc_rest_mass is \c true (as is the default in all of the 00067 classes except \ref nucleus), then all 00068 functions include the rest mass energy density in the energy 00069 density, the "mu" functions expect that the rest mass is included 00070 in part::mu or part::nu as input and the "density" functions 00071 output part::mu or part::nu including the rest mass. 00072 00073 When part::inc_rest_mass is true, antiparticles are implemented by 00074 choosing the antiparticle chemical potential to be \f$ - \mu \f$, 00075 and when inc_rest_mass is false, antiparticles are implemented by 00076 choosing the chemical potential of the antiparticles to be \f$ - 00077 \mu - 2 m \f$. 00078 00079 The thermodynamic identity used to compute the pressure for 00080 interacting particles is 00081 \f[ 00082 P = -\varepsilon + s T + \nu n 00083 \f] 00084 where part::nu is used. This way, the particle class doesn't need to 00085 know about the structure of the interactions to ensure that the 00086 thermodynamic identity is satisfied. Note that in the \o2e 00087 library, where in the equations of state the normal thermodynamic 00088 identity is used 00089 \f[ 00090 P = -\varepsilon + s T + \mu n 00091 \f] 00092 Frequently, the interactions which create an effective chemical 00093 potential which is different than part::mu thus create extra terms in 00094 the pressure and the energy density for the given equation of 00095 state. 00096 00097 At zero temperature, fermions and bosons can be treated exactly in 00098 the classes \ref fermion and \ref boson. The \ref quark class is a 00099 descendant of the \ref fermion class which contains extra data 00100 members for the quark condensate and the contribution to the bag 00101 constant. The \ref classical classical is a descendant of both 00102 fermion and boson and calculates everything in the classical 00103 limit. 00104 00105 At finite temperature, there are different classes corresponding 00106 to different approaches to computing the integrals over the 00107 distribution functions. The approximation scheme from \ref Johns96 00108 is used in eff_boson, eff_fermion, and eff_quark. An exact method 00109 employing direct integration of the distribution functions is used 00110 in rel_boson and rel_fermion, but these are necessarily quite a 00111 bit slower. 00112 00113 The class \ref eff_fermion usually works to within about 1 part in 00114 \f$ 10^4 \f$, but can be as bad as 1 part in \f$ 10^2 \f$ in some 00115 more extreme cases. The default settings for \ref rel_fermion give 00116 an accuracy of at least 1 part in \f$ 10^6 \f$ (and frequently 00117 better than this). For \ref rel_fermion, some additional accuracy 00118 may be obtained by decreasing the integration tolerances. 00119 \comment 00120 7/6/09 - These tolerances were determined from bm_part2.cpp using 00121 the mathematica numbers in internal/partmath.cpp. I'm not sure the 00122 testing in bm_part.cpp is really that useful. 00123 \endcomment 00124 00125 The class nonrel_fermion assumes a non-relativistic dispersion 00126 relation for fermions. It includes zero-temperature methods and an 00127 exact method for finite temperatures. The non-relativistic 00128 integrands are much simpler and \ref nonrel_fermion uses the 00129 appropriate GSL functions (which are nearly exact) to compute 00130 them. 00131 00132 \hline 00133 00134 <b>Units:</b> 00135 00136 Factors of \f$ \hbar, c \f$ and \f$ k_B \f$ have been removed 00137 everywhere, so that mass, energy, and temperature all have the 00138 same units. Number and entropy densities have units of mass cubed 00139 (or energy cubed). This particle classes can be used with any 00140 system of units which is based on powers of one unit, i.e. 00141 \f$ [n] = [T]^3 = [m]^3 = [P]^{3/4} = [\varepsilon]^{3/4}\f$, etc. 00142 00143 \hline 00144 00145 <b>Derivative information:</b> 00146 00147 Sometimes it is useful to know derivatives like $ds/dT$ in 00148 addition to the energy and pressure. There are three classes which 00149 compute these derivatives for fermions and classical particles. 00150 The class \ref sn_classical handles the nondegenerate limit, \ref 00151 sn_fermion handles fermions and \ref sn_nr_fermion handles 00152 nonrelativistic fermions. These classes compute the derivatives 00153 \f[ 00154 \left(\frac{d n}{d \mu}\right)_{T}, \quad 00155 \left(\frac{d n}{d T}\right)_{\mu}, \quad \mathrm{and} \quad 00156 \left(\frac{d s}{d T}\right)_{\mu} 00157 \f] 00158 All other first derivatives of the thermodynamic functions can 00159 be written in terms of these three. To see how to compute the 00160 specific heat, for example, see the discussion in the documentation 00161 of \ref deriv_part. 00162 00163 \hline 00164 \section nuclei_section Atomic nuclei 00165 00166 \b Nuclei 00167 00168 Atomic nuclei, class \ref nucleus, are implemented as descendants of 00169 \ref classical. This class sets the value of nucleus::inc_rest_mass to 00170 false by default. 00171 00172 Nuclear mass formulas are given as children of \ref nuclear_mass. 00173 The class ame_mass provides the experimental data from \ref Audi95 00174 or \ref Audi03, the class mnmsk_mass provides the mass formula 00175 from \ref Moller95, and the class hfb_mass provides the mass 00176 formula from \ref Goriely02, \ref Samyn04, or \ref Goriely07. A 00177 simple semi-empirical mass formula is given in \ref 00178 semi_empirical_mass and this can be fit to experimentally measured 00179 masses using \ref mass_fit. 00180 00181 The class \ref nuclear_dist provides an generic base 00182 class for a \collection of several nuclei with an STL-like 00183 iterator. There are two implementations of this base class, 00184 simple_dist which provides a simple distribution and 00185 \ref full_dist which enumerates all the nuclei for a 00186 given mass formula. 00187 00188 \hline 00189 \section partsource_section Example source code 00190 00191 \subsection exlist_subsect Example list 00192 00193 - \ref ex_part_sect 00194 - \ref ex_mass_fit_sect 00195 00196 \subsection ex_part_sect Particle example 00197 00198 \dontinclude ex_part.cpp 00199 \skip Example: 00200 \until End of example 00201 00202 \subsection ex_mass_fit_sect Nuclear mass fit example 00203 00204 \dontinclude ex_mass_fit.cpp 00205 \skip Example: 00206 \until End of example 00207 00208 \hline 00209 \section partref_section Bibliography 00210 00211 Some of the references which contain links should direct you to 00212 the work referred to directly through dx.doi.org. 00213 00214 \anchor Audi95 Audi95: 00215 \htmlonly 00216 <a href="http://dx.doi.org/10.1016/0375-9474(95)00445-9"> 00217 G. Audi and A. H. Wapstra</a>, 00218 \endhtmlonly 00219 \latexonly 00220 \href{http://dx.doi.org/10.1016/0375-9474(95)00445-9}{ 00221 G. Audi and A. H. Wapstra}, 00222 \endlatexonly 00223 Nucl. Phys. A \b 595 (1995) 409-480. 00224 00225 \anchor Audi03 Audi03: 00226 \htmlonly 00227 <a href="http://dx.doi.org/10.1016/j.nuclphysa.2003.11.003"> 00228 G.Audi, A. H. Wapstra and C. Thibault</a>, 00229 \endhtmlonly 00230 \latexonly 00231 \href{http://dx.doi.org/10.1016/j.nuclphysa.2003.11.003}{ 00232 G.Audi, A. H. Wapstra and C. Thibault} , 00233 \endlatexonly 00234 Nucl. Phys. A \b 729 (2003) 337. 00235 00236 \anchor Callen Callen 00237 H. B. Callen, "Thermodynamics and an Introduction to 00238 Thermostatistics.", 2nd edition. 00239 00240 \anchor Eggleton73 Eggleton73: 00241 \htmlonly 00242 <a href="http://adsabs.harvard.edu/abs/1973A%26A....23..325E"> 00243 P. P. Eggleton, J. Faulkner, and B. P. Flannery</a>, 00244 \endhtmlonly 00245 \latexonly 00246 \href{http://adsabs.harvard.edu/abs/1973A%26A....23..325E}{ 00247 P. P. Eggleton, J. Faulkner, and B. P. Flannery}, 00248 \endlatexonly 00249 Astron. and Astrophys. \b 23 (1973) 325. 00250 \comment 00251 As of 3/11/09 a DOI link does not appear to be available 00252 \endcomment 00253 00254 \anchor Goriely02 Goriely02: 00255 \htmlonly 00256 <a href="http://link.aps.org/doi/10.1103/PhysRevC.66.024326"> 00257 S. Goriely, M. Samyn, P.-H. Heenen, J. M. Pearson, and F. Tondeur</a>, 00258 \endhtmlonly 00259 \latexonly 00260 \href{http://link.aps.org/doi/10.1103/PhysRevC.66.024326}{ 00261 S. Goriely, M. Samyn, P.-H. Heenen, J. M. Pearson, and F. Tondeur}, 00262 \endlatexonly 00263 Phys. Rev. C \b 66 (2002) 024326. 00264 00265 \anchor Goriely07 Goriely07: 00266 \htmlonly 00267 <a href="http://link.aps.org/doi/10.1103/PhysRevC.75.064312"> 00268 S. Goriely, M. Samyn, and J. M. Pearson</a>, 00269 \endhtmlonly 00270 \latexonly 00271 \href{http://link.aps.org/doi/10.1103/PhysRevC.75.064312}{ 00272 S. Goriely, M. Samyn, and J. M. Pearson}, 00273 \endlatexonly 00274 Phys. Rev. C \b 75 (2007) 064312. 00275 00276 \anchor Johns96 Johns96: 00277 \htmlonly 00278 <a href="http://dx.doi.org/10.1086/178212"> 00279 Johns, P.J. Ellis, and J.M. Lattimer</a>, 00280 \endhtmlonly 00281 \latexonly 00282 \href{http://dx.doi.org/10.1086/178212}{ 00283 Johns, P.J. Ellis, and J.M. Lattimer}, 00284 \endlatexonly 00285 Astrophys. J. \b 473 (1996) 1020. 00286 00287 \anchor Landau Landau: 00288 L. D. Landau, "Statistical Physics: Part 1", 3rd Edition. 00289 00290 \anchor Moller95 Moller95: 00291 \htmlonly 00292 <a href="http://dx.doi.org/10.1006/adnd.1995.1002"> 00293 P. Moller, J.R. Nix, W.D. Myers, and W.J. Switecki</a>, 00294 \endhtmlonly 00295 \latexonly 00296 \href{http://dx.doi.org/10.1006/adnd.1995.1002}{ 00297 P. Moller, J.R. Nix, W.D. Myers, and W.J. Switecki}, 00298 \endlatexonly 00299 At. Data Nucl. Data Tables \b 59 (1995) 185. 00300 00301 \anchor Samyn04 Samyn04: 00302 \htmlonly 00303 <a href="http://link.aps.org/doi/10.1103/PhysRevC.70.044309"> 00304 M. Samyn, S. Goriely, M. Bender and J. M. Pearson</a>, 00305 \endhtmlonly 00306 \latexonly 00307 \href{http://link.aps.org/doi/10.1103/PhysRevC.70.044309}{ 00308 M. Samyn, S. Goriely, M. Bender and J. M. Pearson}, 00309 \endlatexonly 00310 Phys. Rev. C \b 70 (2004) 044309. 00311 00312 */
Documentation generated with Doxygen and provided under the GNU Free Documentation License. See License Information for details.
Project hosting provided by
,
O2scl Sourceforge Project Page