aiida_atomistic.data.structure.hubbard_mixin#

Utility class and functions for HubbardStructureData. Borrowed and adapted from aiida-quantumespresso

Classes#

Module Contents#

class aiida_atomistic.data.structure.hubbard_mixin.HubbardGetterMixin[source]#
get_hubbard_list() List[Tuple[int, str, int, str, float, Tuple[int, int, int], str]][source]#

Return the Hubbard parameters as a list of lists.

The parameters have the following order within each list:
  • atom_index

  • atom_manifold

  • neighbour_index

  • neighbour_manifold

  • value

  • translation

  • hubbard_type

class aiida_atomistic.data.structure.hubbard_mixin.HubbardSetterMixin[source]#
set_hubbard_from_list(projectors: str = 'ortho-atomic', formulation: str = 'dudarev')[source]#

Return a Hubbard() instance from a list of tuples.

Each list must contain the hubbard parameters in the following order:
  • atom_index

  • atom_manifold

  • neighbour_index

  • neighbour_manifold

  • value

  • translation

  • hubbard_type

append_hubbard_parameter(atom_index: int, atom_manifold: str, neighbour_index: int, neighbour_manifold: str, value: float, translation: Tuple[int, int, int] = None, hubbard_type: str = 'Ueff')[source]#

Append a HubbardParameters.

Parameters:
  • atom_index – atom index in unitcell

  • atom_manifold – atomic manifold (e.g. 3d, 3d-2p)

  • neighbour_index – neighbouring atom index in unitcell

  • neighbour_manifold – neighbour manifold (e.g. 3d, 3d-2p)

  • value – value of the Hubbard parameter, in eV

  • translation – (3,) list of ints, describing the translation vector associated with the neighbour atom, defaults to None

  • hubbard_type – hubbard type (U, V, J, …), defaults to ‘Ueff’ (see Hubbard for full allowed values)

pop_hubbard_parameters(index: int = -1)[source]#

Pop Hubbard parameters in the list.

Parameters:

index – index of the Hubbard parameters to pop

clear_hubbard_parameters()[source]#

Clear all the Hubbard parameters.

initialize_intersites_hubbard(atom_name: str, atom_manifold: str, neighbour_name: str, neighbour_manifold: str, value: float = 1e-08, hubbard_type: str = 'V', use_kinds: bool = True)[source]#

Initialize and append intersite Hubbard values between an atom and its neighbour(s).

Note

this only initialize the value between the first neighbour. In case use_kinds is False, all the possible combination of couples having kind name equal to symbol are initialized.

Parameters:
  • atom_name – atom name in unitcell

  • atom_manifold – atomic manifold (e.g. 3d, 3d-2p)

  • neighbour_index – neighbouring atom name in unitcell

  • neighbour_manifold – neighbour manifold (e.g. 3d, 3d-2p)

  • value – value of the Hubbard parameter, in eV

  • hubbard_type – hubbard type (U, V, J, …), defaults to ‘V’ (see Hubbard for full allowed values)

  • use_kinds – whether to use kinds for initializing the parameters; when False, it initializes all the Kinds matching the atom_name

initialize_onsites_hubbard(atom_name: str, atom_manifold: str, value: float = 1e-08, hubbard_type: str = 'Ueff', use_kinds: bool = True)[source]#

Initialize and append onsite Hubbard values of atoms with specific name.

Parameters:
  • atom_name – atom name in unitcell

  • atom_manifold – atomic manifold (e.g. 3d, 3d-2p)

  • value – value of the Hubbard parameter, in eV

  • hubbard_type – hubbard type (U, J, …), defaults to ‘Ueff’ (see Hubbard for full allowed values)

  • use_kinds – whether to use kinds for initializing the parameters; when False, it initializes all the Kinds matching the atom_name

_get_one_kind_index(kinds: str) List[int][source]#

Return the first site index matching with kinds.

_get_symbol_indices(symbol: str) List[int][source]#

Return one site index for each kind name matching symbol.