boson.h
Go to the documentation of this file.
1 /*
2  -------------------------------------------------------------------
3 
4  Copyright (C) 2006-2020, Andrew W. Steiner
5 
6  This file is part of O2scl.
7 
8  O2scl is free software; you can redistribute it and/or modify
9  it under the terms of the GNU General Public License as published by
10  the Free Software Foundation; either version 3 of the License, or
11  (at your option) any later version.
12 
13  O2scl is distributed in the hope that it will be useful,
14  but WITHOUT ANY WARRANTY; without even the implied warranty of
15  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  GNU General Public License for more details.
17 
18  You should have received a copy of the GNU General Public License
19  along with O2scl. If not, see <http://www.gnu.org/licenses/>.
20 
21  -------------------------------------------------------------------
22 */
23 #ifndef O2SCL_BOSON_H
24 #define O2SCL_BOSON_H
25 
26 /** \file boson.h
27  \brief File defining \ref o2scl::boson
28 */
29 
30 #include <string>
31 #include <iostream>
32 #include <fstream>
33 #include <math.h>
34 #include <o2scl/constants.h>
35 #include <o2scl/mroot.h>
36 #include <o2scl/inte.h>
37 
38 #include <o2scl/part.h>
39 
40 #ifndef DOXYGEN_NO_O2NS
41 namespace o2scl {
42 #endif
43 
44  /** \brief Boson class
45  */
46  class boson : public part {
47 
48  public:
49 
50  /// Create a boson with mass \c mass and degeneracy \c dof
51  boson(double mass=0.0, double dof=0.0);
52 
53  /** \brief The condensate
54 
55  The condensate variable is provided principally for
56  user storage and is mostly ignored by \o2p classes.
57  */
58  double co;
59 
60  /** \brief Calculate properties of massless bosons
61 
62  The expressions used are exact. The chemical potentials are
63  ignored.
64  */
65  virtual void massless_calc(double temper);
66 
67  /// Return string denoting type ("boson")
68  virtual const char *type() { return "boson"; }
69 
70  };
71 
72  /** \brief Compute the thermodynamic properties of a boson
73  [abstract base]
74  */
75  class boson_thermo {
76 
77  public:
78 
79  /** \brief Calculate thermodynamic properties as function of
80  chemical potential
81  */
82  virtual void calc_mu(boson &b, double temper)=0;
83 
84  /** \brief Calculate thermodynamic properties as function of
85  density
86  */
87  virtual void calc_density(boson &b, double temper)=0;
88 
89  /** \brief Calculate thermodynamic properties with antiparticles
90  as function of chemical potential
91  */
92  virtual void pair_mu(boson &b, double temper)=0;
93 
94  /** \brief Calculate thermodynamic properties with antiparticles
95  as function of density
96  */
97  virtual void pair_density(boson &b, double temper)=0;
98 
99  };
100 
101 #ifndef DOXYGEN_NO_O2NS
102 }
103 #endif
104 
105 #endif
o2scl::part_tl< double >
o2scl::boson_thermo::pair_density
virtual void pair_density(boson &b, double temper)=0
Calculate thermodynamic properties with antiparticles as function of density.
o2scl::boson::boson
boson(double mass=0.0, double dof=0.0)
Create a boson with mass mass and degeneracy dof.
o2scl::boson::type
virtual const char * type()
Return string denoting type ("boson")
Definition: boson.h:68
o2scl::boson
Boson class.
Definition: boson.h:46
o2scl::boson::co
double co
The condensate.
Definition: boson.h:58
o2scl::boson_thermo
Compute the thermodynamic properties of a boson [abstract base].
Definition: boson.h:75
o2scl::boson_thermo::calc_mu
virtual void calc_mu(boson &b, double temper)=0
Calculate thermodynamic properties as function of chemical potential.
o2scl::boson_thermo::pair_mu
virtual void pair_mu(boson &b, double temper)=0
Calculate thermodynamic properties with antiparticles as function of chemical potential.
o2scl::boson::massless_calc
virtual void massless_calc(double temper)
Calculate properties of massless bosons.
o2scl::boson_thermo::calc_density
virtual void calc_density(boson &b, double temper)=0
Calculate thermodynamic properties as function of density.

Documentation generated with Doxygen. Provided under the GNU Free Documentation License (see License Information).