NormConservingPseudoPotential

class NormConservingPseudoPotential(file_name, principal=None, momenta=None, occupation=None, local_potential_cutoff_threshold=None, local_potential_cutoff_radius=None)

Create a norm-conserving pseudopotential from file data.

Parameters:
  • file_name (str) – Name of the file containing the pseudopotential data.
  • principal – The principal quantum numbers of the valence states. If None the information will be read from the pseudopotential file.
  • momenta – The angular momenta of the valence states. If None the information will be read from the pseudopotential file.
  • occupation – The occupations of the valence states. If None the information will be read from the pseudopotential file.
  • local_potential_cutoff_threshold (PhysicalQuantity) – When the difference between the local potential and the Coulomb potential drop below this threshold value, the local potential is set equal to the exact Coulomb potential. Must be have units of energy.
    Default: 0.0 Hartree
  • local_potential_cutoff_radius (PhysicalQuantity) – The local potential is set equal the Coulomb potential beyond this radius. If False the local potential will not be modified. Must otherwise be a PhysicalQuantity with units of length.
    Default: False
Type:

principal: list

Type:

momenta: list

Type:

occupation: list

element()

Get the element described by the pseudopotential.

Returns:The element.
Return type:PeriodicTableElement
exchangeCorrelation()
Returns:The exchange-correlation of the pseudo-potential.
Return type:ExchangeCorrelation
fileName()

Get the file name.

Returns:The user given file name.
Return type:str
load()

Load the pseudopotential from file.

localPotentialCutoffRadius()

Get the maximum local potential to Coulomb potential cutoff radius.

Returns:The maximum cutoff radius in units of length or False if no maximum cutoff radius should be enforced.
Return type:PhysicalQuantity | False
localPotentialCutoffThreshold()

Get the local potential to Coulomb potential cutoff threshold.

Returns:The potential difference threshold in units of energy.
Return type:PhysicalQuantity
momenta()

Get the angular momenta of the pseudo wave functions.

Returns:A list of angular momenta.
Return type:list
occupation()

Get the occupations of the pseudo wave functions.

Returns:A list of occupations.
Return type:list
principal()

Get the principal quantum numbers of the pseudo wave functions.

Returns:A list of principal quantum numbers.
Return type:list

Usage Examples

Define a norm-conserving pseudo-potential for hydrogen, specified in the zipped file H.LDAPZ.zip:

pseudopotential = NormConservingPseudoPotential('normconserving/H.LDAPZ.zip')

To see the contents of H.LDAPZ.zip, go to the directory where QuantumATK is installed (install_dir) and unpack the pseudo-potential file:

$ cd install_dir/share/pseudopotentials/normconserving
$ unzip H.LDAPZ.zip

This will produce the file H.LDAPZ.upf. You can also specify the unzipped file:

pseudopotential = NormConservingPseudoPotential('normconserving/H.LDAPZ.upf')

Notes

ATK uses the Unified Pseudopotential Format (UPF) defined by the PWscf consortium. From their website it is possible to download tools that can convert several different kinds of pseudopotentials into the UPF format.

ATK comes with a built-in set of pseudopotentials, found in the directory install_dir/share/pseudopotentials, where install_dir is the name of the directory where QuantumATK was installed.