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 #ifndef O2SCL_GEN_POTENTIAL_EOS_H 00024 #define O2SCL_GEN_POTENTIAL_EOS_H 00025 00026 #include <iostream> 00027 #include <string> 00028 #include <cmath> 00029 #include <o2scl/constants.h> 00030 #include <o2scl/mroot.h> 00031 #include <o2scl/hadronic_eos.h> 00032 #include <o2scl/part.h> 00033 #include <o2scl/collection.h> 00034 #include <o2scl/gsl_deriv.h> 00035 #include <o2scl/nonrel_fermion.h> 00036 #include <cstdlib> 00037 00038 #ifndef DOXYGENP 00039 namespace o2scl { 00040 #endif 00041 00042 /** 00043 \brief Generalized potential model equation of state 00044 00045 The single particle energy is defined by the functional derivative 00046 of the energy density with respect to the distribution function 00047 \f[ 00048 e_{\tau} = \frac{\delta \varepsilon}{\delta f_{\tau}} 00049 \f] 00050 00051 The effective mass is defined by 00052 \f[ 00053 \frac{m^{*}}{m} = \left( \frac{m}{k} 00054 \frac{d e_{\tau}}{d k} 00055 \right)^{-1}_{k=k_F} 00056 \f] 00057 00058 In all of the models, the kinetic energy density is 00059 \f$\tau_n+\tau_p\f$ where 00060 \f[ 00061 \tau_i = \frac{2}{(2 \pi)^3} \int d^3 k~ 00062 \left(\frac{k^2}{2 m}\right)f_i(k,T) 00063 \f] 00064 and the number density is 00065 \f[ 00066 \rho_i = \frac{2}{(2 \pi)^3} \int d^3 k~f_i(k,T) 00067 \f] 00068 00069 When \ref form == \ref mdi_form or 00070 \ref gbd_form, the potential energy 00071 density is given by \ref Das03 : 00072 \f[ 00073 V(\rho,\delta) = \frac{Au}{\rho_0} \rho_n \rho_p + 00074 \frac{A_l}{2 \rho_0} \left(\rho_n^2+\rho_p^2\right)+ 00075 \frac{B}{\sigma+1} \frac{\rho^{\sigma+1}}{\rho_0^{\sigma}} 00076 \left(1-x \delta^2\right)+V_{mom}(\rho,\delta) 00077 \f] 00078 where \f$\delta=1-2 \rho_p/(\rho_n+\rho_p)\f$. 00079 If \ref form == \ref mdi_form, then 00080 \f[ 00081 V_{mom}(\rho,\delta)= 00082 \frac{1}{\rho_0} 00083 \sum_{\tau,\tau^{\prime}} C_{\tau,\tau^{\prime}} 00084 \int \int 00085 d^3 k d^3 k^{\prime} 00086 \frac{f_{\tau}(\vec{k}) f_{{\tau}^{\prime}} (\vec{k}^{\prime})} 00087 {1-(\vec{k}-\vec{k}^{\prime})^2/\Lambda^2} 00088 \f] 00089 where \f$C_{1/2,1/2}=C_{-1/2,-1/2}=C_{\ell}\f$ and 00090 \f$C_{1/2,-1/2}=C_{-1/2,1/2}=C_{u}\f$. 00091 Otherwise if \ref form == \ref gbd_form, then 00092 \f[ 00093 V_{mom}(\rho,\delta)= 00094 \frac{1}{\rho_0}\left[ 00095 C_{\ell} \left( \rho_n g_n + \rho_p g_p \right)+ 00096 C_u \left( \rho_n g_p + \rho_p g_n \right) 00097 \right] 00098 \f] 00099 where 00100 \f[ 00101 g_i=\frac{\Lambda^2}{\pi^2}\left[ k_{F,i}-\Lambda 00102 \mathrm{tan}^{-1} \left(k_{F,i}/\Lambda\right) \right] 00103 \f] 00104 00105 Otherwise, if \ref form == \ref bgbd_form, \ref bpalb_form 00106 or \ref sl_form, then the potential energy density is 00107 given by \ref Bombaci01 : 00108 \f[ 00109 V(\rho,\delta) = V_A+V_B+V_C 00110 \f] 00111 \f[ 00112 V_A = \frac{2 A}{3 \rho_0} 00113 \left[ \left(1+\frac{x_0}{2}\right)\rho^2- 00114 \left(\frac{1}{2}+x_0\right)\left(\rho_n^2+\rho_p^2\right)\right] 00115 \f] 00116 \f[ 00117 V_B=\frac{4 B}{3 \rho_0^{\sigma}} \frac{T}{1+4 B^{\prime} T / 00118 \left(3 \rho_0^{\sigma-1} \rho^2\right)} 00119 \f] 00120 where 00121 \f[ 00122 T = \rho^{\sigma-1} \left[ \left( 1+\frac{x_3}{2} \right) \rho^2 - 00123 \left(\frac{1}{2}+x_3\right)\left(\rho_n^2+\rho_p^2\right)\right] 00124 \f] 00125 The term \f$V_C\f$ is: 00126 \f[ 00127 V_C=\sum_{i=1}^{i_{\mathrm{max}}} 00128 \frac{4}{5} \left(C_{i}+2 z_i\right) \rho 00129 (g_{n,i}+g_{p,i})+\frac{2}{5}\left(C_i -8 z_i\right) 00130 (\rho_n g_{n,i} + \rho_p g_{p,i}) 00131 \f] 00132 where 00133 \f[ 00134 g_{\tau,i} = \frac{2}{(2 \pi)^3} \int d^3 k f_{\tau}(k,T) 00135 g_i(k) 00136 \f] 00137 00138 For \ref form == \ref bgbd_form or \ref form == \ref bpalb_form, 00139 the form factor is given by 00140 \f[ 00141 g_i(k) = \left(1+\frac{k^2}{\Lambda_i^2}\right)^{-1} 00142 \f] 00143 while for \ref form == \ref sl_form, the form factor 00144 is given by 00145 \f[ 00146 g_i(k) = 1-\frac{k^2}{\Lambda_i^2} 00147 \f] 00148 where \f$\Lambda_1\f$ is specified in the parameter 00149 \c Lambda when necessary. 00150 00151 \htmlonly 00152 See Mathematica notebook at 00153 <a href="gen_potential_eos.nb"> 00154 gen_potential_eos.nb</a>, and 00155 <a href="gen_potential_eos.ps"> 00156 gen_potential_eos.ps</a>. 00157 \endhtmlonly 00158 \latexonly 00159 See Mathematica notebook at 00160 \begin{verbatim} 00161 doc/o2scl/extras/gen_potential_eos.nb 00162 doc/o2scl/extras/gen_potential_eos.ps 00163 \end{verbatim} 00164 \endlatexonly 00165 00166 \bug The BGBD eos doesn't work and the 00167 effective mass for the GBD eos doesn't work 00168 00169 \todo Calculate the chemical potentials analytically 00170 00171 */ 00172 class gen_potential_eos : public hadronic_eos { 00173 public: 00174 00175 /// \name The parameters for the various interactions 00176 //@{ 00177 double x,Au,Al,rho0,B,sigma,Cl,Cu,Lambda; 00178 double A,x0,x3,Bp,C1,z1,Lambda2,C2,z2,bpal_esym; 00179 int sym_index; 00180 //@} 00181 00182 gen_potential_eos(); 00183 00184 /// Equation of state as a function of density. 00185 virtual int calc_e(fermion &ne, fermion &pr, thermo <); 00186 00187 /// Form of potential 00188 int form; 00189 00190 /// The "momentum-dependent-interaction" form 00191 static const int mdi_form=1; 00192 00193 /// The modifed GBD form 00194 static const int bgbd_form=2; 00195 00196 /// The form from \ref Prakash88 as formulated in \ref Bombaci01 00197 static const int bpalb_form=3; 00198 00199 /// The "SL" form. See \ref Bombaci01. 00200 static const int sl_form=4; 00201 00202 /// The Gale, Bertsch, Das Gupta from \ref Gale87. 00203 static const int gbd_form=5; 00204 00205 /// The form from \ref Prakash88. 00206 static const int bpal_form=6; 00207 00208 /** \brief Set the derivative object to calculate the 00209 chemical potentials 00210 */ 00211 int set_mu_deriv(deriv<void *,funct<void *> > &de) { 00212 mu_deriv_set=true; 00213 mu_deriv_ptr=&de; 00214 return 0; 00215 } 00216 00217 /// The default derivative object for calculating chemical potentials 00218 gsl_deriv<void *,funct<void *> > def_mu_deriv; 00219 00220 /// Default nonrelativistic neutron 00221 nonrel_fermion def_nr_neutron; 00222 00223 /// Default nonrelativistic proton 00224 nonrel_fermion def_nr_proton; 00225 00226 /// Return string denoting type ("gen_potential_eos") 00227 virtual const char *type() { return "gen_potential_eos"; } 00228 00229 protected: 00230 00231 #ifndef DOXYGEN_INTERNAL 00232 00233 /// True of the derivative object has been set 00234 bool mu_deriv_set; 00235 00236 /// The derivative object 00237 deriv<void *,funct<void *> > *mu_deriv_ptr; 00238 00239 /// Compute the momentum integral for \ref mdi_form 00240 double mom_integral(double pft, double pftp); 00241 00242 /** \name The mode for the energy() function [protected] */ 00243 //@{ 00244 int mode; 00245 static const int nmode=1; 00246 static const int pmode=2; 00247 static const int normal=0; 00248 //@} 00249 00250 /// Compute the energy 00251 double energy(double x); 00252 00253 #endif 00254 00255 }; 00256 00257 template<> int io_tlate<gen_potential_eos>::input 00258 (cinput *co, in_file_format *ins, 00259 gen_potential_eos *sk); 00260 template<> int io_tlate<gen_potential_eos>::output 00261 (coutput *co, out_file_format *outs, 00262 gen_potential_eos *sk); 00263 template<> const char *io_tlate<gen_potential_eos>::type(); 00264 00265 typedef io_tlate<gen_potential_eos> gen_potential_eos_io_type; 00266 00267 #ifndef DOXYGENP 00268 } 00269 #endif 00270 00271 #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