Reference
Contents
Index
ElectronicStructureModels.AbstractElectronSystemElectronicStructureModels.AbstractInteractingElectronSystemElectronicStructureModels.AbstractMatterModelElectronicStructureModels.AbstractScreeningElectronicStructureModels.CoulombPseudoPotentialElectronicStructureModels.GridLookupTableElectronicStructureModels.IdealElectronSystemElectronicStructureModels.InteractingElectronSystemElectronicStructureModels.NoLocalFieldCorrectionElectronicStructureModels.NoScreeningElectronicStructureModels.ScreeningElectronicStructureModels._dielectric_functionElectronicStructureModels._imag_ideal_dynamic_responseElectronicStructureModels._real_ideal_dynamic_responseElectronicStructureModels._stable_log_termElectronicStructureModels.betaElectronicStructureModels.betabarElectronicStructureModels.dielectric_functionElectronicStructureModels.dielectric_functionElectronicStructureModels.dielectric_functionElectronicStructureModels.dynamic_responseElectronicStructureModels.electron_densityElectronicStructureModels.fermi_energyElectronicStructureModels.fermi_wave_vectorElectronicStructureModels.imag_dynamic_responseElectronicStructureModels.imag_dynamic_responseElectronicStructureModels.local_effective_potentialElectronicStructureModels.local_effective_potentialElectronicStructureModels.local_field_correctionElectronicStructureModels.local_field_correctionElectronicStructureModels.lookupElectronicStructureModels.lookupElectronicStructureModels.lookupElectronicStructureModels.lookupElectronicStructureModels.lookupElectronicStructureModels.proper_electron_systemElectronicStructureModels.pseudo_potentialElectronicStructureModels.pseudo_potentialElectronicStructureModels.pseudo_potentialElectronicStructureModels.real_dynamic_responseElectronicStructureModels.real_dynamic_responseElectronicStructureModels.response_approximationElectronicStructureModels.screeningElectronicStructureModels.temperature
ElectronicStructureModels.AbstractElectronSystem — Type
AbstractElectronSystem <: AbstractMatterModelAbstract base type for electron matter models.
Interface requirements
Concrete subtypes must implement the following functions:
- Matter model interface:
electron_density(sys::AbstractElectronSystem)::Realtemperature(sys::AbstractElectronSystem)::Real
- Electronic system interface:
imag_dynamic_response(sys::AbstractElectronSystem, om_q::NTuple{2, Real})::Realreal_dynamic_response(sys::AbstractElectronSystem, om_q::NTuple{2, Real})::Real
ElectronicStructureModels.AbstractInteractingElectronSystem — Type
AbstractInteractingElectronSystemAbstract base type for electronic system with interacting electrons by introducing screening potentials. Interface functions to be implemented are:
Matter model interface:
electron_density(::AbstractElectronSystem)::Realtemperature(::AbstractElectronSystem)::Real
Electronic system interface:
imag_dynamic_response(::AbstractElectronSystem, om_q::NTuple{2,Real})::Real- `realdynamicresponse(::AbstractElectronSystem, om_q::
Interacting electronic system interface:
proper_electron_system(::AbstractInteractingElectronSystem)::AbstractProperElectronSystemscreening(::AbstractInteractingElectronSystem)::AbstractScreening
ElectronicStructureModels.AbstractMatterModel — Type
AbstractMatterModelAbstract 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.
ElectronicStructureModels.AbstractScreening — Type
AbstractScreeningAbstract base type for screening models. Interface functions, which must be implemented:
pseudo_potential(::AbstractInteractingElectronSystem)::AbstractPseudoPotentiallocal_field_correction(::AbstractInteractingElectronSystem)::AbstractLocalFieldCorrection
ElectronicStructureModels.CoulombPseudoPotential — Type
CoulombPseudoPotential <: AbstractPseudoPotentialRepresents the bare Coulomb pseudo potential: V(q) = e² / q².
ElectronicStructureModels.GridLookupTable — Type
GridLookupTable(
cols::T1,
rows::T2,
values::T3
) where {T1<:AbstractVector{T},T2<:AbstractVector{T},T3<:AbstractMatrix{T}} where {T<:Real}TBW
ElectronicStructureModels.IdealElectronSystem — Type
IdealElectronSystem{T, A} <: AbstractIdealElectronSystemRepresents 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()orZeroTemperatureApprox()).
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")
ElectronicStructureModels.InteractingElectronSystem — Type
InteractingElectronSystem{PES, S} <: AbstractInteractingElectronSystemRepresents 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())ElectronicStructureModels.NoLocalFieldCorrection — Type
NoLocalFieldCorrection <: AbstractLocalFieldCorrectionRepresents a model with no local field correction (i.e., the correction is zero).
ElectronicStructureModels.NoScreening — Type
NoScreening <: AbstractScreeningA screening model with no dielectric screening; dielectric function is unity, and corrections vanish.
ElectronicStructureModels.Screening — Type
Screening{PP, LFC} <: AbstractScreeningA general screening model that combines a pseudo potential and a local field correction.
Fields
pseudo_potential: An instance ofAbstractPseudoPotential.lfc: An instance ofAbstractLocalFieldCorrection.
ElectronicStructureModels._dielectric_function — Method
dielectric_function(::AbstractIdealElectronSystem,::AbstractScreening,om_q)Return the value of the dielectric function for the given proper response function and given local effective potential.
ElectronicStructureModels._imag_ideal_dynamic_response — Function
_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.
ElectronicStructureModels._real_ideal_dynamic_response — Function
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.
ElectronicStructureModels._stable_log_term — Method
_stable_log_term(x::Real)Stable version of
\[\log\left(\left\vert\frac{1+x}{1-x}\right\vert\right)\]
ElectronicStructureModels.beta — Method
beta(esys::AbstractMatterModel) -> RealCompute the inverse temperature β = 1 / T of the system esys.
Arguments
esys: An instance ofAbstractMatterModelrepresenting the electronic system.
Returns
- Inverse temperature
βas a real number.
ElectronicStructureModels.betabar — Method
betabar(esys::AbstractMatterModel) -> RealCompute the dimensionless inverse temperature $\bar\beta= E_F / T$ of the system esys.
Arguments
esys: An instance ofAbstractMatterModelrepresenting the electronic system.
Returns
- Dimensionless inverse temperature
β̄as a real number.
ElectronicStructureModels.dielectric_function — Method
dielectric_function(iesys::AbstractInteractingElectronSystem, om_q) -> RealDelegates 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.
ElectronicStructureModels.dielectric_function — Method
dielectric_function(::AbstractIdealElectronSystem,::AbstractScreening,om_q)Return the value of the dielectric function for the given electron system and given screening.
ElectronicStructureModels.dielectric_function — Method
dielectric_function(esys, scr::NoScreening, om_q) -> RealReturn the dielectric function for a NoScreening model, which is always 1.
ElectronicStructureModels.dynamic_response — Method
dynamic_response(iesys::AbstractInteractingElectronSystem, om_q) -> ComplexCompute 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, ω).
ElectronicStructureModels.electron_density — Function
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.
ElectronicStructureModels.fermi_energy — Method
fermi_energy(esys::AbstractMatterModel) -> RealCompute the Fermi energy of a given electronic system esys, using its Fermi wave vector.
Arguments
esys: An instance ofAbstractMatterModelrepresenting the electronic system.
Returns
- Fermi energy
EFas a real number.
ElectronicStructureModels.fermi_wave_vector — Method
fermi_wave_vector(esys::AbstractMatterModel) -> RealCompute the Fermi wave vector for a given electronic system esys, based on its electron density.
Arguments
esys: An instance ofAbstractMatterModelrepresenting the electronic system.
Returns
- Fermi wave vector
kFas a real number.
ElectronicStructureModels.imag_dynamic_response — Function
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).
ElectronicStructureModels.imag_dynamic_response — Method
imag_dynamic_response(iesys::AbstractInteractingElectronSystem, om_q) -> RealReturn the imaginary part of the dynamic response function of the interacting electron system.
Returns
- Imaginary part of
χ(q, ω).
ElectronicStructureModels.local_effective_potential — Method
local_effective_potential(iesys::AbstractInteractingElectronSystem, om_q) -> RealDelegates 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.
ElectronicStructureModels.local_effective_potential — Method
local_effective_potential(scr::NoScreening, om_q) -> RealReturn the local effective potential for the NoScreening model, which is zero.
ElectronicStructureModels.local_field_correction — Function
local_field_correction(::AbstractScreening, om_q::Tuple)Interface function: return value of the local field correction for interacting electron systems
ElectronicStructureModels.local_field_correction — Method
local_field_correction(scr::NoScreening, om_q) -> RealReturn the local field correction for the NoScreening model, which is zero.
ElectronicStructureModels.lookup — Method
lookup(
method::AboveInput,
column::Real,
row::Real,
table::GridLookupTable)TBW
ElectronicStructureModels.lookup — Method
lookup(
method::BelowInput,
column::Real,
row::Real,
table::GridLookupTable)TBW
ElectronicStructureModels.lookup — Method
lookup(
method::InterpolEndValue,
column::Real,
row::Real,
table::GridLookupTable)TBW
ElectronicStructureModels.lookup — Method
lookup(
method::InterpolExtrapol,
column::Real,
row::Real,
table::GridLookupTable)TBW
ElectronicStructureModels.lookup — Method
lookup(
method::NearestInput,
column::Real,
row::Real,
table::GridLookupTable)TBW
ElectronicStructureModels.proper_electron_system — Function
proper_electron_system(::AbstractInteractingElectronSystem)Interface function: return the proper electron system associated with the interacting system.
ElectronicStructureModels.pseudo_potential — Function
pseudo_potential(::AbstractScreening, om_q::Tuple)Interface function: return value of the pseudo potential for interacting electron systems
ElectronicStructureModels.pseudo_potential — Method
pseudo_potential(iesys::AbstractInteractingElectronSystem, om_q) -> RealDelegates 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.
ElectronicStructureModels.pseudo_potential — Method
pseudo_potential(scr::NoScreening, om_q) -> RealReturn the pseudo potential for the NoScreening model, which is zero.
ElectronicStructureModels.real_dynamic_response — Function
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).
ElectronicStructureModels.real_dynamic_response — Method
real_dynamic_response(iesys::AbstractInteractingElectronSystem, om_q) -> RealReturn the real part of the dynamic response function of the interacting electron system.
Returns
- Real part of
χ(q, ω).
ElectronicStructureModels.response_approximation — Function
response_approximation(sys::AbstractIdealElectronSystem)Return the response approximation model associated with the given ideal electron system.
ElectronicStructureModels.screening — Function
screening(::AbstractInteractingElectronSystem)Interface function: return the screening associated with the interacting system.
ElectronicStructureModels.temperature — Function
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.