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_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 \future Calculate the chemical potentials analytically 00170 00171 */ 00172 class gen_potential_eos : public hadronic_eos_eden { 00173 00174 public: 00175 00176 /// \name The parameters for the various interactions 00177 //@{ 00178 double x,Au,Al,rho0,B,sigma,Cl,Cu,Lambda; 00179 double A,x0,x3,Bp,C1,z1,Lambda2,C2,z2,bpal_esym; 00180 int sym_index; 00181 //@} 00182 00183 gen_potential_eos(); 00184 00185 /// Equation of state as a function of density. 00186 virtual int calc_e(fermion &ne, fermion &pr, thermo <); 00187 00188 /// Form of potential 00189 int form; 00190 00191 /// The "momentum-dependent-interaction" form 00192 static const int mdi_form=1; 00193 00194 /// The modifed GBD form 00195 static const int bgbd_form=2; 00196 00197 /// The form from \ref Prakash88 as formulated in \ref Bombaci01 00198 static const int bpalb_form=3; 00199 00200 /// The "SL" form. See \ref Bombaci01. 00201 static const int sl_form=4; 00202 00203 /// The Gale, Bertsch, Das Gupta from \ref Gale87. 00204 static const int gbd_form=5; 00205 00206 /// The form from \ref Prakash88. 00207 static const int bpal_form=6; 00208 00209 /** \brief Set the derivative object to calculate the 00210 chemical potentials 00211 */ 00212 int set_mu_deriv(deriv<int ,funct<int> > &de) { 00213 mu_deriv_set=true; 00214 mu_deriv_ptr=&de; 00215 return 0; 00216 } 00217 00218 /// The default derivative object for calculating chemical potentials 00219 gsl_deriv<int ,funct<int> > def_mu_deriv; 00220 00221 /// Default nonrelativistic neutron 00222 nonrel_fermion def_nr_neutron; 00223 00224 /// Default nonrelativistic proton 00225 nonrel_fermion def_nr_proton; 00226 00227 /// Return string denoting type ("gen_potential_eos") 00228 virtual const char *type() { return "gen_potential_eos"; } 00229 00230 protected: 00231 00232 #ifndef DOXYGEN_INTERNAL 00233 00234 /// True of the derivative object has been set 00235 bool mu_deriv_set; 00236 00237 /// The derivative object 00238 deriv<int ,funct<int> > *mu_deriv_ptr; 00239 00240 /// Compute the momentum integral for \ref mdi_form 00241 double mom_integral(double pft, double pftp); 00242 00243 /** \name The mode for the energy() function [protected] */ 00244 //@{ 00245 int mode; 00246 static const int nmode=1; 00247 static const int pmode=2; 00248 static const int normal=0; 00249 //@} 00250 00251 /// Compute the energy 00252 double energy(double x); 00253 00254 #endif 00255 00256 }; 00257 00258 template<> int io_tlate<gen_potential_eos>::input 00259 (cinput *co, in_file_format *ins, 00260 gen_potential_eos *sk); 00261 template<> int io_tlate<gen_potential_eos>::output 00262 (coutput *co, out_file_format *outs, 00263 gen_potential_eos *sk); 00264 template<> const char *io_tlate<gen_potential_eos>::type(); 00265 00266 typedef io_tlate<gen_potential_eos> gen_potential_eos_io_type; 00267 00268 #ifndef DOXYGENP 00269 } 00270 #endif 00271 00272 #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