Species
Species
Section System::Species
Type block
A species is by definition either an "ion" (nucleus + core electrons) described
through a pseudopotential, or a model potential.
Note that some sets of pseudopotentials are distributed with the code. To use these pseudopotentials, you do not need to define them explicitly in the Species block, as default parameters are provided. You can select the set for default pseudopotentials using the PseudopotentialSet variable.
Supported norm-conserving pseudopotential formats are detected by the file extension: UPF (.upf), PSF (SIESTA, .psf), FHI (ABINIT 6, .fhi), CPI (Fritz-Haber, .cpi), QSO (quantum-simulation.org, for Qbox, .xml), HGH (Hartwigsen-Goedecker-Hutter, .hgh). PSPIO format can also be used via species_pspio if that library is linked. Note: pseudopotentials may only be used in 3D.
The format of this block is the following: The first field is a string that defines the name of the species. The second field defines the type of species (the valid options are detailed below).
Then a list of parameters follows. The parameters are specified by a first field with the parameter name and the field that follows with the value of the parameter. Some parameters are specific to a certain species while others are accepted by all species. These are mass, max_spacing, and min_radius.
These are examples of possible species:
%Species
‘O’ | species_pseudo | file | ‘O.psf’ | lmax | 1 | lloc | 1
‘H’ | species_pseudo | file | ‘../H.hgh’
‘Xe’ | species_pseudo | set | pseudojo_pbe_stringent
‘C’ | species_pseudo | file | "carbon.xml"
‘jlm’ | species_jellium | jellium_radius | 5.0
‘rho’ | species_charge_density | density_formula | "exp(-r/a)" | mass | 17.0 | valence | 6
‘udf’ | species_user_defined | potential_formula | "1/2*r^2" | valence | 8
‘He_all’ | species_full_delta
‘H_all’ | species_full_gaussian | gaussian_width | 0.2
‘Li1D’ | species_soft_coulomb | softening | 1.5 | valence | 3
‘H_all’ | species_full_anc | anc_a | 4
%
Options:
- species_pseudo:
The species is a pseudopotential. How to get the
pseudopotential can be specified by the file or
the set parameters. If both are missing, the
pseudopotential will be taken from the PseudopotentialSet
specified for the run, this is useful if you want to change
some parameters of the pseudo, like the mass.
The optional parameters for this type of species are lmax, that defines the maximum angular momentum component to be used, and lloc, that defines the angular momentum to be considered as local. When these parameters are not set, the value for lmax is the maximum angular component from the pseudopotential file. The default value for lloc is taken from the pseudopotential if available, if not, it is set to 0. Note that, depending on the type of pseudopotential, it might not be possible to select lmax and lloc, if that is the case the parameters will be ignored.
- species_pspio:
(experimental) Alternative method to read pseudopotentials
using the PSPIO library. This species uses the same parameters
as species_pseudo.
- species_user_defined:
Species with user-defined potential. The potential for the
species is defined by the formula given by the potential_formula
parameter.
The
valence parameter determines the number of electrons
associated with the species. By default, a valence of 0 is assumed.
- species_charge_density:
The potential for this species is created from the distribution
of charge given by the density_formula parameter.
The
valence parameter determines the number of electrons
associated with the species. By default, a valence of 0 is assumed.
- species_point:
- species_jellium:
Jellium sphere.
The charge associated with this species must be given by the valence parameter.
- species_jellium_slab:
A slab of jellium that extends across the simulation box in the
xy-plane. The dimension along the z direction is
determined by the required parameter thickness.
The charge associated with this species must be given by the valence parameter.
- species_full_delta:
Full atomic potential represented by a delta charge
distribution. The atom will be displaced to the nearest grid
point. The atomic number is determined from the name of the species.
- species_full_anc:
Analytical norm-conserving regulized Coulomb potential from
[Gygi J. Chem. Theory Comput. 2023, 19, 1300−1309].
- species_full_gaussian:
A full-potential atom is defined by a Gaussian accumulation of
positive charge (distorted if curvilinear coordinates are
used), in the form:
$q(r) = z \beta \exp[ - (\vec{r}-\vec{r_0})^2 / (\sqrt{2} \delta \sigma) ] $
$\beta$ is chosen in order to maintain proper normalization (the integral of $q$ should sum up to $z$). $\delta$ is the grid spacing (the grid spacing in the first dimension, to be precise). $\vec{r_0}$ is calculated in such a way that the the first moment of $q(r)/z$ is equal to the atomic position. For a precise description, see N. A. Modine, Phys. Rev. B 55, 10289 (1997). The width of the Gaussian is set by parameter gaussian_width. The atomic number is determined from the name of the species.
- species_from_file:
The potential is read from a file. Accepted file formats, detected by extension: obf, ncdf and csv.
The
valence parameter determines the number of electrons
associated with the species. By default, a valence of 0 is assumed.
- species_soft_coulomb:
The potential is a soft-Coulomb function, i.e. a function in the form:
$v(r) = - z_{val} / \sqrt{a^2 + r^2}$
The value of a should be given by the mandatory softening parameter. The charge associated with this species must be given by the valence parameter.
- species_jellium_charge_density:
The parameter is the name of a volume block specifying the shape of the jellium.
- lmax:
The maximum angular-momentum channel that will be used for the pseudopotential.
- lloc:
The angular-momentum channel of the pseudopotential to be considered local.
- mass:
The mass of the species in atomic mass units, i.e. the mass of a proton is
roughly one. It is set automatically for pseudopotentials from the
NIST values.
For other species, the default is 1.0.
- valence:
The number of electrons of the species. It is set automatically from the name of the species.
if it correspond to the name in the periodic table. If not specified and if the name
does not match an atom name, a value of 0 is assumed.
- jellium_radius:
The radius of the sphere for species_jellium. If this value is not specified,
the default of 0.5 bohr is used.
- set:
For a species_pseudo, get the pseudopotential from a
particular set. This flag must be followed with one of the
valid values for the variable PseudopotentialSet.
- gaussian_width:
The width of the Gaussian (in units of spacing) used to represent
the nuclear charge for species_full_gaussian. If not present,
the default is 0.6.
- softening:
The softening parameter a for species_soft_coulomb in units of length.
- file:
The path for the file that describes the species.
- db_file:
Obsolete. Use the set option of the PseudopotentialSet variable instead.
- potential_formula:
Mathematical expression that defines the potential for species_user_defined. You can use
any of the x, y, z or r variables.
- density_formula:
Mathematical expression that defines the charge density for species_charge_density. You can use
any of the x, y, z or r variables.
- thickness:
The thickness of the slab for species_jellium_slab. Must be positive.
- vdw_radius:
The van der Waals radius that will be used for this species.
- volume:
Name of a volume block
- hubbard_l:
The angular-momentum for which the effective U will be applied.
- hubbard_u:
The effective U that will be used for the DFT+U calculations.
- hubbard_j:
The value of j (hubbard_l-1/2 or hubbard_l+1/2) on which the effective U is applied.
- hubbard_alpha:
The strength of the potential constraining the occupations of the localized subspace
as defined in PRB 71, 035105 (2005)
- anc_a:
The value of the parameter a of the ANC potential, as defined in [Gygi, JCTC 2023, 19, 1300−1309].
This parameter has the unit of inverse length and determines the range of regularization.