qtcad.atoms.materials module

class qtcad.atoms.materials.OneAtom(atom_species: str)

Bases: OneAtom

Onsite tight-binding model parameters of a given atomic species.

Attributes:
  • atom_species (str) – Atomic species (e.g. “Si”).

  • tb_params (dict) – Onsite tight-binding model parameters; keys refer to the name of the parameter set (which is typically the name of the first author of the paper from which the parameters were extracted) and values are dictionaries of the parameters, expressed in SI units.

  • tb_orbs (dict) – Atomic orbital basis set used in the tight-binding model; keys refer to the name of the parameter set (which is typically the name of the first author of the paper from which the parameters were extracted) and values are strings which may either be “sp3” for an \(sp^3\) basis, “sp3s*” for an \(sp^3s^{\star}\) basis, or “sp3d5s*” for an \(sp^3d^5s^{\star}\) basis.

__init__(atom_species: str) None
Parameters:

atom_species (str) – Atomic species (e.g. “Si”).

get_tb_params(tb_params_name: str, units: str) Tuple[dict, str]

Extract input onsite tight-binding model parameter set.

Parameters:
  • tb_params_name (str) – Name of the parameter set, which is typically the name of the first author of the paper from which the parameters were extracted.

  • units (str) – Units of the parameters, which may either be “SI” for SI units (metres and joules) or “A-eV” for angstroms and electrovolts.

Returns:

Two-element tuple containing

  • dict - Onsite tight-binding model parameters.

  • str - Atomic orbital basis set used in the tight-binding model, which may either be “sp3” for an \(sp^3\) basis, “sp3s*” for an \(sp^3s^{\star}\) basis, or “sp3d5s*” for an \(sp^3d^5s^{\star}\) basis.

set_tb_params(tb_params_name: str, params: dict, orbs: str, units: str) None

Set onsite tight-binding model parameters.

Parameters:
  • tb_params_name (str) – Name of the parameter set, which is typically the name of the first author of the paper from which the parameters were extracted.

  • params (dict) – Dictionary of onsite tight-binding model parameters.

  • orbs (str) – Atomic orbital basis set used in the tight-binding model, which may either be “sp3” for an \(sp^3\) basis, “sp3s*” for an \(sp^3s^{\star}\) basis, or “sp3d5s*” for an \(sp^3d^5s^{\star}\) basis.

  • units (str) – Units of the parameters, which may either be “SI” for SI units (metres and joules) or “A-eV” for angstroms and electrovolts.

class qtcad.atoms.materials.ThreeAtoms(atom_species_1: str, atom_species_2: str, atom_species_3: str)

Bases: ThreeAtoms

Keating valence force-field model bond-bending parameters of a given triplet of atomic species.

Attributes:
  • atom_species_1 (str) – Atomic species (e.g. “Si”) of the first atom in the triplet.

  • atom_species_2 (str) – Atomic species (e.g. “Si”) of the second atom in the triplet; it is the central atom of the triplet.

  • atom_species_3 (str) – Atomic species (e.g. “Si”) of the third atom in the triplet.

  • vff_params (dict) – Keating valence force-field model bond-bending parameters; keys refer to the name of the parameter set (which is typically the name of the first author of the paper from which the parameters were extracted) and values are dictionaries of the parameters, , expressed in SI units.

__init__(atom_species_1: str, atom_species_2: str, atom_species_3: str) None
Parameters:
  • atom_species_1 (str) – Atomic species (e.g. “Si”) of the first atom in the triplet.

  • atom_species_2 (str) – Atomic species (e.g. “Si”) of the second atom in the triplet; it is the central atom of the triplet.

  • atom_species_3 (str) – Atomic species (e.g. “Si”) of the third atom in the triplet.

get_mirrored_atom_triplet() ThreeAtoms

Create a new ThreeAtoms object with the atom species of the peripheral (non-central) atoms swapped.

Returns:

qtcad.atoms.materials.ThreeAtoms – Mirrored atom triplet

get_vff_params(vff_params_name: str, units: str) dict

Extract input Keating valence force-field model bond-bending parameter set.

Parameters:
  • vff_params_name (str) – Name of the parameter set, which is typically the name of the first author of the paper from which the parameters were extracted.

  • units (str) – Units of the parameters, which may either be “SI” for SI units (metres and joules) or “A-eV” for angstroms and electrovolts.

Returns:

dict – Keating valence force-field model bond-bending parameters.

set_vff_params(vff_params_name: str, params: dict, units: str) None

Set Keating valence force-field model bond-bending parameters.

Parameters:
  • vff_params_name (str) – Name of the parameter set, which is typically the name of the first author of the paper from which the parameters were extracted.

  • params (dict) – Dictionary of Keating valence force-field model bond-bending parameters.

  • units (str) – Units of the parameters, which may either be “SI” for SI units (metres and joules) or “A-eV” for angstroms and electrovolts.

class qtcad.atoms.materials.TwoAtoms(atom_species_1: str, atom_species_2: str)

Bases: TwoAtoms

Offsite tight-binding model parameters and Keating valence force-field model bond-stretching parameters of a given pair of atomic species.

Attributes:
  • atom_species_1 (str) – Atomic species (e.g. “Si”) of the first atom in the pair.

  • atom_species_2 (str) – Atomic species (e.g. “Si”) of the second atom in the pair.

  • tb_params (dict) – Offsite tight-binding model parameters; keys refer to the name of the parameter set (which is typically the name of the first author of the paper from which the parameters were extracted) and values are dictionaries of the parameters, expressed in SI units.

  • tb_orbs (dict) – Atomic orbital basis set used in the tight-binding model; keys refer to the name of the parameter set (which is typically the name of the first author of the paper from which the parameters were extracted) and values are strings which may either be “sp3” for an \(sp^3\) basis, “sp3s*” for an \(sp^3s^{\star}\) basis, or “sp3d5s*” for an \(sp^3d^5s^{\star}\) basis.

  • vff_params (dict) – Keating valence force-field model bond-stretching parameters; keys refer to the name of the parameter set (which is typically the name of the first author of the paper from which the parameters were extracted) and values are dictionaries of the parameters, expressed in SI units.

__init__(atom_species_1: str, atom_species_2: str) None
Parameters:
  • atom_species_1 (str) – Atomic species (e.g. “Si”) of the first atom in the pair.

  • atom_species_2 (str) – Atomic species (e.g. “Si”) of the second atom in the pair.

get_mirrored_atom_pair() TwoAtoms

Create a new TwoAtoms object with the atom species swapped.

Returns:

qtcad.atoms.materials.TwoAtoms – Mirrored atom pair.

get_tb_params(tb_params_name: str, units: str) Tuple[dict, str]

Extract input offsite tight-binding model parameter set.

Parameters:
  • tb_params_name (str) – Name of the parameter set, which is typically the name of the first author of the paper from which the parameters were extracted.

  • units (str) – Units of the parameters, which may either be “SI” for SI units (metres and joules) or “A-eV” for angstroms and electrovolts.

Returns:

Two-element tuple containing

  • dict - Offsite tight-binding model parameters.

  • str - Atomic orbital basis set used in the tight-binding model, which may either be “sp3” for an \(sp^3\) basis, “sp3s*” for an \(sp^3s^{\star}\) basis, or “sp3d5s*” for an \(sp^3d^5s^{\star}\) basis.

get_vff_params(vff_params_name: str, units: str) dict

Extract input Keating valence force-field model bond-stretching parameter set.

Parameters:
  • vff_params_name (str) – Name of the parameter set, which is typically the name of the first author of the paper from which the parameters were extracted.

  • units (str) – Units of the parameters, which may either be “SI” for SI units (metres and joules) or “A-eV” for angstroms and electrovolts.

Returns:

dict – Keating valence force-field model bond-stretching parameters.

set_tb_params(tb_params_name: str, params: dict, orbs: str, units: str) None

Set offsite tight-binding model parameters.

If the two atoms are of the same chemical species, V_i1j2X = V_i2j1X for any i, j = s, p, d, t and for any X = S, P, D. In this case, V_i1j2X = V_i2j1X may simply be denoted as V_ijX. If this simplified notation is used in the input dictionary, this method automatically converts it to the full notation V_i1j2X, V_i2j1X before storing the parameters.

Parameters:
  • tb_params_name (str) – Name of the parameter set, which is typically the name of the first author of the paper from which the parameters were extracted.

  • params (dict) – Dictionary of offsite tight-binding model parameters.

  • orbs (str) – Atomic orbital basis set used in the tight-binding model, which may either be “sp3” for an \(sp^3\) basis, “sp3s*” for an \(sp^3s^{\star}\) basis, or “sp3d5s*” for an \(sp^3d^5s^{\star}\) basis.

  • units (str) – Units of the parameters, which may either be “SI” for SI units (metres and joules) or “A-eV” for angstroms and electrovolts.

set_vff_params(vff_params_name: str, params: dict, units: str) None

Set Keating valence force-field model bond-stretching parameters.

Parameters:
  • vff_params_name (str) – Name of the parameter set, which is typically the name of the first author of the paper from which the parameters were extracted.

  • params (dict) – Dictionary of Keating valence force-field model bond-stretching parameters.

  • units (str) – Units of the parameters, which may either be “SI” for SI units (metres and joules) or “A-eV” for angstroms and electrovolts.

qtcad.atoms.materials.get_tb_params(atom_species_1: str, atom_species_2: str = None, tb_params_name: str | Tuple[str, ...] = ('Niquet', 'Kim'), units: str = 'SI') Tuple[dict, str]

Retrieve dictionary of tight-binding model parameters corresponding to input atomic species.

If a single atomic species is given as input, a dictionary of onsite tight-binding paramters is output. If two atomic species are given as input, a dictionary of offsite tight-binding parameters is output.

Parameters:
  • atom_species_1 (str) – Atomic species of first (or only) atom (e.g. “Si”).

  • atom_species_2 (str, optional) – Atomic species of second atom (e.g. “Si”)

  • tb_params_name (str or tuple of str, optional) – If a str, name of the tight-binding model parameter set, which is typically the name of the first author of the paper from which the parameters were extracted. If a tuple, names of the tight-binding model parameter sets ordered according to precedence; if multiple parameter sets are available for a given atom or pair of atoms, the parameter set is set to the available parameter set whose name first appears in the tuple. The parameter set names include “Niquet”, “Boykin”, “Vogl”, “Klimeck_cb”, “Klimeck_vb”, and “Kim”. Default: (“Niquet”, “Kim”).

  • units (str, optional) – Units of the parameters, which may either be “SI” for SI units (metres and joules) or “A-eV” for angstroms and electrovolts. Default: “SI”.

Returns:

Two-element tuple containing

  • dict - Onsite (offsite) tight-binding model parameters if atom_species_2 is (is not) None.

  • str - Atomic orbital basis set used in the tight-binding model, which may either be “sp3” for an \(sp^3\) basis, “sp3s*” for an \(sp^3s^{\star}\) basis, or “sp3d5s*” for an \(sp^3d^5s^{\star}\) basis.

qtcad.atoms.materials.get_vff_params(atom_species_1: str, atom_species_2: str, atom_species_3: str = None, vff_params_name: str = 'Niquet', units: str = 'SI') dict

Retrieve dictionary of Keating valence force-field model parameters corresponding to input atomic species.

If two atomic species are given as input, a dictionary of Keating valence force-field model bond-stretching parameters is output. If three atomic species are given as input, a dictionary of Keating valence force-field model bond-bending parameters is output.

Parameters:
  • atom_species_1 (str) – Atomic species of first atom (e.g. “Si”).

  • atom_species_2 (str) – Atomic species of second atom (e.g. “Si”), which corresponds to the central atom of the triplet when atom_species_3 is not None.

  • atom_species_3 (str, optional) – Atomic species of third atom (e.g. “Si”).

  • vff_params_name (str, optional) – Name of the parameter set, which is typically the name of the first author of the paper from which the parameters were extracted. Default: “Niquet”.

  • units (str, optional) – Units of the parameters, which may either be “SI” for SI units (metres and joules) or “A-eV” for angstroms and electrovolts. Default: “SI”.

Returns:

dict – Bond-stretching (bond-bending) Keating valence force-field model parameters if atom_species_3 is (is not) None.