API reference

Index

Types

PseudoPotentialIO.PsPFileType
abstract 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.

source
PseudoPotentialIO.UpfFileType
struct UpfFile <: PsPFile

Universal Pseudopotential Format file contents.

  • identifier::String: Identifier

  • version::String: UPF format version

  • info::Union{Nothing, String}: Optional general information about the pseudopotential, often generation input

  • header::PseudoPotentialIO.UpfHeader: Various pseudopotential metadata

  • mesh::PseudoPotentialIO.UpfMesh: Radial mesh, mesh integration factors, and other mesh information

  • nlcc::Union{Nothing, Vector{Float64}}: Pseudized core charge on the radial grid, (ignored if core_correction is false)

  • local_::Union{Nothing, Vector{Float64}}: Local part of the pseudopotential on the radial grid (ignored if is_coulomb)

  • nonlocal::PseudoPotentialIO.UpfNonlocal: Nonlocal part of the pseudopotential

  • pswfc::Vector{PseudoPotentialIO.UpfChi}: Pseudo-atomic valence wavefunctions

  • full_wfc::Union{Nothing, PseudoPotentialIO.UpfFullWfc}: All-electron wavefunctions

  • rhoatom::Vector{Float64}: Pseudo-atomic valence charge density on the radial grid with prefactor 4πr²

  • spin_orb::Union{Nothing, PseudoPotentialIO.UpfSpinOrb}: Spin-orbit coupling data, (ignored if has_so is false)

  • paw::Union{Nothing, PseudoPotentialIO.UpfPaw}: PAW data, (ignored if is_paw is false)

  • gipaw::Union{Nothing, PseudoPotentialIO.UpfGipaw}: GIPAW data

source
PseudoPotentialIO.Psp8FileType
struct 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.

  • identifier::String: Identifier

  • header::PseudoPotentialIO.Psp8Header: Various pseudopotential metadata

  • rgrid::Vector{Float64}: Uniform radial grid starting at r = 0.0

  • v_local::Vector{Float64}: Local part of the pseudopotential

  • projectors::Vector{Vector{Vector{Float64}}}: Radial part of the Kleinman-Bylander projectors for each angular momentum

  • ekb::Vector{Vector{Float64}}: Kleinman-Bylander energies for each angular momentum

  • projectors_so::Union{Nothing, Vector{Vector{Vector{Float64}}}}: Radial part of the spin-orbit Kleinman-Bylander projectors for each angular momentum

  • ekb_so::Union{Nothing, Vector{Vector{Float64}}}: Spin-orbit Kleinman-Bylander energies for each angular momentum

  • rhoc::Union{Nothing, Vector{Float64}}: Model core charge density with 4π prefactor

  • d_rhoc_dr::Union{Nothing, Vector{Float64}}: First derivative of the model core charge density

  • d2_rhoc_dr2::Union{Nothing, Vector{Float64}}: Second derivative of the model core charge density

  • d3_rhoc_dr3::Union{Nothing, Vector{Float64}}: Third derivative of the model core charge density

  • d4_rhoc_dr4::Union{Nothing, Vector{Float64}}: Fourth derivative of the model core charge density

  • rhov::Union{Nothing, Vector{Float64}}: Valence charge density with 4π prefactor

  • ae_rhov::Union{Nothing, Vector{Float64}}: All-electron valence charge density with 4π prefactor

  • ae_rhoc::Union{Nothing, Vector{Float64}}: All-electron core charge density with 4π prefactor

source
PseudoPotentialIO.HghFileType
struct HghFile <: PsPFile

Hartwigsen-Goedecker-Hutter pseudopotential file contents.

  • identifier::String: Identifier

  • functional::String: Functional guessed from the source file path if available

  • title::String: Description

  • zion::Vector{Int64}: Pseudo-atomic (valence) charge

  • rloc::Float64: Cutoff radius for the local part of the pseudopotential

  • nloc::Int64: Number of coefficients defining the local part of the pseudopotential

  • cloc::Vector{Float64}: Coefficients of the local part of the pseudopotential

  • lmax::Int64: Maximum angular momentum

  • rp::Vector{Float64}: Non-local projector cutoff radius for each angular momentum

  • h::Vector{Matrix{Float64}}: Kleinman-Bylander energies

source

Functions

Loading and saving

PseudoPotentialIO.save_psp_fileFunction
save_psp_file(
    path::AbstractString,
    psp::PsPFile,
    args...;
    kwargs...
)

Save a PsPFile struct into a file. The file type depends on the type of the file to save (e.g. a Psp8File file is saved to a .psp8 or a UpfFile to a .upf). An important keyword argument is format, which enables to request a particular version of the file format to be employed.

save_psp_file(path, psp, args; kwargs...)

defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/save.jl:7.

source

Conversion

Metadata

Note that these functions are not exported, but part of the public API.

PseudoPotentialIO.identifierFunction
source
PseudoPotentialIO.formatFunction
source
PseudoPotentialIO.elementFunction
element(file::PsPFile) -> PeriodicTable.Element

The element which the pseudopotential was constructed to reproduce.

element(file)

defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/file/file.jl:22.

element(psp)

defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/file/hgh.jl:104.

element(file)

defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/file/psp8.jl:356.

element(file)

defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/file/upf.jl:447.

source
PseudoPotentialIO.functionalFunction
functional(file::PsPFile) -> Vector{Symbol}

Exchange-correlation functional identifiers (Libxc-compatible), or empty if unknown.

functional(file)

defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/file/file.jl:27.

functional(psp)

defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/file/hgh.jl:111.

functional(file)

defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/file/psp8.jl:357.

functional(file)

defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/file/upf.jl:446.

source
PseudoPotentialIO.valence_chargeFunction
source
PseudoPotentialIO.is_norm_conservingFunction
is_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:37.

is_norm_conserving(_)

defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/file/hgh.jl:113.

is_norm_conserving(file)

defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/file/psp8.jl:359.

is_norm_conserving(file)

defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/file/upf.jl:448.

source
PseudoPotentialIO.is_ultrasoftFunction
source
PseudoPotentialIO.is_pawFunction
source
PseudoPotentialIO.has_spin_orbitFunction
has_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:52.

has_spin_orbit(_)

defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/file/hgh.jl:116.

has_spin_orbit(file)

defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/file/psp8.jl:362.

has_spin_orbit(file)

defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/file/upf.jl:451.

source
PseudoPotentialIO.has_model_core_charge_densityFunction
has_model_core_charge_density(file::PsPFile) -> Bool

Whether the pseudopotential contains a model core charge density used in non-linear core correction.

has_model_core_charge_density(file)

defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/file/file.jl:57.

has_model_core_charge_density(_)

defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/file/hgh.jl:117.

has_model_core_charge_density(file)

defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/file/psp8.jl:363.

has_model_core_charge_density(file)

defined at /home/runner/work/PseudoPotentialIO.jl/PseudoPotentialIO.jl/src/file/upf.jl:452.

source