Nambu Jona-Lasinio model with a schematic CFL di-quark interaction at finite temperature. More...
#include <eos_quark_cfl.h>
The variable B0 must be set before use.
The original Lagrangian is
where is the quark number chemical potential. couplings
,
, and
ultra-violet three-momentum cutoff,
The thermodynamic potential is
where runs over all nine (three colors times three flavors) quarks. We assume that the condensates are independent of color and that the quark chemical potentials are of the form
with
With these assumptions, the thermodynamic potential as given by the function thd_potential(), is a function of 12 variables
The individual terms are
where are the eigenvalues of the (72 by 72) matrix (calculated by the function eigenvalues())
and is the charge conjugation matrix (in the Dirac representation).
The values of the various condensates are usually determined by the condition
Note that setting fixed_mass to true
and setting all of the gaps to zero when gap_limit
is less than zero will reproduce an analog of the bag model with a momentum cutoff.
The variable eos_quark_njl::fromqq is automatically set to true in the constructor, as computations with fromqq=false
are not implemented.
This class internally mixes ubvector, ubmatrix, gsl_vector and gsl_matrix objects in a confusing and non-optimal way. Fix this.
Allow user to change derivative object? This isn't possible right now because the stepsize parameter of the derivative object is used.
Created for Steiner02.
Definition at line 208 of file eos_quark_cfl.h.
Public Member Functions | |
virtual int | set_parameters (double lambda=0.0, double fourferm=0.0, double sixferm=0.0, double fourgap=0.0) |
Set the parameters and the bag constant 'B0'. More... | |
virtual int | calc_eq_temp_p (quark &u, quark &d, quark &s, double &qq1, double &qq2, double &qq3, double &gap1, double &gap2, double &gap3, double mu3, double mu8, double &n3, double &n8, thermo &qb, double temper) |
Calculate the EOS. More... | |
virtual int | test_derivatives (double lmom, double mu3, double mu8, test_mgr &t) |
Check the derivatives specified by eigenvalues() | |
virtual int | eigenvalues (double lmom, double mu3, double mu8, double egv[36], double dedmuu[36], double dedmud[36], double dedmus[36], double dedmu[36], double dedmd[36], double dedms[36], double dedu[36], double dedd[36], double deds[36], double dedmu3[36], double dedmu8[36]) |
Calculate the energy eigenvalues as a function of the momentum. More... | |
int | set_quartic (quartic_real_coeff &q) |
Set the routine for solving quartics. | |
int | test_integration (test_mgr &t) |
Test the integration routines. | |
int | test_normal_eigenvalues (test_mgr &t) |
Test the routine to compute the eigenvalues of non-superfluid fermions. | |
int | test_gapped_eigenvalues (test_mgr &t) |
Test the routine to compute the eigenvalues of superfluid fermions. | |
virtual const char * | type () |
Return string denoting type ("eos_quark_cfl") | |
![]() | |
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 <h) |
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 <h) |
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 <h) |
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. | |
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... | |
int | set_quarks (quark &u, quark &d, quark &s) |
Set the quark objects to use. More... | |
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. | |
![]() | |
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. | |
![]() | |
virtual void | set_thermo (thermo &th) |
Set class thermo object. | |
virtual const thermo & | get_thermo () |
Get class thermo object. | |
Public Attributes | |
double | eq_limit |
The equal mass threshold. | |
bool | integ_test |
Set to true to test the integration (default false) | |
quartic_real_coeff_cern | def_quartic |
The default quartic routine. More... | |
double | gap_limit |
Smallest allowable gap (default 0.0) More... | |
bool | zerot |
If this is true, then finite temperature corrections are ignored (default false) More... | |
bool | fixed_mass |
Use a fixed quark mass and ignore the quark condensates. | |
bool | color_neut |
If true, then ensure color neutrality. | |
double | GD |
Diquark coupling constant (default 3 G/4) More... | |
double | inte_epsabs |
The absolute precision for the integration (default ![]() | |
double | inte_epsrel |
The relative precision for the integration (default ![]() | |
size_t | inte_npoints |
The number of points used in the last integration (default 0) More... | |
![]() | |
double | limit |
Accuracy limit for Fermi integrals for finite temperature. More... | |
bool | fromqq |
Calculate from quark condensates if true (default true) More... | |
double | L |
The momentum cutoff. | |
double | G |
The four-fermion coupling. | |
double | K |
The 't Hooft six-fermion interaction coupling. | |
double | B0 |
The bag constant. | |
mroot_hybrids< mm_funct, boost::numeric::ublas::vector< double >, boost::numeric::ublas::matrix< double >, jac_funct > | def_solver |
The default solver. | |
inte_qag_gsl | def_it |
The default integrator. | |
double | up_default_mass |
double | down_default_mass |
double | strange_default_mass |
quark | def_up |
quark | def_down |
quark | def_strange |
![]() | |
fermion_eval_thermo * | fet |
Object for computing fermion thermodynamics. | |
fermion_eff | def_fet |
Default fermion thermodynamics. | |
![]() | |
thermo | def_thermo |
The default thermo object. | |
Protected Member Functions | |
virtual int | integrands (double p, double res[]) |
The integrands. More... | |
int | normal_eigenvalues (double m, double lmom, double mu, double lam[2], double dldmu[2], double dldm[2]) |
Compute ungapped eigenvalues and the appropriate derivatives. | |
int | gapped_eigenvalues (double m1, double m2, double lmom, double mu1, double mu2, double tdelta, double lam[4], double dldmu1[4], double dldmu2[4], double dldm1[4], double dldm2[4], double dldg[4]) |
Treat the simply gapped quarks in all cases gracefully. More... | |
For the integration | |
double | rescale_error (double err, double result_abs, double result_asc) |
The error scaling function for integ_err. | |
int | integ_err (double a, double b, const size_t nr, ubvector &res, double &err2) |
A new version of inte_qng_gsl to integrate several functions at the same time. | |
![]() | |
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. | |
Protected Attributes | |
double | temper |
Temperature. | |
double | smu3 |
3rd gluon chemical potential | |
double | smu8 |
8th gluon chemical potential | |
For computing eigenvalues | |
gsl_matrix_complex * | iprop |
Inverse propagator matrix. | |
gsl_matrix_complex * | eivec |
The eigenvectors. | |
ubmatrix_complex | dipdgapu |
The derivative of the inverse propagator wrt the ds gap. | |
ubmatrix_complex | dipdgapd |
The derivative of the inverse propagator wrt the us gap. | |
ubmatrix_complex | dipdgaps |
The derivative of the inverse propagator wrt the ud gap. | |
gsl_vector * | eval |
The eigenvalues. | |
gsl_eigen_hermv_workspace * | w |
Workspace for eigenvalue computation. | |
![]() | |
inte * | it |
The integrator for finite temperature integrals. | |
mroot< mm_funct, boost::numeric::ublas::vector< double >, jac_funct > * | solver |
The solver to use for set_parameters() | |
quark * | up |
The up quark. | |
quark * | down |
The down quark. | |
quark * | strange |
The strange quark. | |
double | cp_temp |
The temperature for calc_temp_p() | |
![]() | |
thermo * | eos_thermo |
A pointer to the thermo object. | |
Private Member Functions | |
eos_quark_cfl (const eos_quark_cfl &) | |
eos_quark_cfl & | operator= (const eos_quark_cfl &) |
Numerical methods | |
typedef boost::numeric::ublas::vector< double > | ubvector |
typedef boost::numeric::ublas::vector< std::complex< double > > | ubvector_complex |
typedef boost::numeric::ublas::matrix< std::complex< double > > | ubmatrix_complex |
quartic_real_coeff * | quartic |
The routine to solve quartics. | |
Additional Inherited Members | |
![]() | |
typedef boost::numeric::ublas::vector< double > | ubvector |
typedef struct o2scl::eos_quark_njl::njtp_s | njtp |
A structure for passing parameters to the integrands. | |
|
virtual |
Calculate the EOS from the quark condensates in u.qq
, d.qq
and s.qq
. Return the mass gap equations in qq1
, qq2
, qq3
, and the normal gap equations in gap1
, gap2
, and gap3
.
Using fromqq=false
as in eos_quark_njl and eos_quark_njl does not work here and will return an error. Also, the quarks must be set through eos_quark::quark_set() before use.
If all of the gaps are less than gap_limit, then the eos_quark_njl::calc_temp_p() is used, and gap1
, gap2
, and gap3
are set to equal u.del
, d.del
, and s.del
, respectively.
Reimplemented in o2scl::eos_quark_cfl6.
|
virtual |
Given the momentum mom
, and the chemical potentials associated with the third and eighth gluons (mu3
and mu8
), the energy eigenvalues are computed in egv[0] ... egv[35].
|
protected |
This function uses the quarks q1
and q2
to construct the eigenvalues of the inverse propagator, properly handling the either zero or finite quark mass and either zero or finite quark gaps. In the case of finite quark mass and finite quark gaps, the quartic solver is used.
The chemical potentials are separated so we can add the color chemical potentials to the quark chemical potentials if necessary.
This function is used by eigenvalues(). It does not work for the "ur-dg-sb" set of quarks which are paired in a non-trivial way.
|
protectedvirtual |
Reimplemented in o2scl::eos_quark_cfl6.
|
virtual |
This function allows the user to specify the momentum cutoff, lambda
, the four-fermion coupling fourferm
, the six-fermion coupling from the 't Hooft interaction sixferm
, and the color-superconducting coupling, fourgap
. If 0.0 is given for any of the values, then the default is used ( ).
If the four-fermion coupling that produces a gap is not specified, it is automatically set to 3/4 G, which is the value obtained from the Fierz transformation.
The value of the shift in the bag constant eos_quark_njl::B0 is automatically calculated to ensure that the vacuum has zero energy density and zero pressure. The functions set_quarks() and set_thermo() must be used before hand to specify the quark and thermo objects.
quartic_real_coeff_cern o2scl::eos_quark_cfl::def_quartic |
Slightly better accuracy (with slower execution times) can be achieved using poly_real_coeff_gsl which polishes the roots of the quartics. For example
Definition at line 314 of file eos_quark_cfl.h.
double o2scl::eos_quark_cfl::gap_limit |
If any of the gaps are below this value, then it is assumed that they are zero and the equation of state is simplified accordingly. If all of the gaps are less than gap_limit, then the results from eos_quark_njl are used in calc_eq_temp_p(), calc_temp_p() and thd_potential().
Definition at line 335 of file eos_quark_cfl.h.
double o2scl::eos_quark_cfl::GD |
The default value is the one derived from a Fierz transformation. (Buballa04)
Definition at line 358 of file eos_quark_cfl.h.
double o2scl::eos_quark_cfl::inte_epsabs |
This is analogous to gsl_inte::epsabs
Definition at line 365 of file eos_quark_cfl.h.
double o2scl::eos_quark_cfl::inte_epsrel |
This is analogous to gsl_inte::epsrel
Definition at line 372 of file eos_quark_cfl.h.
size_t o2scl::eos_quark_cfl::inte_npoints |
This returns 21, 43, or 87 depending on the number of function evaluations needed to obtain the desired precision. If it the routine failes to obtain the desired precision, then this variable is set to 88.
Definition at line 382 of file eos_quark_cfl.h.
bool o2scl::eos_quark_cfl::zerot |
This implements some simplifications in the momentum integration that are not possible at finite temperature.
Definition at line 343 of file eos_quark_cfl.h.
Documentation generated with Doxygen. Provided under the
GNU Free Documentation License (see License Information).