00001 /* 00002 ------------------------------------------------------------------- 00003 00004 Copyright (C) 2006, 2007, 2008, 2009, 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 #ifndef O2SCL_BOSON_H 00024 #define O2SCL_BOSON_H 00025 00026 #include <string> 00027 #include <iostream> 00028 #include <fstream> 00029 #include <math.h> 00030 #include <o2scl/constants.h> 00031 #include <o2scl/mroot.h> 00032 #include <o2scl/inte.h> 00033 #include <o2scl/part.h> 00034 00035 #ifndef DOXYGENP 00036 namespace o2scl { 00037 #endif 00038 00039 /** 00040 \brief Boson class [abstract base] 00041 00042 For bosons: \n 00043 - if either nu or mu is greater than ms, then they are taken to 00044 be equal to ms \n 00045 - All contributions from any type of condensate are ignored. 00046 00047 \htmlonly 00048 This Mathematica notebook contains the series expansions 00049 for the bosonic integrals. 00050 functions. 00051 <a href="../extras/boson.nb"> 00052 boson.nb</a>, and 00053 <a href="../extras/boson.pdf"> 00054 boson.pdf</a>. 00055 \endhtmlonly 00056 \latexonly 00057 This Mathematica notebook contains the series expansions 00058 for the bosonic integrals. 00059 functions. 00060 \begin{verbatim} 00061 doc/o2scl/extras/boson.nb 00062 doc/o2scl/extras/boson.pdf 00063 \end{verbatim} 00064 \endlatexonly 00065 */ 00066 class boson : virtual public part { 00067 00068 public: 00069 00070 /** 00071 \brief The condensate 00072 00073 The condensate variable is mostly ignored by class boson 00074 and its descendants, and is provided for user storage. 00075 */ 00076 double co; 00077 00078 /// Create a boson with mass \c m and degeneracy \c g 00079 boson(double m=0.0, double g=0.0); 00080 00081 virtual int calc_mu(const double temper)=0; 00082 virtual int calc_density(const double temper)=0; 00083 virtual int pair_mu(const double temper)=0; 00084 virtual int pair_density(const double temper)=0; 00085 00086 /** 00087 \brief Calculate properties of massless bosons 00088 00089 The expressions used are exact. The chemical 00090 potentials are ignored and the scalar density is 00091 set to zero 00092 */ 00093 virtual int massless_calc_mu(const double temper); 00094 00095 /// Return string denoting type ("boson") 00096 virtual const char *type() { return "boson"; } 00097 00098 #ifndef DOXYGEN_INTERNAL 00099 00100 //friend class io_tlate<boson>; 00101 00102 #endif 00103 00104 protected: 00105 00106 }; 00107 00108 /* 00109 template<> int io_tlate<boson>::input 00110 (cinput *co, in_file_format *ins, boson *b); 00111 template<> int io_tlate<boson>::output 00112 (coutput *co, out_file_format *outs, boson *b); 00113 template<> const char *io_tlate<boson>::type(); 00114 00115 typedef io_tlate<boson> boson_io_type; 00116 */ 00117 00118 #ifndef DOXYGENP 00119 } 00120 #endif 00121 00122 #endif
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