SnB Python API#

ShakeNBreak applied to Cd vacancies in CdTe (VCd)#

In this notebook we follow the full ShakeNBreak (SnB) workflow, where we:

  • Apply the defect distortions

  • Parse the geometry relaxation results

  • Re-generate any energy-lowering distortions found for some (but not all) charge states for a given defect

  • Plot the final energies to demonstrate what energy-lowering defect distortions have been identified

  • Then continue our defect calculations, confident we have obtained the ground-state structures.

Table of contents#

Tip

You can run this notebook interactively through Google Colab or Binder using the launch buttons at the top of the docs tutorial page (click the Rocket ?? icon). If running on Colab, then you’ll need to run !pip install shakenbreak in a cell to install the package, and !git clone https://github.com/SMTG-Bham/shakenbreak to download the example data (and update paths in the code cells accordingly).

import os
import sys

import ase
import numpy as np
import pymatgen
import doped
from importlib_metadata import version

import shakenbreak

# Check versions
print("doped version:", version('doped') )
print("pymatgen version:", version('pymatgen') )
print("pymatgen-analysis-defects version:", version('pymatgen-analysis-defects') )
print("ase version:", version('ase') )
print("ShakeNBreak version:", version('shakenbreak') )
doped version: 2.3.0
pymatgen version: 2024.2.8
pymatgen-analysis-defects version: 2023.10.19
ase version: 3.22.1
ShakeNBreak version: 3.3.0

Rationale for SnB#

Note

Defect distortions often follow the change in electron count when introducing that defect to the system. For the neutral Cd vacancy (VCd0) for example, the removal of Cd and its two valence electrons means that local distortions are likely to involve two neighbouring Te atoms moving closer/further apart to accommodate the broken bonds. For the singly-charged vacancy, we are likely to have just one neighbouring Te moving, etc. This isn’t always the case, but typically points us in the right direction to search the PES, and has been confirmed to yield the best performance (see SI of Identifying the ground state structures of point defects in solids Mosquera-Lois, Kavanagh, Walsh and Scanlon 2022).

So, the SnB method involves distorting the initial bond lengths around the defect for a mesh of trial distortions, with the number of neighbours to distort dictated by the change in valence electron count, performing coarse Γ-only (vasp_gam) relaxations and then comparing the final energies, to see if we identify any lower energy defect structures.

1. Generate defects with doped/pymatgen#

The input defect objects for ShakeNBreak can be generated using either doped, pymatgen or alternatively just the bulk and defect structures can be provided. Below we show how to generate the defect python objects using doped (Section 1.1) and pymatgen (Section 1.1).

In this case we take CdTe as our example system:

1.2 Generate defects with pymatgen.analysis.defects#

Alternatively, we can also generate our defect objects directly with pymatgen. You can skip ahead to Section 2 if you’re generating your defects with doped as shown above.

Note

For a detailed guide on how to use pymatgen.analysis.defects to generate defects, see their tutorial.

A key point to note about their package is that defects are defined independently of the simulation cell (e.g. the supercell). That is, they are generated using the Wigner-Seitz unit cell representation of the bulk material. All information about a defect is captured with the Defect class. When information about the simulation cell needs to be added, the DefectEntry object is used, as exemplified below.

from pymatgen.analysis.defects.core import Defect, Vacancy
from pymatgen.core.structure import Structure

# Using the _primitive_ cell of CdTe
bulk_primitive = Structure.from_file("../tests/data/vasp/CdTe/CdTe_Bulk_Primitive_POSCAR")
from pymatgen.analysis.defects.generators import VacancyGenerator

vac_gen = VacancyGenerator()
vacancies = vac_gen.get_defects(bulk_primitive)
print(vacancies)
[Cd Vacancy defect at site #0, Te Vacancy defect at site #1]
# Select Cd vacancy
v_Cd = vacancies[0]
v_Cd
Cd Vacancy defect at site #0
# We can specify the defect charge states like this:
v_Cd.user_charges = [-2, -1, 0]

After generating the pymatgen Defect object, we need to create a DefectEntry with a specified defect supercell to use with SnB. We can do this using the get_supercell_structure method, and the get_defect_entry_from_defect function defined below:

from pymatgen.core.periodic_table import DummySpecies

max_atoms = 70
min_atoms = 30
min_length = 10
force_diagonal = False

defect_supercell = v_Cd.get_supercell_structure(
    min_length=min_length,  # in Angstrom
    max_atoms=max_atoms,
    min_atoms=min_atoms,
    force_diagonal=force_diagonal,
    dummy_species=DummySpecies("X"),  # We use this to keep track of the frac coords of the
    # defect in the supercell, but the dummy species will be removed in the next cell
)
print("Generated supercell:\n", defect_supercell.lattice)
Generated supercell:
 13.086768 0.000000 0.000000
0.000000 13.086768 0.000000
0.000000 0.000000 13.086768
from pymatgen.analysis.defects.thermo import DefectEntry
from pymatgen.entries.computed_entries import ComputedStructureEntry
from pymatgen.core.periodic_table import DummySpecies

def get_defect_entry_from_defect(
    defect: Defect,
    defect_supercell: Structure,
    charge_state: int,
    dummy_species: DummySpecies=DummySpecies("X"),
):
    """Generate DefectEntry object from Defect object.
    This is used to describe a Defect using a certain simulation cell.
    """
    # Dummy species (used to keep track of the defect coords in the supercell)
    # Find its fractional coordinates & remove it from supercell
    dummy_site = [
        site for site in defect_supercell
        if site.species.elements[0].symbol == dummy_species.symbol
    ][0]
    sc_defect_frac_coords = dummy_site.frac_coords
    defect_supercell.remove(dummy_site)

    computed_structure_entry = ComputedStructureEntry(
        structure=defect_supercell,
        energy=0.0, # needs to be set, so set to 0.0
    )
    return DefectEntry(
        defect=defect,
        charge_state=charge_state,
        sc_entry=computed_structure_entry,
        sc_defect_frac_coords=sc_defect_frac_coords,

    )

defect_entry = get_defect_entry_from_defect(
    defect=v_Cd,
    charge_state=0,
    defect_supercell=defect_supercell,
)
# Check the defect entry
print("Defect object stored as part of the DefectEntry:", defect_entry.defect)
Defect object stored as part of the DefectEntry: Cd Vacancy defect at site #0
print("Defect supercell stored as part of the DefectEntry:", defect_entry.sc_entry.structure)
Defect supercell stored as part of the DefectEntry: Full Formula (Cd31 Te32)
Reduced Formula: Cd31Te32
abc   :  13.086768  13.086768  13.086768
angles:  90.000000  90.000000  90.000000
pbc   :       True       True       True
Sites (63)
  #  SP        a      b      c
---  ----  -----  -----  -----
  0  Cd2+  0.5    0      0
  1  Cd2+  0.75   0.25   0
  2  Cd2+  0.75   0      0.25
  3  Cd2+  0.25   0.25   0
  4  Cd2+  0.5    0.5    0
  5  Cd2+  0.75   0.75   0
  6  Cd2+  0.25   0      0.25
  7  Cd2+  0.5    0.25   0.25
  8  Cd2+  0.75   0.5    0.25
  9  Cd2+  0.5    0      0.5
 10  Cd2+  0.75   0.25   0.5
 11  Cd2+  0.75   0      0.75
 12  Cd2+  0      0.5    0
 13  Cd2+  0.25   0.75   0
 14  Cd2+  0      0.25   0.25
 15  Cd2+  0.25   0.5    0.25
 16  Cd2+  0.5    0.75   0.25
 17  Cd2+  0      0      0.5
 18  Cd2+  0.25   0.25   0.5
 19  Cd2+  0.5    0.5    0.5
 20  Cd2+  0.75   0.75   0.5
 21  Cd2+  0.25   0      0.75
 22  Cd2+  0.5    0.25   0.75
 23  Cd2+  0.75   0.5    0.75
 24  Cd2+  0      0.75   0.25
 25  Cd2+  0      0.5    0.5
 26  Cd2+  0.25   0.75   0.5
 27  Cd2+  0      0.25   0.75
 28  Cd2+  0.25   0.5    0.75
 29  Cd2+  0.5    0.75   0.75
 30  Cd2+  0      0.75   0.75
 31  Te2-  0.625  0.125  0.875
 32  Te2-  0.875  0.375  0.875
 33  Te2-  0.875  0.125  0.125
 34  Te2-  0.125  0.125  0.875
 35  Te2-  0.375  0.375  0.875
 36  Te2-  0.625  0.625  0.875
 37  Te2-  0.875  0.875  0.875
 38  Te2-  0.375  0.125  0.125
 39  Te2-  0.625  0.375  0.125
 40  Te2-  0.875  0.625  0.125
 41  Te2-  0.625  0.125  0.375
 42  Te2-  0.875  0.375  0.375
 43  Te2-  0.875  0.125  0.625
 44  Te2-  0.125  0.625  0.875
 45  Te2-  0.375  0.875  0.875
 46  Te2-  0.125  0.375  0.125
 47  Te2-  0.375  0.625  0.125
 48  Te2-  0.625  0.875  0.125
 49  Te2-  0.125  0.125  0.375
 50  Te2-  0.375  0.375  0.375
 51  Te2-  0.625  0.625  0.375
 52  Te2-  0.875  0.875  0.375
 53  Te2-  0.375  0.125  0.625
 54  Te2-  0.625  0.375  0.625
 55  Te2-  0.875  0.625  0.625
 56  Te2-  0.125  0.875  0.125
 57  Te2-  0.125  0.625  0.375
 58  Te2-  0.375  0.875  0.375
 59  Te2-  0.125  0.375  0.625
 60  Te2-  0.375  0.625  0.625
 61  Te2-  0.625  0.875  0.625
 62  Te2-  0.125  0.875  0.625
# We can also check the defect fractional coordinates in the supercell

print("Defect fractional coordinates in the supercell:", defect_entry.sc_defect_frac_coords)
Defect fractional coordinates in the supercell: [0. 0. 0.]

Important

Alternatively, if you have already generated your defect structure files with a different defects code, these can be directly fed to ShakeNBreak with the Distortions.from_structures() method as shown later on below.

2. Apply the SnB method to your defects#

Note

The default settings and parameter choices in this package have been tested and have performed best thus far (i.e. wider distortion ranges leading to the ground-state structure with lowest computational cost) – see SI of Identifying the ground state structures of point defects in solids.

If you encounter improved performance with non-default parameter choices, we’d love to know! Please get in touch via GitHub or by email: sean.kavanagh.19@ucl.ac.uk & i.mosquera-lois22@imperial.ac.uk

Tip

If you are investigating defects in hard/ionic/magnetic/correlated materials, or systems involving spectator ions (like A in ABX3), there are some extra considerations for boosting the performance & efficiency of SnB listed on the Miscellaneous Tips & Tricks docs page.

2.1 Generating distorted structures#

from shakenbreak.input import Distortions
# In order to determine the number of the defect nearest neighbours to distort (based on the change 
# in valence electrons mentioned above), SnB uses the oxidation states of atoms in our material:
# If not specified, the code will guess these, otherwise you can specify as such:
# oxidation_states = {"Cd": +2, "Te": -2}  # specify atom oxidation states

# Create an instance of Distortion class with the defects and distortion parameters
# If distortion parameters are not specified, the default values are used
Dist = Distortions(defect_gen)  # initialise with doped DefectsGenerator
Oxidation states were not explicitly set, thus have been guessed as {'Cd': 2.0, 'Te': -2.0}. If this is unreasonable you should manually set oxidation_states

The Distortions class is flexible to the user input, so can take a doped DefectsGenerator object (shown in Section 1.1), a list of DefectEntrys, or a dictionary of DefectEntrys (in which case the dictionary keys are used as the defect names), or a single DefectEntry as inputs. Alternatively, Distortions can be initialised directly from pymatgen structures of the bulk and defect supercell, using the from_structures() class method, or from structure files (e.g. POSCARs) on the CLI using snb-generate – though in general the python API route shown here is preferred as it is more efficient and offers more control.

These possibilities as well as the optional distortion parameters are detailed in the Distortions class docstring:

Distortions?
Init signature:
Distortions(
    defect_entries: Union[doped.generation.DefectsGenerator, list, dict, doped.core.DefectEntry],
    oxidation_states: Optional[dict] = None,
    dict_number_electrons_user: Optional[dict] = None,
    distortion_increment: float = 0.1,
    bond_distortions: Optional[list] = None,
    local_rattle: bool = False,
    distorted_elements: Optional[dict] = None,
    distorted_atoms: Optional[list] = None,
    **mc_rattle_kwargs,
)
Docstring:     
Class to apply rattle and bond distortion to all defects in `defect_entries`
(each defect as a `doped` or `pymatgen` DefectEntry object).
Init docstring:
Args:
    defect_entries (Union[DefectsGenerator, list, dict, DefectEntry]):
        Either a `DefectsGenerator` object from `doped`, or a list/dictionary
        of, or single, DefectEntry object(s).
        E.g.: [DefectEntry(), DefectEntry(), ...], or single DefectEntry.
        If a `DefectsGenerator` object or a dictionary (->
        {defect_species: DefectEntry}), the defect folder names will be
        set equal to `defect_species` (with charge states included). If
        a list or single `DefectEntry` object is provided, the defect
        folder names will be set equal to `DefectEntry.name` if the `name`
        attribute is set for all input `DefectEntry`s, otherwise generated
        according to the `doped` convention
        (see: https://doped.readthedocs.io/en/latest/dope_workflow_example.html).

        Defect charge states (from which bond distortions are determined) are
        taken from the `DefectEntry.charge_state` property.

        Alternatively, a defects dict generated by `ChargedDefectStructures`
        from `PyCDT`/`doped<2.0` can also be used as input, and the defect names
        and charge states generated by these codes will be used
        E.g.: {"bulk": {..}, "vacancies": [{...}, {...},], ...}
    oxidation_states (:obj:`dict`):
        Dictionary of oxidation states for species in your material,
        used to determine the number of defect neighbours to distort
        (e.g {"Cd": +2, "Te": -2}). If none is provided, the oxidation
        states will be guessed based on the bulk composition and most
        common oxidation states of any extrinsic species.
    dict_number_electrons_user (:obj:`dict`):
        Optional argument to set the number of extra/missing charge
        (negative of electron count change) for the input defects
        in their neutral state, as a dictionary with format
        {'defect_name': charge_change} where charge_change is the
        negative of the number of extra/missing electrons.
        (Default: None)
    distortion_increment (:obj:`float`):
        Bond distortion increment. Distortion factors will range from
        0 to +/-0.6, in increments of `distortion_increment`.
        Recommended values: 0.1-0.3
        (Default: 0.1)
    bond_distortions (:obj:`list`):
        List of bond distortions to apply to nearest neighbours,
        instead of the default set (e.g. [-0.5, 0.5]).
        (Default: None)
    local_rattle (:obj:`bool`):
        Whether to apply random displacements that tail off as we move
        away from the defect site. Not recommended as typically worsens
        performance. If False (default), all supercell sites are rattled
        with the same amplitude (full rattle).
        (Default: False)
    distorted_elements (:obj:`dict`):
        Optional argument to specify the neighbouring elements to
        distort for each defect, in the form of a dictionary with
        format {'defect_name': ['element1', 'element2', ...]}
        (e.g {'vac_1_Cd': ['Te']}). If None, the closest neighbours to
        the defect are chosen.
        (Default: None)
    distorted_atoms (:obj:`list`):
        Optional argument to specify the indices of the
        neighbouring atoms to distort (indices starting from 0)
        for each defect, in the form of a dictionary with
        format {'defect_name': [index_1, index_2, ...]}
        (e.g {'vac_1_Cd': [0, 2]}).
        If None, the closest neighbours to the defect are chosen.
    **mc_rattle_kwargs:
        Additional keyword arguments to pass to `hiphive`'s
        `mc_rattle` function. These include:
        - stdev (:obj:`float`):
            Standard deviation (in Angstroms) of the Gaussian distribution
            from which random atomic displacement distances are drawn during
            rattling. Default is set to 10% of the nearest neighbour distance
            in the bulk supercell.
        - d_min (:obj:`float`):
            Minimum interatomic distance (in Angstroms) in the rattled
            structure. Monte Carlo rattle moves that put atoms at distances
            less than this will be heavily penalised. Default is to set this
            to 80% of the nearest neighbour distance in the bulk supercell.
        - max_disp (:obj:`float`):
            Maximum atomic displacement (in Angstroms) during Monte Carlo
            rattling. Rarely occurs and is used primarily as a safety net.
            (Default: 2.0)
        - max_attempts (:obj:`int`):
            Limit for how many attempted rattle moves are allowed a single atom.
        - active_atoms (:obj:`list`):
            List of the atomic indices which should undergo Monte
            Carlo rattling. By default, all atoms are rattled.
            (Default: None)
        - seed (:obj:`int`):
            Seed from which rattle random displacements are generated. Default
            is to set seed = int(distortion_factor*100) (i.e. +40% distortion ->
            distortion_factor = 1.4 -> seed = 140, Rattled ->
            distortion_factor = 1 (no bond distortion) -> seed = 100)
File:           ~/miniconda3/lib/python3.10/site-packages/shakenbreak/input.py
Type:           type
Subclasses:     

Note

If you are using PyCDT or an older version of doped (<2.0), then you can also initialise Distortions using the defect dictionary output by ChargedDefectStructures:

defect_dict = ChargedDefectStructures(...)
Dist = Distortions(defect_dict)
# We can check the distortion parameters using some of the class properties
print(f"Bond distortions: {Dist.bond_distortions}")
print(f"Rattle standard deviation: {Dist.stdev:.2f} Å")  # set to 10% of the bulk bond length by default, typically a reasonable value
Bond distortions: [-0.6, -0.5, -0.4, -0.3, -0.2, -0.1, 0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6]
Rattle standard deviation: 0.28 Å

As mentioned above, we can also initialise Distortions directly from our pre-generated defect structures, using the Distortions.from_structures() method like this:

from pymatgen.core.structure import Structure
V_Cd_struc = Structure.from_file("../tests/data/vasp/CdTe/CdTe_V_Cd_POSCAR")
bulk_struc = Structure.from_file("../tests/data/vasp/CdTe/CdTe_Bulk_Supercell_POSCAR")
Dist = Distortions.from_structures(defects = V_Cd_struc, bulk = bulk_struc)
Defect charge states will be set to the range: 0 – {Defect oxidation state}, with a `padding = 1` on either side of this range.
Oxidation states were not explicitly set, thus have been guessed as {'Cd': 2.0, 'Te': -2.0}. If this is unreasonable you should manually set oxidation_states

Tip

You can restrict the ions that are distorted to a certain element using the keyword distorted_elements.
We can check it using the class attribute:

print("User defined elements to distort:", Dist.distorted_elements)
User defined elements to distort: None

If None, it means no restrictions, so nearest neighbours are distorted (recommended default, unless you have reason to suspect otherwise; see Tips )

If we’re only interested in generating distorted structures, but not in writing VASP/other codes input files, we can use the class method Distortions.apply_distortions() to do this.

defects_dict, distortion_metadata = Dist.apply_distortions()
Applying ShakeNBreak... Will apply the following bond distortions: ['-0.6', '-0.5', '-0.4', '-0.3', '-0.2', '-0.1', '0.0', '0.1', '0.2', '0.3', '0.4', '0.5', '0.6']. Then, will rattle with a std dev of 0.28 Å 


Defect: v_Cd_Td_Te2.83
Number of missing electrons in neutral state: 2

Defect v_Cd_Td_Te2.83 in charge state: -3. Number of distorted neighbours: 1

Defect v_Cd_Td_Te2.83 in charge state: -2. Number of distorted neighbours: 0

Defect v_Cd_Td_Te2.83 in charge state: -1. Number of distorted neighbours: 1

Defect v_Cd_Td_Te2.83 in charge state: 0. Number of distorted neighbours: 2

Defect v_Cd_Td_Te2.83 in charge state: +1. Number of distorted neighbours: 3

The output dictionary contains information about each defect:

print("Keys for each defect entry:", defects_dict["v_Cd_Td_Te2.83"].keys())
Keys for each defect entry: dict_keys(['defect_type', 'defect_site', 'defect_supercell_site', 'charges'])

As well as the distorted structures for each charge state of all defects. We can access the distorted structures of v_Cd_0 like this:

print("\nUndistorted and distorted structures:")
defects_dict["v_Cd_Td_Te2.83"]["charges"][0]["structures"]
Undistorted and distorted structures:
{'Unperturbed': Structure Summary
 Lattice
     abc : 13.086768 13.086768 13.086768
  angles : 90.0 90.0 90.0
  volume : 2241.2856479961474
       A : 13.086768 0.0 0.0
       B : 0.0 13.086768 0.0
       C : 0.0 0.0 13.086768
     pbc : True True True
 PeriodicSite: Cd (Cd2+) (0.0, 0.0, 6.543) [0.0, 0.0, 0.5]
 PeriodicSite: Cd (Cd2+) (0.0, 6.543, 0.0) [0.0, 0.5, 0.0]
 PeriodicSite: Cd (Cd2+) (0.0, 6.543, 6.543) [0.0, 0.5, 0.5]
 PeriodicSite: Cd (Cd2+) (6.543, 0.0, 0.0) [0.5, 0.0, 0.0]
 PeriodicSite: Cd (Cd2+) (6.543, 0.0, 6.543) [0.5, 0.0, 0.5]
 PeriodicSite: Cd (Cd2+) (6.543, 6.543, 0.0) [0.5, 0.5, 0.0]
 PeriodicSite: Cd (Cd2+) (6.543, 6.543, 6.543) [0.5, 0.5, 0.5]
 PeriodicSite: Cd (Cd2+) (0.0, 3.272, 3.272) [0.0, 0.25, 0.25]
 PeriodicSite: Cd (Cd2+) (0.0, 3.272, 9.815) [0.0, 0.25, 0.75]
 PeriodicSite: Cd (Cd2+) (0.0, 9.815, 3.272) [0.0, 0.75, 0.25]
 PeriodicSite: Cd (Cd2+) (0.0, 9.815, 9.815) [0.0, 0.75, 0.75]
 PeriodicSite: Cd (Cd2+) (6.543, 3.272, 3.272) [0.5, 0.25, 0.25]
 PeriodicSite: Cd (Cd2+) (6.543, 3.272, 9.815) [0.5, 0.25, 0.75]
 PeriodicSite: Cd (Cd2+) (6.543, 9.815, 3.272) [0.5, 0.75, 0.25]
 PeriodicSite: Cd (Cd2+) (6.543, 9.815, 9.815) [0.5, 0.75, 0.75]
 PeriodicSite: Cd (Cd2+) (3.272, 0.0, 3.272) [0.25, 0.0, 0.25]
 PeriodicSite: Cd (Cd2+) (3.272, 0.0, 9.815) [0.25, 0.0, 0.75]
 PeriodicSite: Cd (Cd2+) (3.272, 6.543, 3.272) [0.25, 0.5, 0.25]
 PeriodicSite: Cd (Cd2+) (3.272, 6.543, 9.815) [0.25, 0.5, 0.75]
 PeriodicSite: Cd (Cd2+) (9.815, 0.0, 3.272) [0.75, 0.0, 0.25]
 PeriodicSite: Cd (Cd2+) (9.815, 0.0, 9.815) [0.75, 0.0, 0.75]
 PeriodicSite: Cd (Cd2+) (9.815, 6.543, 3.272) [0.75, 0.5, 0.25]
 PeriodicSite: Cd (Cd2+) (9.815, 6.543, 9.815) [0.75, 0.5, 0.75]
 PeriodicSite: Cd (Cd2+) (3.272, 3.272, 0.0) [0.25, 0.25, 0.0]
 PeriodicSite: Cd (Cd2+) (3.272, 3.272, 6.543) [0.25, 0.25, 0.5]
 PeriodicSite: Cd (Cd2+) (3.272, 9.815, 0.0) [0.25, 0.75, 0.0]
 PeriodicSite: Cd (Cd2+) (3.272, 9.815, 6.543) [0.25, 0.75, 0.5]
 PeriodicSite: Cd (Cd2+) (9.815, 3.272, 0.0) [0.75, 0.25, 0.0]
 PeriodicSite: Cd (Cd2+) (9.815, 3.272, 6.543) [0.75, 0.25, 0.5]
 PeriodicSite: Cd (Cd2+) (9.815, 9.815, 0.0) [0.75, 0.75, 0.0]
 PeriodicSite: Cd (Cd2+) (9.815, 9.815, 6.543) [0.75, 0.75, 0.5]
 PeriodicSite: Te (Te2-) (1.636, 1.636, 4.908) [0.125, 0.125, 0.375]
 PeriodicSite: Te (Te2-) (1.636, 1.636, 11.45) [0.125, 0.125, 0.875]
 PeriodicSite: Te (Te2-) (1.636, 8.179, 4.908) [0.125, 0.625, 0.375]
 PeriodicSite: Te (Te2-) (1.636, 8.179, 11.45) [0.125, 0.625, 0.875]
 PeriodicSite: Te (Te2-) (8.179, 1.636, 4.908) [0.625, 0.125, 0.375]
 PeriodicSite: Te (Te2-) (8.179, 1.636, 11.45) [0.625, 0.125, 0.875]
 PeriodicSite: Te (Te2-) (8.179, 8.179, 4.908) [0.625, 0.625, 0.375]
 PeriodicSite: Te (Te2-) (8.179, 8.179, 11.45) [0.625, 0.625, 0.875]
 PeriodicSite: Te (Te2-) (1.636, 4.908, 1.636) [0.125, 0.375, 0.125]
 PeriodicSite: Te (Te2-) (1.636, 4.908, 8.179) [0.125, 0.375, 0.625]
 PeriodicSite: Te (Te2-) (1.636, 11.45, 1.636) [0.125, 0.875, 0.125]
 PeriodicSite: Te (Te2-) (1.636, 11.45, 8.179) [0.125, 0.875, 0.625]
 PeriodicSite: Te (Te2-) (8.179, 4.908, 1.636) [0.625, 0.375, 0.125]
 PeriodicSite: Te (Te2-) (8.179, 4.908, 8.179) [0.625, 0.375, 0.625]
 PeriodicSite: Te (Te2-) (8.179, 11.45, 1.636) [0.625, 0.875, 0.125]
 PeriodicSite: Te (Te2-) (8.179, 11.45, 8.179) [0.625, 0.875, 0.625]
 PeriodicSite: Te (Te2-) (4.908, 1.636, 1.636) [0.375, 0.125, 0.125]
 PeriodicSite: Te (Te2-) (4.908, 1.636, 8.179) [0.375, 0.125, 0.625]
 PeriodicSite: Te (Te2-) (4.908, 8.179, 1.636) [0.375, 0.625, 0.125]
 PeriodicSite: Te (Te2-) (4.908, 8.179, 8.179) [0.375, 0.625, 0.625]
 PeriodicSite: Te (Te2-) (11.45, 1.636, 1.636) [0.875, 0.125, 0.125]
 PeriodicSite: Te (Te2-) (11.45, 1.636, 8.179) [0.875, 0.125, 0.625]
 PeriodicSite: Te (Te2-) (11.45, 8.179, 1.636) [0.875, 0.625, 0.125]
 PeriodicSite: Te (Te2-) (11.45, 8.179, 8.179) [0.875, 0.625, 0.625]
 PeriodicSite: Te (Te2-) (4.908, 4.908, 4.908) [0.375, 0.375, 0.375]
 PeriodicSite: Te (Te2-) (4.908, 4.908, 11.45) [0.375, 0.375, 0.875]
 PeriodicSite: Te (Te2-) (4.908, 11.45, 4.908) [0.375, 0.875, 0.375]
 PeriodicSite: Te (Te2-) (4.908, 11.45, 11.45) [0.375, 0.875, 0.875]
 PeriodicSite: Te (Te2-) (11.45, 4.908, 4.908) [0.875, 0.375, 0.375]
 PeriodicSite: Te (Te2-) (11.45, 4.908, 11.45) [0.875, 0.375, 0.875]
 PeriodicSite: Te (Te2-) (11.45, 11.45, 4.908) [0.875, 0.875, 0.375]
 PeriodicSite: Te (Te2-) (11.45, 11.45, 11.45) [0.875, 0.875, 0.875],
 'distortions': {'Bond_Distortion_-60.0%': Structure Summary
  Lattice
      abc : 13.086768 13.086768 13.086768
   angles : 90.0 90.0 90.0
   volume : 2241.2856479961474
        A : 13.086768 0.0 0.0
        B : 0.0 13.086768 0.0
        C : 0.0 0.0 13.086768
      pbc : True True True
  PeriodicSite: Cd2+ (0.08958, 0.2795, 6.5) [0.006845, 0.02136, 0.4967]
  PeriodicSite: Cd2+ (0.04022, 6.923, -0.04308) [0.003074, 0.529, -0.003292]
  PeriodicSite: Cd2+ (-0.1846, 6.619, 6.332) [-0.0141, 0.5058, 0.4839]
  PeriodicSite: Cd2+ (6.625, 0.2106, -0.3562) [0.5063, 0.01609, -0.02722]
  PeriodicSite: Cd2+ (6.471, 0.2184, 6.124) [0.4945, 0.01669, 0.468]
  PeriodicSite: Cd2+ (7.055, 6.707, -0.1046) [0.5391, 0.5125, -0.007992]
  PeriodicSite: Cd2+ (6.401, 6.223, 6.427) [0.4891, 0.4755, 0.4911]
  PeriodicSite: Cd2+ (0.02002, 3.176, 3.109) [0.00153, 0.2427, 0.2375]
  PeriodicSite: Cd2+ (0.08734, 3.3, 9.288) [0.006674, 0.2521, 0.7097]
  PeriodicSite: Cd2+ (0.1104, 9.485, 3.089) [0.008438, 0.7248, 0.2361]
  PeriodicSite: Cd2+ (-0.2325, 9.461, 9.953) [-0.01776, 0.7229, 0.7606]
  PeriodicSite: Cd2+ (6.479, 3.319, 3.089) [0.4951, 0.2536, 0.236]
  PeriodicSite: Cd2+ (6.722, 3.356, 9.805) [0.5136, 0.2565, 0.7492]
  PeriodicSite: Cd2+ (6.441, 9.742, 3.401) [0.4922, 0.7444, 0.2599]
  PeriodicSite: Cd2+ (6.906, 9.638, 9.544) [0.5277, 0.7364, 0.7293]
  PeriodicSite: Cd2+ (3.394, -0.1058, 3.65) [0.2593, -0.008082, 0.2789]
  PeriodicSite: Cd2+ (3.462, 0.111, 9.784) [0.2645, 0.008485, 0.7476]
  PeriodicSite: Cd2+ (3.57, 6.257, 3.183) [0.2728, 0.4781, 0.2433]
  PeriodicSite: Cd2+ (3.019, 6.647, 10.2) [0.2307, 0.5079, 0.7795]
  PeriodicSite: Cd2+ (9.342, 0.03649, 2.872) [0.7139, 0.002789, 0.2195]
  PeriodicSite: Cd2+ (10.09, 0.1205, 10.08) [0.7707, 0.009206, 0.7703]
  PeriodicSite: Cd2+ (9.618, 6.663, 3.423) [0.7349, 0.5092, 0.2616]
  PeriodicSite: Cd2+ (9.638, 6.435, 9.48) [0.7365, 0.4917, 0.7244]
  PeriodicSite: Cd2+ (3.655, 3.197, -0.3796) [0.2793, 0.2443, -0.029]
  PeriodicSite: Cd2+ (3.717, 3.562, 6.305) [0.2841, 0.2722, 0.4818]
  PeriodicSite: Cd2+ (3.218, 10.3, 0.1662) [0.2459, 0.787, 0.0127]
  PeriodicSite: Cd2+ (3.325, 9.973, 6.478) [0.2541, 0.7621, 0.495]
  PeriodicSite: Cd2+ (9.786, 3.454, 0.3456) [0.7477, 0.2639, 0.02641]
  PeriodicSite: Cd2+ (10.5, 3.528, 7.021) [0.8022, 0.2696, 0.5365]
  PeriodicSite: Cd2+ (9.788, 9.739, 0.04483) [0.7479, 0.7442, 0.003425]
  PeriodicSite: Cd2+ (9.935, 9.765, 6.804) [0.7591, 0.7461, 0.5199]
  PeriodicSite: Te2- (1.547, 1.98, 5.395) [0.1182, 0.1513, 0.4122]
  PeriodicSite: Te2- (0.6543, 0.6543, 12.43) [0.05, 0.05, 0.95]
  PeriodicSite: Te2- (1.693, 7.598, 4.615) [0.1294, 0.5806, 0.3526]
  PeriodicSite: Te2- (1.136, 8.308, 11.55) [0.08677, 0.6349, 0.8828]
  PeriodicSite: Te2- (7.889, 2.169, 4.841) [0.6028, 0.1657, 0.3699]
  PeriodicSite: Te2- (8.276, 2.219, 11.29) [0.6324, 0.1696, 0.8626]
  PeriodicSite: Te2- (8.204, 8.164, 4.989) [0.6269, 0.6238, 0.3812]
  PeriodicSite: Te2- (8.314, 8.195, 11.47) [0.6353, 0.6262, 0.8767]
  PeriodicSite: Te2- (2.015, 4.642, 2.096) [0.154, 0.3547, 0.1602]
  PeriodicSite: Te2- (1.687, 4.993, 8.336) [0.1289, 0.3816, 0.637]
  PeriodicSite: Te2- (0.6543, 12.43, 0.6543) [0.05, 0.95, 0.05]
  PeriodicSite: Te2- (1.406, 11.77, 8.203) [0.1075, 0.8993, 0.6268]
  PeriodicSite: Te2- (8.13, 4.949, 1.534) [0.6213, 0.3781, 0.1172]
  PeriodicSite: Te2- (8.387, 4.59, 7.866) [0.6409, 0.3507, 0.601]
  PeriodicSite: Te2- (7.817, 11.61, 1.649) [0.5973, 0.8874, 0.126]
  PeriodicSite: Te2- (8.217, 11.68, 8.444) [0.6279, 0.8927, 0.6452]
  PeriodicSite: Te2- (5.052, 1.411, 1.871) [0.386, 0.1078, 0.143]
  PeriodicSite: Te2- (4.149, 1.799, 7.797) [0.317, 0.1375, 0.5958]
  PeriodicSite: Te2- (4.53, 8.048, 1.479) [0.3461, 0.615, 0.113]
  PeriodicSite: Te2- (4.657, 7.939, 7.666) [0.3559, 0.6066, 0.5858]
  PeriodicSite: Te2- (11.27, 2.077, 1.94) [0.8608, 0.1587, 0.1482]
  PeriodicSite: Te2- (11.39, 1.811, 8.485) [0.8706, 0.1384, 0.6484]
  PeriodicSite: Te2- (11.58, 8.432, 1.116) [0.8846, 0.6443, 0.08528]
  PeriodicSite: Te2- (11.41, 7.983, 8.342) [0.8716, 0.61, 0.6375]
  PeriodicSite: Te2- (4.809, 4.54, 4.531) [0.3674, 0.3469, 0.3463]
  PeriodicSite: Te2- (5.258, 4.554, 11.69) [0.4018, 0.348, 0.893]
  PeriodicSite: Te2- (4.66, 11.47, 5.087) [0.3561, 0.8763, 0.3887]
  PeriodicSite: Te2- (4.764, 11.6, 11.67) [0.3641, 0.8867, 0.8921]
  PeriodicSite: Te2- (11.69, 4.757, 4.892) [0.893, 0.3635, 0.3738]
  PeriodicSite: Te2- (11.72, 5.1, 11.69) [0.8956, 0.3897, 0.8936]
  PeriodicSite: Te2- (11.83, 11.33, 4.9) [0.9043, 0.8659, 0.3744]
  PeriodicSite: Te2- (11.36, 10.99, 11.87) [0.8677, 0.8399, 0.9067],
  'Bond_Distortion_-50.0%': Structure Summary
  Lattice
      abc : 13.086768 13.086768 13.086768
   angles : 90.0 90.0 90.0
   volume : 2241.2856479961474
        A : 13.086768 0.0 0.0
        B : 0.0 13.086768 0.0
        C : 0.0 0.0 13.086768
      pbc : True True True
  PeriodicSite: Cd2+ (0.08958, 0.2795, 6.5) [0.006845, 0.02136, 0.4967]
  PeriodicSite: Cd2+ (0.04022, 6.923, -0.04308) [0.003074, 0.529, -0.003292]
  PeriodicSite: Cd2+ (-0.1846, 6.619, 6.332) [-0.0141, 0.5058, 0.4839]
  PeriodicSite: Cd2+ (6.625, 0.2106, -0.3562) [0.5063, 0.01609, -0.02722]
  PeriodicSite: Cd2+ (6.471, 0.2184, 6.124) [0.4945, 0.01669, 0.468]
  PeriodicSite: Cd2+ (7.055, 6.707, -0.1046) [0.5391, 0.5125, -0.007992]
  PeriodicSite: Cd2+ (6.401, 6.223, 6.427) [0.4891, 0.4755, 0.4911]
  PeriodicSite: Cd2+ (0.02002, 3.176, 3.109) [0.00153, 0.2427, 0.2375]
  PeriodicSite: Cd2+ (0.08734, 3.3, 9.288) [0.006674, 0.2521, 0.7097]
  PeriodicSite: Cd2+ (0.1104, 9.485, 3.089) [0.008438, 0.7248, 0.2361]
  PeriodicSite: Cd2+ (-0.2325, 9.461, 9.953) [-0.01776, 0.7229, 0.7606]
  PeriodicSite: Cd2+ (6.479, 3.319, 3.089) [0.4951, 0.2536, 0.236]
  PeriodicSite: Cd2+ (6.722, 3.356, 9.805) [0.5136, 0.2565, 0.7492]
  PeriodicSite: Cd2+ (6.441, 9.742, 3.401) [0.4922, 0.7444, 0.2599]
  PeriodicSite: Cd2+ (6.906, 9.638, 9.544) [0.5277, 0.7364, 0.7293]
  PeriodicSite: Cd2+ (3.394, -0.1058, 3.65) [0.2593, -0.008082, 0.2789]
  PeriodicSite: Cd2+ (3.462, 0.111, 9.784) [0.2645, 0.008485, 0.7476]
  PeriodicSite: Cd2+ (3.57, 6.257, 3.183) [0.2728, 0.4781, 0.2433]
  PeriodicSite: Cd2+ (3.019, 6.647, 10.2) [0.2307, 0.5079, 0.7795]
  PeriodicSite: Cd2+ (9.342, 0.03649, 2.872) [0.7139, 0.002789, 0.2195]
  PeriodicSite: Cd2+ (10.09, 0.1205, 10.08) [0.7707, 0.009206, 0.7703]
  PeriodicSite: Cd2+ (9.618, 6.663, 3.423) [0.7349, 0.5092, 0.2616]
  PeriodicSite: Cd2+ (9.638, 6.435, 9.48) [0.7365, 0.4917, 0.7244]
  PeriodicSite: Cd2+ (3.655, 3.197, -0.3796) [0.2793, 0.2443, -0.029]
  PeriodicSite: Cd2+ (3.717, 3.562, 6.305) [0.2841, 0.2722, 0.4818]
  PeriodicSite: Cd2+ (3.218, 10.3, 0.1662) [0.2459, 0.787, 0.0127]
  PeriodicSite: Cd2+ (3.325, 9.973, 6.478) [0.2541, 0.7621, 0.495]
  PeriodicSite: Cd2+ (9.786, 3.454, 0.3456) [0.7477, 0.2639, 0.02641]
  PeriodicSite: Cd2+ (10.5, 3.528, 7.021) [0.8022, 0.2696, 0.5365]
  PeriodicSite: Cd2+ (9.788, 9.739, 0.04483) [0.7479, 0.7442, 0.003425]
  PeriodicSite: Cd2+ (9.935, 9.765, 6.804) [0.7591, 0.7461, 0.5199]
  PeriodicSite: Te2- (1.547, 1.98, 5.395) [0.1182, 0.1513, 0.4122]
  PeriodicSite: Te2- (0.8179, 0.8179, 12.27) [0.0625, 0.0625, 0.9375]
  PeriodicSite: Te2- (1.693, 7.598, 4.615) [0.1294, 0.5806, 0.3526]
  PeriodicSite: Te2- (1.136, 8.308, 11.55) [0.08677, 0.6349, 0.8828]
  PeriodicSite: Te2- (7.889, 2.169, 4.841) [0.6028, 0.1657, 0.3699]
  PeriodicSite: Te2- (8.276, 2.219, 11.29) [0.6324, 0.1696, 0.8626]
  PeriodicSite: Te2- (8.204, 8.164, 4.989) [0.6269, 0.6238, 0.3812]
  PeriodicSite: Te2- (8.314, 8.195, 11.47) [0.6353, 0.6262, 0.8767]
  PeriodicSite: Te2- (2.015, 4.642, 2.096) [0.154, 0.3547, 0.1602]
  PeriodicSite: Te2- (1.687, 4.993, 8.336) [0.1289, 0.3816, 0.637]
  PeriodicSite: Te2- (0.8179, 12.27, 0.8179) [0.0625, 0.9375, 0.0625]
  PeriodicSite: Te2- (1.406, 11.77, 8.203) [0.1075, 0.8993, 0.6268]
  PeriodicSite: Te2- (8.13, 4.949, 1.534) [0.6213, 0.3781, 0.1172]
  PeriodicSite: Te2- (8.387, 4.59, 7.866) [0.6409, 0.3507, 0.601]
  PeriodicSite: Te2- (7.817, 11.61, 1.649) [0.5973, 0.8874, 0.126]
  PeriodicSite: Te2- (8.217, 11.68, 8.444) [0.6279, 0.8927, 0.6452]
  PeriodicSite: Te2- (5.052, 1.411, 1.871) [0.386, 0.1078, 0.143]
  PeriodicSite: Te2- (4.149, 1.799, 7.797) [0.317, 0.1375, 0.5958]
  PeriodicSite: Te2- (4.53, 8.048, 1.479) [0.3461, 0.615, 0.113]
  PeriodicSite: Te2- (4.657, 7.939, 7.666) [0.3559, 0.6066, 0.5858]
  PeriodicSite: Te2- (11.27, 2.077, 1.94) [0.8608, 0.1587, 0.1482]
  PeriodicSite: Te2- (11.39, 1.811, 8.485) [0.8706, 0.1384, 0.6484]
  PeriodicSite: Te2- (11.58, 8.432, 1.116) [0.8846, 0.6443, 0.08528]
  PeriodicSite: Te2- (11.41, 7.983, 8.342) [0.8716, 0.61, 0.6375]
  PeriodicSite: Te2- (4.809, 4.54, 4.531) [0.3674, 0.3469, 0.3463]
  PeriodicSite: Te2- (5.258, 4.554, 11.69) [0.4018, 0.348, 0.893]
  PeriodicSite: Te2- (4.66, 11.47, 5.087) [0.3561, 0.8763, 0.3887]
  PeriodicSite: Te2- (4.764, 11.6, 11.67) [0.3641, 0.8867, 0.8921]
  PeriodicSite: Te2- (11.69, 4.757, 4.892) [0.893, 0.3635, 0.3738]
  PeriodicSite: Te2- (11.72, 5.1, 11.69) [0.8956, 0.3897, 0.8936]
  PeriodicSite: Te2- (11.83, 11.33, 4.9) [0.9043, 0.8659, 0.3744]
  PeriodicSite: Te2- (11.36, 10.99, 11.87) [0.8677, 0.8399, 0.9067],
  'Bond_Distortion_-40.0%': Structure Summary
  Lattice
      abc : 13.086768 13.086768 13.086768
   angles : 90.0 90.0 90.0
   volume : 2241.2856479961474
        A : 13.086768 0.0 0.0
        B : 0.0 13.086768 0.0
        C : 0.0 0.0 13.086768
      pbc : True True True
  PeriodicSite: Cd2+ (0.08958, 0.2795, 6.5) [0.006845, 0.02136, 0.4967]
  PeriodicSite: Cd2+ (0.04022, 6.923, -0.04308) [0.003074, 0.529, -0.003292]
  PeriodicSite: Cd2+ (-0.1846, 6.619, 6.332) [-0.0141, 0.5058, 0.4839]
  PeriodicSite: Cd2+ (6.625, 0.2106, -0.3562) [0.5063, 0.01609, -0.02722]
  PeriodicSite: Cd2+ (6.471, 0.2184, 6.124) [0.4945, 0.01669, 0.468]
  PeriodicSite: Cd2+ (7.055, 6.707, -0.1046) [0.5391, 0.5125, -0.007992]
  PeriodicSite: Cd2+ (6.401, 6.223, 6.427) [0.4891, 0.4755, 0.4911]
  PeriodicSite: Cd2+ (0.02002, 3.176, 3.109) [0.00153, 0.2427, 0.2375]
  PeriodicSite: Cd2+ (0.08734, 3.3, 9.288) [0.006674, 0.2521, 0.7097]
  PeriodicSite: Cd2+ (0.1104, 9.485, 3.089) [0.008438, 0.7248, 0.2361]
  PeriodicSite: Cd2+ (-0.2325, 9.461, 9.953) [-0.01776, 0.7229, 0.7606]
  PeriodicSite: Cd2+ (6.479, 3.319, 3.089) [0.4951, 0.2536, 0.236]
  PeriodicSite: Cd2+ (6.722, 3.356, 9.805) [0.5136, 0.2565, 0.7492]
  PeriodicSite: Cd2+ (6.441, 9.742, 3.401) [0.4922, 0.7444, 0.2599]
  PeriodicSite: Cd2+ (6.906, 9.638, 9.544) [0.5277, 0.7364, 0.7293]
  PeriodicSite: Cd2+ (3.394, -0.1058, 3.65) [0.2593, -0.008082, 0.2789]
  PeriodicSite: Cd2+ (3.462, 0.111, 9.784) [0.2645, 0.008485, 0.7476]
  PeriodicSite: Cd2+ (3.57, 6.257, 3.183) [0.2728, 0.4781, 0.2433]
  PeriodicSite: Cd2+ (3.019, 6.647, 10.2) [0.2307, 0.5079, 0.7795]
  PeriodicSite: Cd2+ (9.342, 0.03649, 2.872) [0.7139, 0.002789, 0.2195]
  PeriodicSite: Cd2+ (10.09, 0.1205, 10.08) [0.7707, 0.009206, 0.7703]
  PeriodicSite: Cd2+ (9.618, 6.663, 3.423) [0.7349, 0.5092, 0.2616]
  PeriodicSite: Cd2+ (9.638, 6.435, 9.48) [0.7365, 0.4917, 0.7244]
  PeriodicSite: Cd2+ (3.655, 3.197, -0.3796) [0.2793, 0.2443, -0.029]
  PeriodicSite: Cd2+ (3.717, 3.562, 6.305) [0.2841, 0.2722, 0.4818]
  PeriodicSite: Cd2+ (3.218, 10.3, 0.1662) [0.2459, 0.787, 0.0127]
  PeriodicSite: Cd2+ (3.325, 9.973, 6.478) [0.2541, 0.7621, 0.495]
  PeriodicSite: Cd2+ (9.786, 3.454, 0.3456) [0.7477, 0.2639, 0.02641]
  PeriodicSite: Cd2+ (10.5, 3.528, 7.021) [0.8022, 0.2696, 0.5365]
  PeriodicSite: Cd2+ (9.788, 9.739, 0.04483) [0.7479, 0.7442, 0.003425]
  PeriodicSite: Cd2+ (9.935, 9.765, 6.804) [0.7591, 0.7461, 0.5199]
  PeriodicSite: Te2- (1.547, 1.98, 5.395) [0.1182, 0.1513, 0.4122]
  PeriodicSite: Te2- (0.9815, 0.9815, 12.11) [0.075, 0.075, 0.925]
  PeriodicSite: Te2- (1.693, 7.598, 4.615) [0.1294, 0.5806, 0.3526]
  PeriodicSite: Te2- (1.136, 8.308, 11.55) [0.08677, 0.6349, 0.8828]
  PeriodicSite: Te2- (7.889, 2.169, 4.841) [0.6028, 0.1657, 0.3699]
  PeriodicSite: Te2- (8.276, 2.219, 11.29) [0.6324, 0.1696, 0.8626]
  PeriodicSite: Te2- (8.204, 8.164, 4.989) [0.6269, 0.6238, 0.3812]
  PeriodicSite: Te2- (8.314, 8.195, 11.47) [0.6353, 0.6262, 0.8767]
  PeriodicSite: Te2- (2.015, 4.642, 2.096) [0.154, 0.3547, 0.1602]
  PeriodicSite: Te2- (1.687, 4.993, 8.336) [0.1289, 0.3816, 0.637]
  PeriodicSite: Te2- (0.9815, 12.11, 0.9815) [0.075, 0.925, 0.075]
  PeriodicSite: Te2- (1.406, 11.77, 8.203) [0.1075, 0.8993, 0.6268]
  PeriodicSite: Te2- (8.13, 4.949, 1.534) [0.6213, 0.3781, 0.1172]
  PeriodicSite: Te2- (8.387, 4.59, 7.866) [0.6409, 0.3507, 0.601]
  PeriodicSite: Te2- (7.817, 11.61, 1.649) [0.5973, 0.8874, 0.126]
  PeriodicSite: Te2- (8.217, 11.68, 8.444) [0.6279, 0.8927, 0.6452]
  PeriodicSite: Te2- (5.052, 1.411, 1.871) [0.386, 0.1078, 0.143]
  PeriodicSite: Te2- (4.149, 1.799, 7.797) [0.317, 0.1375, 0.5958]
  PeriodicSite: Te2- (4.53, 8.048, 1.479) [0.3461, 0.615, 0.113]
  PeriodicSite: Te2- (4.657, 7.939, 7.666) [0.3559, 0.6066, 0.5858]
  PeriodicSite: Te2- (11.27, 2.077, 1.94) [0.8608, 0.1587, 0.1482]
  PeriodicSite: Te2- (11.39, 1.811, 8.485) [0.8706, 0.1384, 0.6484]
  PeriodicSite: Te2- (11.58, 8.432, 1.116) [0.8846, 0.6443, 0.08528]
  PeriodicSite: Te2- (11.41, 7.983, 8.342) [0.8716, 0.61, 0.6375]
  PeriodicSite: Te2- (4.809, 4.54, 4.531) [0.3674, 0.3469, 0.3463]
  PeriodicSite: Te2- (5.258, 4.554, 11.69) [0.4018, 0.348, 0.893]
  PeriodicSite: Te2- (4.66, 11.47, 5.087) [0.3561, 0.8763, 0.3887]
  PeriodicSite: Te2- (4.764, 11.6, 11.67) [0.3641, 0.8867, 0.8921]
  PeriodicSite: Te2- (11.69, 4.757, 4.892) [0.893, 0.3635, 0.3738]
  PeriodicSite: Te2- (11.72, 5.1, 11.69) [0.8956, 0.3897, 0.8936]
  PeriodicSite: Te2- (11.83, 11.33, 4.9) [0.9043, 0.8659, 0.3744]
  PeriodicSite: Te2- (11.36, 10.99, 11.87) [0.8677, 0.8399, 0.9067],
  'Bond_Distortion_-30.0%': Structure Summary
  Lattice
      abc : 13.086768 13.086768 13.086768
   angles : 90.0 90.0 90.0
   volume : 2241.2856479961474
        A : 13.086768 0.0 0.0
        B : 0.0 13.086768 0.0
        C : 0.0 0.0 13.086768
      pbc : True True True
  PeriodicSite: Cd2+ (0.08958, 0.2795, 6.5) [0.006845, 0.02136, 0.4967]
  PeriodicSite: Cd2+ (0.04022, 6.923, -0.04308) [0.003074, 0.529, -0.003292]
  PeriodicSite: Cd2+ (-0.1846, 6.619, 6.332) [-0.0141, 0.5058, 0.4839]
  PeriodicSite: Cd2+ (6.625, 0.2106, -0.3562) [0.5063, 0.01609, -0.02722]
  PeriodicSite: Cd2+ (6.471, 0.2184, 6.124) [0.4945, 0.01669, 0.468]
  PeriodicSite: Cd2+ (7.055, 6.707, -0.1046) [0.5391, 0.5125, -0.007992]
  PeriodicSite: Cd2+ (6.401, 6.223, 6.427) [0.4891, 0.4755, 0.4911]
  PeriodicSite: Cd2+ (0.02002, 3.176, 3.109) [0.00153, 0.2427, 0.2375]
  PeriodicSite: Cd2+ (0.08734, 3.3, 9.288) [0.006674, 0.2521, 0.7097]
  PeriodicSite: Cd2+ (0.1104, 9.485, 3.089) [0.008438, 0.7248, 0.2361]
  PeriodicSite: Cd2+ (-0.2325, 9.461, 9.953) [-0.01776, 0.7229, 0.7606]
  PeriodicSite: Cd2+ (6.479, 3.319, 3.089) [0.4951, 0.2536, 0.236]
  PeriodicSite: Cd2+ (6.722, 3.356, 9.805) [0.5136, 0.2565, 0.7492]
  PeriodicSite: Cd2+ (6.441, 9.742, 3.401) [0.4922, 0.7444, 0.2599]
  PeriodicSite: Cd2+ (6.906, 9.638, 9.544) [0.5277, 0.7364, 0.7293]
  PeriodicSite: Cd2+ (3.394, -0.1058, 3.65) [0.2593, -0.008082, 0.2789]
  PeriodicSite: Cd2+ (3.462, 0.111, 9.784) [0.2645, 0.008485, 0.7476]
  PeriodicSite: Cd2+ (3.57, 6.257, 3.183) [0.2728, 0.4781, 0.2433]
  PeriodicSite: Cd2+ (3.019, 6.647, 10.2) [0.2307, 0.5079, 0.7795]
  PeriodicSite: Cd2+ (9.342, 0.03649, 2.872) [0.7139, 0.002789, 0.2195]
  PeriodicSite: Cd2+ (10.09, 0.1205, 10.08) [0.7707, 0.009206, 0.7703]
  PeriodicSite: Cd2+ (9.618, 6.663, 3.423) [0.7349, 0.5092, 0.2616]
  PeriodicSite: Cd2+ (9.638, 6.435, 9.48) [0.7365, 0.4917, 0.7244]
  PeriodicSite: Cd2+ (3.655, 3.197, -0.3796) [0.2793, 0.2443, -0.029]
  PeriodicSite: Cd2+ (3.717, 3.562, 6.305) [0.2841, 0.2722, 0.4818]
  PeriodicSite: Cd2+ (3.218, 10.3, 0.1662) [0.2459, 0.787, 0.0127]
  PeriodicSite: Cd2+ (3.325, 9.973, 6.478) [0.2541, 0.7621, 0.495]
  PeriodicSite: Cd2+ (9.786, 3.454, 0.3456) [0.7477, 0.2639, 0.02641]
  PeriodicSite: Cd2+ (10.5, 3.528, 7.021) [0.8022, 0.2696, 0.5365]
  PeriodicSite: Cd2+ (9.788, 9.739, 0.04483) [0.7479, 0.7442, 0.003425]
  PeriodicSite: Cd2+ (9.935, 9.765, 6.804) [0.7591, 0.7461, 0.5199]
  PeriodicSite: Te2- (1.547, 1.98, 5.395) [0.1182, 0.1513, 0.4122]
  PeriodicSite: Te2- (1.145, 1.145, 11.94) [0.0875, 0.0875, 0.9125]
  PeriodicSite: Te2- (1.693, 7.598, 4.615) [0.1294, 0.5806, 0.3526]
  PeriodicSite: Te2- (1.136, 8.308, 11.55) [0.08677, 0.6349, 0.8828]
  PeriodicSite: Te2- (7.889, 2.169, 4.841) [0.6028, 0.1657, 0.3699]
  PeriodicSite: Te2- (8.276, 2.219, 11.29) [0.6324, 0.1696, 0.8626]
  PeriodicSite: Te2- (8.204, 8.164, 4.989) [0.6269, 0.6238, 0.3812]
  PeriodicSite: Te2- (8.314, 8.195, 11.47) [0.6353, 0.6262, 0.8767]
  PeriodicSite: Te2- (2.015, 4.642, 2.096) [0.154, 0.3547, 0.1602]
  PeriodicSite: Te2- (1.687, 4.993, 8.336) [0.1289, 0.3816, 0.637]
  PeriodicSite: Te2- (1.145, 11.94, 1.145) [0.0875, 0.9125, 0.0875]
  PeriodicSite: Te2- (1.406, 11.77, 8.203) [0.1075, 0.8993, 0.6268]
  PeriodicSite: Te2- (8.13, 4.949, 1.534) [0.6213, 0.3781, 0.1172]
  PeriodicSite: Te2- (8.387, 4.59, 7.866) [0.6409, 0.3507, 0.601]
  PeriodicSite: Te2- (7.817, 11.61, 1.649) [0.5973, 0.8874, 0.126]
  PeriodicSite: Te2- (8.217, 11.68, 8.444) [0.6279, 0.8927, 0.6452]
  PeriodicSite: Te2- (5.052, 1.411, 1.871) [0.386, 0.1078, 0.143]
  PeriodicSite: Te2- (4.149, 1.799, 7.797) [0.317, 0.1375, 0.5958]
  PeriodicSite: Te2- (4.53, 8.048, 1.479) [0.3461, 0.615, 0.113]
  PeriodicSite: Te2- (4.657, 7.939, 7.666) [0.3559, 0.6066, 0.5858]
  PeriodicSite: Te2- (11.27, 2.077, 1.94) [0.8608, 0.1587, 0.1482]
  PeriodicSite: Te2- (11.39, 1.811, 8.485) [0.8706, 0.1384, 0.6484]
  PeriodicSite: Te2- (11.58, 8.432, 1.116) [0.8846, 0.6443, 0.08528]
  PeriodicSite: Te2- (11.41, 7.983, 8.342) [0.8716, 0.61, 0.6375]
  PeriodicSite: Te2- (4.809, 4.54, 4.531) [0.3674, 0.3469, 0.3463]
  PeriodicSite: Te2- (5.258, 4.554, 11.69) [0.4018, 0.348, 0.893]
  PeriodicSite: Te2- (4.66, 11.47, 5.087) [0.3561, 0.8763, 0.3887]
  PeriodicSite: Te2- (4.764, 11.6, 11.67) [0.3641, 0.8867, 0.8921]
  PeriodicSite: Te2- (11.69, 4.757, 4.892) [0.893, 0.3635, 0.3738]
  PeriodicSite: Te2- (11.72, 5.1, 11.69) [0.8956, 0.3897, 0.8936]
  PeriodicSite: Te2- (11.83, 11.33, 4.9) [0.9043, 0.8659, 0.3744]
  PeriodicSite: Te2- (11.36, 10.99, 11.87) [0.8677, 0.8399, 0.9067],
  'Bond_Distortion_-20.0%': Structure Summary
  Lattice
      abc : 13.086768 13.086768 13.086768
   angles : 90.0 90.0 90.0
   volume : 2241.2856479961474
        A : 13.086768 0.0 0.0
        B : 0.0 13.086768 0.0
        C : 0.0 0.0 13.086768
      pbc : True True True
  PeriodicSite: Cd2+ (0.08958, 0.2795, 6.5) [0.006845, 0.02136, 0.4967]
  PeriodicSite: Cd2+ (0.04022, 6.923, -0.04308) [0.003074, 0.529, -0.003292]
  PeriodicSite: Cd2+ (-0.1846, 6.619, 6.332) [-0.0141, 0.5058, 0.4839]
  PeriodicSite: Cd2+ (6.625, 0.2106, -0.3562) [0.5063, 0.01609, -0.02722]
  PeriodicSite: Cd2+ (6.471, 0.2184, 6.124) [0.4945, 0.01669, 0.468]
  PeriodicSite: Cd2+ (7.055, 6.707, -0.1046) [0.5391, 0.5125, -0.007992]
  PeriodicSite: Cd2+ (6.401, 6.223, 6.427) [0.4891, 0.4755, 0.4911]
  PeriodicSite: Cd2+ (0.02002, 3.176, 3.109) [0.00153, 0.2427, 0.2375]
  PeriodicSite: Cd2+ (0.08734, 3.3, 9.288) [0.006674, 0.2521, 0.7097]
  PeriodicSite: Cd2+ (0.1104, 9.485, 3.089) [0.008438, 0.7248, 0.2361]
  PeriodicSite: Cd2+ (-0.2325, 9.461, 9.953) [-0.01776, 0.7229, 0.7606]
  PeriodicSite: Cd2+ (6.479, 3.319, 3.089) [0.4951, 0.2536, 0.236]
  PeriodicSite: Cd2+ (6.722, 3.356, 9.805) [0.5136, 0.2565, 0.7492]
  PeriodicSite: Cd2+ (6.441, 9.742, 3.401) [0.4922, 0.7444, 0.2599]
  PeriodicSite: Cd2+ (6.906, 9.638, 9.544) [0.5277, 0.7364, 0.7293]
  PeriodicSite: Cd2+ (3.394, -0.1058, 3.65) [0.2593, -0.008082, 0.2789]
  PeriodicSite: Cd2+ (3.462, 0.111, 9.784) [0.2645, 0.008485, 0.7476]
  PeriodicSite: Cd2+ (3.57, 6.257, 3.183) [0.2728, 0.4781, 0.2433]
  PeriodicSite: Cd2+ (3.019, 6.647, 10.2) [0.2307, 0.5079, 0.7795]
  PeriodicSite: Cd2+ (9.342, 0.03649, 2.872) [0.7139, 0.002789, 0.2195]
  PeriodicSite: Cd2+ (10.09, 0.1205, 10.08) [0.7707, 0.009206, 0.7703]
  PeriodicSite: Cd2+ (9.618, 6.663, 3.423) [0.7349, 0.5092, 0.2616]
  PeriodicSite: Cd2+ (9.638, 6.435, 9.48) [0.7365, 0.4917, 0.7244]
  PeriodicSite: Cd2+ (3.655, 3.197, -0.3796) [0.2793, 0.2443, -0.029]
  PeriodicSite: Cd2+ (3.717, 3.562, 6.305) [0.2841, 0.2722, 0.4818]
  PeriodicSite: Cd2+ (3.218, 10.3, 0.1662) [0.2459, 0.787, 0.0127]
  PeriodicSite: Cd2+ (3.325, 9.973, 6.478) [0.2541, 0.7621, 0.495]
  PeriodicSite: Cd2+ (9.786, 3.454, 0.3456) [0.7477, 0.2639, 0.02641]
  PeriodicSite: Cd2+ (10.5, 3.528, 7.021) [0.8022, 0.2696, 0.5365]
  PeriodicSite: Cd2+ (9.788, 9.739, 0.04483) [0.7479, 0.7442, 0.003425]
  PeriodicSite: Cd2+ (9.935, 9.765, 6.804) [0.7591, 0.7461, 0.5199]
  PeriodicSite: Te2- (1.547, 1.98, 5.395) [0.1182, 0.1513, 0.4122]
  PeriodicSite: Te2- (1.309, 1.309, 11.78) [0.1, 0.1, 0.9]
  PeriodicSite: Te2- (1.693, 7.598, 4.615) [0.1294, 0.5806, 0.3526]
  PeriodicSite: Te2- (1.136, 8.308, 11.55) [0.08677, 0.6349, 0.8828]
  PeriodicSite: Te2- (7.889, 2.169, 4.841) [0.6028, 0.1657, 0.3699]
  PeriodicSite: Te2- (8.276, 2.219, 11.29) [0.6324, 0.1696, 0.8626]
  PeriodicSite: Te2- (8.204, 8.164, 4.989) [0.6269, 0.6238, 0.3812]
  PeriodicSite: Te2- (8.314, 8.195, 11.47) [0.6353, 0.6262, 0.8767]
  PeriodicSite: Te2- (2.015, 4.642, 2.096) [0.154, 0.3547, 0.1602]
  PeriodicSite: Te2- (1.687, 4.993, 8.336) [0.1289, 0.3816, 0.637]
  PeriodicSite: Te2- (1.309, 11.78, 1.309) [0.1, 0.9, 0.1]
  PeriodicSite: Te2- (1.406, 11.77, 8.203) [0.1075, 0.8993, 0.6268]
  PeriodicSite: Te2- (8.13, 4.949, 1.534) [0.6213, 0.3781, 0.1172]
  PeriodicSite: Te2- (8.387, 4.59, 7.866) [0.6409, 0.3507, 0.601]
  PeriodicSite: Te2- (7.817, 11.61, 1.649) [0.5973, 0.8874, 0.126]
  PeriodicSite: Te2- (8.217, 11.68, 8.444) [0.6279, 0.8927, 0.6452]
  PeriodicSite: Te2- (5.052, 1.411, 1.871) [0.386, 0.1078, 0.143]
  PeriodicSite: Te2- (4.149, 1.799, 7.797) [0.317, 0.1375, 0.5958]
  PeriodicSite: Te2- (4.53, 8.048, 1.479) [0.3461, 0.615, 0.113]
  PeriodicSite: Te2- (4.657, 7.939, 7.666) [0.3559, 0.6066, 0.5858]
  PeriodicSite: Te2- (11.27, 2.077, 1.94) [0.8608, 0.1587, 0.1482]
  PeriodicSite: Te2- (11.39, 1.811, 8.485) [0.8706, 0.1384, 0.6484]
  PeriodicSite: Te2- (11.58, 8.432, 1.116) [0.8846, 0.6443, 0.08528]
  PeriodicSite: Te2- (11.41, 7.983, 8.342) [0.8716, 0.61, 0.6375]
  PeriodicSite: Te2- (4.809, 4.54, 4.531) [0.3674, 0.3469, 0.3463]
  PeriodicSite: Te2- (5.258, 4.554, 11.69) [0.4018, 0.348, 0.893]
  PeriodicSite: Te2- (4.66, 11.47, 5.087) [0.3561, 0.8763, 0.3887]
  PeriodicSite: Te2- (4.764, 11.6, 11.67) [0.3641, 0.8867, 0.8921]
  PeriodicSite: Te2- (11.69, 4.757, 4.892) [0.893, 0.3635, 0.3738]
  PeriodicSite: Te2- (11.72, 5.1, 11.69) [0.8956, 0.3897, 0.8936]
  PeriodicSite: Te2- (11.83, 11.33, 4.9) [0.9043, 0.8659, 0.3744]
  PeriodicSite: Te2- (11.36, 10.99, 11.87) [0.8677, 0.8399, 0.9067],
  'Bond_Distortion_-10.0%': Structure Summary
  Lattice
      abc : 13.086768 13.086768 13.086768
   angles : 90.0 90.0 90.0
   volume : 2241.2856479961474
        A : 13.086768 0.0 0.0
        B : 0.0 13.086768 0.0
        C : 0.0 0.0 13.086768
      pbc : True True True
  PeriodicSite: Cd2+ (0.08958, 0.2795, 6.5) [0.006845, 0.02136, 0.4967]
  PeriodicSite: Cd2+ (0.04022, 6.923, -0.04308) [0.003074, 0.529, -0.003292]
  PeriodicSite: Cd2+ (-0.1846, 6.619, 6.332) [-0.0141, 0.5058, 0.4839]
  PeriodicSite: Cd2+ (6.625, 0.2106, -0.3562) [0.5063, 0.01609, -0.02722]
  PeriodicSite: Cd2+ (6.471, 0.2184, 6.124) [0.4945, 0.01669, 0.468]
  PeriodicSite: Cd2+ (7.055, 6.707, -0.1046) [0.5391, 0.5125, -0.007992]
  PeriodicSite: Cd2+ (6.401, 6.223, 6.427) [0.4891, 0.4755, 0.4911]
  PeriodicSite: Cd2+ (0.02002, 3.176, 3.109) [0.00153, 0.2427, 0.2375]
  PeriodicSite: Cd2+ (0.08734, 3.3, 9.288) [0.006674, 0.2521, 0.7097]
  PeriodicSite: Cd2+ (0.1104, 9.485, 3.089) [0.008438, 0.7248, 0.2361]
  PeriodicSite: Cd2+ (-0.2325, 9.461, 9.953) [-0.01776, 0.7229, 0.7606]
  PeriodicSite: Cd2+ (6.479, 3.319, 3.089) [0.4951, 0.2536, 0.236]
  PeriodicSite: Cd2+ (6.722, 3.356, 9.805) [0.5136, 0.2565, 0.7492]
  PeriodicSite: Cd2+ (6.441, 9.742, 3.401) [0.4922, 0.7444, 0.2599]
  PeriodicSite: Cd2+ (6.906, 9.638, 9.544) [0.5277, 0.7364, 0.7293]
  PeriodicSite: Cd2+ (3.394, -0.1058, 3.65) [0.2593, -0.008082, 0.2789]
  PeriodicSite: Cd2+ (3.462, 0.111, 9.784) [0.2645, 0.008485, 0.7476]
  PeriodicSite: Cd2+ (3.57, 6.257, 3.183) [0.2728, 0.4781, 0.2433]
  PeriodicSite: Cd2+ (3.019, 6.647, 10.2) [0.2307, 0.5079, 0.7795]
  PeriodicSite: Cd2+ (9.342, 0.03649, 2.872) [0.7139, 0.002789, 0.2195]
  PeriodicSite: Cd2+ (10.09, 0.1205, 10.08) [0.7707, 0.009206, 0.7703]
  PeriodicSite: Cd2+ (9.618, 6.663, 3.423) [0.7349, 0.5092, 0.2616]
  PeriodicSite: Cd2+ (9.638, 6.435, 9.48) [0.7365, 0.4917, 0.7244]
  PeriodicSite: Cd2+ (3.655, 3.197, -0.3796) [0.2793, 0.2443, -0.029]
  PeriodicSite: Cd2+ (3.717, 3.562, 6.305) [0.2841, 0.2722, 0.4818]
  PeriodicSite: Cd2+ (3.218, 10.3, 0.1662) [0.2459, 0.787, 0.0127]
  PeriodicSite: Cd2+ (3.325, 9.973, 6.478) [0.2541, 0.7621, 0.495]
  PeriodicSite: Cd2+ (9.786, 3.454, 0.3456) [0.7477, 0.2639, 0.02641]
  PeriodicSite: Cd2+ (10.5, 3.528, 7.021) [0.8022, 0.2696, 0.5365]
  PeriodicSite: Cd2+ (9.788, 9.739, 0.04483) [0.7479, 0.7442, 0.003425]
  PeriodicSite: Cd2+ (9.935, 9.765, 6.804) [0.7591, 0.7461, 0.5199]
  PeriodicSite: Te2- (1.547, 1.98, 5.395) [0.1182, 0.1513, 0.4122]
  PeriodicSite: Te2- (1.472, 1.472, 11.61) [0.1125, 0.1125, 0.8875]
  PeriodicSite: Te2- (1.693, 7.598, 4.615) [0.1294, 0.5806, 0.3526]
  PeriodicSite: Te2- (1.136, 8.308, 11.55) [0.08677, 0.6349, 0.8828]
  PeriodicSite: Te2- (7.889, 2.169, 4.841) [0.6028, 0.1657, 0.3699]
  PeriodicSite: Te2- (8.276, 2.219, 11.29) [0.6324, 0.1696, 0.8626]
  PeriodicSite: Te2- (8.204, 8.164, 4.989) [0.6269, 0.6238, 0.3812]
  PeriodicSite: Te2- (8.314, 8.195, 11.47) [0.6353, 0.6262, 0.8767]
  PeriodicSite: Te2- (2.015, 4.642, 2.096) [0.154, 0.3547, 0.1602]
  PeriodicSite: Te2- (1.687, 4.993, 8.336) [0.1289, 0.3816, 0.637]
  PeriodicSite: Te2- (1.472, 11.61, 1.472) [0.1125, 0.8875, 0.1125]
  PeriodicSite: Te2- (1.406, 11.77, 8.203) [0.1075, 0.8993, 0.6268]
  PeriodicSite: Te2- (8.13, 4.949, 1.534) [0.6213, 0.3781, 0.1172]
  PeriodicSite: Te2- (8.387, 4.59, 7.866) [0.6409, 0.3507, 0.601]
  PeriodicSite: Te2- (7.817, 11.61, 1.649) [0.5973, 0.8874, 0.126]
  PeriodicSite: Te2- (8.217, 11.68, 8.444) [0.6279, 0.8927, 0.6452]
  PeriodicSite: Te2- (5.052, 1.411, 1.871) [0.386, 0.1078, 0.143]
  PeriodicSite: Te2- (4.149, 1.799, 7.797) [0.317, 0.1375, 0.5958]
  PeriodicSite: Te2- (4.53, 8.048, 1.479) [0.3461, 0.615, 0.113]
  PeriodicSite: Te2- (4.657, 7.939, 7.666) [0.3559, 0.6066, 0.5858]
  PeriodicSite: Te2- (11.27, 2.077, 1.94) [0.8608, 0.1587, 0.1482]
  PeriodicSite: Te2- (11.39, 1.811, 8.485) [0.8706, 0.1384, 0.6484]
  PeriodicSite: Te2- (11.58, 8.432, 1.116) [0.8846, 0.6443, 0.08528]
  PeriodicSite: Te2- (11.41, 7.983, 8.342) [0.8716, 0.61, 0.6375]
  PeriodicSite: Te2- (4.809, 4.54, 4.531) [0.3674, 0.3469, 0.3463]
  PeriodicSite: Te2- (5.258, 4.554, 11.69) [0.4018, 0.348, 0.893]
  PeriodicSite: Te2- (4.66, 11.47, 5.087) [0.3561, 0.8763, 0.3887]
  PeriodicSite: Te2- (4.764, 11.6, 11.67) [0.3641, 0.8867, 0.8921]
  PeriodicSite: Te2- (11.69, 4.757, 4.892) [0.893, 0.3635, 0.3738]
  PeriodicSite: Te2- (11.72, 5.1, 11.69) [0.8956, 0.3897, 0.8936]
  PeriodicSite: Te2- (11.83, 11.33, 4.9) [0.9043, 0.8659, 0.3744]
  PeriodicSite: Te2- (11.36, 10.99, 11.87) [0.8677, 0.8399, 0.9067],
  'Bond_Distortion_0.0%': Structure Summary
  Lattice
      abc : 13.086768 13.086768 13.086768
   angles : 90.0 90.0 90.0
   volume : 2241.2856479961474
        A : 13.086768 0.0 0.0
        B : 0.0 13.086768 0.0
        C : 0.0 0.0 13.086768
      pbc : True True True
  PeriodicSite: Cd2+ (0.08958, 0.2795, 6.5) [0.006845, 0.02136, 0.4967]
  PeriodicSite: Cd2+ (0.04022, 6.923, -0.04308) [0.003074, 0.529, -0.003292]
  PeriodicSite: Cd2+ (-0.1846, 6.619, 6.332) [-0.0141, 0.5058, 0.4839]
  PeriodicSite: Cd2+ (6.625, 0.2106, -0.3562) [0.5063, 0.01609, -0.02722]
  PeriodicSite: Cd2+ (6.471, 0.2184, 6.124) [0.4945, 0.01669, 0.468]
  PeriodicSite: Cd2+ (7.055, 6.707, -0.1046) [0.5391, 0.5125, -0.007992]
  PeriodicSite: Cd2+ (6.401, 6.223, 6.427) [0.4891, 0.4755, 0.4911]
  PeriodicSite: Cd2+ (0.02002, 3.176, 3.109) [0.00153, 0.2427, 0.2375]
  PeriodicSite: Cd2+ (0.08734, 3.3, 9.288) [0.006674, 0.2521, 0.7097]
  PeriodicSite: Cd2+ (0.1104, 9.485, 3.089) [0.008438, 0.7248, 0.2361]
  PeriodicSite: Cd2+ (-0.2325, 9.461, 9.953) [-0.01776, 0.7229, 0.7606]
  PeriodicSite: Cd2+ (6.479, 3.319, 3.089) [0.4951, 0.2536, 0.236]
  PeriodicSite: Cd2+ (6.722, 3.356, 9.805) [0.5136, 0.2565, 0.7492]
  PeriodicSite: Cd2+ (6.441, 9.742, 3.401) [0.4922, 0.7444, 0.2599]
  PeriodicSite: Cd2+ (6.906, 9.638, 9.544) [0.5277, 0.7364, 0.7293]
  PeriodicSite: Cd2+ (3.394, -0.1058, 3.65) [0.2593, -0.008082, 0.2789]
  PeriodicSite: Cd2+ (3.462, 0.111, 9.784) [0.2645, 0.008485, 0.7476]
  PeriodicSite: Cd2+ (3.57, 6.257, 3.183) [0.2728, 0.4781, 0.2433]
  PeriodicSite: Cd2+ (3.019, 6.647, 10.2) [0.2307, 0.5079, 0.7795]
  PeriodicSite: Cd2+ (9.342, 0.03649, 2.872) [0.7139, 0.002789, 0.2195]
  PeriodicSite: Cd2+ (10.09, 0.1205, 10.08) [0.7707, 0.009206, 0.7703]
  PeriodicSite: Cd2+ (9.618, 6.663, 3.423) [0.7349, 0.5092, 0.2616]
  PeriodicSite: Cd2+ (9.638, 6.435, 9.48) [0.7365, 0.4917, 0.7244]
  PeriodicSite: Cd2+ (3.655, 3.197, -0.3796) [0.2793, 0.2443, -0.029]
  PeriodicSite: Cd2+ (3.717, 3.562, 6.305) [0.2841, 0.2722, 0.4818]
  PeriodicSite: Cd2+ (3.218, 10.3, 0.1662) [0.2459, 0.787, 0.0127]
  PeriodicSite: Cd2+ (3.325, 9.973, 6.478) [0.2541, 0.7621, 0.495]
  PeriodicSite: Cd2+ (9.786, 3.454, 0.3456) [0.7477, 0.2639, 0.02641]
  PeriodicSite: Cd2+ (10.5, 3.528, 7.021) [0.8022, 0.2696, 0.5365]
  PeriodicSite: Cd2+ (9.788, 9.739, 0.04483) [0.7479, 0.7442, 0.003425]
  PeriodicSite: Cd2+ (9.935, 9.765, 6.804) [0.7591, 0.7461, 0.5199]
  PeriodicSite: Te2- (1.547, 1.98, 5.395) [0.1182, 0.1513, 0.4122]
  PeriodicSite: Te2- (1.636, 1.636, 11.45) [0.125, 0.125, 0.875]
  PeriodicSite: Te2- (1.693, 7.598, 4.615) [0.1294, 0.5806, 0.3526]
  PeriodicSite: Te2- (1.136, 8.308, 11.55) [0.08677, 0.6349, 0.8828]
  PeriodicSite: Te2- (7.889, 2.169, 4.841) [0.6028, 0.1657, 0.3699]
  PeriodicSite: Te2- (8.276, 2.219, 11.29) [0.6324, 0.1696, 0.8626]
  PeriodicSite: Te2- (8.204, 8.164, 4.989) [0.6269, 0.6238, 0.3812]
  PeriodicSite: Te2- (8.314, 8.195, 11.47) [0.6353, 0.6262, 0.8767]
  PeriodicSite: Te2- (2.015, 4.642, 2.096) [0.154, 0.3547, 0.1602]
  PeriodicSite: Te2- (1.687, 4.993, 8.336) [0.1289, 0.3816, 0.637]
  PeriodicSite: Te2- (1.636, 11.45, 1.636) [0.125, 0.875, 0.125]
  PeriodicSite: Te2- (1.406, 11.77, 8.203) [0.1075, 0.8993, 0.6268]
  PeriodicSite: Te2- (8.13, 4.949, 1.534) [0.6213, 0.3781, 0.1172]
  PeriodicSite: Te2- (8.387, 4.59, 7.866) [0.6409, 0.3507, 0.601]
  PeriodicSite: Te2- (7.817, 11.61, 1.649) [0.5973, 0.8874, 0.126]
  PeriodicSite: Te2- (8.217, 11.68, 8.444) [0.6279, 0.8927, 0.6452]
  PeriodicSite: Te2- (5.052, 1.411, 1.871) [0.386, 0.1078, 0.143]
  PeriodicSite: Te2- (4.149, 1.799, 7.797) [0.317, 0.1375, 0.5958]
  PeriodicSite: Te2- (4.53, 8.048, 1.479) [0.3461, 0.615, 0.113]
  PeriodicSite: Te2- (4.657, 7.939, 7.666) [0.3559, 0.6066, 0.5858]
  PeriodicSite: Te2- (11.27, 2.077, 1.94) [0.8608, 0.1587, 0.1482]
  PeriodicSite: Te2- (11.39, 1.811, 8.485) [0.8706, 0.1384, 0.6484]
  PeriodicSite: Te2- (11.58, 8.432, 1.116) [0.8846, 0.6443, 0.08528]
  PeriodicSite: Te2- (11.41, 7.983, 8.342) [0.8716, 0.61, 0.6375]
  PeriodicSite: Te2- (4.809, 4.54, 4.531) [0.3674, 0.3469, 0.3463]
  PeriodicSite: Te2- (5.258, 4.554, 11.69) [0.4018, 0.348, 0.893]
  PeriodicSite: Te2- (4.66, 11.47, 5.087) [0.3561, 0.8763, 0.3887]
  PeriodicSite: Te2- (4.764, 11.6, 11.67) [0.3641, 0.8867, 0.8921]
  PeriodicSite: Te2- (11.69, 4.757, 4.892) [0.893, 0.3635, 0.3738]
  PeriodicSite: Te2- (11.72, 5.1, 11.69) [0.8956, 0.3897, 0.8936]
  PeriodicSite: Te2- (11.83, 11.33, 4.9) [0.9043, 0.8659, 0.3744]
  PeriodicSite: Te2- (11.36, 10.99, 11.87) [0.8677, 0.8399, 0.9067],
  'Bond_Distortion_10.0%': Structure Summary
  Lattice
      abc : 13.086768 13.086768 13.086768
   angles : 90.0 90.0 90.0
   volume : 2241.2856479961474
        A : 13.086768 0.0 0.0
        B : 0.0 13.086768 0.0
        C : 0.0 0.0 13.086768
      pbc : True True True
  PeriodicSite: Cd2+ (0.08958, 0.2795, 6.5) [0.006845, 0.02136, 0.4967]
  PeriodicSite: Cd2+ (0.04022, 6.923, -0.04308) [0.003074, 0.529, -0.003292]
  PeriodicSite: Cd2+ (-0.1846, 6.619, 6.332) [-0.0141, 0.5058, 0.4839]
  PeriodicSite: Cd2+ (6.625, 0.2106, -0.3562) [0.5063, 0.01609, -0.02722]
  PeriodicSite: Cd2+ (6.471, 0.2184, 6.124) [0.4945, 0.01669, 0.468]
  PeriodicSite: Cd2+ (7.055, 6.707, -0.1046) [0.5391, 0.5125, -0.007992]
  PeriodicSite: Cd2+ (6.401, 6.223, 6.427) [0.4891, 0.4755, 0.4911]
  PeriodicSite: Cd2+ (0.02002, 3.176, 3.109) [0.00153, 0.2427, 0.2375]
  PeriodicSite: Cd2+ (0.08734, 3.3, 9.288) [0.006674, 0.2521, 0.7097]
  PeriodicSite: Cd2+ (0.1104, 9.485, 3.089) [0.008438, 0.7248, 0.2361]
  PeriodicSite: Cd2+ (-0.2325, 9.461, 9.953) [-0.01776, 0.7229, 0.7606]
  PeriodicSite: Cd2+ (6.479, 3.319, 3.089) [0.4951, 0.2536, 0.236]
  PeriodicSite: Cd2+ (6.722, 3.356, 9.805) [0.5136, 0.2565, 0.7492]
  PeriodicSite: Cd2+ (6.441, 9.742, 3.401) [0.4922, 0.7444, 0.2599]
  PeriodicSite: Cd2+ (6.906, 9.638, 9.544) [0.5277, 0.7364, 0.7293]
  PeriodicSite: Cd2+ (3.394, -0.1058, 3.65) [0.2593, -0.008082, 0.2789]
  PeriodicSite: Cd2+ (3.462, 0.111, 9.784) [0.2645, 0.008485, 0.7476]
  PeriodicSite: Cd2+ (3.57, 6.257, 3.183) [0.2728, 0.4781, 0.2433]
  PeriodicSite: Cd2+ (3.019, 6.647, 10.2) [0.2307, 0.5079, 0.7795]
  PeriodicSite: Cd2+ (9.342, 0.03649, 2.872) [0.7139, 0.002789, 0.2195]
  PeriodicSite: Cd2+ (10.09, 0.1205, 10.08) [0.7707, 0.009206, 0.7703]
  PeriodicSite: Cd2+ (9.618, 6.663, 3.423) [0.7349, 0.5092, 0.2616]
  PeriodicSite: Cd2+ (9.638, 6.435, 9.48) [0.7365, 0.4917, 0.7244]
  PeriodicSite: Cd2+ (3.655, 3.197, -0.3796) [0.2793, 0.2443, -0.029]
  PeriodicSite: Cd2+ (3.717, 3.562, 6.305) [0.2841, 0.2722, 0.4818]
  PeriodicSite: Cd2+ (3.218, 10.3, 0.1662) [0.2459, 0.787, 0.0127]
  PeriodicSite: Cd2+ (3.325, 9.973, 6.478) [0.2541, 0.7621, 0.495]
  PeriodicSite: Cd2+ (9.786, 3.454, 0.3456) [0.7477, 0.2639, 0.02641]
  PeriodicSite: Cd2+ (10.5, 3.528, 7.021) [0.8022, 0.2696, 0.5365]
  PeriodicSite: Cd2+ (9.788, 9.739, 0.04483) [0.7479, 0.7442, 0.003425]
  PeriodicSite: Cd2+ (9.935, 9.765, 6.804) [0.7591, 0.7461, 0.5199]
  PeriodicSite: Te2- (1.547, 1.98, 5.395) [0.1182, 0.1513, 0.4122]
  PeriodicSite: Te2- (1.799, 1.799, 11.29) [0.1375, 0.1375, 0.8625]
  PeriodicSite: Te2- (1.693, 7.598, 4.615) [0.1294, 0.5806, 0.3526]
  PeriodicSite: Te2- (1.136, 8.308, 11.55) [0.08677, 0.6349, 0.8828]
  PeriodicSite: Te2- (7.889, 2.169, 4.841) [0.6028, 0.1657, 0.3699]
  PeriodicSite: Te2- (8.276, 2.219, 11.29) [0.6324, 0.1696, 0.8626]
  PeriodicSite: Te2- (8.204, 8.164, 4.989) [0.6269, 0.6238, 0.3812]
  PeriodicSite: Te2- (8.314, 8.195, 11.47) [0.6353, 0.6262, 0.8767]
  PeriodicSite: Te2- (2.015, 4.642, 2.096) [0.154, 0.3547, 0.1602]
  PeriodicSite: Te2- (1.687, 4.993, 8.336) [0.1289, 0.3816, 0.637]
  PeriodicSite: Te2- (1.799, 11.29, 1.799) [0.1375, 0.8625, 0.1375]
  PeriodicSite: Te2- (1.406, 11.77, 8.203) [0.1075, 0.8993, 0.6268]
  PeriodicSite: Te2- (8.13, 4.949, 1.534) [0.6213, 0.3781, 0.1172]
  PeriodicSite: Te2- (8.387, 4.59, 7.866) [0.6409, 0.3507, 0.601]
  PeriodicSite: Te2- (7.817, 11.61, 1.649) [0.5973, 0.8874, 0.126]
  PeriodicSite: Te2- (8.217, 11.68, 8.444) [0.6279, 0.8927, 0.6452]
  PeriodicSite: Te2- (5.052, 1.411, 1.871) [0.386, 0.1078, 0.143]
  PeriodicSite: Te2- (4.149, 1.799, 7.797) [0.317, 0.1375, 0.5958]
  PeriodicSite: Te2- (4.53, 8.048, 1.479) [0.3461, 0.615, 0.113]
  PeriodicSite: Te2- (4.657, 7.939, 7.666) [0.3559, 0.6066, 0.5858]
  PeriodicSite: Te2- (11.27, 2.077, 1.94) [0.8608, 0.1587, 0.1482]
  PeriodicSite: Te2- (11.39, 1.811, 8.485) [0.8706, 0.1384, 0.6484]
  PeriodicSite: Te2- (11.58, 8.432, 1.116) [0.8846, 0.6443, 0.08528]
  PeriodicSite: Te2- (11.41, 7.983, 8.342) [0.8716, 0.61, 0.6375]
  PeriodicSite: Te2- (4.809, 4.54, 4.531) [0.3674, 0.3469, 0.3463]
  PeriodicSite: Te2- (5.258, 4.554, 11.69) [0.4018, 0.348, 0.893]
  PeriodicSite: Te2- (4.66, 11.47, 5.087) [0.3561, 0.8763, 0.3887]
  PeriodicSite: Te2- (4.764, 11.6, 11.67) [0.3641, 0.8867, 0.8921]
  PeriodicSite: Te2- (11.69, 4.757, 4.892) [0.893, 0.3635, 0.3738]
  PeriodicSite: Te2- (11.72, 5.1, 11.69) [0.8956, 0.3897, 0.8936]
  PeriodicSite: Te2- (11.83, 11.33, 4.9) [0.9043, 0.8659, 0.3744]
  PeriodicSite: Te2- (11.36, 10.99, 11.87) [0.8677, 0.8399, 0.9067],
  'Bond_Distortion_20.0%': Structure Summary
  Lattice
      abc : 13.086768 13.086768 13.086768
   angles : 90.0 90.0 90.0
   volume : 2241.2856479961474
        A : 13.086768 0.0 0.0
        B : 0.0 13.086768 0.0
        C : 0.0 0.0 13.086768
      pbc : True True True
  PeriodicSite: Cd2+ (0.08958, 0.2795, 6.5) [0.006845, 0.02136, 0.4967]
  PeriodicSite: Cd2+ (0.04022, 6.923, -0.04308) [0.003074, 0.529, -0.003292]
  PeriodicSite: Cd2+ (-0.1846, 6.619, 6.332) [-0.0141, 0.5058, 0.4839]
  PeriodicSite: Cd2+ (6.625, 0.2106, -0.3562) [0.5063, 0.01609, -0.02722]
  PeriodicSite: Cd2+ (6.471, 0.2184, 6.124) [0.4945, 0.01669, 0.468]
  PeriodicSite: Cd2+ (7.055, 6.707, -0.1046) [0.5391, 0.5125, -0.007992]
  PeriodicSite: Cd2+ (6.401, 6.223, 6.427) [0.4891, 0.4755, 0.4911]
  PeriodicSite: Cd2+ (0.02002, 3.176, 3.109) [0.00153, 0.2427, 0.2375]
  PeriodicSite: Cd2+ (0.08734, 3.3, 9.288) [0.006674, 0.2521, 0.7097]
  PeriodicSite: Cd2+ (0.1104, 9.485, 3.089) [0.008438, 0.7248, 0.2361]
  PeriodicSite: Cd2+ (-0.2325, 9.461, 9.953) [-0.01776, 0.7229, 0.7606]
  PeriodicSite: Cd2+ (6.479, 3.319, 3.089) [0.4951, 0.2536, 0.236]
  PeriodicSite: Cd2+ (6.722, 3.356, 9.805) [0.5136, 0.2565, 0.7492]
  PeriodicSite: Cd2+ (6.441, 9.742, 3.401) [0.4922, 0.7444, 0.2599]
  PeriodicSite: Cd2+ (6.906, 9.638, 9.544) [0.5277, 0.7364, 0.7293]
  PeriodicSite: Cd2+ (3.394, -0.1058, 3.65) [0.2593, -0.008082, 0.2789]
  PeriodicSite: Cd2+ (3.462, 0.111, 9.784) [0.2645, 0.008485, 0.7476]
  PeriodicSite: Cd2+ (3.57, 6.257, 3.183) [0.2728, 0.4781, 0.2433]
  PeriodicSite: Cd2+ (3.019, 6.647, 10.2) [0.2307, 0.5079, 0.7795]
  PeriodicSite: Cd2+ (9.342, 0.03649, 2.872) [0.7139, 0.002789, 0.2195]
  PeriodicSite: Cd2+ (10.09, 0.1205, 10.08) [0.7707, 0.009206, 0.7703]
  PeriodicSite: Cd2+ (9.618, 6.663, 3.423) [0.7349, 0.5092, 0.2616]
  PeriodicSite: Cd2+ (9.638, 6.435, 9.48) [0.7365, 0.4917, 0.7244]
  PeriodicSite: Cd2+ (3.655, 3.197, -0.3796) [0.2793, 0.2443, -0.029]
  PeriodicSite: Cd2+ (3.717, 3.562, 6.305) [0.2841, 0.2722, 0.4818]
  PeriodicSite: Cd2+ (3.218, 10.3, 0.1662) [0.2459, 0.787, 0.0127]
  PeriodicSite: Cd2+ (3.325, 9.973, 6.478) [0.2541, 0.7621, 0.495]
  PeriodicSite: Cd2+ (9.786, 3.454, 0.3456) [0.7477, 0.2639, 0.02641]
  PeriodicSite: Cd2+ (10.5, 3.528, 7.021) [0.8022, 0.2696, 0.5365]
  PeriodicSite: Cd2+ (9.788, 9.739, 0.04483) [0.7479, 0.7442, 0.003425]
  PeriodicSite: Cd2+ (9.935, 9.765, 6.804) [0.7591, 0.7461, 0.5199]
  PeriodicSite: Te2- (1.547, 1.98, 5.395) [0.1182, 0.1513, 0.4122]
  PeriodicSite: Te2- (1.963, 1.963, 11.12) [0.15, 0.15, 0.85]
  PeriodicSite: Te2- (1.693, 7.598, 4.615) [0.1294, 0.5806, 0.3526]
  PeriodicSite: Te2- (1.136, 8.308, 11.55) [0.08677, 0.6349, 0.8828]
  PeriodicSite: Te2- (7.889, 2.169, 4.841) [0.6028, 0.1657, 0.3699]
  PeriodicSite: Te2- (8.276, 2.219, 11.29) [0.6324, 0.1696, 0.8626]
  PeriodicSite: Te2- (8.204, 8.164, 4.989) [0.6269, 0.6238, 0.3812]
  PeriodicSite: Te2- (8.314, 8.195, 11.47) [0.6353, 0.6262, 0.8767]
  PeriodicSite: Te2- (2.015, 4.642, 2.096) [0.154, 0.3547, 0.1602]
  PeriodicSite: Te2- (1.687, 4.993, 8.336) [0.1289, 0.3816, 0.637]
  PeriodicSite: Te2- (1.963, 11.12, 1.963) [0.15, 0.85, 0.15]
  PeriodicSite: Te2- (1.406, 11.77, 8.203) [0.1075, 0.8993, 0.6268]
  PeriodicSite: Te2- (8.13, 4.949, 1.534) [0.6213, 0.3781, 0.1172]
  PeriodicSite: Te2- (8.387, 4.59, 7.866) [0.6409, 0.3507, 0.601]
  PeriodicSite: Te2- (7.817, 11.61, 1.649) [0.5973, 0.8874, 0.126]
  PeriodicSite: Te2- (8.217, 11.68, 8.444) [0.6279, 0.8927, 0.6452]
  PeriodicSite: Te2- (5.052, 1.411, 1.871) [0.386, 0.1078, 0.143]
  PeriodicSite: Te2- (4.149, 1.799, 7.797) [0.317, 0.1375, 0.5958]
  PeriodicSite: Te2- (4.53, 8.048, 1.479) [0.3461, 0.615, 0.113]
  PeriodicSite: Te2- (4.657, 7.939, 7.666) [0.3559, 0.6066, 0.5858]
  PeriodicSite: Te2- (11.27, 2.077, 1.94) [0.8608, 0.1587, 0.1482]
  PeriodicSite: Te2- (11.39, 1.811, 8.485) [0.8706, 0.1384, 0.6484]
  PeriodicSite: Te2- (11.58, 8.432, 1.116) [0.8846, 0.6443, 0.08528]
  PeriodicSite: Te2- (11.41, 7.983, 8.342) [0.8716, 0.61, 0.6375]
  PeriodicSite: Te2- (4.809, 4.54, 4.531) [0.3674, 0.3469, 0.3463]
  PeriodicSite: Te2- (5.258, 4.554, 11.69) [0.4018, 0.348, 0.893]
  PeriodicSite: Te2- (4.66, 11.47, 5.087) [0.3561, 0.8763, 0.3887]
  PeriodicSite: Te2- (4.764, 11.6, 11.67) [0.3641, 0.8867, 0.8921]
  PeriodicSite: Te2- (11.69, 4.757, 4.892) [0.893, 0.3635, 0.3738]
  PeriodicSite: Te2- (11.72, 5.1, 11.69) [0.8956, 0.3897, 0.8936]
  PeriodicSite: Te2- (11.83, 11.33, 4.9) [0.9043, 0.8659, 0.3744]
  PeriodicSite: Te2- (11.36, 10.99, 11.87) [0.8677, 0.8399, 0.9067],
  'Bond_Distortion_30.0%': Structure Summary
  Lattice
      abc : 13.086768 13.086768 13.086768
   angles : 90.0 90.0 90.0
   volume : 2241.2856479961474
        A : 13.086768 0.0 0.0
        B : 0.0 13.086768 0.0
        C : 0.0 0.0 13.086768
      pbc : True True True
  PeriodicSite: Cd2+ (0.08958, 0.2795, 6.5) [0.006845, 0.02136, 0.4967]
  PeriodicSite: Cd2+ (0.04022, 6.923, -0.04308) [0.003074, 0.529, -0.003292]
  PeriodicSite: Cd2+ (-0.1846, 6.619, 6.332) [-0.0141, 0.5058, 0.4839]
  PeriodicSite: Cd2+ (6.625, 0.2106, -0.3562) [0.5063, 0.01609, -0.02722]
  PeriodicSite: Cd2+ (6.471, 0.2184, 6.124) [0.4945, 0.01669, 0.468]
  PeriodicSite: Cd2+ (7.055, 6.707, -0.1046) [0.5391, 0.5125, -0.007992]
  PeriodicSite: Cd2+ (6.401, 6.223, 6.427) [0.4891, 0.4755, 0.4911]
  PeriodicSite: Cd2+ (0.02002, 3.176, 3.109) [0.00153, 0.2427, 0.2375]
  PeriodicSite: Cd2+ (0.08734, 3.3, 9.288) [0.006674, 0.2521, 0.7097]
  PeriodicSite: Cd2+ (0.1104, 9.485, 3.089) [0.008438, 0.7248, 0.2361]
  PeriodicSite: Cd2+ (-0.2325, 9.461, 9.953) [-0.01776, 0.7229, 0.7606]
  PeriodicSite: Cd2+ (6.479, 3.319, 3.089) [0.4951, 0.2536, 0.236]
  PeriodicSite: Cd2+ (6.722, 3.356, 9.805) [0.5136, 0.2565, 0.7492]
  PeriodicSite: Cd2+ (6.441, 9.742, 3.401) [0.4922, 0.7444, 0.2599]
  PeriodicSite: Cd2+ (6.906, 9.638, 9.544) [0.5277, 0.7364, 0.7293]
  PeriodicSite: Cd2+ (3.394, -0.1058, 3.65) [0.2593, -0.008082, 0.2789]
  PeriodicSite: Cd2+ (3.462, 0.111, 9.784) [0.2645, 0.008485, 0.7476]
  PeriodicSite: Cd2+ (3.57, 6.257, 3.183) [0.2728, 0.4781, 0.2433]
  PeriodicSite: Cd2+ (3.019, 6.647, 10.2) [0.2307, 0.5079, 0.7795]
  PeriodicSite: Cd2+ (9.342, 0.03649, 2.872) [0.7139, 0.002789, 0.2195]
  PeriodicSite: Cd2+ (10.09, 0.1205, 10.08) [0.7707, 0.009206, 0.7703]
  PeriodicSite: Cd2+ (9.618, 6.663, 3.423) [0.7349, 0.5092, 0.2616]
  PeriodicSite: Cd2+ (9.638, 6.435, 9.48) [0.7365, 0.4917, 0.7244]
  PeriodicSite: Cd2+ (3.655, 3.197, -0.3796) [0.2793, 0.2443, -0.029]
  PeriodicSite: Cd2+ (3.717, 3.562, 6.305) [0.2841, 0.2722, 0.4818]
  PeriodicSite: Cd2+ (3.218, 10.3, 0.1662) [0.2459, 0.787, 0.0127]
  PeriodicSite: Cd2+ (3.325, 9.973, 6.478) [0.2541, 0.7621, 0.495]
  PeriodicSite: Cd2+ (9.786, 3.454, 0.3456) [0.7477, 0.2639, 0.02641]
  PeriodicSite: Cd2+ (10.5, 3.528, 7.021) [0.8022, 0.2696, 0.5365]
  PeriodicSite: Cd2+ (9.788, 9.739, 0.04483) [0.7479, 0.7442, 0.003425]
  PeriodicSite: Cd2+ (9.935, 9.765, 6.804) [0.7591, 0.7461, 0.5199]
  PeriodicSite: Te2- (1.547, 1.98, 5.395) [0.1182, 0.1513, 0.4122]
  PeriodicSite: Te2- (2.127, 2.127, 10.96) [0.1625, 0.1625, 0.8375]
  PeriodicSite: Te2- (1.693, 7.598, 4.615) [0.1294, 0.5806, 0.3526]
  PeriodicSite: Te2- (1.136, 8.308, 11.55) [0.08677, 0.6349, 0.8828]
  PeriodicSite: Te2- (7.889, 2.169, 4.841) [0.6028, 0.1657, 0.3699]
  PeriodicSite: Te2- (8.276, 2.219, 11.29) [0.6324, 0.1696, 0.8626]
  PeriodicSite: Te2- (8.204, 8.164, 4.989) [0.6269, 0.6238, 0.3812]
  PeriodicSite: Te2- (8.314, 8.195, 11.47) [0.6353, 0.6262, 0.8767]
  PeriodicSite: Te2- (2.015, 4.642, 2.096) [0.154, 0.3547, 0.1602]
  PeriodicSite: Te2- (1.687, 4.993, 8.336) [0.1289, 0.3816, 0.637]
  PeriodicSite: Te2- (2.127, 10.96, 2.127) [0.1625, 0.8375, 0.1625]
  PeriodicSite: Te2- (1.406, 11.77, 8.203) [0.1075, 0.8993, 0.6268]
  PeriodicSite: Te2- (8.13, 4.949, 1.534) [0.6213, 0.3781, 0.1172]
  PeriodicSite: Te2- (8.387, 4.59, 7.866) [0.6409, 0.3507, 0.601]
  PeriodicSite: Te2- (7.817, 11.61, 1.649) [0.5973, 0.8874, 0.126]
  PeriodicSite: Te2- (8.217, 11.68, 8.444) [0.6279, 0.8927, 0.6452]
  PeriodicSite: Te2- (5.052, 1.411, 1.871) [0.386, 0.1078, 0.143]
  PeriodicSite: Te2- (4.149, 1.799, 7.797) [0.317, 0.1375, 0.5958]
  PeriodicSite: Te2- (4.53, 8.048, 1.479) [0.3461, 0.615, 0.113]
  PeriodicSite: Te2- (4.657, 7.939, 7.666) [0.3559, 0.6066, 0.5858]
  PeriodicSite: Te2- (11.27, 2.077, 1.94) [0.8608, 0.1587, 0.1482]
  PeriodicSite: Te2- (11.39, 1.811, 8.485) [0.8706, 0.1384, 0.6484]
  PeriodicSite: Te2- (11.58, 8.432, 1.116) [0.8846, 0.6443, 0.08528]
  PeriodicSite: Te2- (11.41, 7.983, 8.342) [0.8716, 0.61, 0.6375]
  PeriodicSite: Te2- (4.809, 4.54, 4.531) [0.3674, 0.3469, 0.3463]
  PeriodicSite: Te2- (5.258, 4.554, 11.69) [0.4018, 0.348, 0.893]
  PeriodicSite: Te2- (4.66, 11.47, 5.087) [0.3561, 0.8763, 0.3887]
  PeriodicSite: Te2- (4.764, 11.6, 11.67) [0.3641, 0.8867, 0.8921]
  PeriodicSite: Te2- (11.69, 4.757, 4.892) [0.893, 0.3635, 0.3738]
  PeriodicSite: Te2- (11.72, 5.1, 11.69) [0.8956, 0.3897, 0.8936]
  PeriodicSite: Te2- (11.83, 11.33, 4.9) [0.9043, 0.8659, 0.3744]
  PeriodicSite: Te2- (11.36, 10.99, 11.87) [0.8677, 0.8399, 0.9067],
  'Bond_Distortion_40.0%': Structure Summary
  Lattice
      abc : 13.086768 13.086768 13.086768
   angles : 90.0 90.0 90.0
   volume : 2241.2856479961474
        A : 13.086768 0.0 0.0
        B : 0.0 13.086768 0.0
        C : 0.0 0.0 13.086768
      pbc : True True True
  PeriodicSite: Cd2+ (0.08958, 0.2795, 6.5) [0.006845, 0.02136, 0.4967]
  PeriodicSite: Cd2+ (0.04022, 6.923, -0.04308) [0.003074, 0.529, -0.003292]
  PeriodicSite: Cd2+ (-0.1846, 6.619, 6.332) [-0.0141, 0.5058, 0.4839]
  PeriodicSite: Cd2+ (6.625, 0.2106, -0.3562) [0.5063, 0.01609, -0.02722]
  PeriodicSite: Cd2+ (6.471, 0.2184, 6.124) [0.4945, 0.01669, 0.468]
  PeriodicSite: Cd2+ (7.055, 6.707, -0.1046) [0.5391, 0.5125, -0.007992]
  PeriodicSite: Cd2+ (6.401, 6.223, 6.427) [0.4891, 0.4755, 0.4911]
  PeriodicSite: Cd2+ (0.02002, 3.176, 3.109) [0.00153, 0.2427, 0.2375]
  PeriodicSite: Cd2+ (0.08734, 3.3, 9.288) [0.006674, 0.2521, 0.7097]
  PeriodicSite: Cd2+ (0.1104, 9.485, 3.089) [0.008438, 0.7248, 0.2361]
  PeriodicSite: Cd2+ (-0.2325, 9.461, 9.953) [-0.01776, 0.7229, 0.7606]
  PeriodicSite: Cd2+ (6.479, 3.319, 3.089) [0.4951, 0.2536, 0.236]
  PeriodicSite: Cd2+ (6.722, 3.356, 9.805) [0.5136, 0.2565, 0.7492]
  PeriodicSite: Cd2+ (6.441, 9.742, 3.401) [0.4922, 0.7444, 0.2599]
  PeriodicSite: Cd2+ (6.906, 9.638, 9.544) [0.5277, 0.7364, 0.7293]
  PeriodicSite: Cd2+ (3.394, -0.1058, 3.65) [0.2593, -0.008082, 0.2789]
  PeriodicSite: Cd2+ (3.462, 0.111, 9.784) [0.2645, 0.008485, 0.7476]
  PeriodicSite: Cd2+ (3.57, 6.257, 3.183) [0.2728, 0.4781, 0.2433]
  PeriodicSite: Cd2+ (3.019, 6.647, 10.2) [0.2307, 0.5079, 0.7795]
  PeriodicSite: Cd2+ (9.342, 0.03649, 2.872) [0.7139, 0.002789, 0.2195]
  PeriodicSite: Cd2+ (10.09, 0.1205, 10.08) [0.7707, 0.009206, 0.7703]
  PeriodicSite: Cd2+ (9.618, 6.663, 3.423) [0.7349, 0.5092, 0.2616]
  PeriodicSite: Cd2+ (9.638, 6.435, 9.48) [0.7365, 0.4917, 0.7244]
  PeriodicSite: Cd2+ (3.655, 3.197, -0.3796) [0.2793, 0.2443, -0.029]
  PeriodicSite: Cd2+ (3.717, 3.562, 6.305) [0.2841, 0.2722, 0.4818]
  PeriodicSite: Cd2+ (3.218, 10.3, 0.1662) [0.2459, 0.787, 0.0127]
  PeriodicSite: Cd2+ (3.325, 9.973, 6.478) [0.2541, 0.7621, 0.495]
  PeriodicSite: Cd2+ (9.786, 3.454, 0.3456) [0.7477, 0.2639, 0.02641]
  PeriodicSite: Cd2+ (10.5, 3.528, 7.021) [0.8022, 0.2696, 0.5365]
  PeriodicSite: Cd2+ (9.788, 9.739, 0.04483) [0.7479, 0.7442, 0.003425]
  PeriodicSite: Cd2+ (9.935, 9.765, 6.804) [0.7591, 0.7461, 0.5199]
  PeriodicSite: Te2- (1.547, 1.98, 5.395) [0.1182, 0.1513, 0.4122]
  PeriodicSite: Te2- (2.29, 2.29, 10.8) [0.175, 0.175, 0.825]
  PeriodicSite: Te2- (1.693, 7.598, 4.615) [0.1294, 0.5806, 0.3526]
  PeriodicSite: Te2- (1.136, 8.308, 11.55) [0.08677, 0.6349, 0.8828]
  PeriodicSite: Te2- (7.889, 2.169, 4.841) [0.6028, 0.1657, 0.3699]
  PeriodicSite: Te2- (8.276, 2.219, 11.29) [0.6324, 0.1696, 0.8626]
  PeriodicSite: Te2- (8.204, 8.164, 4.989) [0.6269, 0.6238, 0.3812]
  PeriodicSite: Te2- (8.314, 8.195, 11.47) [0.6353, 0.6262, 0.8767]
  PeriodicSite: Te2- (2.015, 4.642, 2.096) [0.154, 0.3547, 0.1602]
  PeriodicSite: Te2- (1.687, 4.993, 8.336) [0.1289, 0.3816, 0.637]
  PeriodicSite: Te2- (2.29, 10.8, 2.29) [0.175, 0.825, 0.175]
  PeriodicSite: Te2- (1.406, 11.77, 8.203) [0.1075, 0.8993, 0.6268]
  PeriodicSite: Te2- (8.13, 4.949, 1.534) [0.6213, 0.3781, 0.1172]
  PeriodicSite: Te2- (8.387, 4.59, 7.866) [0.6409, 0.3507, 0.601]
  PeriodicSite: Te2- (7.817, 11.61, 1.649) [0.5973, 0.8874, 0.126]
  PeriodicSite: Te2- (8.217, 11.68, 8.444) [0.6279, 0.8927, 0.6452]
  PeriodicSite: Te2- (5.052, 1.411, 1.871) [0.386, 0.1078, 0.143]
  PeriodicSite: Te2- (4.149, 1.799, 7.797) [0.317, 0.1375, 0.5958]
  PeriodicSite: Te2- (4.53, 8.048, 1.479) [0.3461, 0.615, 0.113]
  PeriodicSite: Te2- (4.657, 7.939, 7.666) [0.3559, 0.6066, 0.5858]
  PeriodicSite: Te2- (11.27, 2.077, 1.94) [0.8608, 0.1587, 0.1482]
  PeriodicSite: Te2- (11.39, 1.811, 8.485) [0.8706, 0.1384, 0.6484]
  PeriodicSite: Te2- (11.58, 8.432, 1.116) [0.8846, 0.6443, 0.08528]
  PeriodicSite: Te2- (11.41, 7.983, 8.342) [0.8716, 0.61, 0.6375]
  PeriodicSite: Te2- (4.809, 4.54, 4.531) [0.3674, 0.3469, 0.3463]
  PeriodicSite: Te2- (5.258, 4.554, 11.69) [0.4018, 0.348, 0.893]
  PeriodicSite: Te2- (4.66, 11.47, 5.087) [0.3561, 0.8763, 0.3887]
  PeriodicSite: Te2- (4.764, 11.6, 11.67) [0.3641, 0.8867, 0.8921]
  PeriodicSite: Te2- (11.69, 4.757, 4.892) [0.893, 0.3635, 0.3738]
  PeriodicSite: Te2- (11.72, 5.1, 11.69) [0.8956, 0.3897, 0.8936]
  PeriodicSite: Te2- (11.83, 11.33, 4.9) [0.9043, 0.8659, 0.3744]
  PeriodicSite: Te2- (11.36, 10.99, 11.87) [0.8677, 0.8399, 0.9067],
  'Bond_Distortion_50.0%': Structure Summary
  Lattice
      abc : 13.086768 13.086768 13.086768
   angles : 90.0 90.0 90.0
   volume : 2241.2856479961474
        A : 13.086768 0.0 0.0
        B : 0.0 13.086768 0.0
        C : 0.0 0.0 13.086768
      pbc : True True True
  PeriodicSite: Cd2+ (0.08958, 0.2795, 6.5) [0.006845, 0.02136, 0.4967]
  PeriodicSite: Cd2+ (0.04022, 6.923, -0.04308) [0.003074, 0.529, -0.003292]
  PeriodicSite: Cd2+ (-0.1846, 6.619, 6.332) [-0.0141, 0.5058, 0.4839]
  PeriodicSite: Cd2+ (6.625, 0.2106, -0.3562) [0.5063, 0.01609, -0.02722]
  PeriodicSite: Cd2+ (6.471, 0.2184, 6.124) [0.4945, 0.01669, 0.468]
  PeriodicSite: Cd2+ (7.055, 6.707, -0.1046) [0.5391, 0.5125, -0.007992]
  PeriodicSite: Cd2+ (6.401, 6.223, 6.427) [0.4891, 0.4755, 0.4911]
  PeriodicSite: Cd2+ (0.02002, 3.176, 3.109) [0.00153, 0.2427, 0.2375]
  PeriodicSite: Cd2+ (0.08734, 3.3, 9.288) [0.006674, 0.2521, 0.7097]
  PeriodicSite: Cd2+ (0.1104, 9.485, 3.089) [0.008438, 0.7248, 0.2361]
  PeriodicSite: Cd2+ (-0.2325, 9.461, 9.953) [-0.01776, 0.7229, 0.7606]
  PeriodicSite: Cd2+ (6.479, 3.319, 3.089) [0.4951, 0.2536, 0.236]
  PeriodicSite: Cd2+ (6.722, 3.356, 9.805) [0.5136, 0.2565, 0.7492]
  PeriodicSite: Cd2+ (6.441, 9.742, 3.401) [0.4922, 0.7444, 0.2599]
  PeriodicSite: Cd2+ (6.906, 9.638, 9.544) [0.5277, 0.7364, 0.7293]
  PeriodicSite: Cd2+ (3.394, -0.1058, 3.65) [0.2593, -0.008082, 0.2789]
  PeriodicSite: Cd2+ (3.462, 0.111, 9.784) [0.2645, 0.008485, 0.7476]
  PeriodicSite: Cd2+ (3.57, 6.257, 3.183) [0.2728, 0.4781, 0.2433]
  PeriodicSite: Cd2+ (3.019, 6.647, 10.2) [0.2307, 0.5079, 0.7795]
  PeriodicSite: Cd2+ (9.342, 0.03649, 2.872) [0.7139, 0.002789, 0.2195]
  PeriodicSite: Cd2+ (10.09, 0.1205, 10.08) [0.7707, 0.009206, 0.7703]
  PeriodicSite: Cd2+ (9.618, 6.663, 3.423) [0.7349, 0.5092, 0.2616]
  PeriodicSite: Cd2+ (9.638, 6.435, 9.48) [0.7365, 0.4917, 0.7244]
  PeriodicSite: Cd2+ (3.655, 3.197, -0.3796) [0.2793, 0.2443, -0.029]
  PeriodicSite: Cd2+ (3.717, 3.562, 6.305) [0.2841, 0.2722, 0.4818]
  PeriodicSite: Cd2+ (3.218, 10.3, 0.1662) [0.2459, 0.787, 0.0127]
  PeriodicSite: Cd2+ (3.325, 9.973, 6.478) [0.2541, 0.7621, 0.495]
  PeriodicSite: Cd2+ (9.786, 3.454, 0.3456) [0.7477, 0.2639, 0.02641]
  PeriodicSite: Cd2+ (10.5, 3.528, 7.021) [0.8022, 0.2696, 0.5365]
  PeriodicSite: Cd2+ (9.788, 9.739, 0.04483) [0.7479, 0.7442, 0.003425]
  PeriodicSite: Cd2+ (9.935, 9.765, 6.804) [0.7591, 0.7461, 0.5199]
  PeriodicSite: Te2- (1.547, 1.98, 5.395) [0.1182, 0.1513, 0.4122]
  PeriodicSite: Te2- (2.454, 2.454, 10.63) [0.1875, 0.1875, 0.8125]
  PeriodicSite: Te2- (1.693, 7.598, 4.615) [0.1294, 0.5806, 0.3526]
  PeriodicSite: Te2- (1.136, 8.308, 11.55) [0.08677, 0.6349, 0.8828]
  PeriodicSite: Te2- (7.889, 2.169, 4.841) [0.6028, 0.1657, 0.3699]
  PeriodicSite: Te2- (8.276, 2.219, 11.29) [0.6324, 0.1696, 0.8626]
  PeriodicSite: Te2- (8.204, 8.164, 4.989) [0.6269, 0.6238, 0.3812]
  PeriodicSite: Te2- (8.314, 8.195, 11.47) [0.6353, 0.6262, 0.8767]
  PeriodicSite: Te2- (2.015, 4.642, 2.096) [0.154, 0.3547, 0.1602]
  PeriodicSite: Te2- (1.687, 4.993, 8.336) [0.1289, 0.3816, 0.637]
  PeriodicSite: Te2- (2.454, 10.63, 2.454) [0.1875, 0.8125, 0.1875]
  PeriodicSite: Te2- (1.406, 11.77, 8.203) [0.1075, 0.8993, 0.6268]
  PeriodicSite: Te2- (8.13, 4.949, 1.534) [0.6213, 0.3781, 0.1172]
  PeriodicSite: Te2- (8.387, 4.59, 7.866) [0.6409, 0.3507, 0.601]
  PeriodicSite: Te2- (7.817, 11.61, 1.649) [0.5973, 0.8874, 0.126]
  PeriodicSite: Te2- (8.217, 11.68, 8.444) [0.6279, 0.8927, 0.6452]
  PeriodicSite: Te2- (5.052, 1.411, 1.871) [0.386, 0.1078, 0.143]
  PeriodicSite: Te2- (4.149, 1.799, 7.797) [0.317, 0.1375, 0.5958]
  PeriodicSite: Te2- (4.53, 8.048, 1.479) [0.3461, 0.615, 0.113]
  PeriodicSite: Te2- (4.657, 7.939, 7.666) [0.3559, 0.6066, 0.5858]
  PeriodicSite: Te2- (11.27, 2.077, 1.94) [0.8608, 0.1587, 0.1482]
  PeriodicSite: Te2- (11.39, 1.811, 8.485) [0.8706, 0.1384, 0.6484]
  PeriodicSite: Te2- (11.58, 8.432, 1.116) [0.8846, 0.6443, 0.08528]
  PeriodicSite: Te2- (11.41, 7.983, 8.342) [0.8716, 0.61, 0.6375]
  PeriodicSite: Te2- (4.809, 4.54, 4.531) [0.3674, 0.3469, 0.3463]
  PeriodicSite: Te2- (5.258, 4.554, 11.69) [0.4018, 0.348, 0.893]
  PeriodicSite: Te2- (4.66, 11.47, 5.087) [0.3561, 0.8763, 0.3887]
  PeriodicSite: Te2- (4.764, 11.6, 11.67) [0.3641, 0.8867, 0.8921]
  PeriodicSite: Te2- (11.69, 4.757, 4.892) [0.893, 0.3635, 0.3738]
  PeriodicSite: Te2- (11.72, 5.1, 11.69) [0.8956, 0.3897, 0.8936]
  PeriodicSite: Te2- (11.83, 11.33, 4.9) [0.9043, 0.8659, 0.3744]
  PeriodicSite: Te2- (11.36, 10.99, 11.87) [0.8677, 0.8399, 0.9067],
  'Bond_Distortion_60.0%': Structure Summary
  Lattice
      abc : 13.086768 13.086768 13.086768
   angles : 90.0 90.0 90.0
   volume : 2241.2856479961474
        A : 13.086768 0.0 0.0
        B : 0.0 13.086768 0.0
        C : 0.0 0.0 13.086768
      pbc : True True True
  PeriodicSite: Cd2+ (0.08958, 0.2795, 6.5) [0.006845, 0.02136, 0.4967]
  PeriodicSite: Cd2+ (0.04022, 6.923, -0.04308) [0.003074, 0.529, -0.003292]
  PeriodicSite: Cd2+ (-0.1846, 6.619, 6.332) [-0.0141, 0.5058, 0.4839]
  PeriodicSite: Cd2+ (6.625, 0.2106, -0.3562) [0.5063, 0.01609, -0.02722]
  PeriodicSite: Cd2+ (6.471, 0.2184, 6.124) [0.4945, 0.01669, 0.468]
  PeriodicSite: Cd2+ (7.055, 6.707, -0.1046) [0.5391, 0.5125, -0.007992]
  PeriodicSite: Cd2+ (6.401, 6.223, 6.427) [0.4891, 0.4755, 0.4911]
  PeriodicSite: Cd2+ (0.02002, 3.176, 3.109) [0.00153, 0.2427, 0.2375]
  PeriodicSite: Cd2+ (0.08734, 3.3, 9.288) [0.006674, 0.2521, 0.7097]
  PeriodicSite: Cd2+ (0.1104, 9.485, 3.089) [0.008438, 0.7248, 0.2361]
  PeriodicSite: Cd2+ (-0.2325, 9.461, 9.953) [-0.01776, 0.7229, 0.7606]
  PeriodicSite: Cd2+ (6.479, 3.319, 3.089) [0.4951, 0.2536, 0.236]
  PeriodicSite: Cd2+ (6.722, 3.356, 9.805) [0.5136, 0.2565, 0.7492]
  PeriodicSite: Cd2+ (6.441, 9.742, 3.401) [0.4922, 0.7444, 0.2599]
  PeriodicSite: Cd2+ (6.906, 9.638, 9.544) [0.5277, 0.7364, 0.7293]
  PeriodicSite: Cd2+ (3.394, -0.1058, 3.65) [0.2593, -0.008082, 0.2789]
  PeriodicSite: Cd2+ (3.462, 0.111, 9.784) [0.2645, 0.008485, 0.7476]
  PeriodicSite: Cd2+ (3.57, 6.257, 3.183) [0.2728, 0.4781, 0.2433]
  PeriodicSite: Cd2+ (3.019, 6.647, 10.2) [0.2307, 0.5079, 0.7795]
  PeriodicSite: Cd2+ (9.342, 0.03649, 2.872) [0.7139, 0.002789, 0.2195]
  PeriodicSite: Cd2+ (10.09, 0.1205, 10.08) [0.7707, 0.009206, 0.7703]
  PeriodicSite: Cd2+ (9.618, 6.663, 3.423) [0.7349, 0.5092, 0.2616]
  PeriodicSite: Cd2+ (9.638, 6.435, 9.48) [0.7365, 0.4917, 0.7244]
  PeriodicSite: Cd2+ (3.655, 3.197, -0.3796) [0.2793, 0.2443, -0.029]
  PeriodicSite: Cd2+ (3.717, 3.562, 6.305) [0.2841, 0.2722, 0.4818]
  PeriodicSite: Cd2+ (3.218, 10.3, 0.1662) [0.2459, 0.787, 0.0127]
  PeriodicSite: Cd2+ (3.325, 9.973, 6.478) [0.2541, 0.7621, 0.495]
  PeriodicSite: Cd2+ (9.786, 3.454, 0.3456) [0.7477, 0.2639, 0.02641]
  PeriodicSite: Cd2+ (10.5, 3.528, 7.021) [0.8022, 0.2696, 0.5365]
  PeriodicSite: Cd2+ (9.788, 9.739, 0.04483) [0.7479, 0.7442, 0.003425]
  PeriodicSite: Cd2+ (9.935, 9.765, 6.804) [0.7591, 0.7461, 0.5199]
  PeriodicSite: Te2- (1.547, 1.98, 5.395) [0.1182, 0.1513, 0.4122]
  PeriodicSite: Te2- (2.617, 2.617, 10.47) [0.2, 0.2, 0.8]
  PeriodicSite: Te2- (1.693, 7.598, 4.615) [0.1294, 0.5806, 0.3526]
  PeriodicSite: Te2- (1.136, 8.308, 11.55) [0.08677, 0.6349, 0.8828]
  PeriodicSite: Te2- (7.889, 2.169, 4.841) [0.6028, 0.1657, 0.3699]
  PeriodicSite: Te2- (8.276, 2.219, 11.29) [0.6324, 0.1696, 0.8626]
  PeriodicSite: Te2- (8.204, 8.164, 4.989) [0.6269, 0.6238, 0.3812]
  PeriodicSite: Te2- (8.314, 8.195, 11.47) [0.6353, 0.6262, 0.8767]
  PeriodicSite: Te2- (2.015, 4.642, 2.096) [0.154, 0.3547, 0.1602]
  PeriodicSite: Te2- (1.687, 4.993, 8.336) [0.1289, 0.3816, 0.637]
  PeriodicSite: Te2- (2.617, 10.47, 2.617) [0.2, 0.8, 0.2]
  PeriodicSite: Te2- (1.406, 11.77, 8.203) [0.1075, 0.8993, 0.6268]
  PeriodicSite: Te2- (8.13, 4.949, 1.534) [0.6213, 0.3781, 0.1172]
  PeriodicSite: Te2- (8.387, 4.59, 7.866) [0.6409, 0.3507, 0.601]
  PeriodicSite: Te2- (7.817, 11.61, 1.649) [0.5973, 0.8874, 0.126]
  PeriodicSite: Te2- (8.217, 11.68, 8.444) [0.6279, 0.8927, 0.6452]
  PeriodicSite: Te2- (5.052, 1.411, 1.871) [0.386, 0.1078, 0.143]
  PeriodicSite: Te2- (4.149, 1.799, 7.797) [0.317, 0.1375, 0.5958]
  PeriodicSite: Te2- (4.53, 8.048, 1.479) [0.3461, 0.615, 0.113]
  PeriodicSite: Te2- (4.657, 7.939, 7.666) [0.3559, 0.6066, 0.5858]
  PeriodicSite: Te2- (11.27, 2.077, 1.94) [0.8608, 0.1587, 0.1482]
  PeriodicSite: Te2- (11.39, 1.811, 8.485) [0.8706, 0.1384, 0.6484]
  PeriodicSite: Te2- (11.58, 8.432, 1.116) [0.8846, 0.6443, 0.08528]
  PeriodicSite: Te2- (11.41, 7.983, 8.342) [0.8716, 0.61, 0.6375]
  PeriodicSite: Te2- (4.809, 4.54, 4.531) [0.3674, 0.3469, 0.3463]
  PeriodicSite: Te2- (5.258, 4.554, 11.69) [0.4018, 0.348, 0.893]
  PeriodicSite: Te2- (4.66, 11.47, 5.087) [0.3561, 0.8763, 0.3887]
  PeriodicSite: Te2- (4.764, 11.6, 11.67) [0.3641, 0.8867, 0.8921]
  PeriodicSite: Te2- (11.69, 4.757, 4.892) [0.893, 0.3635, 0.3738]
  PeriodicSite: Te2- (11.72, 5.1, 11.69) [0.8956, 0.3897, 0.8936]
  PeriodicSite: Te2- (11.83, 11.33, 4.9) [0.9043, 0.8659, 0.3744]
  PeriodicSite: Te2- (11.36, 10.99, 11.87) [0.8677, 0.8399, 0.9067]}}

(If you are viewing this on the SnB Python API tutorial docs page, long output cells like this and printed dictionaries/structures below are scrollable!)

2.2 Generating VASP input files for the distorted structures#

If we want to generate VASP input files, we can use the class method Distortions.write_vasp_files() (instead of Distortions.apply_distortions())

# using the recommended doped defect generation approach:
Dist = Distortions(defect_gen)  # not needed if you've already initialised Distortions with doped above
defects_dict, distortion_metadata = Dist.write_vasp_files()
Oxidation states were not explicitly set, thus have been guessed as {'Cd': 2.0, 'Te': -2.0}. If this is unreasonable you should manually set oxidation_states
Applying ShakeNBreak... Will apply the following bond distortions: ['-0.6', '-0.5', '-0.4', '-0.3', '-0.2', '-0.1', '0.0', '0.1', '0.2', '0.3', '0.4', '0.5', '0.6']. Then, will rattle with a std dev of 0.28 Å 


Defect: v_Cd
Number of missing electrons in neutral state: 2

Defect v_Cd in charge state: +1. Number of distorted neighbours: 3

Defect v_Cd in charge state: 0. Number of distorted neighbours: 2

Defect v_Cd in charge state: -1. Number of distorted neighbours: 1

Defect v_Cd in charge state: -2. Number of distorted neighbours: 0

Defect: v_Te
Number of extra electrons in neutral state: 2

Defect v_Te in charge state: +2. Number of distorted neighbours: 0

Defect v_Te in charge state: +1. Number of distorted neighbours: 1

Defect v_Te in charge state: 0. Number of distorted neighbours: 2

Defect v_Te in charge state: -1. Number of distorted neighbours: 3

Defect: Cd_Te
Number of extra electrons in neutral state: 4

Defect Cd_Te in charge state: +4. Number of distorted neighbours: 0

Defect Cd_Te in charge state: +3. Number of distorted neighbours: 1

Defect Cd_Te in charge state: +2. Number of distorted neighbours: 2

Defect Cd_Te in charge state: +1. Number of distorted neighbours: 3

Defect Cd_Te in charge state: 0. Number of distorted neighbours: 4

Defect: Te_Cd
Number of missing electrons in neutral state: 4

Defect Te_Cd in charge state: +2. Number of distorted neighbours: 2

Defect Te_Cd in charge state: +1. Number of distorted neighbours: 3

Defect Te_Cd in charge state: 0. Number of distorted neighbours: 4

Defect Te_Cd in charge state: -1. Number of distorted neighbours: 3

Defect Te_Cd in charge state: -2. Number of distorted neighbours: 2

Defect Te_Cd in charge state: -3. Number of distorted neighbours: 1

Defect Te_Cd in charge state: -4. Number of distorted neighbours: 0

Defect: Cd_i_C3v
Number of extra electrons in neutral state: 2

Defect Cd_i_C3v in charge state: +2. Number of distorted neighbours: 0

Defect Cd_i_C3v in charge state: +1. Number of distorted neighbours: 1

Defect Cd_i_C3v in charge state: 0. Number of distorted neighbours: 2

Defect: Cd_i_Td_Cd2.83
Number of extra electrons in neutral state: 2

Defect Cd_i_Td_Cd2.83 in charge state: +2. Number of distorted neighbours: 0

Defect Cd_i_Td_Cd2.83 in charge state: +1. Number of distorted neighbours: 1

Defect Cd_i_Td_Cd2.83 in charge state: 0. Number of distorted neighbours: 2

Defect: Cd_i_Td_Te2.83
Number of extra electrons in neutral state: 2

Defect Cd_i_Td_Te2.83 in charge state: +2. Number of distorted neighbours: 0

Defect Cd_i_Td_Te2.83 in charge state: +1. Number of distorted neighbours: 1

Defect Cd_i_Td_Te2.83 in charge state: 0. Number of distorted neighbours: 2

Defect: Te_i_C3v
Number of missing electrons in neutral state: 2

Defect Te_i_C3v in charge state: +4. Number of distorted neighbours: 2

Defect Te_i_C3v in charge state: +3. Number of distorted neighbours: 3

Defect Te_i_C3v in charge state: +2. Number of distorted neighbours: 4

Defect Te_i_C3v in charge state: +1. Number of distorted neighbours: 3

Defect Te_i_C3v in charge state: 0. Number of distorted neighbours: 2

Defect Te_i_C3v in charge state: -1. Number of distorted neighbours: 1

Defect Te_i_C3v in charge state: -2. Number of distorted neighbours: 0

Defect: Te_i_Td_Cd2.83
Number of missing electrons in neutral state: 2

Defect Te_i_Td_Cd2.83 in charge state: +4. Number of distorted neighbours: 2

Defect Te_i_Td_Cd2.83 in charge state: +3. Number of distorted neighbours: 3

Defect Te_i_Td_Cd2.83 in charge state: +2. Number of distorted neighbours: 4

Defect Te_i_Td_Cd2.83 in charge state: +1. Number of distorted neighbours: 3

Defect Te_i_Td_Cd2.83 in charge state: 0. Number of distorted neighbours: 2

Defect Te_i_Td_Cd2.83 in charge state: -1. Number of distorted neighbours: 1

Defect Te_i_Td_Cd2.83 in charge state: -2. Number of distorted neighbours: 0

Defect: Te_i_Td_Te2.83
Number of missing electrons in neutral state: 2

Defect Te_i_Td_Te2.83 in charge state: +4. Number of distorted neighbours: 2

Defect Te_i_Td_Te2.83 in charge state: +3. Number of distorted neighbours: 3

Defect Te_i_Td_Te2.83 in charge state: +2. Number of distorted neighbours: 4

Defect Te_i_Td_Te2.83 in charge state: +1. Number of distorted neighbours: 3

Defect Te_i_Td_Te2.83 in charge state: 0. Number of distorted neighbours: 2

Defect Te_i_Td_Te2.83 in charge state: -1. Number of distorted neighbours: 1

Defect Te_i_Td_Te2.83 in charge state: -2. Number of distorted neighbours: 0

Note

Using the user_incar_settings optional argument for Distortions.write_vasp_files() above, we can also specify some custom INCAR tags to match our converged ENCUT for this system and optimal NCORE for the HPC we will run the calculations on. Note that any INCAR flags that aren’t numbers (e.g. {"IBRION": 1}) or True/False (e.g. {"LREAL": False}) need to be input as strings with quotation marks (e.g. {"ALGO": "All"}).

For the recommended default coarse structure-searching INCAR settings, either have a look at the incar.yaml file in the SnB_input_files folder or at the generated files:

!cat ./Te_i_Td_Te2.83_0/Bond_Distortion_-10.0%/INCAR
# May want to change NCORE, KPAR, AEXX, ENCUT, IBRION, LREAL, NUPDOWN, ISPIN = Typical variable parameters
# ShakeNBreak INCAR with coarse settings to maximise speed with sufficient accuracy for qualitative structure searching = 
AEXX = 0.25
ALGO = Normal  # change to all if zhegv, fexcp/f or zbrent errors encountered (done automatically by snb-run)
EDIFF = 1e-05
EDIFFG = -0.01
ENCUT = 300
GGA = Pe
HFSCREEN = 0.208
IBRION = 2
ICHARG = 1
ICORELEVEL = 0  # needed if using the kumagai-oba (efnv) anisotropic charge correction scheme
ISIF = 2
ISMEAR = 0
ISPIN = 2
ISYM = 0  # symmetry breaking extremely likely for defects
LASPH = True
LCHARG = False
LHFCALC = True
LMAXMIX = 4
LORBIT = 11
LREAL = Auto
LVHAR = True
LWAVE = False
NCORE = 16
NEDOS = 2000
NELECT = 492.0
NELM = 40
NSW = 300
NUPDOWN = 0
PREC = Accurate
PRECFOCK = Fast
ROPT = 1e-3 1e-3
SIGMA = 0.05

Note

Note that the NELECT INCAR tag (number of electrons) is automatically determined based on the choice of POTCARs. The default in ShakeNBreak (and doped) is to use the MPRelaxSet POTCAR choices, but if you’re using different ones, make sure to set user_potcar_settings in write_vasp_files(), so that NELECT is then set accordingly. This requires the pymatgen config file $HOME/.pmgrc.yaml to be properly set up as detailed on the Installation docs page.

More information on the distortions generated can be obtained by setting verbose = True.

Note

For generating the input files for other electronic structure codes (Quantum Espresso, FHI-aims, CP2K, CASTEP), see the (Optional) Generate input files for other codes section at the end of this notebook.

3. Send to HPCs and run relaxations#

The next step is to send the generated input files to our HPC and run the relaxation calculations.

We can use the snb-run CLI function to efficiently and automaticaly run and manage the calculations; see the Submitting the geometry optimisations section of the CLI tutorial for this.

4. Plot energies vs distortion#

To see if SnB found any energy-lowering distortions, we can plot the results using the functions in shakenbreak.plotting.

Here we can either perform this analysis using the snb CLI commands on our HPC, as described in the Analysis & Plotting docs page, or using the python API workflow described below:

a) For VASP users:#

Parse the energies obtained by running the snb-parse command from the top-level folder containing your defect folders (e.g. v_Cd_0 etc. (with subfolders: v_Cd_0/Bond_Distortion_10.0% etc.)). This will parse the energies and store them in a v_Cd_0.yaml etc file in the defect folders, to allow easy plotting and analysis.

It is also recommended to parse the final structures (CONTCARs files if using VASP) obtained with each distortion relaxation for further structural analysis, which is done automatically when downloaded to your local folders as below.

Copying these data to your local PC can be done quickly from your local folder top-level folder (containing v_Cd_0 etc) with the following code:

shopt -s extglob # ensure extended globbing (pattern matching) is enabled
for defect in ./*{_,_-}[0-9]/; do cd $defect;
scp {remote_machine}:{path to ShakeNBreak folders}/${defect}${defect%?}.yaml .;
for distortion in (Bond_Distortion|Unperturbed|Rattled)*/;
do scp {remote_machine}:{path to ShakeNBreak folders}/${defect}${distortion}CONTCAR ${distortion};
done; cd ..; done

making sure to change {remote_machine} and {path to ShakeNBreak folders} to the correct values in your case.

Note

If you’re using MacOS (i.e. zsh shell) you may need to run this command first for this loop to work:

setopt +o nomatch

b) If using CP2K, Quantum Espresso, CASTEP or FHI-aims:#

Parse the energies obtained by running the snb-parse command from the top-level folder containing your defect folders (e.g. v_Cd_0 etc. (with subfolders: v_Cd_0/Bond_Distortion_10.0% etc.)) and setting the --code option (e.g. snb-parse --code cp2k). This will parse the energies and store them in a v_Cd_0.yaml etc file in the defect folders, to allow easy plotting and analysis.

It is also recommended to parse the final structures obtained with each relaxation for further structural analysis. Depending on the code the structure information is read from:

  • CP2K: restart file

  • Quantum Espresso: output file

  • CASTEP: output file (i.e. .castep)

  • FHI-aims: output file

For demonstration purposes in this example notebook, we’ll use some (fake) example data: (Don’t do this if you’re actually running the calculations and have downloaded the data as instructed above)

!rm -r ./*Cd_*/
!rm -r ./*Te_*/
!cp -r ../tests/data/example_results/v_Cd_* .
# may need to change path if you've moved the example notebook elsewhere
from shakenbreak import energy_lowering_distortions, plotting
defect_charges_dict = energy_lowering_distortions.read_defects_directories()
low_energy_defects = energy_lowering_distortions.get_energy_lowering_distortions(defect_charges_dict)
v_Cd
v_Cd_0: Energy difference between minimum, found with -0.6 bond distortion, and unperturbed: -0.76 eV.
Energy lowering distortion found for v_Cd with charge 0. Adding to low_energy_defects dictionary.
v_Cd_-1: Energy difference between minimum, found with 0.2 bond distortion, and unperturbed: -0.90 eV.
New (according to structure matching) low-energy distorted structure found for v_Cd_-1, adding to low_energy_defects['v_Cd'] list.
No energy lowering distortion with energy difference greater than min_e_diff = 0.05 eV found for v_Cd with charge -2.

Comparing and pruning defect structures across charge states...

These functions give us some info about whether any energy-lowering defect distortions were identified, and we can see the results clearer by plotting:

%matplotlib inline 
figs = plotting.plot_all_defects(defect_charges_dict)
_images/896885de2d0a615f54cd49555f85b35f00ccc755a995d94ecde049ee94876fae.png _images/e42c5cb15dfb2236dbed238064fa6fa1033057481ec6cfea6de4b890fdd2e06f.png

This prints the distortion plots for all defects where a significant energy lowering distortion, relative to the standard unperturbed relaxation, was identified. The threshold energy difference to consider as ‘significant’ is controlled by the min_e_diff optional parameter (default = 0.05 eV).

Can also add a colorbar#

These plots can be made more informative by adding a colorbar showing the structural similarity between the relaxed structures.
For this you need the CONTCAR’s obtained with each distortion (as mentioned above).

For the colorbar structure comparison metric, you can either use:

  • summed root mean squared displacement (metric = disp)

  • maximum distance between matching sites (metric = max_dist, default).

figs = plotting.plot_all_defects(
    defect_charges_dict,
    add_colorbar=True
)
_images/096408a78f6d253813c57595e805b5e1a1e56b4b04f390d1f6b55fd0330fa4be.png _images/ee54370c11d46e7818613c62163c22acb2f09656f8c74150faece706b191c66a.png
figs = plotting.plot_all_defects(
    defect_charges_dict,
    add_colorbar=True,
    metric="disp"  # customise colourbar metric
)
_images/e7ecff77966f69acf04ecf9ec621393148793bac9012e976ae1b8b8a206358e2.png _images/4b1ec749f9055efb9f210164e17dc0b945f247934889abe310f8ec550ba78eff.png

So for these example results, we find energy lowering distortions for VCd0 (at -0.3, -0.4 and -0.6 bond distortion factors) and VCd-1 (from 0.2 to 0.6 bond distortion factors). We should re-test these distorted structures for the VCd charge states where these distortions were not found, in case they also give lower energies.

Of course, this is not necessary if these structures were already found in the distortion tests for the other charge states, and so the get_energy_lowering_distortions() function automatically performs structure comparisons to determine which distortions should be tested in other charge states of the same defect, and which have already been found (see docstring for more details).

In the output of get_energy_lowering_distortions() (which we saved to low_energy_defects in the earlier cell), we get a dictionary of defects for which bond distortion found an energy-lowering distortion (which is missed with normal unperturbed relaxation), of the form {defect: [list of distortion dictionaries (with corresponding charge states, energy lowering, distortion factors, structures and charge states for which these structures weren’t found)]}.

For example, our results with VCd show that we found an energy-lowering distortion for the neutral case (subdict["charges"]) which wasn’t found with the -2 or -1 charge states (subdict["excluded_charges"]) – and so we’ll test this distorted structures with those charge states – and also an energy-lowering distortion for -1 which wasn’t found with 0 or -2 charge states.

for index, subdict in enumerate(low_energy_defects["v_Cd"]):
    print(f"Energy lowering distortion number {index}")
    print("Found for charge states:", subdict["charges"])  # Charge state for which the energy lowering was found
    print(f"Not found in:", subdict["excluded_charges"], "\n")
Energy lowering distortion number 0
Found for charge states: [0]
Not found in: {-1, -2} 

Energy lowering distortion number 1
Found for charge states: [-1]
Not found in: {0, -2} 

This generates the new distorted structures and VASP inputs, to do our quick second round of structure testing (energy-lowering distortions found for at least one, but not all charge states for a given defect):

energy_lowering_distortions.write_retest_inputs(low_energy_defects)

Note

Note here the nomenclature we use for the distorted structures we’ve imported from other charge states (i.e. Bond_Distortion_-60.0%_from_0 refers to the structure obtained from relaxing the -60% distortion of the neutral (q = 0) charge state).

We can send these additional test distortions to the HPCs using this bash code:

for defect in ./*{_,_-}[0-9]/; do cd $defect; for distortion in *from*/; do scp -r ${distortion} {remote_machine}:{path to ShakeNBreak folders}/${defect}${distortion}; done; cd ..; done

If you’re using MacOS (i.e. zsh shell) you may need to run this command first for this loop to work:

setopt +o nomatch

Again we run the calculations on the HPCs, then parse and download the data to our local folders (e.g. using the same for loops above), but again in this example notebook we’ll use our fake example data for demonstration purposes as in the next cell, but don’t do this if you’re actually running the calculations!

!cp ./v_Cd_0/v_Cd_0_additional_distortions.yaml ./v_Cd_0/v_Cd_0.yaml
!cp ./v_Cd_-1/v_Cd_-1_additional_distortions.yaml ./v_Cd_-1/v_Cd_-1.yaml
!cp ./v_Cd_-2/v_Cd_-2_additional_distortions.yaml ./v_Cd_-2/v_Cd_-2.yaml
!cp ./v_Cd_0/Bond_Distortion_-60.0%/CONTCAR ./v_Cd_-1/Bond_Distortion_-60.0%_from_0/
!cp ./v_Cd_0/Bond_Distortion_-60.0%/CONTCAR ./v_Cd_-2/Bond_Distortion_-60.0%_from_0/
!cp ./v_Cd_-1/Unperturbed/CONTCAR ./v_Cd_-2/Bond_Distortion_20.0%_from_-1/
!cp ./v_Cd_-1/Unperturbed/CONTCAR ./v_Cd_0/Bond_Distortion_20.0%_from_-1/

Then re-parse with the same get_energy_lowering_distortions() function from before:

low_energy_defects = energy_lowering_distortions.get_energy_lowering_distortions(defect_charges_dict)
v_Cd
v_Cd_0: Energy difference between minimum, found with -0.6 bond distortion, and unperturbed: -0.76 eV.
Energy lowering distortion found for v_Cd with charge 0. Adding to low_energy_defects dictionary.
v_Cd_-1: Energy difference between minimum, found with -60.0%_from_0 bond distortion, and unperturbed: -1.20 eV.
Low-energy distorted structure for v_Cd_-1 already found with charge states ['0'], storing together.
v_Cd_-2: Energy difference between minimum, found with 20.0%_from_-1 bond distortion, and unperturbed: -1.90 eV.
New (according to structure matching) low-energy distorted structure found for v_Cd_-2, adding to low_energy_defects['v_Cd'] list.

Comparing and pruning defect structures across charge states...
Ground-state structure found for v_Cd with charges [0, -1] has also been found for charge state -2 (according to structure matching). Adding this charge to the corresponding entry in low_energy_defects[v_Cd].
Ground-state structure found for v_Cd with charges [-2] has also been found for charge state 0 (according to structure matching). Adding this charge to the corresponding entry in low_energy_defects[v_Cd].

Finally we can replot the results from all our distortion tests:

figs = plotting.plot_all_defects(defect_charges_dict)
_images/1f7ab61d331ae0eda69de5174b928717514109d49e2e5d8f5029676863169896.png _images/ddfda167d268c3217a9a2b347c4cfe5b2951e1a054d8a1a6788b12a090c8ec9f.png _images/5176b049060c67c3364d003ab26a2c5ef8ff4809badd76516628e548a0d78530.png

In this example case, for VCd0 the distorted structure originally found for the -1 charge state comes out lower energy than the VCd0 unperturbed relaxation, but still higher energy than the previously identified ground-state at -0.3, -0.4 and -0.6 distortion factors.

For VCd-1, the distorted structure originally found for the neutral (0) charge state comes out lower energy than the previously identified ground-state at distortion factors >0.2.

We now continue our defect calculations using the ground-state CONTCARs we’ve obtained for each defect, with our fully-converged INCAR and KPOINTS settings, to get our final defect formation energies (confident that we’ve identified the ground-state defect structure!). The energy_lowering_distortions.write_groundstate_structure() function automatically writes these lowest-energy structures to our defect folders:

energy_lowering_distortions.write_groundstate_structure(
    groundstate_folder="vasp_nkred_std",
    groundstate_filename="POSCAR",
)
!head v_Cd_0/vasp_nkred_std/POSCAR  # groundstate structure from -60% distortion relaxation
-60.0%_Bond__vac_1_Cd[0. 0. 0.]_-dNELECT
   1.0000000000000000     
    13.0867679999999993    0.0000000000000000    0.0000000000000000
     0.0000000000000000   13.0867679999999993    0.0000000000000000
     0.0000000000000000    0.0000000000000000   13.0867679999999993
   Cd   Te
    31    32
Direct
  0.0014403846070577  0.0152341826280604  0.4960600473735149
  0.0018443102488570  0.5161087673464303 -0.0040398656877614
!diff v_Cd_0/vasp_nkred_std/POSCAR v_Cd_0/Bond_Distortion_-60.0%/CONTCAR  # groundstate structure from -60% distortion relaxation

Tip

When using ShakeNBreak with doped for defect calculations, we would typically set groundstate_folder to vasp_nkred_std or vasp_std as shown here, to save our SnB-calculated ground-state structures to POSCAR files in these sub-directories used by default with doped, before continuing with our final fully-converged defect calculations.

5. Optional: Analyse the defect distortions found with SnB#

If we want to analyse in more detail the defect distortions identified with our structure searching, we can use some of the functions from shakenbreak.analysis:

from shakenbreak import analysis

# Parse all structures obtained with distortions and unperturbed relaxation.   
# This gives a dictionary matching initial distortion to final structure
v_Cd_0 = analysis.get_structures("v_Cd_0")
# Can then analyse a chosen final structure with:
df = analysis.analyse_structure("v_Cd_0", v_Cd_0["Unperturbed"])
df = analysis.analyse_structure("v_Cd_0", v_Cd_0[-0.4])
v_Cd_0 structural analysis 
Analysing site V [0. 0. 0.]
Local order parameters (i.e. resemblance to given structural motif, via CrystalNN):
Coordination Factor
0 square co-planar 0.09
1 tetrahedral 1.00
2 rectangular see-saw-like 0.01
3 see-saw-like 0.24
4 trigonal pyramidal 0.25
Bond-lengths (in Å) to nearest neighbours: 
Element Distance (Å)
0 Te 2.60
1 Te 2.63
2 Te 2.63
3 Te 2.65
v_Cd_0 structural analysis 
Analysing site V [0. 0. 0.]
Local order parameters (i.e. resemblance to given structural motif, via CrystalNN):
Coordination Factor
0 square co-planar 0.13
1 tetrahedral 0.74
2 rectangular see-saw-like 0.03
3 see-saw-like 0.21
4 trigonal pyramidal 0.21
Bond-lengths (in Å) to nearest neighbours: 
Element Distance (Å)
0 Te 2.19
1 Te 2.63
2 Te 2.64
3 Te 2.30

We can also compare the structural similarity between all structures with compare_structures(). It prints the summed root mean squared displacement, maximum distance between paired sites, and energy (relative to unperturbed structure) of all final structures:

defect_energies = analysis.get_energies("v_Cd_0")
structure_comparison = analysis.compare_structures(
    v_Cd_0,
    defect_energies
)
v_Cd_0: Energy difference between minimum, found with -0.6 bond distortion, and unperturbed: -0.76 eV.
Comparing structures to Unperturbed...
Bond Distortion Σ{Displacements} (Å) Max Distance (Å) Δ Energy (eV)
0 -0.6 5.873 0.810 -0.76
1 -0.5 0.000 0.024 -0.01
2 -0.4 5.760 0.808 -0.75
3 -0.3 5.872 0.808 -0.75
4 -0.2 0.000 0.025 0.00
5 -0.1 0.000 0.028 0.00
6 0.0 0.000 0.030 0.00
7 0.1 2.285 0.237 0.00
8 0.2 2.285 0.237 0.00
9 0.3 2.285 0.237 0.00
10 0.4 2.285 0.237 0.00
11 0.5 2.285 0.237 0.00
12 0.6 2.285 0.237 0.00
13 20.0%_from_-1 2.285 0.237 -0.28
14 Unperturbed 0.000 0.000 0.00

Highly favourable distortions are often driven by some kind of rebonding. For most vacancies and interstitials, this entails formation of new homoionic bonds between the defect neighbours. We can quickly check for these reconstructions using analysis.get_homoionic_bonds()

bonds = analysis.get_homoionic_bonds(
    structure=v_Cd_0[-0.4], # Structure to analyse
    element="Te", # we're looking for Te-Te bonds
    radius=2.8, # maximum bond distance between 2 Te
    verbose=False, # don't print bond distances
)
print(bonds)
print("So two of the vacancy neighbours formed a Te-Te bond to compensate for the charge deficiency")
{'Te(32)': {'Te(41)': '2.75 A'}}
So two of the vacancy neighbours formed a Te-Te bond to compensate for the charge deficiency

For defects that can result in polarons, we can check the sites with significant magnetization using analysis.get_site_magnetizations()

!cp -r ../tests/data/example_results/v_Ti_0 .
df = analysis.get_site_magnetizations(
    defect_species="v_Ti_0", # neutral Ti vacancy in anatase TiO2
    distortions=["Unperturbed", -0.4],
    defect_site=[0.0, 0.16666666666666669, 0.25],
    threshold=0.3, # to filter sites with significant magnetization
    orbital_projections=False, # don't show orbital projections
)

display(df["Unperturbed"]) # 4 holes localised on 4 of the vacancy neighbours
print("So we have 4 holes localised on 4 of the oxygen ions neighbouring the vacancy")
Analysing distortion Unperturbed. Total magnetization: 4.0
Analysing distortion -0.4. Total magnetization: -0.0
No significant magnetizations found for distortion: -0.4 
Site Frac coords Site mag Dist. (Å)
O(35) O(35) [0.0, 0.167, 0.014] 1.458 2.26
O(53) O(53) [-0.0, 0.167, 0.486] 1.478 2.26
O(62) O(62) [0.165, 0.167, 0.292] 1.522 1.91
O(68) O(68) [0.835, 0.167, 0.292] 1.521 1.91
So we have 4 holes localised on 4 of the oxygen ions neighbouring the vacancy

As printed above, no significant magnetization is found for -40.0% distortion. This configuration was found to be significantly more stable than the polaronic solution, so we can quickly use analysis.get_homoionic_bonds to see why:

bonds = analysis.get_homoionic_bonds(
    structure = Structure.from_file("./v_Ti_0/Bond_Distortion_-40.0%/CONTCAR"),
    element="O",
    radius=2.0,
    verbose=False,
)
print(bonds)
print("So the formation of an O-O bond drived this distortion")
{'O(44)': {'O(62)': '1.2 A'}}
So the formation of an O-O bond drived this distortion

See the documentation for more info and optional parameter choices etc

Further Defect Analysis#

Once the ground state (and metastable) defect structures have been identified, we will want to compute their formation energies using our final fully-converged calculation parameters (i.e. plane-wave cutoff and k-point sampling). This can be done using doped, manually (not recommended) or using the other defect codes listed on the Code Compatibility page.

As shown in the doped examples and docs, you may want to further analyse the behaviour and impact on material properties of your defects using advanced defect analysis codes such as easyunfold (to analyse the electronic structure of defects in your material), py-sc-fermi (to analyse defect concentrations, doping and Fermi level tuning), or nonrad/CarrierCapture.jl (to analyse non-radiative electron-hole recombination at defects).

Note

Metastable structures can also be important to defect behaviour! This is particularly the case for defect/ion migration, electron-hole recombination at defects and non-equilibrium situations such as under illumination or ion bombardment. For example, see these papers on the impact of metastable defects in CdTe: ACS Energy Lett. 2021, 6, 4, 1392–1398 and Faraday Discuss. 2022, 239, 339-356.

In particular, symmetry-breaking as a result of structural reconstruction from the initial (Unperturbed) high-symmetry structure can result in an increase in configurational degeneracy for the defect, which should be accounted for when later computing concentrations and Fermi level position. These considerations, as well as the importance of metastability and temperature effects for the free energies (and thus concentrations) for certain defects/systems are discussed in this Tutorial Review paper: Imperfections are not 0 K: free energy of point defects in crystals (Chem Soc Rev 2023).

6. Optional: Input File Generation for Other Codes#

a) Quantum Espresso#

We can check the arguments of the write_espresso_files method with:

Dist = Distortions(defect_gen)
Oxidation states were not explicitly set, thus have been guessed as {'Cd': 2.0, 'Te': -2.0}. If this is unreasonable you should manually set oxidation_states
Dist.write_espresso_files?
Signature:
Dist.write_espresso_files(
    pseudopotentials: Optional[dict] = None,
    input_parameters: Optional[str] = None,
    input_file: Optional[str] = None,
    write_structures_only: Optional[bool] = False,
    output_path: str = '.',
    verbose: Optional[bool] = False,
) -> Tuple[dict, dict]
Docstring:
Generates input files for Quantum Espresso relaxations of all output
structures.

Args:
    pseudopotentials (:obj:`dict`, optional):
        Dictionary matching element to pseudopotential name.
        (Defaults: None)
    input_parameters (:obj:`dict`, optional):
        Dictionary of user Quantum Espresso input parameters, to
        overwrite/update `shakenbreak` default ones (see
        `SnB_input_files/qe_input.yaml`).
        (Default: None)
    input_file (:obj:`str`, optional):
        Path to Quantum Espresso input file, to overwrite/update
        `shakenbreak` default ones (see `SnB_input_files/qe_input.yaml`).
        If both `input_parameters` and `input_file` are provided,
        the input_parameters will be used.
    write_structures_only (:obj:`bool`, optional):
        Whether to only write the structure files (in CIF format)
        (without calculation inputs).
        (Default: False)
    output_path (:obj:`str`, optional):
        Path to directory in which to write distorted defect structures
        and calculation inputs.
        (Default is current directory: ".")
    verbose (:obj:`bool`):
        Whether to print distortion information (bond atoms and
        distances).
        (Default: False)

Returns:
    :obj:`tuple`:
        Tuple of dictionaries with new defects_dict (containing the
        distorted structures) and defect distortion parameters.
File:      ~/Library/CloudStorage/OneDrive-ImperialCollegeLondon/Bread/Projects/Packages/ShakeNBreak/shakenbreak/input.py
Type:      method
# Create an instance of Distortion class with the defect dictionary and the distortion parameters
# If distortion parameters are not specified, the default values are used
Dist = Distortions(
    defects=[defect_entry],
    bond_distortions=[-0.3, 0.3] # For demonstration purposes, just doing 2 distortions
)

pseudopotentials = { # Your chosen pseudopotentials
    'Cd': 'Cd_pbe_v1.uspp.F.UPF',
    'Te': 'Te.pbe-n-rrkjus_psl.1.0.0.UPF'}

defects_dict, distortion_metadata = Dist.write_espresso_files(
    pseudopotentials=pseudopotentials,
)
Oxidation states were not explicitly set, thus have been guessed as {'Cd': 2.0, 'Te': -2.0}. If this is unreasonable you should manually set oxidation_states
Applying ShakeNBreak... Will apply the following bond distortions: ['-0.3', '0.3']. Then, will rattle with a std dev of 0.28 Å 


Defect: v_Cd_s0
Number of missing electrons in neutral state: 2

Defect v_Cd_s0 in charge state: 0. Number of distorted neighbours: 2

Note

For the default coarse structure-searching input settings, either have a look at the qe_input.yaml file in the SnB_input_files folder or at the generated files.

We can modify these with the input_file or input_parameters option of the Dist.write_espresso_files method.

!cat ./v_Cd_0/Bond_Distortion_30.0%/espresso.pwi
&CONTROL
   calculation      = 'relax'
   title            = 'espresso'
   nstep            = 300
   tstress          = .false.
   tprnfor          = .true.
/
&SYSTEM
   ibrav            = 0
   tot_charge       = 0
   ecutwfc          = 30.0
   nosym            = .true.
   occupations      = 'smearing'
   degauss          = 0.0015
   nspin            = 2
   input_dft        = 'HSE'
   exx_fraction     = 0.25
   starting_magnetization(1) = 0.0
   starting_magnetization(2) = 0.0
   ntyp             = 2
   nat              = 63
/
&ELECTRONS
   ecutwfc          = 33.0
/
&IONS
/
&CELL
/

ATOMIC_SPECIES
Cd  112.414 Cd_pbe_v1.uspp.F.UPF
Te  127.6 Te.pbe-n-rrkjus_psl.1.0.0.UPF

K_POINTS automatic
1 1 1  0 0 0

CELL_PARAMETERS angstrom
13.08676800000000 0.00000000000000 0.00000000000000
0.00000000000000 13.08676800000000 0.00000000000000
0.00000000000000 0.00000000000000 13.08676800000000

ATOMIC_POSITIONS angstrom
Cd  -0.1434911601 -0.2385151837 6.8150857816
Cd  0.4494288801 6.7769996959 -0.0135321750
Cd  0.1263646364 6.5320351698 6.4047505596
Cd  6.1744016994 -0.0422155671 -0.2883727639
Cd  7.0218513569 -0.1956932962 6.8368511812
Cd  6.4148946236 5.8427260793 -0.0941166578
Cd  6.6231445834 6.6386273355 6.5646951417
Cd  -0.0930463691 2.7998390985 3.1815963828
Cd  -0.4382789783 3.2224005685 10.1945490442
Cd  0.3283883823 9.8199609895 3.8588142250
Cd  0.2868375728 9.5008031100 10.1622309177
Cd  6.2236580741 3.3883053272 3.4377133240
Cd  6.9633774238 3.3859640414 9.6252804651
Cd  6.3916874783 9.6140830410 3.1716572177
Cd  6.4343753422 9.7039959522 9.4914454051
Cd  3.5290739650 -0.0102338238 3.5196904972
Cd  3.6622940322 0.0773629832 9.9548486402
Cd  3.6238402965 6.3664292031 3.1942466536
Cd  3.2709515176 6.5949379070 9.5272525954
Cd  10.0558411376 -0.1837771500 3.5341546226
Cd  9.6364301691 -0.0544704498 9.8810735404
Cd  9.3834495288 6.2323203692 3.2455048342
Cd  9.5864821955 6.2251964424 10.0537753778
Cd  2.9929046009 3.7695779217 0.0367936846
Cd  3.2695187347 3.4277104497 6.5121592001
Cd  3.7490142595 9.9037468136 0.4619742215
Cd  3.5005459698 9.9058044961 6.1735646663
Cd  10.0168838980 3.5064232914 -0.2220868039
Cd  10.0582554199 3.2072178847 6.4528722959
Cd  9.6639362700 9.9262589321 0.2457863270
Cd  9.9625737308 10.0083521620 6.8326782974
Te  1.4317034215 1.8330473632 5.4279434803
Te  2.1266235285 2.1266235285 10.9601444715
Te  1.9391896628 8.4788929397 4.9474309841
Te  1.6770602208 7.9814747527 11.6245303639
Te  7.8707506607 1.5517570052 4.5464792201
Te  8.4544681279 1.9570317189 11.3849977907
Te  8.3906081591 8.1873028630 4.9659486383
Te  7.6355771855 8.4896906729 11.7566752746
Te  1.9243151002 5.1586548520 1.4310602412
Te  1.6770642906 4.9734500802 8.0240863225
Te  2.1266235285 10.9601444715 2.1266235285
Te  1.2427283376 11.5044810739 8.5015890105
Te  7.9241624879 4.6167100396 1.2683696790
Te  8.3232724964 4.7490264262 8.2503126434
Te  7.7708359186 11.5137729195 1.7112542335
Te  8.4185500531 11.3625771643 8.4919150469
Te  4.9043822053 1.7707914499 1.9576447837
Te  4.7537708970 1.4950733142 7.9915316501
Te  4.8976539032 7.9146485988 1.8060744775
Te  5.0460973600 7.9200788121 8.1182771827
Te  11.7181873962 1.2522489835 1.8190296436
Te  11.7666060482 1.5075867949 8.3262988988
Te  11.8382652606 8.4193074354 1.4585392335
Te  11.2070619717 8.1626676217 8.8307785202
Te  4.7542068544 4.9329362339 5.5030757510
Te  4.7676801086 4.9457453322 11.4551487889
Te  4.9156377017 11.5432414287 4.4496059678
Te  4.4556361870 11.4784703262 11.6159865481
Te  11.6026136261 4.7068455418 5.3429055973
Te  11.6105882817 4.7319175681 11.4379375317
Te  11.6010799480 11.1856760790 5.0676572049
Te  11.8305502221 11.7838344102 10.9530493640

b) CP2K#

Dist.write_cp2k_files?
Signature:
Dist.write_cp2k_files(
    input_file: Union[str, NoneType] = '/Users/skavanagh/Library/CloudStorage/OneDrive-ImperialCollegeLondon/Bread/Projects/Packages/ShakeNBreak/shakenbreak/../SnB_input_files/cp2k_input.inp',
    write_structures_only: Union[bool, NoneType] = False,
    output_path: str = '.',
    verbose: Union[bool, NoneType] = False,
) -> Tuple[dict, dict]
Docstring:
Generates input files for CP2K relaxations of all output structures.

Args:
    input_file (:obj:`str`, optional):
        Path to CP2K input file. If not set, default input file will be
        used (see `shakenbreak/SnB_input_files/cp2k_input.inp`).
    write_structures_only (:obj:`bool`, optional):
        Whether to only write the structure files (in CIF format)
        (without calculation inputs).
        (Default: False)
    output_path (:obj:`str`, optional):
        Path to directory in which to write distorted defect structures
        and calculation inputs.
        (Default is current directory: ".")
    verbose (:obj:`bool`, optional):
        Whether to print distortion information (bond atoms and
        distances).
        (Default: False)

Returns:
    :obj:`tuple`:
        Tuple of dictionaries with new defects_dict (containing the
        distorted structures) and defect distortion parameters.
File:      ~/Library/CloudStorage/OneDrive-ImperialCollegeLondon/Bread/Projects/Packages/ShakeNBreak/shakenbreak/input.py
Type:      method
oxidation_states = {"Cd": +2, "Te": -2}  # explicitly specify atom oxidation states

# Create an instance of Distortion class with the defect dictionary and the distortion parameters
# If distortion parameters are not specified, the default values are used
Dist = Distortions( 
    defects=[defect_entry],
    oxidation_states=oxidation_states, # explicitly specify atom oxidation states
    bond_distortions=[-0.3, 0.3] # For demonstration purposes, just doing 2 distortions
)

defects_dict, distortion_metadata = Dist.write_cp2k_files()
Applying ShakeNBreak... Will apply the following bond distortions: ['-0.3', '0.3']. Then, will rattle with a std dev of 0.28 Å 


Defect: v_Cd_s0
Number of missing electrons in neutral state: 2

Defect v_Cd_s0 in charge state: 0. Number of distorted neighbours: 2

Note

And for the default coarse structure-searching input settings, either have a look at the cp2k_input.yaml file in the SnB_input_files folder or at the generated files.

We can modify these with the input_file option of the Dist.write_cp2k_files method.

!cat ./v_Cd_0/Bond_Distortion_30.0%/cp2k_input.inp
&GLOBAL 
	PROJECT relax ! files generated will be named relax.out etc
	RUN_TYPE GEO_OPT ! geometry optimization
	IOLEVEL MEDIUM ! reduce amount of IO
&END GLOBAL
&FORCE_EVAL 
	METHOD Quickstep

	! the electronic structure part
	&DFT 
		BASIS_SET_FILE_NAME HFX_BASIS
		POTENTIAL_FILE_NAME GTH_POTENTIALS
		SPIN_POLARIZED .TRUE.
		CHARGE 0
		&MGRID 
			CUTOFF [eV] 500 ! PW cutoff
		&END MGRID
		&QS 
			METHOD GPW
			EPS_DEFAULT 1e-10
			EXTRAPOLATION ASPC
		&END QS

		! use the GPW method (i.e. pseudopotential
		! basedcalculations with the Gaussian and Plane
		! Wavesscheme)
		&DFT 
			&KPOINTS 
				SCHEME GAMMA 1 1 1 ! Gamma point only
			&END KPOINTS
		&END DFT
		&POISSON 
			PERIODIC XYZ ! the default
		&END POISSON
		&PRINT 

			! at the end of the SCF procedure generate
			! cubefiles of the density
			&E_DENSITY_CUBE OFF
			&END E_DENSITY_CUBE
		&END PRINT

		! use the OT METHOD for robust and efficientSCF,
		! suitable for all non-metallic systems.
		&SCF 
			SCF_GUESS RESTART ! can be used to RESTART an interrupted calculation
			MAX_SCF 80
			EPS_SCF 1e-06 ! accuracy of the SCF procedure typically 1.0E-6 - 1.0E-7
			&OT 
				PRECONDITIONER FULL_SINGLE_INVERSE
				MINIMIZER DIIS
			&END OT

			! an accurate preconditioner suitable also
			! forlarger systems, the most robust choice
			! (DIISmight sometimes be faster, but not
			! asstable).
			&OUTER_SCF ! repeat the inner SCF cycle 10 times
				MAX_SCF 10
				EPS_SCF 1e-06 ! must match the above
			&END OUTER_SCF

			! do not store the wfn
			&PRINT 
				&RESTART 
				&END RESTART
			&END PRINT
		&END SCF

		! specify the exchange and correlation treatment
		&XC 

			! use a PBE0 functional
			&XC_FUNCTIONAL 
				&PBE 
					SCALE_X 0.75
					SCALE_C 1.0
				&END PBE
			&END XC_FUNCTIONAL

			! 75% GGA exchange 100% GGA correlation
			&HF 
				FRACTION 0.25

				! 25 % HFX exchange
				&SCREENING 
					EPS_SCHWARZ 1e-06
					SCREEN_ON_INITIAL_P True
				&END SCREENING

				! important parameter to get stable
				! HFXcalcsneeds a good (GGA) initial guess
				&INTERACTION_POTENTIAL 
					POTENTIAL_TYPE TRUNCATED
					CUTOFF_RADIUS 6.0
					T_C_G_DATA ./t_c_g.dat
				&END INTERACTION_POTENTIAL

				! for condensed phase systemsshould be
				! lessthan halve the celldata file needed with
				! thetruncated operator
				&MEMORY 
					MAX_MEMORY 4000
					EPS_STORAGE_SCALING 0.1
				&END MEMORY
			&END HF
		&END XC
	&END DFT

	! Description of the systemStructure will be read
	! from external file
	&SUBSYS 
		&CELL 
			CELL_FILE_FORMAT CIF
			CELL_FILE_NAME structure.cif
		&END CELL
		&TOPOLOGY 
			COORD_FILE_NAME structure.cif
			COORD_FILE_FORMAT CIF
		&END TOPOLOGY
	&END SUBSYS
&END FORCE_EVAL

c) CASTEP#

Dist.write_castep_files?
Signature:
Dist.write_castep_files(
    input_file: Union[str, NoneType] = '/Users/skavanagh/Library/CloudStorage/OneDrive-ImperialCollegeLondon/Bread/Projects/Packages/ShakeNBreak/shakenbreak/../SnB_input_files/castep.param',
    write_structures_only: Union[bool, NoneType] = False,
    output_path: str = '.',
    verbose: Union[bool, NoneType] = False,
) -> Tuple[dict, dict]
Docstring:
Generates input `.cell` and `.param` files for CASTEP relaxations of
all output structures.

Args:
    input_file (:obj:`str`, optional):
        Path to CASTEP input (`.param`) file. If not set, default input
        file will be used (see `shakenbreak/SnB_input_files/castep.param`).
    write_structures_only (:obj:`bool`, optional):
        Whether to only write the structure files (in CIF format)
        (without calculation inputs).
        (Default: False)
    output_path (:obj:`str`, optional):
        Path to directory in which to write distorted defect structures
        and calculation inputs.
        (Default is current directory: ".")
    verbose (:obj:`bool`, optional):
        Whether to print distortion information (bond atoms and
        distances).
        (Default: False)

Returns:
    :obj:`tuple`:
        Tuple of dictionaries with new defects_dict (containing the
        distorted structures) and defect distortion parameters.
File:      ~/Library/CloudStorage/OneDrive-ImperialCollegeLondon/Bread/Projects/Packages/ShakeNBreak/shakenbreak/input.py
Type:      method
oxidation_states = {"Cd": +2, "Te": -2}  # explicitly specify atom oxidation states

# Create an instance of Distortion class with the defect dictionary and the distortion parameters
# If distortion parameters are not specified, the default values are used
Dist = Distortions(
    defects=[defect_entry],
    oxidation_states=oxidation_states,  # explicitly specify atom oxidation states
    bond_distortions=[0.3] # For demonstration purposes, just doing 2 distortions
)
# If we don't specify the input_file, only the structure files (in .cell format) are written
defects_dict, distortion_metadata = Dist.write_castep_files()
Applying ShakeNBreak... Will apply the following bond distortions: ['0.3']. Then, will rattle with a std dev of 0.28 Å 


Defect: v_Cd_s0
Number of missing electrons in neutral state: 2

Defect v_Cd_s0 in charge state: 0. Number of distorted neighbours: 2

Note

And for the default coarse structure-searching input settings, either have a look at the castep.param file in the SnB_input_files folder or at the generated files.

We can modify these with the input_file option of the Dist.write_castep_files method.

!cat ./v_Cd_0/Bond_Distortion_30.0%/castep.param
#######################################################
#CASTEP param file: /Users/skavanagh/Library/CloudStorage/OneDrive-ImperialCollegeLondon/Bread/Projects/Packages/ShakeNBreak/docs/v_Cd_0/Bond_Distortion_30.0%/castep.param
#Created using the Atomic Simulation Environment (ASE)#
# Internal settings of the calculator
# This can be switched off by settings
# calc._export_settings = False
# If stated, this will be automatically processed
# by ase.io.castep.read_seed()
# ASE_INTERFACE _build_missing_pspots : True
# ASE_INTERFACE _castep_command : castep
# ASE_INTERFACE _castep_pp_path : /Users/skavanagh/Library/CloudStorage/OneDrive-ImperialCollegeLondon/Bread/Projects/Packages/ShakeNBreak/docs
# ASE_INTERFACE _check_checkfile : True
# ASE_INTERFACE _copy_pspots : False
# ASE_INTERFACE _directory : /Users/skavanagh/Library/CloudStorage/OneDrive-ImperialCollegeLondon/Bread/Projects/Packages/ShakeNBreak/docs/v_Cd_0/Bond_Distortion_30.0%
# ASE_INTERFACE _export_settings : True
# ASE_INTERFACE _find_pspots : False
# ASE_INTERFACE _force_write : True
# ASE_INTERFACE _label : castep
# ASE_INTERFACE _link_pspots : True
# ASE_INTERFACE _pedantic : False
# ASE_INTERFACE _prepare_input_only : False
# ASE_INTERFACE _rename_existing_dir : True
# ASE_INTERFACE _set_atoms : False
# ASE_INTERFACE _track_output : False
# ASE_INTERFACE _try_reuse : False
#######################################################

GEOM_METHOD: BFGS
GEOM_CONVERGENCE_WIN: 4
GEOM_ENERGY_TOL: 0.00005 eV
GEOM_FORCE_TOL: 0.05 ev/ang
GEOM_MAX_ITER: 300
XC_FUNCTIONAL: HSE06
SMEARING_SCHEME: Gaussian
ELEC_ENERGY_TOL: 0.00005 eV
ELECTRONIC_MINIMIZER: CG
MAX_SCF_CYCLES: 50
BASIS_PRECISION: FINE
CHARGE: 0

d) FHI-aims#

Dist.write_fhi_aims_files?
Signature:
Dist.write_fhi_aims_files(
    input_file: Union[str, NoneType] = None,
    ase_calculator: Union[ase.calculators.aims.Aims, NoneType] = None,
    write_structures_only: Union[bool, NoneType] = False,
    output_path: str = '.',
    verbose: Union[bool, NoneType] = False,
) -> Tuple[dict, dict]
Docstring:
Generates input geometry and control files for FHI-aims relaxations
of all output structures.

Args:
    input_file (:obj:`str`, optional):
        Path to FHI-aims input file, to overwrite/update
        `shakenbreak` default ones.
        If both `input_file` and `ase_calculator` are provided,
        the ase_calculator will be used.
    ase_calculator (:obj:`ase.calculators.aims.Aims`, optional):
        ASE calculator object to use for FHI-aims calculations.
        If not set, `shakenbreak` default values will be used.
        Recommended to check these.
        (Default: None)
    write_structures_only (:obj:`bool`, optional):
        Whether to only write the structure files (in `geometry.in`
        format), (without the contro-in file).
    output_path (:obj:`str`, optional):
        Path to directory in which to write distorted defect structures
        and calculation inputs.
        (Default is current directory: ".")
    verbose (:obj:`bool`, optional):
        Whether to print distortion information (bond atoms and
        distances).
        (Default: False)

Returns:
    :obj:`tuple`:
        Tuple of dictionaries with new defects_dict (containing the
        distorted structures) and defect distortion parameters.
File:      ~/Library/CloudStorage/OneDrive-ImperialCollegeLondon/Bread/Projects/Packages/ShakeNBreak/shakenbreak/input.py
Type:      method
oxidation_states = {"Cd": +2, "Te": -2}  # specify atom oxidation states

# Create an instance of Distortion class with the defect dictionary and the distortion parameters
# If distortion parameters are not specified, the default values are used
Dist = Distortions( 
    defects=[defect_entry],
    oxidation_states=oxidation_states,
    bond_distortions=[0.3] # For demonstration purposes, just doing 2 distortions
)
# If we don't specify the input_file, only the structure files (in .cell format) are written
defects_dict, distortion_metadata = Dist.write_fhi_aims_files()
Applying ShakeNBreak... Will apply the following bond distortions: ['0.3']. Then, will rattle with a std dev of 0.28 Å 


Defect: v_Cd_s0
Number of missing electrons in neutral state: 2

Defect v_Cd_s0 in charge state: 0. Number of distorted neighbours: 2

Note

And for the default coarse structure-searching input settings have a look at the generated files:

We can modify these with the ase_calculator or the input_file option of the Distortion.write_fhi_aims_files() method-

!cat ./v_Cd_0/Bond_Distortion_30.0%/control.in
#===============================================================================
# FHI-aims file: ./v_Cd_0/Bond_Distortion_30.0%/control.in
# Created using the Atomic Simulation Environment (ASE)
# Wed Feb  1 17:11:49 2023
#===============================================================================
k_grid                             1 1 1
relax_geometry                     bfgs 0.005
xc                                 hse06 0.11
hse_unit                           A
spin                               collinear
default_initial_moment             0
hybrid_xc_coeff                    0.25
charge                             0
#===============================================================================