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
; thedensity_mesh_cutoff
andk_point_sampling
parameters of theNumericalAccuracyParameters
of the calculator will be scaled consistently with the supercell size. Thek_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 inrelaxation_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
; thedensity_mesh_cutoff
andk_point_sampling
parameters of theNumericalAccuracyParameters
of the calculator will be scaled consistently with the supercell size. Thek_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 information_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
; thedensity_mesh_cutoff
andk_point_sampling
parameters of theNumericalAccuracyParameters
of the calculator will be scaled consistently with the supercell size. Thek_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 information_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
; thedensity_mesh_cutoff
andk_point_sampling
parameters of theNumericalAccuracyParameters
of the calculator will be scaled consistently with the supercell size. Thek_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 inrelaxation_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 ofAtomicChemicalPotential
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 thatpre_step_hook
andpost_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: Noneuse_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: Falseelements_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:
- periodicChargeCorrection()¶
- Returns:
The type of charge correction used for calculations
- Return type:
- 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:
- 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