cfl_njl_eos Class Reference

#include <cfl_njl_eos.h>

Inheritance diagram for cfl_njl_eos:

nambujl_eos quark_eos eos cfl6_eos

Detailed Description

Nambu Jona-Lasinio model with a schematic CFL di-quark interaction at finite temperature.

The variable B0 must be set before use.

The original Lagrangian is

\[ {\cal L} = {\cal L}_{\mathrm{Dirac}} + {\cal L}_{\mathrm{4-fermion}} + {\cal L}_{\mathrm{6-fermion}} + {\cal L}_{CSC1} + {\cal L}_{CSC2} \]

\[ {\cal L}_{\mathrm{Dirac}} = \bar{q}_{i \alpha} \left( i {\partial} \delta_{i j} \delta_{\alpha \beta} - m_{i j} \delta_{\alpha \beta} - \mu_{i j,~\alpha \beta} \gamma^0 \right) q_{j \beta} \]

\[ {\cal L}_{\mathrm{4-fermion}} = G_S \sum_{a=0}^8 \left[ \left( \bar{q} \lambda^a_f q \right)^2 + \left( \bar{q} i \gamma_5 \lambda^a_f q \right)^2 \right] \]

\[ {\cal L}_{\mathrm{6-fermion}} = - G_{D} \left[ {\mathrm det}_{i j} \, \bar{q}_{i \alpha} \left( 1 + i \gamma_5 \right) q_{j \beta} + {\mathrm det}_{i j} \, \bar{q}_{i \alpha} \left( 1 - i \gamma_5 \right) q_{j \beta} \right] \delta_{\alpha \beta} \]

\[ {\cal L}_{CSC1} = G_{DIQ} \sum_k \sum_{\gamma} \left[ \left(\bar{q}_{i \alpha} \epsilon_{i j k} \epsilon_{\alpha \beta \gamma} q^C_{j \beta}\right) \left(\bar{q}_{i^{\prime} \alpha^{\prime}}^C \epsilon_{i^{\prime} j^{\prime} k} \epsilon_{\alpha^{\prime} \beta^{\prime} \gamma} q_{j^{\prime} \beta^{\prime}}\right)\right] \]

\[ {\cal L}_{CSC2} = G_{DIQ} \sum_k \sum_{\gamma} \left[ \left(\bar{q}_{i \alpha} i \gamma_5 \epsilon_{i j k} \epsilon_{\alpha \beta \gamma} q^C_{j \beta}\right) \left(\bar{q}_{i^{\prime} \alpha^{\prime}}^C i \gamma_5 \epsilon_{i^{\prime} j^{\prime} k} \epsilon_{\alpha^{\prime} \beta^{\prime} \gamma} q_{j^{\prime} \beta^{\prime}}\right) \right] \,, \]

where $ \mu $ is the quark number chemical potential. couplings $ G_S $, $ G_D $, and $ G_{DIQ} $ ultra-violet three-momentum cutoff, $ \Lambda $

The thermodynamic potential is

\[ \Omega(\mu_i,\left<\bar{q} q\right>_i,\left< q q\right>_i,T) = \Omega_{\mathrm{vac}}+\Omega_{\mathrm{stat}} + \Omega_0 \]

where $ i $ 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 $ \mu_Q=\mu_{\mathrm{Flavor(Q)}}+\mu_{\mathrm{Color(Q)}} $ with

\[ \mu_{\mathrm{red}} = \mu_3 + \mu_8/\sqrt{3} \quad \mu_{\mathrm{green}} = -\mu_3 + \mu_8/\sqrt{3} \quad \mu_{\mathrm{blue}} = -2 \mu_8 /\sqrt{3} \]

With these assumptions, the thermodynamic potential as given by the function thd_potential(), is a function of 12 variables

\[ \Omega(\mu_u, \mu_d, \mu_s, \mu_3, \mu_8, \left<\bar{u} u\right>, \left<\bar{d} d\right>, \left<\bar{s} s\right>, \left< u d\right>, \left< u s\right>, \left< d s\right>, T) \]

The individual terms are

\[ \Omega_{\mathrm{stat}} = - \frac{1}{2} \int \frac{d^3 p}{\left(2 \pi\right)^3} \, \sum_{i=1}^{72} \left[ \frac{\lambda_i}{2} + T \ln{\left(1 + e^{-\lambda_i/T} \right)} \right] \]

\[ \Omega_{\mathrm{vac}} = - 2 G_S \sum_{i=u,d,s} \langle {\bar q_i} q_i \rangle^2 +4 G_D \left<{\bar u} u\right> \left<{\bar d} d \right> \left<{\bar s} s\right> + \sum_k \sum_{\gamma} \frac{\left|\Delta^{k \gamma}\right|^2}{4 G_{DIQ}} \]

where $ \lambda_i $ are the eigenvalues of the (72 by 72) matrix (calculated by the function eigenvalues())

\[ D = \left[ \begin{array}{cc} - \gamma^0 \vec{\gamma} \cdot \vec{p} - M_{i} \gamma^0 + \mu_{i \alpha} & \Delta i \gamma^0 \gamma_5 C \\ i \Delta \gamma^0 C \gamma_5 & - \gamma^0 \vec{\gamma}^T \cdot \vec{p} + M_{i} \gamma^0 - \mu_{i \alpha}\end{array} \right] \]

and $ C $ is the charge conjugation matrix (in the Dirac representation).

The values of the various condensates are usually determined by the condition

\[ \frac{\partial \Omega}{\left<\bar{q} q\right>_i} = 0 \quad \frac{\partial \Omega}{\left<q q\right>_i} = 0 \]

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 nambujl_eos::fromqq is automatically set to true in the constructor, as computations with fromqq=false are not implemented.

Todo:
Improve documentation (Note that it appears to report the member functions twice?)
Todo:
Allow user to change derivative object? This isn't possible right now because the stepsize parameter of the derivative object is used.
Todo:
This class internally mixes ovector, omatrix, gsl_vector and gsl_matrix objects in a confusing and non-optimal way. Fix this.

Definition at line 205 of file cfl_njl_eos.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'.
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, const double temper)
 Calculate the EOS.
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.
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 ("cfl_njl_eos").

Data Fields

double eq_limit
 The equal mass threshold.
bool integ_test
 Set to true to test the integration (default false).
cern_quartic_real_coeff def_quartic
 The default quartic routine.
double gap_limit
 Smallest allowable gap (default 0.0).
bool zerot
 If this is true, then finite temperature corrections are ignored (default false).
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).
double inte_epsabs
 The absolute precision for the integration (default $ 10^{-4} $ ).
double inte_epsrel
 The relative precision for the integration (default $ 10^{-4} $ ).
size_t inte_npoints
 The number of points used in the last integration (default 0).

Protected Member Functions

virtual int integrands (double p, double res[])
 The integrands.
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.
For the integration
double rescale_error (double err, const double result_abs, const double result_asc)
 The error scaling function for integ_err.
int integ_err (double a, double b, const size_t nr, ovector &res, double &err2)
 A new version of gsl_inte_qng to integrate several functions at the same time.

Protected Attributes

double temper
 Temperature.
double smu3
 3rd gluon chemical potential
double smu8
 8th gluon chemical potential
Numerical methods
quartic_real_coeffquartic
 The routine to solve quartics.
For computing eigenvalues
omatrix_cx iprop
 Inverse propagator matrix.
omatrix_cx eivec
 The eigenvectors.
omatrix_cx dipdgapu
 The derivative of the inverse propagator wrt the ds gap.
omatrix_cx dipdgapd
 The derivative of the inverse propagator wrt the us gap.
omatrix_cx dipdgaps
 The derivative of the inverse propagator wrt the ud gap.
ovector eval
 The eigenvalues.
gsl_eigen_hermv_workspace * w
 Workspace for eigenvalue computation.

Private Member Functions

 cfl_njl_eos (const cfl_njl_eos &)
cfl_njl_eosoperator= (const cfl_njl_eos &)

Member Function Documentation

virtual int set_parameters ( double  lambda = 0.0,
double  fourferm = 0.0,
double  sixferm = 0.0,
double  fourgap = 0.0 
) [virtual]

Set the parameters and the bag constant 'B0'.

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 ($ \Lambda=602.3/(\hbar c), G=1.835/\Lambda^2, K=12.36/\Lambda^5 $).

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 nambujl_eos::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.

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,
const double  temper 
) [virtual]

Calculate the EOS.

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 nambujl_eos and nambujl_eos does not work here and will return an error. Also, the quarks must be set through quark_eos::quark_set() before use.

If all of the gaps are less than gap_limit, then the nambujl_eos::calc_temp_p() is used, and gap1, gap2, and gap3 are set to equal u.del, d.del, and s.del, respectively.

Todo:
It surprises me that n3 is not -res[11]. Is there a sign error in the color densities?

Reimplemented in cfl6_eos.

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] 
) [virtual]

Calculate the energy eigenvalues as a function of the momentum.

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].

virtual int integrands ( double  p,
double  res[] 
) [protected, virtual]

The integrands.

  • res[0] is the thermodynamic potential, $ \Omega $
  • res[1] is $ d -\Omega / d T $
  • res[2] is $ d \Omega / d \mu_u $
  • res[3] is $ d \Omega / d \mu_d $
  • res[4] is $ d \Omega / d \mu_s $
  • res[5] is $ d \Omega / d m_u $
  • res[6] is $ d \Omega / d m_d $
  • res[7] is $ d \Omega / d m_s $
  • res[8] is $ d \Omega / d \Delta_{ds} $
  • res[9] is $ d \Omega / d \Delta_{us} $
  • res[10] is $ d \Omega / d \Delta_{ud} $
  • res[11] is $ d \Omega / d \mu_3 $
  • res[12] is $ d \Omega / d \mu_8 $

Reimplemented in cfl6_eos.

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] 
) [protected]

Treat the simply gapped quarks in all cases gracefully.

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.

Todo:
Only the "ms" part of the quarks is referenced, so we should rewrite to use only double's as function arguments, and avoid passing pointers to quark objects.


Field Documentation

The default quartic routine.

Slightly better accuracy (with slower execution times) can be achieved using gsl_poly_real_coeff which polishes the roots of the quartics. For example

Definition at line 315 of file cfl_njl_eos.h.

double gap_limit

Smallest allowable gap (default 0.0).

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 nambujl_eos are used in calc_eq_temp_p(), calc_temp_p() and thd_potential().

Definition at line 339 of file cfl_njl_eos.h.

bool zerot

If this is true, then finite temperature corrections are ignored (default false).

This implements some simplifications in the momentum integration that are not possible at finite temperature.

Definition at line 348 of file cfl_njl_eos.h.

double GD

Diquark coupling constant (default 3 G/4).

The default value is the one derived from a Fierz transformation. (Buballa04)

Definition at line 365 of file cfl_njl_eos.h.

double inte_epsabs

The absolute precision for the integration (default $ 10^{-4} $ ).

This is analogous to gsl_inte::epsabs

Definition at line 373 of file cfl_njl_eos.h.

double inte_epsrel

The relative precision for the integration (default $ 10^{-4} $ ).

This is analogous to gsl_inte::epsrel

Definition at line 381 of file cfl_njl_eos.h.

size_t inte_npoints

The number of points used in the last integration (default 0).

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 392 of file cfl_njl_eos.h.


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

Documentation generated with Doxygen and provided under the GNU Free Documentation License. See License Information for details.

Project hosting provided by SourceForge.net Logo, O2scl Sourceforge Project Page