All the simulation parameters

Common parameters

GlobalParameters

spectroscopy

details

Types

str

Limits

None <= value <= None

Unit

None

Allowed values

PED, AED, LEED, EXAFS, EIG

Default

PED

There are 4 choices for the spectroscopy option:

  • PED’, for Photo Electron Diffraction

  • AED’, for Auger Electron Diffraction

  • LEED’, for Low Energy Electron Diffraction

  • EXAFS’, for the Extended X-ray Absorption Fine Structure

Additionally, a 5th keyword EIG is used to get deeper information about the convergence of the eigen values of multiple scattering matrix.

The value is case insensitive.

algorithm

details

Types

str

Limits

None <= value <= None

Unit

None

Allowed values

expansion, inversion, correlation, power

Default

expansion

You can choose the algorithm used for the computation of the scattering path operator.

  • inversion’, for the classical matrix inversion method

  • expansion’, for the Rehr-Albers series expansion

  • correlation’, for the correlation-expansion algorithm

  • power’, for the power method approximation scheme (only for spectroscopy=’EIG’)

The series expansion algorithm is well suited for high energy since the number of terms required decreases as the energy increases. The exact solution is obtained by the matrix inversion method but should be preferably used for lower energy.

polarization

details

Types

NoneType, str

Limits

None <= value <= None

Unit

None

Allowed values

None, linear_qOz, linear_xOy, circular

Default

None

Specify the polarization of the incident light.

  • None, for unpolarized light

  • linear_qOz’ for a polarization vector in the \((\vec{q}0z)\) plane

  • linear_xOy’ for a polarization vector in the \((x0y)\) plane

  • circular’ for circular dichroism

dichroism

details

Types

NoneType, str

Limits

None <= value <= None

Unit

None

Allowed values

None, natural, sum_over_spin, spin_resolved

Default

None

Used to perform dichroic calculations. The default (None) is to disable this.

spinpol

details

Types

bool

Limits

None <= value <= None

Unit

None

Allowed values

None

Default

False

Enable or disbale spin-resolved calculations.

folder

details

Types

str

Limits

None <= value <= None

Unit

None

Allowed values

None

Default

./calc

This parameter is the path to the temporary folder used for the calculations. If you do not change this parameter between calculations, all the content will be overridden. This is usually not a problem, since the whole bunch of data created during a computation is not meant to be saved. But you may want to anyway by changing it to another path.

This folder is not automatically removed after a computation. It is removed when calling the shutdown() calculator method:

calc = MSSPEC() # the './calc' folder is created
# do your calculation here
calc.shutdown() # the folder is removed

MuffintinParameters

charge_relaxation

details

Types

bool

Limits

None <= value <= None

Unit

None

Allowed values

None

Default

True

Used to specify whether the charge density of the photoabsorbing atom, which is used to construct the potential, is allowed to relax around the core hole or not.

ionicity

details

Types

dict

Limits

None <= value <= None

Unit

None

Allowed values

None

Default

{}

A dictionary to specify the ionicity of each kind of atoms. If empty, the atoms are considered to be neutral. Otherwise, each key must be a chemical symbol and the corresponding value should be the fraction of electrons added (negative) or substracted (positive) with respect to neutrality. As an example for a LaFeO3 cluster:

>>> calc.muffintin_parameters.ionicity = {'La': 0.15, 'Fe': 0.15, 'O': -0.1}

means that 0.15 electrons have been substracted from La, likewise from Fe. Neutrality implies that 0.3 electrons have to be added to oxygen atoms.

relativistic_mode

details

Types

str

Limits

None <= value <= None

Unit

None

Allowed values

non_relativistic, scalar_relativistic, spin_orbit_resolved

Default

non_relativistic

To tell whether to use the scalar relativistic approximation or not.

radius_overlapping

details

Types

float

Limits

0.0 <= value <= 1.0

Unit

None

Allowed values

None

Default

0.0

to allow atomic spheres to overlapp with each other. The value is a percentage, 1. means 100%.

interstitial_potential

details

Types

int, float

Limits

None <= value <= None

Unit

electron_volt

Allowed values

None

Default

0.0

The average interstitial potential (or inner potential) expressed in eV. It is used to compute the refraction at the surface.

hydrogen_radius

details

Types

int, float

Limits

0.0 <= value <= None

Unit

angstrom

Allowed values

None

Default

0.9

The program can have difficulties to find the radius of the hydrogen atom (small atom). You can specify here a value for the radius. If you set it to ‘None’, the calculation of the muffin-tin radius of H atoms will be left to the program.

TMatrixParameters

potential

details

Types

str, ForeignPotential

Limits

None <= value <= None

Unit

None

Allowed values

None

Default

muffin_tin

This option allows to choose which kind of potential is used to compute the T-Matrix. For now, only the internal Muffin-Tin potential is supported.

exchange_correlation

details

Types

str

Limits

None <= value <= None

Unit

None

Allowed values

hedin_lundqvist_real, hedin_lundqvist_complex, x_alpha_real, dirac_hara_real, dirac_hara_complex

Default

hedin_lundqvist_complex

Set the type of exchange and correlation potential that will be used.

imaginery_part

details

Types

int, float

Limits

None <= value <= None

Unit

None

Allowed values

None

Default

0.0

This value is added to complex potentials to account for core-hole lifetime and experimental resolution broadening effects.

lmax_mode

details

Types

str

Limits

None <= value <= None

Unit

None

Allowed values

max_ke, true_ke, imposed

Default

true_ke

This allows to control the number of basis functions used to expand the wave function on each atom. It can be:

  • imposed’, and will be equal to the lmaxt parameter (see below). It is therefore independent on both the energy and atom type.

  • max_ke’, in this case \(l_{max}\) is computed according to the formula \(l_{max} = kr_{at} + 1\) where \(k=E^{1/2}_{max}\) with \(E_{max}\) being the maximum kinetic energy. In this case \(l_{max}\) is independent of the energy but depends on the atom number.

  • true_ke’, in this case \(l_{max}\) is computed according to the formula \(l_{max} = kr_{at} + 1\) where \(k=E^{1/2}_k\) with \(E_k\) being the kinetic energy. In this case \(l_{max}\) depends both on the energy and the atom number.

lmaxt

details

Types

int

Limits

1 <= value <= None

Unit

None

Allowed values

None

Default

19

The value of \(l_{max}\) if lmax_mode = ‘imposed’

tl_threshold

details

Types

NoneType, float

Limits

None <= value <= None

Unit

None

Allowed values

None

Default

None

This option allows to control the number of basis function by defining a threshold value for the tl. For example:

>>> calc.tmatrix_parameters.tl_threshold = 1e-6

will remove all tl with a value \(< 1.10^{-6}\)

Note

This option is compatible with any modes of the lmax_mode option.

max_tl

details

Types

NoneType, dict

Limits

None <= value <= None

Unit

None

Allowed values

None

Default

None

max_tl is used to sepcify a maximum number of basis functions to use for each kind of atoms. For example, in the case of an MgO cluster, you could write:

>>> calc.muffintin_parameters.max_tl = {'Mg': 20, 'O', 15}

to tell the program to use at most 20 tl for Mg and 15 for O. It acts like a filter, meaning that if you use this option, you are not required to sepcif a value for each kind of atoms in your cluster. You can restrict the number of tl only for one type of atom for example.

Note

This option is compatible with any modes of the lmax_mode option.

SourceParameters

energy

details

Types

list, tuple, int, float

Limits

0 <= value <= None

Unit

electron_volt

Allowed values

None

Default

1253.6

The photon energy in eV.

Common laboratories X-ray source Mg \(K_\alpha\) and Al \(K_\alpha\) lines are defined in the msspec.misc.XRaySource class. For example:

>>> from msspec.calculator import MSSPEC
>>> calc = MSSPEC()
>>> calc.source_parameters.energy = XRaySource.MG_KALPHA
>>> print calc.source_parameters.energy
1253.6

theta

details

Types

int, float

Limits

-180.0 <= value <= 180.0

Unit

degree

Allowed values

None

Default

-55.0

The polar angle of the photon incidence (in degrees). Please refer to this figure for questions regarding the proper orientation.

phi

details

Types

int, float

Limits

-180.0 <= value <= 180.0

Unit

degree

Allowed values

None

Default

0.0

The azimuthal angle of the photon incidence (in degrees). Please refer to this figure for questions regarding the proper orientation.

DetectorParameters

angular_acceptance

details

Types

int, float

Limits

0.0 <= value <= None

Unit

degree

Allowed values

None

Default

0.0

The angular acceptance of the detector in degrees used when the average_sampling option is enabled below.

average_sampling

details

Types

NoneType, str

Limits

None <= value <= None

Unit

None

Allowed values

None, low, medium, high

Default

None

Used to averaged the signal over directions lying in the cone of half-angle angular_acceptance. The number of directions to take into account depends on the choosen value:

  • None, for no averaging at all

  • low’, to average over 5 directions

  • medium’, to average over 13 directions

  • high’, to average over 49 directions

rotate

details

Types

bool

Limits

None <= value <= None

Unit

None

Allowed values

None

Default

False

When False, the sample is rotated when doing a scan (the usual way). Otherwise, the detector is rotated.

ScanParameters

type

details

Types

str

Limits

None <= value <= None

Unit

None

Allowed values

theta, phi, theta_phi, energy, scatf

Default

theta

Sorry, no more help for this parameter.

theta

details

Types

ndarray, list, tuple, int, float

Limits

-90.0 <= value <= 90.0

Unit

degree

Allowed values

None

Default

[0.00 2.00 4.00 … 84.00 86.00 88.00]

Sorry, no more help for this parameter.

phi

details

Types

ndarray, list, tuple, int, float

Limits

0.0 <= value <= 360.0

Unit

degree

Allowed values

None

Default

[0.00]

Sorry, no more help for this parameter.

kinetic_energy

details

Types

list, tuple, int, float

Limits

0.0 <= value <= None

Unit

electron_volt

Allowed values

None

Default

200.0

if given as a list or tuple:
  • with 2 elements, 10 points of energy will be generated with the first element as the starting energy and the second element as the stopping energy.

  • with 3 elements, the first element is the starting energy the second one is the stopping energy and the last one is the number of points.

if given as a float or integer, there will be one point for the kinetic energy.

CalculationParameters

RA_cutoff

details

Types

int

Limits

0 <= value <= 8

Unit

None

Allowed values

None

Default

1

The Rehr-Albers cut-off parameter which controls the degree of sphericity introduced in the description of the basis functions used to expand the wave function around each atomic center. It is only meaningful for the series expansion algorithm. Its value is limited to 8 but it is rarely necessary to go beyond 2 or 3.

scattering_order

details

Types

int

Limits

1 <= value <= 10

Unit

None

Allowed values

None

Default

3

The scattering order. Only meaningful for the ‘expansion’ algorithm. Its value is limited to 10.

renormalization_mode

details

Types

NoneType, str

Limits

None <= value <= None

Unit

None

Allowed values

None, G_n, Sigma_n, Z_n, Pi_1, Lowdin

Default

None

Enable the calculation of the coefficients for the renormalization of the multiple scattering series. You can choose to renormalize in terms of the \(G_n\), the \(\Sigma_n\), the \(Z_n\), the \(\Pi_1\) or the Lowdin \(K^2\) matrices

renormalization_omega

details

Types

int, float, complex

Limits

None <= value <= None

Unit

None

Allowed values

None

Default

(1+0j)

The \(\omega\) coefficient used to initialize the renormalization alogorithm.

RA_cutoff_damping

details

Types

int

Limits

0 <= value <= None

Unit

None

Allowed values

None

Default

0

The Rehr-Albers truncation order. If > 0, the RA_cutoff is decreased by 1 every ith scatterer until 0, where i = RA_cutoff_damping.

spin_flip

details

Types

bool

Limits

None <= value <= None

Unit

None

Allowed values

None

Default

False

This parameter tells if spin-flip is authorized or not in the scattering process.

Note

This option works only if the spin polarization is enabled in your calculator object (see spinpol).

integrals

details

Types

str

Limits

None <= value <= None

Unit

None

Allowed values

all, diagonal

Default

all

This option allows to take into account all four radial integrals (R++, R+-, R-+ and R–) in the calculation or only the diagonal radial integrals (R++ and R–) which are generally much larger.

Note

This option works only if the spin polarization is enabled in your calculator object.

path_filtering

details

Types

NoneType, str, tuple, list

Limits

None <= value <= None

Unit

None

Allowed values

None, forward_scattering, backward_scattering, distance_cutoff, plane_wave_normal, plane_wave_spin_averaged

Default

None

Used to activate some filters. It is possible to specify several of them by grouping them in a tuple or a list. For example:

>>> my_filters = ('forward_scattering', 'backward_scattering')
>>> calc.calculation_parameters.path_filtering = my_filters

off_cone_events

details

Types

int

Limits

0 <= value <= None

Unit

None

Allowed values

None

Default

1

Used in conjunction with the ‘forward_scattering’ filter. If the number of scattering processes outside the forward (or backward) scattering cone is greater than this number, then the path is rejected and its contribution to the scattering path operator won’t be computed.

scattering_order_cutoff

details

Types

int

Limits

0 <= value <= 10

Unit

None

Allowed values

None

Default

2

Used in conjunction with the ‘plane_wave_normal’ filter. It states to activate the plane wave approximation (which is fast but less accurate) to compute the contribution when the scattering order is greater than this value.

distance

details

Types

int, float

Limits

0 <= value <= None

Unit

angstrom

Allowed values

None

Default

10.0

Used with the ‘distance_cut_off’ filter. Paths whose length is larger than this value are simply rejected.

vibrational_damping

details

Types

NoneType, str

Limits

None <= value <= None

Unit

None

Allowed values

None, debye_waller, averaged_tl

Default

debye_waller

Tells how to compute the effect of atomic vibrations. It can be:

  • debye_waller’ for using the Debye Waller model.

  • averaged_tl’ to use the more correct averaging over T-matrix elements.

temperature

details

Types

int, float

Limits

0 <= value <= None

Unit

kelvin

Allowed values

None

Default

293.0

The temperature of the cluster. Used when use_debye_model = True

debye_temperature

details

Types

int, float

Limits

0 <= value <= None

Unit

kelvin

Allowed values

None

Default

420.0

The Debye temperature used for the calculation of the mean square displacements if use_debye_model = True

use_debye_model

details

Types

bool

Limits

None <= value <= None

Unit

None

Allowed values

None

Default

False

No matter the way you compute the effect of atomic vibrations, you need the mean square displacements of atoms. It can be computed internally following the Debye model if you set this option to True.

vibration_scaling

details

Types

int, float

Limits

0.0 <= value <= None

Unit

None

Allowed values

None

Default

1.2

Used to simulate the fact that surface atoms vibrate more than bulk ones. It is a factor applied to the mean square displacements.

cutoff_factor

details

Types

int, float

Limits

0.0001 <= value <= 999.9999

Unit

None

Allowed values

None

Default

0.01

Sorry, no more help for this parameter.

mean_free_path

details

Types

int, float, str

Limits

None <= value <= None

Unit

None

Allowed values

None

Default

SeahDench

The electron mean free path value. You can either: - Enter a value (in Angströms), in this case any value <=0 will disable the damping - Enter the keyword ‘mono’ to use a formula valid only for monoelemental samples - Enter the keyword ‘SeahDench’ to use the Seah and Dench formula.

Note

The mean free path is only taken into account when the input T-matrix corresponds to a real potential as, when the potential is complex, this damping is taken care of by the imaginery part othe potential.

Spectroscopy parameters

PEDParameters

level

details

Types

str

Limits

None <= value <= None

Unit

None

Allowed values

None

Default

1s

The level is the electronic level where the electron comes from. It is written: nlJ where:

  • n is the principal quantum number

  • l is the orbital quantum number

  • J is the spin-orbit component

Example:

>>> calc.spectroscopy_parameters.level = '2p3/2'
>>> calc.spectroscopy_parameters.level = '2p' # is equivalent to '2p1/2'

final_state

details

Types

int

Limits

-1 <= value <= 2

Unit

None

Allowed values

None

Default

2

Sorry, no more help for this parameter.

spin_orbit

details

Types

NoneType, str

Limits

None <= value <= None

Unit

None

Allowed values

None, single, both

Default

None

Sorry, no more help for this parameter.

EIGParameters

level

details

Types

str

Limits

None <= value <= None

Unit

None

Allowed values

None

Default

1s

The level is the electronic level where the electron comes from. It is written: nlJ where:

  • n is the principal quantum number

  • l is the orbital quantum number

  • J is the spin-orbit component

Example:

>>> calc.spectroscopy_parameters.level = '2p3/2'
>>> calc.spectroscopy_parameters.level = '2p' # is equivalent to '2p1/2'

final_state

details

Types

int

Limits

-1 <= value <= 2

Unit

None

Allowed values

None

Default

2

Sorry, no more help for this parameter.

spin_orbit

details

Types

NoneType, str

Limits

None <= value <= None

Unit

None

Allowed values

None, single, both

Default

None

Sorry, no more help for this parameter.

kernel_matrix_spectrum

details

Types

bool

Limits

None <= value <= None

Unit

None

Allowed values

None

Default

False

Whether to output the kernel matrix spectrum for each energy point.

method

details

Types

str

Limits

None <= value <= None

Unit

None

Allowed values

AITK, RICH, SALZ, EPSI, EPSG, RHOA, THET, LEGE, CHEB, OVER, DURB, DLEV, TLEV, ULEV, VLEV, ELEV, EULE, GBWT, VARI, ITHE, EALG

Default

EPSI

The convergence acceleration scheme to be used.