Reference

Contents

Index

ElectronicStructureModels.AbstractElectronSystemType
AbstractElectronSystem <: AbstractMatterModel

Abstract base type for electron matter models.

Interface requirements

Concrete subtypes must implement the following functions:

  1. Matter model interface:
  • electron_density(sys::AbstractElectronSystem)::Real
  • temperature(sys::AbstractElectronSystem)::Real
  1. Electronic system interface:
  • imag_dynamic_response(sys::AbstractElectronSystem, om_q::NTuple{2, Real})::Real
  • real_dynamic_response(sys::AbstractElectronSystem, om_q::NTuple{2, Real})::Real
source
ElectronicStructureModels.AbstractInteractingElectronSystemType
AbstractInteractingElectronSystem

Abstract base type for electronic system with interacting electrons by introducing screening potentials. Interface functions to be implemented are:

  1. Matter model interface:

    • electron_density(::AbstractElectronSystem)::Real
    • temperature(::AbstractElectronSystem)::Real
  2. Electronic system interface:

    • imag_dynamic_response(::AbstractElectronSystem, om_q::NTuple{2,Real})::Real
    • `realdynamicresponse(::AbstractElectronSystem, om_q::
  3. Interacting electronic system interface:

    • proper_electron_system(::AbstractInteractingElectronSystem)::AbstractProperElectronSystem
    • screening(::AbstractInteractingElectronSystem)::AbstractScreening
source
ElectronicStructureModels.AbstractMatterModelType
AbstractMatterModel

Abstract base type representing a generic matter model.

Concrete subtypes should implement interface functions such as temperature and electron_density to provide physical properties of the matter system.

source
ElectronicStructureModels.AbstractScreeningType
AbstractScreening

Abstract base type for screening models. Interface functions, which must be implemented:

  • pseudo_potential(::AbstractInteractingElectronSystem)::AbstractPseudoPotential
  • local_field_correction(::AbstractInteractingElectronSystem)::AbstractLocalFieldCorrection
source
ElectronicStructureModels.IdealElectronSystemType
IdealElectronSystem{T, A} <: AbstractIdealElectronSystem

Represents a non-interacting (ideal) electron system, parameterized by a numerical type (T) and a response approximation model (A). The system may be used to model either a finite-temperature or an effective zero-temperature electron gas. The latter is obtained by choosing approx = ZeroTemperatureApprox().

Type Parameters

  • T <: Real: Internal numeric type (e.g. Float64).
  • A <: AbstractResponseApproximation: Approximation model used for the response function (e.g. NoApprox() or ZeroTemperatureApprox()).

Fields

  • electron_density::T: Electron number density (stored in atomic units).
  • temperature::T: Temperature (stored in atomic units).
  • approx::A: Approximation model for the response function.

Constructors

IdealElectronSystem(electron_density::T1, temperature::T2, approx::A)

Construct an ideal electron system with a given electron density, temperature, and response approximation model.

IdealElectronSystem(electron_density::T1, approx::ZeroTemperatureApprox)

Construct an effectively zero-temperature system.

IdealElectronSystem(electron_density::T1, temperature::T2)

Construct an ideal electron system using the default response approximation (NoApprox()).

Examples

```julia using Unitful

Zero-temperature system

sys1 = IdealElectronSystem(1e23u"cm^(-3)", ZeroTemperatureApprox())

Finite-temperature system with explicit approximation

sys2 = IdealElectronSystem(1e23u"cm^(-3)", 300.0u"K", NonDegenerated())

Finite-temperature system with default approximation

sys3 = IdealElectronSystem(1e23u"cm^(-3)", 300.0u"K")

source
ElectronicStructureModels.InteractingElectronSystemType
InteractingElectronSystem{PES, S} <: AbstractInteractingElectronSystem

Represents an interacting electron system consisting of a proper electron system (e.g., a free or ideal Fermi gas) and a screening model that modifies its response.

Type Parameters

  • PES <: AbstractProperElectronSystem: Type of the proper (non-interacting) electron system.
  • S <: AbstractScreening: Type of the screening model.

Fields

  • proper_elec_system::PES: The underlying proper electron system.
  • screening::S: The screening model used to compute interactions.

Constructors

InteractingElectronSystem(pelsys::PES, scr::S)

Construct an interacting electron system directly from a proper electron system and a screening model.

InteractingElectronSystem{PES}(electron_density::T1, temp::T2, scr::S)

Construct an interacting system by providing physical parameters, where PES is the desired proper electron system type.

Examples

iesys = InteractingElectronSystem{IdealFermiGas}(1e23, 300.0, Screening())
source
ElectronicStructureModels.ScreeningType
Screening{PP, LFC} <: AbstractScreening

A general screening model that combines a pseudo potential and a local field correction.

Fields

  • pseudo_potential: An instance of AbstractPseudoPotential.
  • lfc: An instance of AbstractLocalFieldCorrection.
source
ElectronicStructureModels._imag_ideal_dynamic_responseFunction
_imag_ideal_dynamic_response(
    sys::AbstractIdealElectronSystem,
    approx::AbstractResponseApproximation,
    ombar::T,
    qbar::T
) where {T<:Real}

Compute the imaginary part of the dynamic response function of an ideal electron system using the given response approximation. The input frequencies ombar and wavevectors qbar are given in dimensionless units (normalized to Fermi energy and Fermi wavevector, respectively).

This is a low-level method, typically implemented by concrete approximation types.

source
ElectronicStructureModels._real_ideal_dynamic_responseFunction
real_ideal_dynamic_response(
    sys::AbstractIdealElectronSystem,
    approx::AbstractResponseApproximation,
    ombar::T,
    qbar::T
) where {T<:Real}

Compute the real part of the dynamic response function of an ideal electron system using the given response approximation. The input frequencies ombar and wavevectors qbar are given in dimensionless units (normalized to Fermi energy and Fermi wavevector, respectively).

This is a low-level interface meant for implementation by specific approximation models.

source
ElectronicStructureModels.betaMethod
beta(esys::AbstractMatterModel) -> Real

Compute the inverse temperature β = 1 / T of the system esys.

Arguments

  • esys: An instance of AbstractMatterModel representing the electronic system.

Returns

  • Inverse temperature β as a real number.
source
ElectronicStructureModels.betabarMethod
betabar(esys::AbstractMatterModel) -> Real

Compute the dimensionless inverse temperature $\bar\beta= E_F / T$ of the system esys.

Arguments

  • esys: An instance of AbstractMatterModel representing the electronic system.

Returns

  • Dimensionless inverse temperature β̄ as a real number.
source
ElectronicStructureModels.dielectric_functionMethod
dielectric_function(iesys::AbstractInteractingElectronSystem, om_q) -> Real

Delegates to the dielectric_function using the proper electron system and screening model associated with iesys.

Arguments

  • iesys: An interacting electron system.
  • om_q: Tuple (ω, q) representing frequency and wavevector magnitude.

Returns

  • Dielectric function ϵ(q, ω) as a real number.
source
ElectronicStructureModels.dynamic_responseMethod
dynamic_response(iesys::AbstractInteractingElectronSystem, om_q) -> Complex

Compute the dynamically screened response function of the interacting electron system.

The response is computed as

\[χ(q, ω) = \frac{χ_0(q, ω)}{ϵ(q, ω)}\]

where χ₀ is the proper response and ϵ is the dielectric function derived from the screening model.

Arguments

  • iesys: An interacting electron system.
  • om_q: Tuple (ω, q) representing frequency and wavevector magnitude.

Returns

Complex-valued dynamic response χ(q, ω).

source
ElectronicStructureModels.electron_densityFunction
electron_density(m::AbstractMatterModel)

Return the electron density of the given matter model m.

This is an interface function that must be implemented by all concrete matter models.

source
ElectronicStructureModels.fermi_energyMethod
fermi_energy(esys::AbstractMatterModel) -> Real

Compute the Fermi energy of a given electronic system esys, using its Fermi wave vector.

Arguments

  • esys: An instance of AbstractMatterModel representing the electronic system.

Returns

  • Fermi energy EF as a real number.
source
ElectronicStructureModels.fermi_wave_vectorMethod
fermi_wave_vector(esys::AbstractMatterModel) -> Real

Compute the Fermi wave vector for a given electronic system esys, based on its electron density.

Arguments

  • esys: An instance of AbstractMatterModel representing the electronic system.

Returns

  • Fermi wave vector kF as a real number.
source
ElectronicStructureModels.imag_dynamic_responseFunction
imag_dynamic_response(sys::AbstractElectronSystem, om_q::NTuple{2, T}) where {T<:Real}

Return the imaginary part of the dynamic response function for the given electron system sys at frequency and wavevector specified by om_q = (ω, q).

source
ElectronicStructureModels.imag_dynamic_responseMethod
imag_dynamic_response(iesys::AbstractInteractingElectronSystem, om_q) -> Real

Return the imaginary part of the dynamic response function of the interacting electron system.

Returns

  • Imaginary part of χ(q, ω).
source
ElectronicStructureModels.local_effective_potentialMethod
local_effective_potential(iesys::AbstractInteractingElectronSystem, om_q) -> Real

Delegates to the local_effective_potential method of the screening model associated with iesys.

Arguments

  • iesys: An interacting electron system.
  • om_q: Tuple (ω, q) representing frequency and wavevector magnitude.

Returns

  • Local effective potential V_eff(q, ω) as a real number.
source
ElectronicStructureModels.pseudo_potentialMethod
pseudo_potential(iesys::AbstractInteractingElectronSystem, om_q) -> Real

Delegates to the pseudo_potential method of the screening model associated with iesys.

Arguments

  • iesys: An interacting electron system.
  • om_q: Tuple (ω, q) representing frequency and wavevector magnitude.

Returns

  • Pseudo potential V(q, ω) as a real number.
source
ElectronicStructureModels.real_dynamic_responseFunction
real_dynamic_response(sys::AbstractElectronSystem, om_q::NTuple{2, T}) where {T<:Real}

Return the real part of the dynamic response function for the given electron system sys at frequency and wavevector specified by om_q = (ω, q).

source
ElectronicStructureModels.temperatureFunction
temperature(m::AbstractMatterModel)

Return the temperature of the given matter model m in internal units.

This is an interface function that must be implemented by all concrete matter models.

source