finite module

Evaluate properties of system with a finite particle number

finite.canonical_partition_function(system, beta)

Calculate canonical partition function from single particle eigenvalues.

Warning: This gets very expensive very fast.
Parameters:system (class) – system class.
Returns:
  • U (float) – Internal energy.
  • Z (float) – Canonical partition function.
finite.centre_of_mass_obsv(system, beta)

Calculate centre of mass partition function and total energy.

Parameters:
  • system (class) – System class containing system information.
  • beta (float) – Inverse temperature.
Returns:

  • E_tot (float) – Total energy contribution from centre of mass motion.
  • Z (float) – Centre of mass partition function.

finite.check_self_consist(sp_new, sp_old)

Check self consistency for array

Parameters:
  • sp_new (list) – new single particle eigenvalues.
  • sp_old (list) – old single particle eigenvalues.
Returns:

de – cumulative difference between new and old eigenvalues.

Return type:

float

finite.chem_pot_sum(system, eigs, beta)

Find the chemical potential for finite system.

Parameters:
  • system (class) – System class containing system information.
  • beta (float) – Inverse temperature.
Returns:

mu – Chemical potential.

Return type:

float

finite.energy_sum(beta, mu, spval, pol)

Calculate internal energy for free electron gas.

Parameters:
  • beta (float) – Inverse temperature.
  • mu (float) – chemical potential.
  • spval (list of lists) – Single particle eigenvalues and degeneracies.
  • pol (int) – Polarisation.
Returns:

Nav - ne – Difference between expected and actual number of electrons.

Return type:

float

finite.fthf_ex_energy(system, beta)

Evaluate finite temperature Hartree-Fock internal energy.

Todo : notes + grand canonical equivalent.
Parameters:
  • system (class) – System being studied.
  • beta (float) – Inverse Temperature.
Returns:

U_tx – Finite temperature Hartree-Fock internal energy.

Return type:

float

finite.fthf_self_consistency(system, beta, mu)
Run self consistency loop to find finite temperature Hartree-Fock

eigenvalues and chemical potential.

Todo: Check this makes sense + document better, integrate with Monte Carlo.

Parameters:
  • system (class) – System being studied.
  • beta (float) – Inverse Temperature.
  • mu (float) – Chemical potential.
Returns:

  • iterations (tuple) – Number of iterations required to find self consistency of mu and single particle eigenvalues.
  • sp_x (list) – Single particle eigenvalues.
  • mu_x (float) – Hartree-Fock chemical potential.

finite.gc_part_func(sys, cpot, beta)

Grand canonical partition function for finite system.

\[Z_{GC} = \prod_i (1 + e^{-\beta(e_i-\mu)})\]
Parameters:
  • system (class) – System being studied.
  • beta (float) – Inverse Temperature.
Returns:

Z_GC – Grand canonical partition function.

Return type:

float

finite.hf_potential(occ, kvecs, L)

Hartree-Fock exchange energy for given determinant

Parameters:
  • occ (list) – List of occupied single particle orbitals.
  • kvecs (list) – kvectors.
  • L (float) – Box lenght.
Returns:

ex – Exchange energy.

Return type:

float

finite.hfx_potential(spvals, kvecs, ki, beta, mu, L)

Finite temperature Hartree-Fock potential.

Parameters:
  • system (class) – System begin studied.
  • ki (list) – kvector associated with potential.
  • beta (float) – Inverse temperature.
  • mu (float) – Chemical potential.
Returns:

ex – exchange potential.

Return type:

float

finite.hfx_sum(system, beta, mu)

Evaluate the HF exchange contribution as a summation.

Parameters:
  • system (class) – system variables.
  • beta (float) – beta value
  • mu (float) – chemical potential at beta
Returns:

hfx – hf exchange energy

Return type:

float

finite.nav_deriv(mu, ne, spval, beta, pol)

Calculate average number of electrons.

Parameters:
  • mu (float) – chemical potential.
  • ne (int) – Number of electrons.
  • spval (list of lists) – Single particle eigenvalues and degeneracies.
  • beta (float) – Inverse temperature.
  • pol (int) – Polarisation.
Returns:

N – Number of electrons.

Return type:

float

finite.nav_diff(mu, ne, spval, beta, pol)

Calculate difference between expected and average number of electrons.

Parameters:
  • mu (float) – chemical potential.
  • ne (int) – Number of electrons.
  • spval (lists of lists) – Single particle eigenvalues and degeneracies.
  • beta (float) – Inverse temperature.
  • pol (int) – Polarisation.
Returns:

Nav - ne – Difference between expected and actual number of electrons.

Return type:

float

finite.nav_sum(mu, ne, spval, beta, pol)

Calculate average number of electrons.

Parameters:
  • mu (float) – chemical potential.
  • ne (int) – Number of electrons.
  • spval (list of lists) – Single particle eigenvalues and degeneracies.
  • beta (float) – Inverse temperature.
  • pol (int) – Polarisation.
Returns:

N – Number of electrons.

Return type:

float