Classes | Public Types | Public Member Functions | Public Attributes | List of all members
o2scl::eos_quark_njl Class Reference

Nambu Jona-Lasinio EOS. More...

#include <eos_quark_njl.h>

Inheritance diagram for o2scl::eos_quark_njl:
o2scl::eos_quark o2scl::eos_base o2scl::eos_quark_cfl o2scl::eos_quark_cfl6

Detailed Description

This class is based on Buballa99 .

The quantities L, G, and K are the coupling constants. In order to use the EOS, the user should either (i) set the bag constant, B0 directly, or (ii) use set_parameters() to modify the parameters (and then the set_parameters() function also automatically computes the bag constant.

This class can compute the EOS from the quark condensates (stored in o2scl::quark::qq) by setting fromqq to true (this is the default) or from the dynamical masses (stored in o2scl::part_tl::ms) by setting fromqq to false.

The Fermi gas-like contribution to the pressure due plus the the contribution from the bag pressure is stored in o2scl::part_tl::pr . For the $ T=0 $ EOS, the energy density for each quark is set so that $ \varepsilon + P = \mu n $ .

Finite T documentation

This implementation includes contributions from antiquarks.

Details

The Lagrangian is

\[ {\cal L} = \bar q ( i \partial{\hskip-2.0mm}/ - {\hat m_0}) q \;+\; G \sum_{k=0}^8 [\,({\bar q}\lambda_k q)^2 + ({\bar q} i\gamma_5\lambda_k q)^2\,] + {\cal L}_6 \]

\[ {\cal L}_6 = - K \,[ \,{\rm det}_f ({\bar q}(1+\gamma_5) q) + {\rm det}_f ({\bar q}(1-\gamma_5) q) \,] \, . \]

And the corresponding thermodynamic potential is

\[ \Omega = \Omega_{FG} + \Omega_{\mathrm{Int}} \]

where $\Omega_{FG}$ is the Fermi gas contribution and

\[ \frac{\Omega_{\mathrm{Int}}}{V} = - 2 N_c \sum_{i=u,d,s} \int \frac {d^3p}{(2\pi)^3} \sqrt{m_i^2 + p^2} + \frac{\Omega_{V}}{V} \]

\[ \frac{\Omega_{V}}{V} = \sum_{i=u,d,s} 2 G \langle\bar{q}_i q_i \rangle^2 - 4 K \langle \bar{q}_u q_u \rangle \langle \bar{q}_d q_d \rangle \langle \bar{q}_s q_s \rangle + B_0\,. \]

where $B_0$ is a constant defined to ensure that the energy density and the pressure of the vacuum is zero.

Unlike Buballa99, the bag constant, $\Omega_{\mathrm{Int}}/V$ is defined without the term

\[ \sum_{i=u,d,s} 2 N_C \int_0^{\Lambda} \frac{d^3 p}{(2 \pi)^3} \sqrt{ m_{0,i}^2+p^2 } ~dp \]

since this allows an easier comparison to the finite temperature EOS. The constant $B_0$ in this case is therefore significantly larger, but the energy density and pressure are still zero in the vacuum.

The Feynman-Hellman theorem (Bernard88 ), gives

\[ \left< \bar{q} q \right> = \frac{\partial m^{*}}{\partial m} \]

The functions calc_e() and calc_p() never return a value other than zero, but will give nonsensical results for nonsensical inputs.

References

Created for Steiner00. See also Buballa99 and Hatsuda94.

Todo:
Better documentation.
Idea for Future:

Remove the njtp structure and move the numbers there to function parameters.

Consider rewriting the testing code and making the various gap functions protected instead of public.

Remove the stored quark pointers if they are unnecessary?

Definition at line 136 of file eos_quark_njl.h.

Classes

struct  njtp_s
 A structure for passing parameters to the integrands. More...
 

Public Types

typedef boost::numeric::ublas::vector< double > ubvector
 

Public Member Functions

virtual int set_parameters (double lambda=0.0, double fourferm=0.0, double sixferm=0.0)
 Set the parameters and the bag constant B0. More...
 
virtual int calc_p (quark &u, quark &d, quark &s, thermo &lth)
 Equation of state as a function of chemical potentials. More...
 
virtual int calc_temp_p (quark &u, quark &d, quark &s, double T, thermo &th)
 Equation of state as a function of chemical potentials at finite temperature. More...
 
virtual int calc_eq_p (quark &u, quark &d, quark &s, double &gap1, double &gap2, double &gap3, thermo &lth)
 Equation of state and gap equations as a function of chemical potential.
 
virtual int calc_eq_e (quark &u, quark &d, quark &s, double &gap1, double &gap2, double &gap3, thermo &lth)
 Equation of state and gap equations as a function of the densities.
 
int calc_eq_temp_p (quark &tu, quark &td, quark &ts, double &gap1, double &gap2, double &gap3, thermo &qb, double temper)
 Equation of state and gap equations as a function of chemical potentials at finite temperature.
 
int gapfunms (size_t nv, const ubvector &x, ubvector &y)
 Calculates gap equations in y as a function of the constituent masses in x. More...
 
int gapfunqq (size_t nv, const ubvector &x, ubvector &y)
 Calculates gap equations in y as a function of the quark condensates in x. More...
 
int gapfunmsT (size_t nv, const ubvector &x, ubvector &y)
 Calculates gap equations in y as a function of the constituent masses in x. More...
 
int gapfunqqT (size_t nv, const ubvector &x, ubvector &y)
 Calculates gap equations in y as a function of the quark condensates in x. More...
 
- Public Member Functions inherited from o2scl::eos_quark
virtual int calc_e (quark &u, quark &d, quark &s, thermo &th)
 Calculate equation of state as a function of density.
 
virtual int calc_temp_e (quark &u, quark &d, quark &s, double temper, thermo &th)
 Calculate equation of state as a function of density at finite temperature.
 
- Public Member Functions inherited from o2scl::eos_base
virtual void set_thermo (thermo &th)
 Set class thermo object.
 
virtual const thermoget_thermo ()
 Get class thermo object.
 

Public Attributes

double limit
 Accuracy limit for Fermi integrals for finite temperature. More...
 
bool fromqq
 Calculate from quark condensates if true (default true) More...
 
- Public Attributes inherited from o2scl::eos_quark
o2scl::fermion_rel fet
 Object for computing fermion thermodynamics.
 
- Public Attributes inherited from o2scl::eos_base
thermo def_thermo
 The default thermo object.
 

The default quark masses

These are the values from Buballa99 which were used to fix the pion and kaon decay constants, and the pion, kaon, and eta prime masses. They are set in the constructor and are in units of $ \mathrm{fm}^{-1} $ . The default values are 5.5 MeV for the up and down quark and 140.7 MeV for the strange quark (then divided by o2scl_const::hc_mev_fm for the conversion).

double up_default_mass
 
double down_default_mass
 
double strange_default_mass
 
double L
 The momentum cutoff (in $ \mathrm{fm}^{-1} $)
 
double G
 The four-fermion coupling (in $ \mathrm{fm}^{2} $)
 
double K
 The 't Hooft six-fermion interaction coupling (in $ \mathrm{fm}^{2} $)
 
double B0
 The bag constant (in $ \mathrm{fm}^{-4} $)
 
int set_quarks (quark &u, quark &d, quark &s)
 Set the quark objects to use. More...
 

The default quark objects

The masses are automatically set in the constructor to up_default_mass, down_default_mass, and strange_default_mass.c

typedef struct o2scl::eos_quark_njl::njtp_s njtp
 A structure for passing parameters to the integrands.
 
quark def_up
 
quark def_down
 
quark def_strange
 
mroot_hybrids< mm_funct, boost::numeric::ublas::vector< double >, boost::numeric::ublas::matrix< double >, jac_functdef_solver
 The default solver.
 
inte_qag_gsl def_it
 The default integrator.
 
inteit
 The integrator for finite temperature integrals.
 
mroot< mm_funct, boost::numeric::ublas::vector< double >, jac_funct > * solver
 The solver to use for set_parameters()
 
quarkup
 The up quark.
 
quarkdown
 The down quark.
 
quarkstrange
 The strange quark.
 
double cp_temp
 The temperature for calc_temp_p()
 
virtual const char * type ()
 Return string denoting type ("eos_quark_njl")
 
virtual int set_solver (mroot< mm_funct, boost::numeric::ublas::vector< double >, jac_funct > &s)
 Set solver to use in set_parameters()
 
virtual int set_inte (inte<> &i)
 Set integration object.
 
int B0fun (size_t nv, const ubvector &x, ubvector &y)
 Used by calc_B0() to compute the bag constant.
 
void njbag (quark &q)
 Calculates the contribution to the bag constant from quark q.
 
double iqq (double x, const njtp &pa)
 The integrand for the quark condensate.
 
double ide (double x, const njtp &pa)
 The integrand for the density.
 
double ied (double x, const njtp &pa)
 The integrand for the energy density.
 
double ipr (double x, const njtp &pa)
 The integrand for the pressure.
 

Additional Inherited Members

- Protected Attributes inherited from o2scl::eos_base
thermoeos_thermo
 A pointer to the thermo object.
 

Member Function Documentation

◆ calc_p()

virtual int o2scl::eos_quark_njl::calc_p ( quark u,
quark d,
quark s,
thermo lth 
)
virtual

This function automatically solves the gap equations.

Reimplemented from o2scl::eos_quark.

◆ calc_temp_p()

virtual int o2scl::eos_quark_njl::calc_temp_p ( quark u,
quark d,
quark s,
double  T,
thermo th 
)
virtual

This function automatically solves the gap equations.

Reimplemented from o2scl::eos_quark.

◆ gapfunms()

int o2scl::eos_quark_njl::gapfunms ( size_t  nv,
const ubvector x,
ubvector y 
)

The function utilizes the quark objects which can be specified in set_quarks() and the thermo object which can be specified in eos::set_thermo().

◆ gapfunmsT()

int o2scl::eos_quark_njl::gapfunmsT ( size_t  nv,
const ubvector x,
ubvector y 
)

The function utilizes the quark objects which can be specified in set_quarks() and the thermo object which can be specified in eos::set_thermo().

◆ gapfunqq()

int o2scl::eos_quark_njl::gapfunqq ( size_t  nv,
const ubvector x,
ubvector y 
)

The function utilizes the quark objects which can be specified in set_quarks() and the thermo object which can be specified in eos::set_thermo().

◆ gapfunqqT()

int o2scl::eos_quark_njl::gapfunqqT ( size_t  nv,
const ubvector x,
ubvector y 
)

The function utilizes the quark objects which can be specified in set_quarks() and the thermo object which can be specified in eos::set_thermo().

◆ set_parameters()

virtual int o2scl::eos_quark_njl::set_parameters ( double  lambda = 0.0,
double  fourferm = 0.0,
double  sixferm = 0.0 
)
virtual

This function allows the user to specify the momentum cutoff, lambda, the four-fermion coupling fourferm and the six-fermion coupling from the 't Hooft interaction sixferm . If 0.0 is given for any of the values, then the default is used ( $ \Lambda=602.3/(\hbar c), G=1.835/\Lambda^2, K=12.36/\Lambda^5 $).

The value of the shift in the bag constant B0 is automatically calculated to ensure that the energy density and the pressure of the vacuum are zero. The functions set_quarks() and set_thermo() can be used before hand to specify the quark and thermo objects.

◆ set_quarks()

int o2scl::eos_quark_njl::set_quarks ( quark u,
quark d,
quark s 
)

The quark objects are used in gapfunms(), gapfunqq(), gapfunmsT(), gapfunqqT(), and B0fun().

Member Data Documentation

◆ fromqq

bool o2scl::eos_quark_njl::fromqq

If this is false, then computations are performed using the effective masses as inputs

Definition at line 173 of file eos_quark_njl.h.

◆ limit

double o2scl::eos_quark_njl::limit

limit is used for the finite temperature integrals to ensure that no numbers larger than exp(limit) or smaller than exp(-limit) are avoided. (Default: 20)

Definition at line 166 of file eos_quark_njl.h.


The documentation for this class was generated from the following file:

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