SPRKKRAtoms

class ase2sprkkr.sprkkr.sprkkr_atoms.SPRKKRAtoms(*args, potential=None, symmetry=True, **kwargs)[source]

ASE Atoms object extended by the data necessary for SPR-KKR calculations

Class hierarchy

Inheritance diagram of ase2sprkkr.sprkkr.sprkkr_atoms.SPRKKRAtoms

Constructor

__init__(*args, potential=None, symmetry=True, **kwargs)[source]

Creates SPRKKRAtoms atoms

Parameters:
  • *args (list) – The positionals arguments of ase.Atoms.__init__

  • symmetry (bool) – The symmetry will be computed when the sites property will be initialized. I.e., the by-symmetry-equal atomic sites will share the same sites object.

  • **kwargs (dict) – The named arguments of ase.Atoms.__init__

sites_array_name = 'sprkkr_sites_data'
static promote_ase_atoms(obj, symmetry=None, update_info=None)[source]

Convert ASE Atoms object to the one usable by SPRKKR. For the case of the usability it is a bit ugly hack: The __class__ attribute is replaced so the extra methods and properties of the objects will be available.

Parameters:
  • obj (ase.Atoms) – The atoms object to be promoted to be used for SPRKKR calculations

  • symmetry (bool or None) – The sites property of the resulting object will consider the symmetry of the structure. I.e., the by-symmetry-equal atomic sites will share the same sites object. Default None is the same as True, however it does not change the symmetry of the already promoted obj passed into the routine.

  • update_info

    If True, always update spacegroup info If False, never If None, update it, if it seems to be inited, since it can be messed up by the

    Atoms-manipulating routines

_init(symmetry=True, potential=None)[source]

The initialization of the additional (not-in-ASE) properties. To be used by constructor and by promote_ase_atoms

property regions
add_region(region)[source]

Add a region of a given name

remove_region(name)[source]
set_regions(regions)[source]
Parameters:

regions (List)

property symmetry

Whether the sites property is/will be generated using symmetry, i.e. whether the Sites objects in the sites property will be shared among symmetric atomic sites.

compute_sites_symmetry(symmetry=None, consider_old=False, symmetry_precision=1e-05, angular_precision=1e-05)[source]

SPRKKR has some properties shared by all by-symmetry-equal sites. This method can be called to recompute the equivalent sites.

breaks_sites_symmetry(*args, **kwargs)[source]

Cancel the use of symmetry in the structure, i.e., makes the Site object uniqe (not shared) for each atomic site.

Calling this method is nearly equivalent to setting the symmetry property to False, however, this method always recompute the sites object, while setting symmetry=False recomputes the sites property only if it was previously set to True.

property sites

The sites property holds all the information for the SPR-KKR package: atomic types (including number of semicore and valence electrons), occupancy, symmetries, meshes… Some of the properties are stored in the ASE atoms properties (e.g. occupancy, atomic symbol), however, ASE is not able to hold them all and/or to describe fully the SPR-KKR options; thus, these properties are hold in this array.

The changes made on this array are reflected (as is possible) to the ASE properties, but the opposite does not hold - to reflect the changes in these properties please create a new Atoms object with given properties.

are_sites_inited()[source]
set_sites(sites, spacegroup_info=None, update=True)[source]

Set the sites property and update all other dependent properties (symbols, occupancy) according to the sites.

Unlike sites setter, this method allow also set the spacegoup_info containing the computed informations about the symmetry.

Parameters:
  • sites (ndarray) – The array of the ase2sprkkr.sprkkr.sites.Site objects.

  • sg_info – Information, about the symmetry. If None is given, no info is available, the symmetry will be determined if needed. If False, there is no symmetry. If True, retain the current symmetry.

  • update (bool) – Pass False to prevent updating spacegroup_kinds and occupancy

  • spacegroup_info (SpacegroupInfo | bool | None)

property spacegroup_info
property potential
has_potential()[source]
reset_sprkkr_potential()[source]
copy()[source]

Return a copy.

_promote_if_other(other)[source]
extend(other)[source]

Extend atoms object by appending atoms from other.