writeSentaurusParameters(defect_lists, transition_path_lists, sentaurus_model, filename, discard_faulty=True, temperature=None, use_akmc=False, fit_alloy_only=False, diffusion_parameters=None, charge=None)

User command that takes the list of updated defects and migration paths and extracts information creating a PDB file.

  • defect_lists (sequence of VacancyList | InterstitialList | SubstitutionalList | DefectPairList | SplitInterstitialList) – A sequence of defect lists defined in only 1 material specification.
  • transition_path_lists (sequence of TransitionPathList) – A sequence of transition path lists.
  • sentaurus_model (SentaurusProcessKMC | SentaurusProcessChargedReact | SentaurusProcessFullChargedReact) – Sentaurus model use for parameter extraction format
  • discard_faulty (bool) – Whether the faulty NEB calculations are to be discarded.
    Default: True
  • filename (str) – Name of file to write the Sentaurus Parameter Database set.
  • temperature (PhysicalQuantity of type Kelvin) – Temperature for rate and entropy calculation
    Default: 1000 K
  • use_akmc (bool) – Whether AKMC should be used for diffusivity extraction. If set to false it will extract the diffusivity by adding the inequivalent defects and fitting an Arrhenius plot to them, and by using the median value of equivalent defects at different locales. In alloys, this function requires considering the alloy elements to be the same when filtering the defects. Otherwise it might not work properly and provide the expected results.
    Default: False
  • fit_alloy_only (bool) – Only applicable for alloys. Alloys are accounted in Sentaurus Process by assuming a parabolic dependency with the mole fraction x. If this parameter is set to True, the parabolic fit will force the fit to provide the exact values for x=0 and x=1. If set to False, the overall error of the fit will be smaller, but at the cost of allowing the fitted function not to give the exact values for x=0 and x=1.
    Default: False
  • charge (int) – Charge state to be simulated. Must be between -4 and +4.
    Default: 0
  • diffusion_parameters (DiffusionParameters) – Optional set of parameters to better control the microscopic to macroscopic translations needed to transform the atomistic calculations into Sentaurus parameters.
    Default: DiffusionParameters


This section describes the extraction of the Sentaurus Process parameters from defect calculations.

Equilibrium Concentration

At thermodynamic equilibrium, the temperature dependency of the concentration \(C_{X^q}\) of a defect \(X\) in a charge state math:q is given as:

\[C_{X^q}(T) = C_{X^q}^0 \exp\left(-\frac{E_{X^q}}{k_BT}\right),\]


  • \(E_{X^q}\) is the formation energy of the defect math:X in a charge state \(q\).
  • \(k_B\) is the Boltzmann constant.
  • \(T\) is the temperature.
  • \(C_{X^q}^0\) is the constant prefactor.

Concentration Prefactor

The concentration prefactor of a defect \(C^0_{X^q}\) is defined as:

\[C_{X^q}^0 = \left( \frac{N}{\Omega} \right) \theta \exp\left( \frac{S_{X^q}}{k_B} \right),\]


  • \(\Omega\) is the volume of the supercell.
  • \(N\) is the number of defect sites in the supercell.
  • \(\theta\) is the internal degree of freedom, for example, the spin state.
  • \(S_{X^q}\) is the vibrational formation entropy (see formation_entropies

Multiple Configurations

When there are multiple configurations for equivalent defects, a distinction is made between different configurations in the same local neighborhood and identical configurations in different local neighborhoods. For example, given a particular alloy, both tetrahedral (\(\mathrm{I}_t\)) and hexahedral (\(\mathrm{I}_h\)) interstitial atoms can form in different neighborhoods as will be given different Wyckoff types. Sentaurus Materials Workbench averages all of the same defect type (all \(\mathrm{I}_t\) and all \(\mathrm{I}_h\)) by fitting an Arrhenius plot:

\[C_{X^{\mathrm{type}}}(T) = C^0_{X^{\mathrm{type}}} \exp \left( - \frac{E_{X^q}} {k_BT} \right),\]

to the cloud of points obtained by \(X^\mathrm{type}\) at all of the different local neighborhoods, and Sentaurus material Workbench wil later fit a second Arrhenius plot:

\[C_X(T) = C_X^0 \exp \left( -\frac{E_X^q}{k_BT} \right)\]

as the line better approaching the sum of all previously fitted defects:

\[\sum_\mathrm{all} C_{X^\mathrm{type}}(T).\]

Cstar and ChargeStates

The intrinsic equilibrium concentration \(C^*_X(\mathrm{intrinsic})\) of a defect \(X\) is given as the sum of the concentrations \(C_{X^q}\) of each different charge state \(q\), or as the sum of the relative concentrations \(k_q = C_{X^q} / C_{X^0}\), which is defined as ChargeStates multiplied by the concentration of the neutral defect:

\[C^*_X(\mathrm{intrinsic}) = \sum_q C_{X^q} = C_{X^0} \sum_q \frac{C_{X^q}}{C_{X^0}} = C_{X^0} \sum_q k_{X^q}.\]

The sum of multiple Arrhenius terms is fitted to a single Arrhenius function, which is defined as Cstar:

\[C^*_X(\mathrm{intrinsic}) = C_{X^0} \exp \left( - \frac{E_X}{k_BT} \right).\]


The macroscopic diffusivity of a defect \(X^q\) can be calculated from the microscopic quantities as follows:

\[D_{X^q} = D_{X^q}^0 \exp \left( - \frac{E^m_{X^q}}{k_BT} \right),\]

where \(E^m\) is the migration energy and \(D^0\) is the diffusivity prefactor, which can be calculated using TransitionPathList.

Diffusivity Prefactor

The diffusivity prefactor can be calculated as:

\[D^0_{X^q} = \frac{a^2}{2d} Zf\nu_0 \exp \left( \frac{S^m_{X^q}}{k_B} \right),\]


  • \(a\) is the hopping distance.
  • \(d\) is the dimensionality of the diffusion.
  • \(Z\) is the coordination number.
  • \(f\) is the correlation factor.
  • \(\nu_0\) is the attempt rate.
  • \(S^m_{X^q}\) is the migration entropy.

The coordination number counts the number of adjacent sites to which the diffusion species can jump. For diamond and zinc-blende structure, \(Z=4\). The correlation factor accounts for the probability of a species to reverse its previous hop. This quantity has been calculated [H_mehrer_25] to the leading order as \(f=0.5\) for the study of Si isotope tracers using vacancies in diamond structures and \(f=1\) for other species including interstitials and vacancies.

The attempt rate \(\nu_0\) depends on the phonon spectrum of the initial state \(\left\{\nu_i\right\}\) and the spectrum at the transition state \(\left\{ \nu'_i\right\}\):

\[\nu_0 = \frac{\prod^N_i \nu_i} {\prod_i^{N-1}\nu'_i}.\]

The migration entropy is calculated as decribed in HarmonicChargedPointDefect. Assumed magnitudes can be provided, as illustrated at MaterialSpecifications.

Multiple Configurations

Similar to the calculation of equilibrium concentrations, when there are multiple configurations, they are divided into two types:

  • Different configurations in the same neighborhood
  • Identical configurations in different neighborhoods

Pure materials can only be the first type, but alloy materials can have defects of both types. For the same defect in different neighborhoods, obtaining an effective value is not trivial. In reality, defects would follow paths of lower diffusivity activation energies but, depending on the connectivity of such paths, they might need to diffuse through high activation mechanisms as well.

One approach to this complex problem is to use the atomistic kinetic Monte Carlo (KMC) simulator in Sentaurus Materials Workbench (see monteCarloDiffusivityCalculation). The simpler approach taken here averages the different paths by computing all the DC products in the different neighborhoods and taking the median value.

When the median value of the DC product is obtained for a particular defect in all possible neighborhoods, the final effective diffusivity is computed by calculating the following averaged diffusivity at each temperature:

\[D_X^\mathrm{eff} = \left( \frac{\sum_\mathrm{types} D_X^\mathrm{type} C_X^\mathrm{type} } { \sum_\mathrm{types} C_X^\mathrm{type} } \right)\]

and fitting an Arrhenius plot to al temperatures under consideration to obtain the migration prefactor \(D_X^0\) and energy \(E_X\):

\[D_X^\mathrm{eff} = D_X^0 \exp\left( -\frac{E_X} {k_BT} \right).\]


A simple example of use is:

# Generate a simple Sentaurus Process KMC file with them.
writeSentaurusParameters([vacancies, interstitials], [], SentaurusProcessKMC, 'KMC.pdb')

Taken from the context of Calculation results, that contains the full example.