Thermodynamics of fermions in a magnetic field at zero temperature. More...
#include <fermion_mag_zerot.h>
Using the notation of Broderick00, the effective mass of a fermion in a magnetic field is
where is the bare mass,
is the charge, and
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).
The Fermi momentum and the chemical potential are related in the usual way
The density is then given by
where is the integer value of
for which the next largest integer makes
. The value of
is stored internally in this class as an integer (nmax_dn and nmax_up), and if there are no integers for which
, 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 is larger than sum_limit, the B=0 result is given.
Units:
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,
This conversion factor is given in o2scl_const::ec_gauss_fm2 . See the documentation of that quantity for a brief comparison of various E&M unit systems.
Definition at line 98 of file fermion_mag_zerot.h.
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") | |
![]() | |
void | kf_from_density (fermion_tl< double > &f) |
Calculate the Fermi momentum from the density. More... | |
void | energy_density_zerot (fermion_tl< double > &f) |
Energy density at T=0 from o2scl::fermion_tl::kf and o2scl::part_tl::ms. More... | |
void | pressure_zerot (fermion_tl< double > &f) |
Pressure at T=0 from o2scl::fermion_tl::kf and o2scl::part_tl::ms. More... | |
virtual void | calc_mu_zerot (fermion_tl< double > &f) |
Zero temperature fermions from o2scl::part_tl::mu or o2scl::part_tl::nu and o2scl::part_tl::ms. | |
virtual void | calc_density_zerot (fermion_tl< double > &f) |
Zero temperature fermions from o2scl::part_tl::n and o2scl::part_tl::ms. More... | |
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 ![]() | |
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 | |
mroot * | density_root |
Solver to compute chemical potential from density. | |
double | qBt |
The charge times the magnetic field in ![]() | |
double | kt |
The anomalous magnetic moment. | |
double | dent |
The target density, set by calc_density_zerot_mag() | |
![]() | |
double | pi |
Desc. | |
double | pi2 |
Desc. | |
|
virtual |
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.
Documentation generated with Doxygen. Provided under the
GNU Free Documentation License (see License Information).