All the simulation parameters¶
Contents
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.