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.

Idea for future:
This class internally mixes ovector, omatrix, gsl_vector and gsl_matrix objects in a confusing and non-optimal way. Fix this.
Idea for future:
Allow user to change derivative object? This isn't possible right now because the stepsize parameter of the derivative object is used.

Definition at line 202 of file cfl_njl_eos.h.


Numerical methods

gsl_mmin_conf< void *,
multi_funct< void * > > 
def_min1
 The first default minimizer.
gsl_mmin_conf< void *,
multi_funct< void * > > 
def_min2
 The second default minimizers.
cern_quartic_real_coeff def_quartic
 The default quartic routine.
int set_minimizers (multi_min< void *, multi_funct< void * > > &mi1, multi_min< void *, multi_funct< void * > > &mi2)
 Set the minimizers for the thermodynamic potential.
int set_quartic (quartic_real_coeff &q)
 Set the routine for solving quartics.

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_temp_p (quark &u, quark &d, quark &s, const double temper, thermo &th)
 Calculate equation of state as a function of chemical potentials.
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 eigenvalues (double mom, ovector_view &egv, double mu3, double mu8)
 Calculate the energy eigenvalues as a function of the momentum.
virtual double thd_potential (quark &u, quark &d, quark &s, double mu3, double mu8, const double ltemper)
 Direct calculation of the thermodynamic potential.
virtual const char * type ()
 Return string denoting type ("cfl_njl_eos").
virtual double tpot (double var, void *&pa)
 The function used to take derivatives of the thermodynamic potential (used by calc_temp_p() ).

Data Fields

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).
bool faster
 Faster eigenvalues.
double solver_qual
 The quality of the most recently obtained solution.
bool use_solver
 If true, use the solver, otherwise, use the minimizers.

Protected Member Functions

int solve_fun_p (size_t nv, const ovector_view &x, ovector_view &y, void *&vp)
 Function specifying gap equations to solve.
int min_fun2 (size_t nv, const ovector_view &x, double &y, void *&vp)
 Outer minimization function for color neutrality.
int min_fun (size_t nv, const ovector_view &x, double &y, void *&vp)
 Inner minimization function for mass and gap equations.
double derivfn (double *dvar)
 A function that takes the derivative of the thermodynamic potential with respect to the variable whose address is 'dvar'.
double tpot_integrand (double p, void *&pa)
 The integrand of the thermodynamic potential.
double entropy_integrand (double p, void *&pa)
 The integrand of the entropy.
int gapped_eigenvalues (quark *q1, quark *q2, double mom, double mu1, double mu2, double delta, ovector_cx_view &ev)
 Treat the simply gapped quarks in all cases gracefully.

Protected Attributes

double temper
 Temperature.
double smu3
 3rd gluon chemical potential
double smu8
 8th gluon chemical potential
double * var
 Pointer to the variable to be differentiated by.
Numerical methods
quartic_real_coeffquartic
 The routine to solve quartics.
bool quartic_set
 true if the quartic routine has been set
gsl_deriv< void *,
funct< void * > > 
de
 The derivative routine.
multi_min< void *,
multi_funct< void * > > * 
min1
 Pointer to inner minimizer.
multi_min< void *,
multi_funct< void * > > * 
min2
 Pointer to outer minimizer.
For computing eigenvalues
omatrix_cx m
 Inverse propagator matrix.
omatrix_cx m2
 Inverse propagator matrix.
ovector eval
 Storage for eigenvalues.
ovector eval2
 Storage for eigenvalues.
gsl_eigen_herm_workspace * w
 Workspace for eigenvalue computation.
gsl_eigen_herm_workspace * w2
 Workspace for eigenvalue computation.
bool ugap_solve
 Switches for solving the gap equations.
bool dgap_solve
bool sgap_solve

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_temp_p ( quark u,
quark d,
quark s,
const double  temper,
thermo th 
) [virtual]

Calculate equation of state as a function of chemical potentials.

If any of the gaps given in quark::del are greater than gap_limit, then the respective gap equations are solved. If fixed_mass is false, then the quark condensates are solved for. If color_neut is true, then color neutrality is enforced.

Reimplemented from nambujl_eos.

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.

Reimplemented in cfl6_eos.

virtual int eigenvalues ( double  mom,
ovector_view egv,
double  mu3,
double  mu8 
) [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]. No space is allocated for the array by the function.

Reimplemented in cfl6_eos.

virtual double tpot ( double  var,
void *&  pa 
) [virtual]

The function used to take derivatives of the thermodynamic potential (used by calc_temp_p() ).

To use this function just to compute the thermodynamic potential, make sure var is 0 (or NULL) and use

        tpot(0.0,0);
since the arguments are both ignored.

Reimplemented in cfl6_eos.

int gapped_eigenvalues ( quark q1,
quark q2,
double  mom,
double  mu1,
double  mu2,
double  delta,
ovector_cx_view ev 
) [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

cern_quartic_real_coeff def_quartic

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 324 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 336 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 344 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 360 of file cfl_njl_eos.h.

bool faster

Faster eigenvalues.

This assumes that the strange quark mass can be used as an effective chemical potential $ \mu_s^{\prime}=\mu_s-m_s^2/2/\mu_s$ and calculates the eigenvalues to first order in the four variables

\[ \alpha=\frac{\mu_d-\mu_u}{\mu_u} \]

\[ \beta=\frac{\mu_s-\mu_u}{\mu_u} \]

\[ \gamma=\frac{\Delta_{us}-\Delta_{ud}}{\Delta_{ud}} \]

\[ \delta=\frac{\Delta_{ds}-\Delta_{ud}}{\Delta_{ud}} \]

Definition at line 384 of file cfl_njl_eos.h.

bool quartic_set [protected]

true if the quartic routine has been set

This is used for the I/O.

Definition at line 480 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.