Collected pseudopotential files for use as Julia artifacts.
The data in this repository are provided in a convenient fashion via the PseudoPotentialData package. Julia users, which want to use pseudopotentials in a calculation will likely find it more useful to directly employ PseudoPotentialData. An example showing these pseudopotentials in action with a DFT calculation (using DFTK.jl) is given in the DFTK documentation.
Note: This branch is a relatively recent (Dec 2024) rewrite and does not yet contain all pseudopotentials, which were ones made available here. For an older version of the library offering a larger set of pseudopotentials, see the main branch.
The currently available pseudopotential collections can be found in the pseudos subfolder.
Each collection name starts with a prefix for the pseudopotential family, including quantifiers
such as sr
(scalar relativistic) or fr
(full relativistic). Next comes the XC functional
for which the pseudo was constructed (e.g. pbe
, lda
, pbesol
), potentially followed
a version indication, the generating code and some details on the promised accuracy
(stringent, standard, loose).
The name closes in the file format in which the pseudos are stored (e.g. upf
, gth
, psp8
),
which is also the extension used for all file names.
The list of available pseudo families with links to further resources and the appropriate references:
PseudoDojo (prefixed dojo)
M.J. van Setten, M. Giantomassi, E. Bousquet, M.J. Verstraete, D.R. Hamann, X. Gonze, G.-M. Rignanese,
The PseudoDojo: Training and grading a 85 element optimized norm-conserving pseudopotential table,
Computer Physics Communications,
Volume 226,
2018,
https://doi.org/10.1016/j.cpc.2018.01.012.
Script. The pseudodojo pseudopotentials have been added by running the script
julia --project=scripts scripts/add_pseudodojo.jl pseudos
Collection-specific metadata. Contains the following element-specific metadata:
cutoffs_normal
,cutoffs_high
,cutoffs_low
: Respective recommended cutoffs by PseudoDojorcut
: Recommended radial cutoff when integrating numeric pseudopotentials (in Bohrs). Right now just10.0
for each element (the QuantumEspresso hard-coded value). This may be refined in future versions of the library.
CP2K GTH-type potentials (prefixed cp2k)
C. Hartwigsen, S. Goedecker, J. Hutter,
Relativistic separable dual-space Gaussian pseudopotentials from H to Rn,
Physical Review B,
Volume 58,
1998,
https://doi.org/10.1103/PhysRevB.58.3641
S. Goedecker, M. Teter, J. Hutter,
Separable dual-space Gaussian pseudopotentials,
Physical Review B,
Volume 54,
1996,
https://doi.org/10.1103/PhysRevB.54.1703
Script. The cp2k pseudopotentials have been added by running the script
julia --project=scripts scripts/add_cp2k.jl pseudos
In running the script we categorised the pseudopotential files into smallcore, semicore and largecore. The mapping from the original filenames used upstream is available in pseudos/cp2k.nc.sr.lda.v0_1.md and pseudos/cp2k.nc.sr.pbe.v0_1.md.
Collection-specific metadata. Contains the following element-specific metadata:
n_valence_electrons
: Number of valence electronscp2k_filename
: The original file name used in the CP2K pseudopotential data repository.
Next to the usual entries to make the Artifact.toml
useful to download
peudopotential information as a lazy artifact (using LazyArtifacts
)
the Artifact.toml
contains a rich set of metadata for each pseudopotential
family in form of a dictionary with the following keys:
- All keys of the
meta.toml
of the pseudopotential family as discussed below (e.g.collection
,relativistic
,version
,functional
, ...) pseudolibrary_version
: The release version ofPseudoLibrary
- For each element a
element.extension
file (e.g.Si.upf
orAl.xml
) - Optionally, of each element an
element.toml
file as described below, which typically contains additional per-element information such asEcut
,supersampling
,n_valence
etc.
- Add a folder with the pseudopotential files named as
element.extension
(e.g.Si.upf
orAl.xml
) - Add a file
meta.toml
into the folder. This file should represent a dictionary with the following keys:collection
: The larger pseudopotential collection (e.g.dojo
for pseudodojo)relativistic
: The model of relativistic effects used (e.g.sr
orfr
)version
: The version of this collection of pseudopotentials (e.g.version
)type
: Pseudopotential type, such asnc
,paw
,us
functional
such aslda
,pbe
,pbesol
extension
: The file extension of all filesprogram
: Code used to generate the pseudopotentialsextra
: List of some extra identifiers (e.g.semicore
orstandard
)
- For each element you can add an
element.toml
file with additional metadata about this pseudopotential. Collection-specific fields are explained above in the Available pseudopotentials section. Common fields available for most pseudopotential collections include:Ecut
: A recommended kinetic energy cutoff value for the wavefunction to be employed with this pseudopotential. Note, that some libraries set this to-1
to indicate unknown.supersamping
: A recommended supersampling to employ to make up the FFT grid used for densities and potentials. Many codes use the concept of a density cutoff instead of supersampling. The formula to convert between the two conventions isEcut_density = supersampling * supersampling * Ecut
, i.e. the square of the supersampling factor times theEcut
value above gives the density cutoff.
Note, that for most already existing pseudopotential collections scripts have been employed to simplify the addition of new families. These are indicated in the Available Pseudopotentials section above.
- Update the
VERSION
variable inscripts/make_artifacts.jl
- Make a tag of the form
v0.0.0
and push the tag - The CI will effectively call
to assemble a
julia --project=scripts scripts/make_artifact.jl pseudos output
Artifact.toml
and pack respective tarballs, which will then be made available as assets to this new release. - Update the
Artifact.toml
in PseudoPotentialData and release a new version over there.