Public Types | Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | List of all members
o2scl::fermion_mag_zerot Class Reference

Thermodynamics of fermions in a magnetic field at zero temperature. More...

#include <fermion_mag_zerot.h>

Inheritance diagram for o2scl::fermion_mag_zerot:

Public Types

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

Public Member Functions

 fermion_mag_zerot ()
 Create a fermion with mass mass and degeneracy dof.
virtual void calc_mu_zerot_mag (fermion &f, double qB, double kappa=0.0)
 Thermodynamics in a magnetic field using the chemical potential. More...
virtual void calc_density_zerot_mag (fermion &f, double qB, double kappa=0.0)
 Thermodynamics in a magnetic field using the density.
void set_density_root (mroot<> &rp)
 Set the solver for use in calculating the chemical potential from the density.
virtual const char * type ()
 Return string denoting type ("fermion_mag_zerot")
- Public Member Functions inherited from o2scl::fermion_zerot
void kf_from_density (fermion &f)
 Calculate the Fermi momentum from the density. More...
void energy_density_zerot (fermion &f)
 Energy density at T=0 from fermion::kf and part::ms. More...
void pressure_zerot (fermion &f)
 Pressure at T=0 from fermion::kf and part::ms. More...
virtual void calc_mu_zerot (fermion &f)
 Zero temperature fermions from part::mu or part::nu and part::ms.
virtual void calc_density_zerot (fermion &f)
 Zero temperature fermions from part::n and part::ms.

Public Attributes

int nmax_up
 Maximum Landau level for spin up particles (default 0)
int nmax_dn
 Maximum Landau level for spin down particles (default 0)
int sum_limit
 Limit on the sum (default $ 10^{6} $)
mroot_hybrids def_density_root
 The default solver for calc_density().

Protected Member Functions

int solve_fun (size_t nv, const ubvector &x, ubvector &y, fermion &f)
 Function to compute chemical potential from density.

Protected Attributes

 Solver to compute chemical potential from density.
double qBt
 The charge times the magnetic field in $ \mathrm{fm}^{-2} $.
double kt
 The anomalous magnetic moment.
double dent
 The target density, set by calc_density_zerot_mag()

Detailed Description

Using the notation of Broderick00, the effective mass of a fermion in a magnetic field is

\[ \tilde{m}^2 = m^2 + 2 \left( n + \frac{1}{2} - \frac{q \sigma}{2 |q|} \right) |q| B \]

where $ m $ is the bare mass, $ q $ is the charge, and $ \sigma $ is the z-component of the spin along the axis of the magnetic field (for spin 1/2 fermions, for example, either +1 or -1).

This only works for spin 1/2 particles at the moment, so the discussion below assumes this is the case.
The function calc_density_zerot_mag() will fail if the density is small enough.

The Fermi momentum and the chemical potential are related in the usual way

\[ k_{F,\sigma}^2 = \mu^2 - \tilde{m}_{\sigma}^2 \]

The density is then given by

\[ n = \frac{|q| B}{2 \pi^2} \sum_{\sigma} \sum_{n=0}^{n_{\mathrm{max},\sigma}} k_{F,\sigma} \]

where $ n_{\mathrm{max},\sigma} $ is the integer value of $ n $ for which the next largest integer makes $ \mu < \tilde{m} $. The value of $ n_{\mathrm{max}} $ is stored internally in this class as an integer (nmax_dn and nmax_up), and if there are no integers for which $ \mu < \tilde{m} $, then the corresponding integer will be -1, to indicate that no terms in the sum are present. For any fermion, at least one Landau level is always filled for at least one of the spin states at every density.

When the number of Landau levels for $ \sigma=1 $ is larger than sum_limit, the B=0 result is given.


It is useful to think of the magnetic field as typically being multiplied by the electron charge, so if magnetic field is measured in Gauss, then for a 1 Gauss field in "Gaussian" units,

\[ e B = 1.5~\times~10^{-19}~\mathrm{fm}^{-2} \]

This conversion factor is given in o2scl_const::ec_gauss_fm2 .

Comment on Gaussian vs. Heaviside-Lorentz units.

Definition at line 98 of file fermion_mag_zerot.h.

Member Function Documentation

◆ calc_mu_zerot_mag()

virtual void o2scl::fermion_mag_zerot::calc_mu_zerot_mag ( fermion f,
double  qB,
double  kappa = 0.0 

The parameter qB is the charge (in units of the positron charge) times the magnetic field strength. Thus, for example, qB should be negative for electrons.

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