API reference
Index
PseudoPotentialIO.AbstractPsP
PseudoPotentialIO.AnalyticalPsP
PseudoPotentialIO.HghFile
PseudoPotentialIO.HghPsP
PseudoPotentialIO.NormConservingPsP
PseudoPotentialIO.NumericPsP
PseudoPotentialIO.ProjectorAugmentedWavePsP
PseudoPotentialIO.PsPFile
PseudoPotentialIO.Psp8File
PseudoPotentialIO.UltrasoftPsP
PseudoPotentialIO.UpfFile
PseudoPotentialIO.angular_momenta
PseudoPotentialIO.atomic_charge
PseudoPotentialIO.augmentation_coupling
PseudoPotentialIO.augmentation_fourier
PseudoPotentialIO.augmentation_real
PseudoPotentialIO.build_interpolator_real
PseudoPotentialIO.chi_function_cutoff_radius
PseudoPotentialIO.chi_function_fourier
PseudoPotentialIO.chi_function_radial_indices
PseudoPotentialIO.chi_function_real
PseudoPotentialIO.core_charge_density_cutoff_radius
PseudoPotentialIO.core_charge_density_fourier
PseudoPotentialIO.core_charge_density_real
PseudoPotentialIO.element
PseudoPotentialIO.fast_sphericalbesselj
PseudoPotentialIO.formalism
PseudoPotentialIO.format
PseudoPotentialIO.hankel_transform
PseudoPotentialIO.has_chi_functions
PseudoPotentialIO.has_core_density
PseudoPotentialIO.has_spin_orbit
PseudoPotentialIO.has_valence_density
PseudoPotentialIO.identifier
PseudoPotentialIO.is_norm_conserving
PseudoPotentialIO.is_paw
PseudoPotentialIO.is_ultrasoft
PseudoPotentialIO.list_families
PseudoPotentialIO.load_family
PseudoPotentialIO.load_psp
PseudoPotentialIO.load_psp_file
PseudoPotentialIO.local_potential_cutoff_radius
PseudoPotentialIO.local_potential_fourier
PseudoPotentialIO.local_potential_real
PseudoPotentialIO.max_angular_momentum
PseudoPotentialIO.n_chi_function_angulars
PseudoPotentialIO.n_chi_function_radials
PseudoPotentialIO.n_projector_angulars
PseudoPotentialIO.n_projector_radials
PseudoPotentialIO.projector_coupling
PseudoPotentialIO.projector_cutoff_radius
PseudoPotentialIO.projector_fourier
PseudoPotentialIO.projector_radial_indices
PseudoPotentialIO.projector_real
PseudoPotentialIO.pseudo_cutoff_radius
PseudoPotentialIO.pseudo_energy_correction
PseudoPotentialIO.relativistic_treatment
PseudoPotentialIO.show_family_list
PseudoPotentialIO.show_family_periodic_table
PseudoPotentialIO.simpson
PseudoPotentialIO.valence_charge
PseudoPotentialIO.valence_charge_density_cutoff_radius
PseudoPotentialIO.valence_charge_density_fourier
PseudoPotentialIO.valence_charge_density_real
Types
PseudoPotentialIO.PsPFile
— Typeabstract type PsPFile
Abstract type representing a pseudopotential file.
The structure of the data should closely mirror the format of the file, and the values of quantities should be exactly those found in the file.
Required methods:
# A unique string, usually a hash or checksum.
function identifier(file::PsPFile)::AbstractString end
# A short string listing the file format (e.g. `"PSP8"`)
function format(file::PsPFile)::AbstractString end
# The symbol of the element for which the file contains a pseudopotential (e.g. `"Ag"`)
function elemental_symbol(file::PsPFile)::AbstractString end
# The maximum angular momentum channel contained in the file
function max_angular_momentum(file::PsPFile)::Integer end
# The number of non-local projectors for angular momentum `l` contained in the file
function n_projector_radials(file::PsPFile, l::Integer)::Integer end
# The number of chi functions for angular momentum `l` contained in the file
function n_chi_function_radials(file::PsPFile, l::Integer)::Integer end
# The pseudo-atomic valence charge
function valence_charge(file::PsPFile)::Real end
# Whether the file contains a norm-conserving pseudopotential
function is_norm_conserving(file::PsPFile)::Bool end
# Whether the file contains an ultrasoft pseudopotential
function is_ultrasoft(file::PsPFile)::Bool end
# Whether the file contains a projector-augmented wave pseudopotential
function is_paw(file::PsPFile)::Bool end
# Whether the file contains a pseudopotential supporting spin-orbit coupled calculations
function has_spin_orbit(file::PsPFile)::Bool end
# Whether the file contains a pseudopotential supporting non-linear core corrections
function has_core_density(file::PsPFile)::Bool end
PseudoPotentialIO.UpfFile
— Typestruct UpfFile <: PsPFile
Universal Pseudopotential Format file contents.
checksum::Vector{UInt8}
: SHA1 Checksumversion::String
: UPF format versioninfo::Union{Nothing, String}
: Optional general information about the pseudopotential, often generation inputheader::PseudoPotentialIO.UpfHeader
: Various pseudopotential metadatamesh::PseudoPotentialIO.UpfMesh
: Radial mesh, mesh integration factors, and other mesh informationnlcc::Union{Nothing, Vector{Float64}}
: Pseudized core charge on the radial grid, (ignored ifcore_correction
is false)local_::Union{Nothing, Vector{Float64}}
: Local part of the pseudopotential on the radial grid (ignored ifis_coulomb
)nonlocal::PseudoPotentialIO.UpfNonlocal
: Nonlocal part of the pseudopotentialpswfc::Union{Nothing, Vector{PseudoPotentialIO.UpfChi}}
: Pseudo-atomic valence wavefunctionsfull_wfc::Union{Nothing, PseudoPotentialIO.UpfFullWfc}
: All-electron wavefunctionsrhoatom::Vector{Float64}
: Pseudo-atomic valence charge density on the radial gridspin_orb::Union{Nothing, PseudoPotentialIO.UpfSpinOrb}
: Spin-orbit coupling data, (ignored ifhas_so
is false)paw::Union{Nothing, PseudoPotentialIO.UpfPaw}
: PAW data, (ignored ifis_paw
is false)gipaw::Union{Nothing, PseudoPotentialIO.UpfGipaw}
: GIPAW data
PseudoPotentialIO.Psp8File
— Typestruct Psp8File <: PsPFile
ABINIT PSeudoPotential format 8 file contents. Information on the file format specification and the meaning of the quantities within the file can be found on the "psp8" page of the ABINIT documentation.
checksum::Vector{UInt8}
: SHA1 Checksumheader::PseudoPotentialIO.Psp8Header
: Various pseudopotential metadatargrid::Vector{Float64}
: Uniform radial grid starting atr = 0.0
v_local::Vector{Float64}
: Local part of the pseudopotentialprojectors::Vector{Vector{Vector{Float64}}}
: Radial part of the Kleinman-Bylander projectors for each angular momentumekb::Vector{Vector{Float64}}
: Kleinman-Bylander energies for each angular momentumprojectors_so::Union{Nothing, Vector{Vector{Vector{Float64}}}}
: Radial part of the spin-orbit Kleinman-Bylander projectors for each angular momentumekb_so::Union{Nothing, Vector{Vector{Float64}}}
: Spin-orbit Kleinman-Bylander energies for each angular momentumrhoc::Union{Nothing, Vector{Float64}}
: Model core charge densityd_rhoc_dr::Union{Nothing, Vector{Float64}}
: First derivative of the model core charge densityd2_rhoc_dr2::Union{Nothing, Vector{Float64}}
: Second derivative of the model core charge densityd3_rhoc_dr3::Union{Nothing, Vector{Float64}}
: Third derivative of the model core charge densityd4_rhoc_dr4::Union{Nothing, Vector{Float64}}
: Fourth derivative of the model core charge density
PseudoPotentialIO.HghFile
— Typestruct HghFile <: PsPFile
Hartwigsen-Goedecker-Hutter pseudopotential file contents.
checksum::Vector{UInt8}
: SHA1 Checksumtitle::String
: Descriptionzion::Vector{Int64}
: Pseudo-atomic (valence) chargerloc::Float64
: Cutoff radius for the local part of the pseudopotentialnloc::Int64
: Number of coefficients defining the local part of the pseudopotentialcloc::Vector{Float64}
: Coefficients of the local part of the pseudopotentiallmax::Int64
: Maximum angular momentumrp::Vector{Float64}
: Non-local projector cutoff radius for each angular momentumh::Vector{Matrix{Float64}}
: Kleinman-Bylander energies
PseudoPotentialIO.AbstractPsP
— Typeabstract type AbstractPsP
Abstract type representing a pseudopotential.
The structure of the data should facilitate efficient computations.
Required methods:
# A unique string, usually a hash or checksum.
function identifier(file::AbstractPsP)::AbstractString end
# The symbol of the element for which the pseudopotential is constructed (e.g. `"Ag"`)
function elemental_symbol(psp::AbstractPsP)::AbstractString end
# The maximum angular momentum channel
function max_angular_momentum(psp::AbstractPsP)::Integer end
# The number of non-local projector radial parts for angular momentum `l`
function n_projector_radials(psp::AbstractPsP, l::Integer)::Integer end
# The number of chi function radial parts for angular momentum `l`
function n_chi_function_radials(psp::AbstractPsP, l::Integer)::Integer end
# The pseudo-atomic valence charge
function valence_charge(psp::AbstractPsP)::Real end
# The charge of the atom which was pseudized (e.g. 8 for Oxygen)
function atomic_charge(psp::AbstractPsP)::Real end
# Whether the pseudopotential is a norm-conserving pseudopotential
function is_norm_conserving(psp::AbstractPsP)::Bool end
# Whether the pseudopotential is an ultrasoft pseudopotential
function is_ultrasoft(psp::AbstractPsP)::Bool end
# Whether the pseudopotential is a projector-augmented wave pseudopotential
function is_paw(psp::AbstractPsP)::Bool end
# Whether the pseudopotential supports spin-orbit coupled calculations
function has_spin_orbit(psp::AbstractPsP)::Bool end
# Whether the pseudopotential contains a core charge density (i.e. supports non-linear core
# correction)
function has_core_density(psp::AbstractPsP)::Bool end
# Whether the pseudopotential contains a valence charge density (i.e. has support for
# constructing a tailored guess charge density)
function has_valence_density(psp::AbstractPsP)::Bool end
# Whether pseudopotential contains chi functions for the valence electrons (i.e.
# has support for computing tailored orbital-projected quantitites)
function has_chi_functions(psp:AbstractPsP)::Bool end
# The projector coupling coefficients for angular momentum `l`
function projector_coupling(psp::AbstractPsP, l::Integer)::Matrix{Real} end
# Radial distance where the local potential decays to zero within a tolerance `tol`
function local_potential_cutoff_radius(psp::AbstractPsP; tol) end
# Radial distance where the `n`th non-local projector at angular momentum `l` decays to
# zero within a tolerance `tol`
function projector_cutoff_radius(psp::AbstractPsP, l, n; tol) end
# Radial distance where the `n`th chi function at angular momentum `l` decays to
# zero within a tolerance `tol`
function chi_function_cutoff_radius(psp::AbstractPsP, l, n; tol) end
# Radial distance where the valence charge density decays to zero within a tolerance `tol`
function valence_charge_density_cutoff_radius(psp::AbstractPsP; tol) end
# Radial distance where the core charge density decays to zero within a tolerance `tol`
function core_charge_density_cutoff_radius(psp::AbstractPsP; tol) end
# Returns a function which evaulates the local potential at a real-space radial coordinate
function local_potential_real(psp::AbstractPsP) end
# Returns a function which evaulates the `n`th non-local projector with angular momentum
# `l` at a real-space radial coordinate
function projector_real(psp::AbstractPsP, l, n) end
# Returns a function which evaulates the `n`th chi function with angular momentum
# `l` at a real-space radial coordinate
function chi_function_real(psp::AbstractPsP, l, n) end
# Returns a function which evaulates the valence charge density at a real-space
# radial coordinate
function valence_charge_density_real(psp::AbstractPsP) end
# Returns a function which evaulates the core charge density at a real-space
# radial coordinate
function core_charge_density_real(psp::AbstractPsP) end
# Returns a function which evaulates the local potential at a fourier-space radial
# coordinate
function local_potential_fourier(psp::AbstractPsP) end
# Returns a function which evaulates the `n`th non-local projector with angular momentum
# `l` at a fourier-space radial coordinate
function projector_fourier(psp::AbstractPsP, l, n) end
# Returns a function which evaulates the `n`th chi function with angular momentum
# `l` at a fourier-space radial coordinate
function chi_function_fourier(psp::AbstractPsP, l, n) end
# Returns a function which evaulates the valence charge density at a fourier-space
# radial coordinate
function valence_charge_density_fourier(psp::AbstractPsP) end
# Returns a function which evaulates the core charge density at a fourier-space
# radial coordinate
function core_charge_density_fourier(psp::AbstractPsP) end
# The pseudo-potential energy correction
function pseudo_energy_correction(psp::AbstractPsP) end
PseudoPotentialIO.NumericPsP
— Typeabstract type NumericPsP{T} <: AbstractPsP
Abstract type representing numeric pseudopotentials.
All quantities must be in Hartree atomic units.
- Lengths in Bohr radii (a₀)
- Energies in Hartree (Ha / Eₕ)
- Electric charge in electron charges (e = 1)
- Mass in electron masses (mₑ)
- Action in reduced Plank constants (ħ = 1)
Vectors indexed by angular momentum should be OffsetVector
s with indices starting at zero so that angular momentum l
, which naturally starts at 0, can be used for both computation and indexing.
Required fields:
# Checksum
checksum::Vector{UInt8}
# Atomic total charge in units of electron charge
Zatom::Number
# Pseudo-atomic valence charge in units of electron charge
Zval::Number
# Maximum angular momentum
lmax::Integer
# Radial mesh in units of Bohr
r::AbstractVector{Real}
# Radial mesh spacing in units of Bohr
dr::Union{Real, AbstractVector{Real}}
# Local potential on the radial mesh in units of Hartree (without r² prefactor)
Vloc::AbstractVector{Real}
## The units of `D` and `β` should be such that `⟨ βˡₙ | Dˡₙₙ | βˡₙ ⟩` gives Hartree
# Nonlocal projector coupling constants D[l][n,n']
D::OffsetVector{AbstractMatrix{Real}}
# Nonlocal projectors on the radial mesh, multiplied by the mesh squared: r²β[l][n]
β::OffsetVector{AbstractVector{AbstractVector{Real}}}
## "Optional" fields (must still exist, but could be Union{Nothing})
# Model core charge density (non-linear core correction) on the radial mesh, multiplied by
# the mesh squared: r²ρcore
ρcore::Union{Nothing,AbstractVector{Real}}
# Pseudo-atomic valence charge density on the radial mesh, multiplied by the mesh squared:
# r²ρval
ρval::Union{Nothing,AbstractVector{Real}}
# Pseudo-atomic orbitals on the radial mesh, multiplied by the mesh squared: r²χ[l][n]
χ::Union{Nothing,OffsetVector{AbstractVector{AbstractVector{Real}}}}
PseudoPotentialIO.NormConservingPsP
— Typestruct NormConservingPsP{T} <: NumericPsP{T}
Type representing a numeric norm-conserving pseudopotential.
checksum::Vector{UInt8}
: SHA1 ChecksumZatom::Any
: Total charge.Zval::Any
: Valence charge.lmax::Int64
: Maximum angular momentum.r::Union{Vector{T}, StepRangeLen{T}} where T
: Radial mesh.dr::Union{Vector{T}, T} where T
: Radial mesh spacing.Vloc::Vector
: Local part of the potential on the radial mesh (without an r² prefactor).β::OffsetArrays.OffsetArray{Array{Vector{T}, 1}, 1, Array{Array{Vector{T}, 1}, 1}} where T
: Nonlocal projectors β[l][n] on the radial mesh (with an r² prefactor).D::OffsetArrays.OffsetArray{Matrix{T}, 1, Array{Matrix{T}, 1}} where T
: Projector coupling coefficients D[l][n,m].χ::Union{Nothing, OffsetArrays.OffsetArray{Array{Vector{T}, 1}, 1, Array{Array{Vector{T}, 1}, 1}}} where T
: Pseudo-atomic wavefunctions χ[l][n] on the radial mesh (with an r² prefactor).ρcore::Union{Nothing, Vector{T}} where T
: Model core charge density on the radial mesh (with an r² prefactor).ρval::Union{Nothing, Vector{T}} where T
: Valence charge density on the radial mesh (with an r² prefactor).
PseudoPotentialIO.UltrasoftPsP
— Typestruct UltrasoftPsP{T} <: NumericPsP{T}
Type representing a numeric ultrasoft pseudopotential.
Zatom::Any
: Total chargeZval::Any
: Valence chargelmax::Int64
: Maximum angular momentumr::Vector
: Radial meshdr::Union{Vector{T}, T} where T
: Radial mesh spacingVloc::Vector
: Local part of the potential on the radial meshβ::OffsetArrays.OffsetArray{Array{Vector{T}, 1}, 1, Array{Array{Vector{T}, 1}, 1}} where T
: Nonlocal projectors β[l][n] on the radial meshD::OffsetArrays.OffsetArray{Matrix{T}, 1, Array{Matrix{T}, 1}} where T
: Projector coupling coefficients D[l][n,m]χ::OffsetArrays.OffsetArray{Array{Vector{T}, 1}, 1, Array{Array{Vector{T}, 1}, 1}} where T
: Pseudo-atomic wavefunctions χ[l][n] on the radial mesh.Q::OffsetArrays.OffsetArray{Array{Vector{T}, 2}, 1, Array{Array{Vector{T}, 2}, 1}} where T
: Augmentation charge density functions Q[l][n,m] on the radial meshq::OffsetArrays.OffsetArray{Matrix{T}, 1, Array{Matrix{T}, 1}} where T
: Augmentation charges q[l][n,m]ρcore::Union{Nothing, Vector{T}} where T
: Model core charge density for non-linear core correction on the radial meshρval::Union{Nothing, Vector{T}} where T
: Valence charge density for charge density initialization on the radial mesh
PseudoPotentialIO.ProjectorAugmentedWavePsP
— Typestruct ProjectorAugmentedWavePsP{T} <: NumericPsP{T}
Type representing a numeric projector-augmented wave pseudopotential.
PseudoPotentialIO.AnalyticalPsP
— Typeabstract type AnalyticalPsP <: AbstractPsP
Abstract type representing a pseudopotential with an analytical form.
PseudoPotentialIO.HghPsP
— Typestruct HghPsP{T} <: AnalyticalPsP
Analytical Hartwigsen-Goedecker-Hutter pseudopotential.
C. Hartwigsen, S. Goedecker, and J. Hutter. Pys. Rev. B 58, 3641 (1998)
checksum::Vector{UInt8}
: SHA1 ChecksumZatom::Union{Nothing, T} where T
: Atomic chargeZval::Any
: Valence chargelmax::Int64
: Maximum angular momentumrloc::Any
: Radial cutoff for the local part of the pseudopotentialcloc::Vector
: Polynomial coefficience of the local part of the pseudopotentialrnl::OffsetArrays.OffsetArray{T, 1, Vector{T}} where T
: Radial cutoffs for the nonlocal projectorsrnl[l]
D::OffsetArrays.OffsetArray{Matrix{T}, 1, Array{Matrix{T}, 1}} where T
: Nonlocal projector coupling coefficientsD[l][n,m]
Functions
PseudoPotentialIO.load_psp_file
— Functionload_psp_file(path::AbstractString) -> Any
Parse a pseudopotential file into a PsPFile
struct.
load_psp_file(path)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/load.jl:8
.
PseudoPotentialIO.load_psp
— Functionload_psp(file::PsPFile) -> HghPsP{Float64}
Load a pseudopotential file into its corresponding AbstractPsP
subtype.
load_psp(file)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/load.jl:25
.
load_psp(file)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/load.jl:26
.
PseudoPotentialIO.list_families
— Functionlist_families(; with_info) -> Vector{String}
List all known pseudopotential families with additional information about the number and format(s) of the pseudopotentials within if requested (slow!).
list_families(; with_info)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/load.jl:39
.
PseudoPotentialIO.load_family
— Functionload_family(family_name_or_dir::AbstractString) -> Dict
Load all pseudopotentials from a given family.
load_family(family_name_or_dir)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/load.jl:135
.
PseudoPotentialIO.show_family_periodic_table
— Functionshow_family_periodic_table(
family_name_or_dir::AbstractString
) -> Dict
Show the elements contained in a pseudopotential family as a periodic table.
show_family_periodic_table(family_name_or_dir)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/load.jl:75
.
PseudoPotentialIO.show_family_list
— Functionshow_family_list(
family_name_or_dir::AbstractString;
elements
) -> Dict
List the pseudopotentials in a pseudopotential family in a pretty table. The elements for which pseudos are shown can be restricted by passing a list of strings, e.g. ["Ag"].
show_family_list(family_name_or_dir; elements)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/load.jl:95
.
PseudoPotentialIO.identifier
— Functionidentifier(file::PsPFile) -> String
Identifying data (preferably unique).
identifier(file)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/file/file.jl:42
.
identifier(psp)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/file/hgh.jl:94
.
identifier(psp)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/file/psp8.jl:280
.
identifier(psp)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/file/upf.jl:349
.
identifier(psp::AbstractPsP) -> String
Identifying data (preferably unique).
identifier(psp)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/hgh.jl:43
.
identifier(psp)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/numeric.jl:52
.
identifier(psp)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/psp.jl:93
.
PseudoPotentialIO.element
— Functionelement(psp::AbstractPsP) -> String
Element which the pseudopotential was constructed to reproduce.
element(psp)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/hgh.jl:44
.
element(psp)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/numeric.jl:53
.
element(psp)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/psp.jl:98
.
PseudoPotentialIO.format
— Functionformat(file::PsPFile) -> String
Pseudopotential file format.
format(file)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/file/file.jl:47
.
format(_)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/file/hgh.jl:95
.
format(_)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/file/psp8.jl:281
.
format(file)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/file/upf.jl:350
.
PseudoPotentialIO.max_angular_momentum
— Functionmax_angular_momentum(file::PsPFile) -> Int64
Maximum angular momentum channel in the local part of the pseudopotential.
max_angular_momentum(file)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/file/file.jl:57
.
max_angular_momentum(psp)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/file/hgh.jl:108
.
max_angular_momentum(file)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/file/psp8.jl:291
.
max_angular_momentum(file)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/file/upf.jl:358
.
max_angular_momentum(psp::AbstractPsP) -> Int64
Maximum angular momentum channel of the pseudopotential.
max_angular_momentum(psp)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/hgh.jl:55
.
max_angular_momentum(psp)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/numeric.jl:56
.
max_angular_momentum(psp)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/psp.jl:103
.
PseudoPotentialIO.angular_momenta
— Functionangular_momenta(psp::AbstractPsP) -> UnitRange{Int64}
Angular momenta values of the pseudopotential.
angular_momenta(psp)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/psp.jl:276
.
PseudoPotentialIO.relativistic_treatment
— Functionrelativistic_treatment(file::PsPFile) -> Symbol
Type of relativistic treatment (fully relativistic or scalar-relativistic).
relativistic_treatment(file)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/file/file.jl:114
.
relativistic_treatment(psp::AbstractPsP) -> Symbol
Type of relativistic treatment (fully relativistic or scalar-relativistic).
relativistic_treatment(psp)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/psp.jl:281
.
PseudoPotentialIO.formalism
— Functionformalism(
file::PsPFile
) -> Union{Type{NormConservingPsP}, Type{ProjectorAugmentedWavePsP}, Type{UltrasoftPsP}}
Formalism of the pseudopotential.
formalism(file)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/file/file.jl:105
.
formalism(
psp::AbstractPsP
) -> Union{Type{NormConservingPsP}, Type{ProjectorAugmentedWavePsP}, Type{UltrasoftPsP}}
Formalism of the pseudopotential (norm-conserving, ultrasoft, projector-augmented wave, or Coulomb).
formalism(psp)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/psp.jl:287
.
PseudoPotentialIO.valence_charge
— Functionvalence_charge(file::PsPFile) -> Float64
Pseudo-atomic valence charge.
valence_charge(file)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/file/file.jl:73
.
valence_charge(psp)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/file/hgh.jl:107
.
valence_charge(file)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/file/psp8.jl:290
.
valence_charge(file)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/file/upf.jl:357
.
valence_charge(psp::AbstractPsP) -> Any
Pseudo-atomic valence charge.
valence_charge(psp)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/hgh.jl:53
.
valence_charge(psp)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/numeric.jl:60
.
valence_charge(psp)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/psp.jl:119
.
PseudoPotentialIO.atomic_charge
— Functionatomic_charge(psp::AbstractPsP) -> Any
Charge of the atom corresponding to the psp
's element
.
atomic_charge(psp)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/hgh.jl:54
.
atomic_charge(psp)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/numeric.jl:61
.
atomic_charge(psp)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/psp.jl:124
.
PseudoPotentialIO.n_projector_radials
— Functionn_projector_radials(file::PsPFile, l) -> Int64
Number of radial parts of the Kleinman-Bylander projectors Rl(r)
at a given angular momentum.
n_projector_radials(file, l)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/file/file.jl:63
.
n_projector_radials(psp, l)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/file/hgh.jl:109
.
n_projector_radials(file, l)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/file/psp8.jl:292
.
n_projector_radials(file, l)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/file/upf.jl:359
.
n_projector_radials(file::PsPFile) -> Any
Number of radial parts of the Kleinman-Bylander nonlocal projectors at all angular momenta up to the maximum angular momentum channel.
n_projector_radials(file)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/file/file.jl:120
.
n_projector_radials(psp::AbstractPsP, l) -> Int64
Number of radial parts Rₗₙ(|r|)
of the Kleinman-Bylander projectors Rₗₙ(|r|)Yₗₘ(r̂)
at a given angular momentum l
.
n_projector_radials(psp, l)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/hgh.jl:56
.
n_projector_radials(psp, l)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/numeric.jl:57
.
n_projector_radials(psp, l)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/psp.jl:109
.
n_projector_radials(psp::AbstractPsP) -> Any
Number of radial parts of the Kleinman-Bylander projectors at all angular momenta up to the maximum angular momentum channel.
n_projector_radials(psp)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/psp.jl:302
.
PseudoPotentialIO.n_projector_angulars
— Functionn_projector_angulars(file::PsPFile, l) -> Any
Number of angular parts Yₗₘ(r̂)
of the Kleinman-Bylander projectors Rₗₙ(|r|)Yₗₘ(r̂)
at a given angular momentum l
.
n_projector_angulars(file, l)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/file/file.jl:128
.
n_projector_angulars(file::PsPFile) -> Any
Number of angular parts of the Kleinman-Bylander projectors at all angular momenta up to the maximum angular momentum channel.
n_projector_angulars(file)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/file/file.jl:137
.
n_projector_angulars(psp::AbstractPsP, l) -> Any
Number of angular parts Yₗₘ(r̂)
of the Kleinman-Bylander projectors Rₗₙ(|r|)Yₗₘ(r̂)
at a given angular momentum l
.
n_projector_angulars(psp, l)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/psp.jl:310
.
n_projector_angulars(psp::AbstractPsP) -> Any
Number of angular parts of the Kleinman-Bylander projectors at all angular momenta up to the maximum angular momentum channel.
n_projector_angulars(psp)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/psp.jl:319
.
PseudoPotentialIO.n_chi_function_radials
— Functionn_chi_function_radials(file::PsPFile, l) -> Int64
Number of radial parts of the chi-functions with angular momentum l
.
n_chi_function_radials(file, l)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/file/file.jl:68
.
n_chi_function_radials(_, l)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/file/hgh.jl:110
.
n_chi_function_radials(_, l)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/file/psp8.jl:293
.
n_chi_function_radials(file, l)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/file/upf.jl:362
.
n_chi_function_radials(file::PsPFile) -> Any
Number chi-functions at all angular momenta up to the maximum angular momentum channel.
n_chi_function_radials(file)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/file/file.jl:145
.
n_chi_function_radials(psp::AbstractPsP, l) -> Int64
Number of radial parts of the chi-functions with angular momentum l
.
n_chi_function_radials(_, _)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/hgh.jl:57
.
n_chi_function_radials(psp, l)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/numeric.jl:58
.
n_chi_function_radials(psp, l)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/psp.jl:114
.
n_chi_function_radials(psp::AbstractPsP) -> Any
Number chi-functions Rₗₙ(|r|) * Yₗₘ(r̂)
at angular momenta l
up to the maximum angular momentum channel.
n_chi_function_radials(psp)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/psp.jl:332
.
PseudoPotentialIO.n_chi_function_angulars
— Functionn_chi_function_angulars(file::PsPFile, l) -> Any
Number of angular parts of the chi-functions with angular momentum l
.
n_chi_function_angulars(file, l)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/file/file.jl:152
.
n_chi_function_angulars(file::PsPFile) -> Any
Number of angular parts of the chi-functions at all angular momenta up to the maximum angular momentum channel.
n_chi_function_angulars(file)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/file/file.jl:161
.
n_chi_function_angulars(psp::AbstractPsP, l) -> Any
Number of angular parts of the chi-functions with angular momentum l
.
n_chi_function_angulars(psp, l)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/psp.jl:339
.
n_chi_function_angulars(psp::AbstractPsP) -> Any
Number of angular parts of the chi-functions at all angular momenta up to the maximum angular momentum channel.
n_chi_function_angulars(psp)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/psp.jl:348
.
PseudoPotentialIO.is_norm_conserving
— Functionis_norm_conserving(file::PsPFile) -> Bool
Whether the pseudopotential is of the norm-conserving kind.
is_norm_conserving(file)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/file/file.jl:78
.
is_norm_conserving(_)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/file/hgh.jl:104
.
is_norm_conserving(file)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/file/psp8.jl:287
.
is_norm_conserving(file)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/file/upf.jl:352
.
is_norm_conserving(psp::AbstractPsP) -> Bool
Whether the pseudopotential is of the norm-conserving kind.
is_norm_conserving(_)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/hgh.jl:50
.
is_norm_conserving(_)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/norm_conserving.jl:164
.
is_norm_conserving(psp)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/psp.jl:129
.
is_norm_conserving(_)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/ultrasoft.jl:130
.
PseudoPotentialIO.is_ultrasoft
— Functionis_ultrasoft(file::PsPFile) -> Bool
Whether the pseudopotential is of the ultrasoft kind.
is_ultrasoft(file)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/file/file.jl:83
.
is_ultrasoft(_)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/file/hgh.jl:105
.
is_ultrasoft(file)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/file/psp8.jl:288
.
is_ultrasoft(file)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/file/upf.jl:353
.
is_ultrasoft(psp::AbstractPsP) -> Bool
Whether the pseudopotential is of the ultrasoft kind.
is_ultrasoft(_)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/hgh.jl:51
.
is_ultrasoft(_)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/norm_conserving.jl:165
.
is_ultrasoft(psp)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/psp.jl:134
.
is_ultrasoft(_)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/ultrasoft.jl:131
.
PseudoPotentialIO.is_paw
— Functionis_paw(file::PsPFile) -> Bool
Whether the pseudopotential is of the plane-augmented wave kind.
is_paw(file)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/file/file.jl:88
.
is_paw(_)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/file/hgh.jl:106
.
is_paw(file)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/file/psp8.jl:289
.
is_paw(file)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/file/upf.jl:354
.
is_paw(psp::AbstractPsP) -> Bool
Whether the pseudopotential is of the plane-augmented wave kind.
is_paw(_)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/hgh.jl:52
.
is_paw(_)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/norm_conserving.jl:166
.
is_paw(psp)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/psp.jl:139
.
is_paw(_)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/ultrasoft.jl:132
.
PseudoPotentialIO.has_spin_orbit
— Functionhas_spin_orbit(file::PsPFile) -> Bool
Whether the pseudopotential contains relativistic spin-orbit coupling data.
has_spin_orbit(file)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/file/file.jl:93
.
has_spin_orbit(_)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/file/hgh.jl:102
.
has_spin_orbit(file)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/file/psp8.jl:285
.
has_spin_orbit(file)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/file/upf.jl:355
.
has_spin_orbit(psp::AbstractPsP) -> Bool
Whether the pseudopotential contains relativistic spin-orbit coupling data.
has_spin_orbit(_)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/hgh.jl:46
.
has_spin_orbit(_)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/numeric.jl:62
.
has_spin_orbit(psp)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/psp.jl:144
.
PseudoPotentialIO.has_core_density
— Functionhas_core_density(file::PsPFile) -> Bool
Whether the pseudopotential contains non-linear core correction data (model core charge density).
has_core_density(file)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/file/file.jl:99
.
has_core_density(_)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/file/hgh.jl:103
.
has_core_density(file)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/file/psp8.jl:286
.
has_core_density(file)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/file/upf.jl:356
.
has_core_density(psp::AbstractPsP) -> Bool
Whether the pseudopotential contains non-linear core correction data (model core charge density).
has_core_density(_)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/hgh.jl:47
.
has_core_density(psp)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/numeric.jl:63
.
has_core_density(psp)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/psp.jl:150
.
PseudoPotentialIO.has_valence_density
— Functionhas_valence_density(psp::AbstractPsP) -> Bool
Whether the pseudopotential contains valence charge density data.
has_valence_density(_)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/hgh.jl:48
.
has_valence_density(psp)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/numeric.jl:64
.
has_valence_density(psp)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/psp.jl:155
.
PseudoPotentialIO.has_chi_functions
— Functionhas_chi_functions(psp::AbstractPsP) -> Bool
Whether the pseudopotential contains pseudoatomic orbitals.
has_chi_functions(_)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/hgh.jl:49
.
has_chi_functions(psp)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/numeric.jl:65
.
has_chi_functions(psp)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/psp.jl:160
.
PseudoPotentialIO.local_potential_cutoff_radius
— Functionlocal_potential_cutoff_radius(psp::AbstractPsP; tol) -> Any
Cutoff radius of the local potential in real-space.
local_potential_cutoff_radius(; tol)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/hgh.jl:59
.
local_potential_cutoff_radius(psp; tol)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/numeric.jl:67
.
local_potential_cutoff_radius(psp; tol)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/psp.jl:170
.
PseudoPotentialIO.projector_cutoff_radius
— Functionprojector_cutoff_radius(
psp::AbstractPsP,
l::Int64,
n::Int64;
tol
) -> Any
Cutoff radius of the n
th Kleinman-Bylander non-local projector at angular momentum l
in real-space.
projector_cutoff_radius(, , ; tol)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/hgh.jl:60
.
projector_cutoff_radius(psp, l, n; tol)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/numeric.jl:72
.
projector_cutoff_radius(psp, l, n; tol)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/psp.jl:176
.
PseudoPotentialIO.chi_function_cutoff_radius
— Functionchi_function_cutoff_radius(
psp::AbstractPsP,
l::Int64,
n::Int64;
tol
) -> Any
Cutoff radius of the n
th chi function at angular momentum l
in real-space.
chi_function_cutoff_radius(, , ; tol)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/hgh.jl:61
.
chi_function_cutoff_radius(psp, l, n; tol)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/numeric.jl:77
.
chi_function_cutoff_radius(psp, l, n; tol)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/psp.jl:181
.
PseudoPotentialIO.valence_charge_density_cutoff_radius
— Functionvalence_charge_density_cutoff_radius(
psp::AbstractPsP;
tol
) -> Any
Cutoff radius of the valence charge density in real-space.
valence_charge_density_cutoff_radius(; tol)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/hgh.jl:62
.
valence_charge_density_cutoff_radius(psp; tol)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/numeric.jl:83
.
valence_charge_density_cutoff_radius(psp; tol)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/psp.jl:186
.
PseudoPotentialIO.core_charge_density_cutoff_radius
— Functioncore_charge_density_cutoff_radius(
psp::AbstractPsP;
tol
) -> Any
Cutoff radius of the core charge density in real-space.
core_charge_density_cutoff_radius(; tol)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/hgh.jl:63
.
core_charge_density_cutoff_radius(psp; tol)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/numeric.jl:89
.
core_charge_density_cutoff_radius(psp; tol)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/psp.jl:191
.
PseudoPotentialIO.pseudo_cutoff_radius
— Functionpseudo_cutoff_radius(psp::AbstractPsP; f, tol) -> Any
Find the cutoff radius for the pseudopotential. Supply a function f
to determine what kind of reduction over cutoff radii for different quantities is performed. Supply tol
if you'd like to truncate the quantities where they decay to |f| < tol
.
pseudo_cutoff_radius(psp; f, tol)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/psp.jl:389
.
PseudoPotentialIO.projector_radial_indices
— Functionprojector_radial_indices(
psp::AbstractPsP,
l
) -> UnitRange{Int64}
Indices of projector radial parts at a given angular momentum.
projector_radial_indices(psp, l)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/psp.jl:296
.
PseudoPotentialIO.chi_function_radial_indices
— Functionchi_function_radial_indices(
psp::AbstractPsP,
l
) -> UnitRange{Int64}
Indices of pseudo-atomic wavefunction radial parts at a given angular momentum.
chi_function_radial_indices(psp, l)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/psp.jl:326
.
PseudoPotentialIO.projector_coupling
— Functionprojector_coupling(psp::AbstractPsP, l) -> Matrix
Projector coupling matrix at angular momentum l
.
projector_coupling(psp, l)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/hgh.jl:65
.
projector_coupling(psp, l)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/numeric.jl:95
.
projector_coupling(psp, l)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/psp.jl:165
.
projector_coupling(
psp::AbstractPsP,
l::Int64,
n::Int64,
m::Int64
) -> Any
Projector coupling constant between the n
th and m
th projector with angular momentum l
.
projector_coupling(psp, l, n, m)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/psp.jl:402
.
projector_coupling(
psp::AbstractPsP,
l::Int64,
n::Int64
) -> Any
Projector coupling constant between the n
th projector with angular momentum l
itself.
projector_coupling(psp, l, n)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/psp.jl:409
.
PseudoPotentialIO.pseudo_energy_correction
— Functionpseudo_energy_correction(T::Type, psp::AbstractPsP) -> Any
Pseudopotential energy correction (the DC component of the Fourier transform of the local part of the pseudopotential).
pseudo_energy_correction(T, psp)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/hgh.jl:165
.
pseudo_energy_correction(T, psp; tol)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/numeric.jl:158
.
pseudo_energy_correction(T, psp)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/psp.jl:270
.
PseudoPotentialIO.augmentation_coupling
— Functionaugmentation_coupling(
psp::UltrasoftPsP{T},
l::Int64
) -> Matrix
Augmentation charge coupling matrix (elements).
augmentation_coupling(psp, l)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/ultrasoft.jl:139
.
PseudoPotentialIO.local_potential_real
— Functionlocal_potential_real(psp::AbstractPsP) -> Any
Local part of the pseudopotential evaluated at real-space point r
.
local_potential_real(psp)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/hgh.jl:98
.
local_potential_real(psp)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/numeric.jl:99
.
local_potential_real(psp)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/psp.jl:196
.
PseudoPotentialIO.local_potential_fourier
— Functionlocal_potential_fourier(psp::AbstractPsP) -> Any
Local part of the pseudopotential evaluated at reciprocal-space point q
.
local_potential_fourier(psp)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/hgh.jl:88
.
local_potential_fourier(psp; tol)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/numeric.jl:122
.
local_potential_fourier(psp)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/psp.jl:232
.
PseudoPotentialIO.projector_real
— Functionprojector_real(
psp::AbstractPsP,
l::Integer,
n::Integer
) -> Any
The n
th nonlocal Kleinman-Bylander projector at angular momentum l
evaluated at real-space point r
.
projector_real(psp, l, n)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/hgh.jl:154
.
projector_real(psp, l, n)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/numeric.jl:103
.
projector_real(psp, l, n)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/psp.jl:204
.
PseudoPotentialIO.projector_fourier
— Functionprojector_fourier(
psp::AbstractPsP,
l::Integer,
n::Integer
) -> Any
The n
th nonlocal Kleinman-Bylander projector at angular momentum l
evaluated at reciprocal-space point q
.
projector_fourier(psp, l, n)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/hgh.jl:144
.
projector_fourier(psp, l, n; tol)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/numeric.jl:137
.
projector_fourier(psp, l, n)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/psp.jl:240
.
PseudoPotentialIO.chi_function_real
— Functionchi_function_real(
psp::AbstractPsP,
l::Integer,
n::Integer
) -> Any
The n
th chi function at angular momentum l
evaulated at real-space point r
.
chi_function_real(psp, l, n)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/numeric.jl:107
.
chi_function_real(psp, l, n)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/psp.jl:211
.
PseudoPotentialIO.chi_function_fourier
— Functionchi_function_fourier(
psp::AbstractPsP,
l::Integer,
n::Integer
) -> Any
The n
th chi function at angular momentum l
evaulated at reciprocal-space point q
.
chi_function_fourier(psp, l, n; tol)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/numeric.jl:142
.
chi_function_fourier(psp, l, n)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/psp.jl:248
.
PseudoPotentialIO.valence_charge_density_real
— Functionvalence_charge_density_real(psp::AbstractPsP) -> Any
Pseudo-atomic valence charge density evaluated at real-space point r
.
valence_charge_density_real(psp)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/numeric.jl:112
.
valence_charge_density_real(psp)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/psp.jl:218
.
PseudoPotentialIO.valence_charge_density_fourier
— Functionvalence_charge_density_fourier(psp::AbstractPsP) -> Any
Pseudo-atomic valence charge density evaluated at reciprocal-space point q
.
valence_charge_density_fourier(psp; tol)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/numeric.jl:148
.
valence_charge_density_fourier(psp)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/psp.jl:255
.
PseudoPotentialIO.core_charge_density_real
— Functioncore_charge_density_real(psp::AbstractPsP) -> Any
Model core charge density evaluated at real-space point r
.
core_charge_density_real(psp)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/numeric.jl:117
.
core_charge_density_real(psp)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/psp.jl:225
.
PseudoPotentialIO.core_charge_density_fourier
— Functioncore_charge_density_fourier(psp::AbstractPsP) -> Any
Model core charge density evaluated at reciprocal-space point q
.
core_charge_density_fourier(psp; tol)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/numeric.jl:153
.
core_charge_density_fourier(psp)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/psp.jl:262
.
PseudoPotentialIO.augmentation_real
— Functionaugmentation_real(
psp::UltrasoftPsP,
l::Int64,
n::Int64,
m::Int64
) -> Any
Augmentation charge in real-space.
augmentation_real(psp, l, n, m)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/ultrasoft.jl:154
.
PseudoPotentialIO.augmentation_fourier
— Functionaugmentation_fourier(
psp::UltrasoftPsP,
l::Int64,
n::Int64,
m::Int64
) -> Any
Augmentation charge in fourier-space.
augmentation_fourier(psp, l, n, m)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/psp/ultrasoft.jl:161
.
PseudoPotentialIO.hankel_transform
— FunctionHankel / Bessel-Fourier transform of order l
of a function f
on a radial mesh r
. The function f
should be rapidly decaying to zero within the bounds of the mesh.
The radial transform is defined as:
\[4\pi \int_0^{\infty} f(r) j_l(q r) r^2 dr \approx 4\pi \int_{r_1}^{r_N} f(r) j_l(q r) r^2 dr\]
where $j_l(x)$ is the spherical Bessel function of the first kind at order $l$.
PseudoPotentialIO.build_interpolator_real
— FunctionBuild an interpolator for the function f
on the radial grid r
in real space and return a function with two methods for evaluating it at radial points and arbitrary 3D vectors.
If the radial grid is linear, the function will be interpolated using cubic splines. Otherwise, simple linear interpolation is the only method currently supported by the interpoaltion backend.
PseudoPotentialIO.simpson
— FunctionSimpson's rule integration for a function f(x)
on a grid with grid spacing dx
. Performs better than the trapezoidal rule on logarithmic grids.
For a uniform grid with an odd number of grid points:
\[\int_a^b f(x) dx \approx \frac{\Delta x}{3} \left[ f(x_1) + 4 \left( \sum_{i=2, i_\mathrm{even}}^{N-1} f(x_i) \right) + 2 \left( \sum_{i=3, i_\mathrm{odd}}^{N-2} f(x_i) + f(x_N) \right) \right]\]
PseudoPotentialIO.fast_sphericalbesselj
— Functionfast_sphericalbesselj(l::Integer) -> Any
Spherical Bessel function of the first kind jₗ(x).
Consistent with https://en.wikipedia.org/wiki/Besselfunction#SphericalBessel_functions and with SpecialFunctions.sphericalbesselj
and Bessels.sphericalbesselj
.
Specialized for integer $l$ in the range $0 \leq l \leq 5$:
\[\begin{aligned} j_0(x) &= \frac{\sin(x)}{x} \\ j_1(x) &= \frac{\sin(x) - x\cos(x)}{x^2} \\ j_2(x) &= \frac{(3 - x^2)\sin(x) - 3x\cos(x)}{x^3} \\ j_3(x) &= \frac{(15 - 6x^2)\sin(x) + (x^3 - 15x)\cos(x)}{x^4} \\ j_4(x) &= \frac{(105 - 45x^2 + x^4)\sin(x) + (10x^3 - 105x)\cos(x)}{x^5} \\ \end{aligned}\]
fast_sphericalbesselj(l)
defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/common/spherical_bessel.jl:19
.