aiida_quantumespresso.workflows.functions.get_xspectra_structures

aiida_quantumespresso.workflows.functions.get_xspectra_structures#

CalcFunction to analyse the symmetry properties of a crystal structure and its atomic sites.

Returns a supercell with a marked absorbing atom for each symmetrically non-equivalent site in the system.

Module Contents#

Functions#

process_molecule_input(structure, **kwargs)

Generate symmetry data and supercell suitable for molecular systems using Pymatgen.

get_spglib_equivalency_dict(equivalent_atoms_array, ...)

Convert the equivalent atoms array into the required dictionary format.

get_supercell(structure, supercell_min_parameter, ...)

Generate a supercell of a PBC system, given a minimum cell length requirement.

get_xspectra_structures(structure, **kwargs)

Read a StructureData object using spglib for its symmetry data and return structures for XSpectra calculations.

aiida_quantumespresso.workflows.functions.get_xspectra_structures.process_molecule_input(structure, **kwargs)[source]#

Generate symmetry data and supercell suitable for molecular systems using Pymatgen.

aiida_quantumespresso.workflows.functions.get_xspectra_structures.get_spglib_equivalency_dict(equivalent_atoms_array, abs_elements_list, element_types, type_mapping_dict)[source]#

Convert the equivalent atoms array into the required dictionary format.

aiida_quantumespresso.workflows.functions.get_xspectra_structures.get_supercell(structure, supercell_min_parameter, is_hubbard_structure, **kwargs)[source]#

Generate a supercell of a PBC system, given a minimum cell length requirement.

aiida_quantumespresso.workflows.functions.get_xspectra_structures.get_xspectra_structures(structure, **kwargs)[source]#

Read a StructureData object using spglib for its symmetry data and return structures for XSpectra calculations.

Takes an incoming StructureData node and prepares structures suitable for calculation with xspectra.x. The basic criteria for a suitable structure is for the cell parameters to be sufficiently large to reduce spurious interactions between localised core-holes in neighbouring periodic images and for one atomic site to be marked as the absorbing atom site.

The default setting for the cell size is 8.0 angstrom, which can be changed by including ‘supercell_min_parameter’ as a Float node in the keyword arguments. Accepted keyword arguments are:

  • abs_atom_marker: a Str node defining the name of the absorbing atom Kind. The

    absorbing Kind will be labelled ‘X’ if no input is given.

  • supercell_min_parameter: a Float node defining the minimum cell length in

    angstrom for the resulting supercell, and thus all output structures. The default value of 8.0 angstrom will be used if no input is given. Setting this value to 0.0 will instruct the CF to not scale up the input structure.

  • standardize_structure: a Bool object defining if the input structure should

    standardized using spglib. The input structure will be standardized if no input is given, or if the crystal system is triclinic.

  • absorbing_elements_list: a List object defining the list of elements to consider

    when producing structures. All elements in the structure will be considered if no input is given.

  • is_molecule_input: a Bool object to define for the function that the input structure is

    a molecule and not a periodic solid system. Required in order to instruct the CF to use Pymatgen rather than spglib to determine the symmetry. The CF will assume the structure to be a periodic solid if no input is given.

  • use_element_types: a Bool object to indicate that symmetry analysis should consider all

    sites of the same element to be equal and ignore any special Kind names from the parent structure. For instance, use_element_types = True would consider sites for Kinds ‘Si’ and ‘Si1’ to be equivalent if both are sites containing silicon. Defaults to True.

  • parse_symmetry: a Bool object to indicate that the symmetry data should be generated using spglib

    for the input structure. If False, will instead use symmetry data provided via the equivalent_sites_data and spacegroup_number inputs and generate all the structures based on this information. Defaults to True.

  • equivalent_sites_data: a Dict object taking the form of the equivalent_sites_data dict normally

    normally generated by the CF. Only read if parse_symmetry = False. Example: {‘site_0’ : {‘symbol’ : ‘Si’, ‘site_index’ : 0, ‘multiplicity’ : 8}} Note that, for each site, only ‘symbol’, ‘site_index’, and ‘multiplicity’ are required, all other options are ignored.

  • spacegroup_number: an Int object defining the spacegroup number of the input structure, only read

    if parse_symmetry = False.

  • spglib_settings: an optional Dict object containing overrides for the symmetry

    tolerance parameters used by spglib (symmprec, angle_tolerance).

  • pymatgen_settings: an optional Dict object containing overrides for the symmetry

    tolerance parameters used by Pymatgen when processing molecular systems (tolerance, eigen_tolerance, matrix_tolerance).

Parameters:

structure – the StructureData object to be analysed

Returns:

StructureData objects for the standardized crystal structure, the supercell, and all generated structure and associated symmetry data