MaterialSpecifications

class MaterialSpecifications(pristine_configuration, supercell_repetitions=None, formation_energy_calculator=None, relaxation_calculator=None, band_gap_calculator=None, phonon_calculator=None, quick_optimizer_calculator=None, amorphization_calculator=None, amorphous_density=None, atomic_chemical_potentials=None, dielectric_constant=None, bulk_modulus=None, assumed_formation_entropy=None, assumed_transition_prefactor=None, first_nearest_neighbor=None, second_nearest_neighbor=None, color=None, sentaurus_material_name=None, optimize_geometry_parameters=None, symmetry_tolerance=None, layer_indices=None, use_ghost_atoms=None, random_seed=None, periodic_charge_correction=None, stress_correction=None, elements_with_stoichiometry=None, substitutional_percentage=None, substitutional_element=None)

A class defining a bulk material to use in an SMW simulation. The class encapsulates the structure of the pristine unit cell and all the technical options needed to perform the calculations.

Parameters:
  • pristine_configuration (BulkConfiguration) – The reference bulk unit cell configuration to be used to generate the supercell configuration.

  • supercell_repetitions (sequence (size 3) of int) – The number of repetitions of the reference bulk unit cell along the (a, b, c) directions.
    Default: (1, 1, 1)

  • formation_energy_calculator (Calculator) – The calculator used for calculating the formation energy of the defect charge states. All total energies, band positions and finite-size corrections are calculated using this calculator. The calculator must contain a basis set for the elements in both the defect and pristine configurations. Note that the calculator is taken as a reference corresponding to the bulk unit cell given in bulk_configuration; the density_mesh_cutoff and k_point_sampling parameters of the NumericalAccuracyParameters of the calculator will be scaled consistently with the supercell size. The k_point_sampling will be scaled to maintain the k-point density approximately equal to the reference. The k-point grid will always be shifted such that the Gamma point is included, i.e., shift_to_gamma=True.
    Default: The calculator given in relaxation_calculator. At least one of the two calculators must be provided.

  • relaxation_calculator (Calculator) – The calculator used for relaxing the atomic coordinates of the defect supercells. The calculator must contain a basis set for the elements in the defect configuration. Note that the calculator is taken as a reference corresponding to the bulk unit cell given in bulk_configuration; the density_mesh_cutoff and k_point_sampling parameters of the NumericalAccuracyParameters of the calculator will be scaled consistently with the supercell size. The k_point_sampling will be scaled to maintain the k-point density approximately equal to the reference. The k-point grid will always be shifted such that the Gamma point is included, i.e., shift_to_gamma=True.
    Default: The calculator given in formation_energy_calculator. At least one of the two calculators must be provided.

  • band_gap_calculator – The calculator used for calculating the band gap in which the transition levels will be placed. The calculator is only used for the pristine configuration, so only needs to contain a basis set for the elements in this configuration. Note that the calculator is taken as a reference corresponding to the bulk unit cell given in bulk_configuration; the density_mesh_cutoff and k_point_sampling parameters of the NumericalAccuracyParameters of the calculator will be scaled consistently with the supercell size. The k_point_sampling will be scaled to maintain the k-point density approximately equal to the reference. The k-point grid will always be shifted such that the Gamma point is included, i.e., shift_to_gamma=True.
    Default: The calculator given in formation_energy_calculator.

  • phonon_calculator – The calculator used for performing phonon calculations. The calculator must contain a basis set for the elements in the defect configuration. Note that the calculator is taken as a reference corresponding to the bulk unit cell given in bulk_configuration; the density_mesh_cutoff and k_point_sampling parameters of the NumericalAccuracyParameters of the calculator will be scaled consistently with the supercell size. The k_point_sampling will be scaled to maintain the k-point density approximately equal to the reference. The k-point grid will always be shifted such that the Gamma point is included, i.e., shift_to_gamma=True.
    Default: The calculator given in relaxation_calculator.

  • quick_optimizer_calculator (Calculator) – The calculator used for fast initial optimization of amorphous packmol structures. This should typically be a force field calculator since the optimization of packmol structure procedure requires many force evaluations.
    Default: None

  • amorphization_calculator (Calculator) – The calculator used for producing amorphous structures. This should typically be a force field calculator since the amorphization procedure requires many force evaluations.
    Default: None

  • amorphous_density (PhysicalQuantity of type mass per volume) – The target density of this material when producing amorphous structures. If not value is given, then the density will be the same as the pristine configuration.
    Default: None

  • atomic_chemical_potentials (list of AtomicChemicalPotential | None) – The atomic chemical potential for each element of interest. See the documentation of AtomicChemicalPotential for details on how to define the atomic chemical potential for a species, and how the default values are calculated.
    Default: None; all necessary atomic chemical potentials calculated using the default configurations.

  • dielectric_constant (float) – The dielectric constant of the pristine material. Only needed to calculate the finite-size electrostatic energy correction terms.
    Default: 1.0

  • bulk_modulus (PhysicalQuantity of type pressure) – The bulk modulus of the pristine material. Only needed to calculate the finite-size elastic energy correction term.
    Default: 100.0 * GPa

  • assumed_formation_entropy (PhysicalQuantity of type entropy) – The assumed formation entropy of all defects calculated for this material. Setting this parameter will disable all phonon contributions to the defects.
    Default: Phonon contributions will be calculated.

  • assumed_transition_prefactor (PhysicalQuantity of type frequency) – The assumed prefactor for all transition paths calculated for this material. Setting this parameter will disable the prefactor calculation from the vibrational frequencies at the minima and saddle point for all transition paths.
    Default: The prefactors will be calculated from the vibrational frequencies at the minima and saddle point.

  • first_nearest_neighbor (PhysicalQuantity of type length) – The distance for first nearest neighbors in the material
    Default: Distance automatically calculated.

  • second_nearest_neighbor (PhysicalQuantity of type length) – The distance for second nearest neighbors in the material
    Default: Distance automatically calculated.

  • color (Valid color in hexadecimal format as str) – A representative color for this material.
    Default: “#FFFFFF”

  • sentaurus_material_name (str) – The material name for Sentaurus tools. A typical use is when writing parameters for other Sentaurus (Process, Device) tools. This parameter is only needed when providing parameters for other tools. Otherwise it can be left empty. But if a name is not provided, an exception/error will be raised when used by functions providing parameters for other Sentaurus tools.
    Default: None

  • optimize_geometry_parameters (OptimizeGeometryParameters) – The parameters to use for optimizing the geometry. Note that pre_step_hook and post_step_hook must be left unset.
    Default: OptimizeGeometryParameters()

  • symmetry_tolerance (PhysicalQuantity of type length.) – The tolerance to be used when determining the symmetries.
    Default: 0.1 * Angstrom

  • layer_indices (list of type list of type int) – A list of lists that contain the indices of the atoms that belong in each layer. If None is given (default), then this is not a multilayered material.
    Default: None

  • use_ghost_atoms (bool) – If set to True ghost atoms are to be used.
    Default: False

  • random_seed (int) – Random seed to be used when needed for simulations.
    Default: 1234

  • periodic_charge_correction (ModelChargeCorrection | False) – Charge correction flag. False to disable.
    Default: ModelChargeCorrection() (Correction is on, gaussian width is fitted)

  • stress_correction (ImageStressCorrection | False) – Type of stress correction applied to defects. False to disable
    Default: False

  • elements_with_stoichiometry (dict) – A dict of elements and stoichiometry of the elements that is used for amorphorization.

  • substitutional_percentage (float) – The percentages of the atoms that should be changed.

  • substitutional_element (PeriodicTableElement) – The element to change to.

amorphizationCalculator()
Returns:

The reference calculator used for performing amorphization calculations.

Return type:

Calculator | None

amorphousDensity()
Returns:

The target density of this material when producing amorphous structures.

Return type:

PhysicalQuantity of type mass per volume

assumedFormationEntropy()
Returns:

The assumed formation entropy of all defects calculated for this material. If None, the phonon contributions are calculated explicitly.

Return type:

PhysicalQuantity of type entropy | None

assumedTransitionPrefactor()
Returns:

The assumed prefactor for all transition paths calculated for this material. If None, the prefactors are calculated explicitly from the vibrational frequencies at the minima and saddle point.

Return type:

PhysicalQuantity of type frequency | None

atomicChemicalPotentials()
Returns:

The list of atomic chemical potentials for each element.

Return type:

list of AtomicChemicalPotential

bandGapCalculator()
Returns:

The reference calculator used for calculating the band gap in which the transition levels will be placed.

Return type:

Calculator

bulkModulus()
Returns:

The bulk modulus of the pristine material.

Return type:

PhysicalQuantity of type pressure

color()
Returns:

The color of the material.

Return type:

str

description()
Returns:

The description of the material.

Return type:

str

dielectricConstant()
Returns:

The dielectric constant of the pristine material.

Return type:

float

elementsWithStoichiometry()
Returns:

Different elements with stoichiometry.

Return type:

dict | None

firstNearestNeighbor()
Returns:

The first nearest neighbor distance associated to this system.

Return type:

PhysicalQuantity of type length

formationEnergyCalculator()
Returns:

The reference calculator used for calculating the formation energy of the defect charge states.

Return type:

Calculator

layerIndices()
Returns:

The indices of the atoms in each layer.

Return type:

list of type list of type int

name()
Returns:

The name of the material, mostly used for displaying purposes. This name might not be unique for different specifications. Do not use for indexing purposes.

Return type:

str

nlprint(stream=<_io.TextIOWrapper name='<stdout>' mode='w' encoding='utf-8'>)

Prints a summary of material specifications.

optimizeGeometryParameters()
Returns:

Parameters required to optimize the geometry.

Return type:

OptimizeGeometryParameters

periodicChargeCorrection()
Returns:

The type of charge correction used for calculations

Return type:

ModelChargeCorrection

phononCalculator()
Returns:

The reference calculator used for performing phonon calculations.

Return type:

Calculator

pristineConfiguration()
Returns:

The reference bulk unit cell configuration used to generate the supercell configuration.

Return type:

BulkConfiguration

quickOptimizerCalculator()
Returns:

The reference calculator used for performing amorphization calculations.

Return type:

Calculator | None

randomSeed()
Returns:

The random seed. None if it changes between simulations.

Return type:

int

relaxationCalculator()
Returns:

The reference calculator used for relaxing the atomic coordinates of the defect supercells.

Return type:

Calculator

secondNearestNeighbor()
Returns:

The second nearest neighbor distance associated to this system.

Return type:

PhysicalQuantity of type length

sentaurusMaterialName()
Returns:

The name to be used for this material in Sentarus tools

Return type:

str

setDescription(description)
Parameters:

description (str) – The description of the material.

stressCorrection()
Returns:

The Type of image stress correction used for calculations

Return type:

ImageStressCorrection | None

substitutionalElement()
Returns:

The substitutional element for this layer as defined by the material specification.

Return type:

class:~.PeriodicTableElement

substitutionalPercentage()
Returns:

The percentage of the element in the pristine material that will be replaced.

Return type:

float

supercellRepetitions()
Returns:

The number of repetitions of the reference bulk unit cell along the (a, b, c) directions.

Return type:

tuple (size 3) of int

symmetryTolerance()
Returns:

The tolerance to be used when determining the symmetries.

Return type:

PhysicalQuantity of type length.

uniqueString()

Return a unique string representing the state of the object.

useGhostAtoms()
Returns:

whether ghost atoms are being used

Return type:

bool