dionne module
Create the Dionne model, to compute SEEY.
This is a physical model developed by Dionne [Dio73, Dio75, LD57].
Model parameters
Parameter |
Name |
Unit |
Initial |
Description |
|---|---|---|---|---|
\(\xi\) |
excitation_energy |
\(\mathrm{eV}\) |
\(4.6\) |
Energy required to excite a secondary electron in the material. |
\(d\) |
diffusion_length |
\(\mathrm{nm}\) |
\(2.0\) |
Typical length between two interactions of the SE with the material. Related to elastic and inelastic mean free paths. |
\(S\) |
escape_probability |
\(\mathrm{1}\) |
\(0.5\) |
Probability for the SE to escape the material. |
\(A\) |
power_law_scale |
\(\mathrm{1}\) |
\(1.0\) |
Scale factor in the power law energy loss model. |
\(n\) |
power_law_exponent |
\(\mathrm{1}\) |
\(1.2\) |
Exponent in the power law energy loss model. |
- EnergyLossModel
Models for the energy loss of PEs in the material. See
dionne.range_func()for more information.alias of
Literal[‘Power law’, ‘CSDA’, ‘Inguimbert’]
- class Dionne(parameters_values=None, energy_loss_model='Power law')
Bases:
ModelDefine the Dionne model [Dio73, Dio75, LD57].
Instantiate the object.
- Parameters:
parameters_values (
dict[str,Any] |None, default:None) – Contains name of parameters and associated value. If provided, will override the default values set ininitial_parameters.energy_loss_model (
Literal['Power law','CSDA','Inguimbert'], default:'Power law') – Model for the energy loss of PEs in the material. Only"Power law"is implemented for now. Check documentation ofdionne.range_func()for more info.
-
emission_data_types:
list[Literal['Emission Yield','Emission Energy','Emission Angle']] = ['Emission Yield']
-
model_config:
ModelConfig= ModelConfig(emission_yield_files=('SE',), emission_energy_files=(), emission_angle_files=())
-
initial_parameters:
dict[str,dict[str,str|float|bool]] = {'diffusion_length': {'description': 'Typical length between two interactions of the SE with the material. Related to elastic and inelastic mean free paths.', 'lower_bound': 0.0, 'markdown': 'd', 'unit': 'nm', 'value': 2.0}, 'escape_probability': {'description': 'Probability for the SE to escape the material.', 'lower_bound': 0.0, 'markdown': 'S', 'unit': '1', 'upper_bound': 1.0, 'value': 0.5}, 'excitation_energy': {'description': 'Energy required to excite a secondary electron in the material.', 'is_locked': True, 'lower_bound': 0.0, 'markdown': '\\xi', 'unit': 'eV', 'value': 4.6}, 'power_law_exponent': {'description': 'Exponent in the power law energy loss model.', 'lower_bound': 1.0, 'markdown': 'n', 'unit': '1', 'value': 1.2}, 'power_law_scale': {'description': 'Scale factor in the power law energy loss model.', 'lower_bound': 0.0, 'markdown': 'A', 'unit': '1', 'value': 1.0}}
-
parameters:
DionneParameters A
TypedDictspecific to everymodel.Model. Keys are parameters names, values areParameter.
- get_data(population, emission_data_type, energy, theta, *args, **kwargs)
Return desired data according to current model.
Will return a dataframe only if the TEEY is asked.
- dionne_func(ene, excitation_energy, diffusion_length, escape_probability, energy_loss_model='Power law', power_law_scale=None, power_law_exponent=None, **parameters)
Compute the SEEY for incident energy E.
The SEEY is given by:
\[\delta = G \cdot T \cdot S\]where \(G\) is the mean number of SEs generated by the PE. \(T\) is their probability to reach the surface. \(S\) is their probability to cross the surface.
- range_func(ene, energy_loss_model='Power law', power_law_scale=None, power_law_exponent=None, **kwargs)
Compute penetration depth of PE.
We make the assumption that PE looses its energy following a power law or Thomson-Whiddington model [Whi14].
\[R = \frac{E^n}{A\cdot n}\]Note
This is currently the only model that is implemented. However, it was shown that it was not adapted at low energies. Continuous Slowing-Down Approximation (CSDA) [You56] may be better suited:
\[\frac{\mathrm{d}E}{\mathrm{d}x} = - E / R\]CSDA may also be incorrect at low-energies, were range is almost constant. See Ref. [IPBP17a, IPBP17b] for an alternative model.
- Parameters:
ene (
float|ndarray[tuple[Any,...],dtype[float64]]) – PEs energy in \(\mathrm{eV}\).energy_loss_model (
Literal['Power law','CSDA','Inguimbert'], default:'Power law') – Model for the energy loss of PEs along their path. Currently, the power law is the only one that is implememnted.power_law_scale (
Parameter|float|None, default:None) – Power law parameter \(A\).power_law_exponent (
Parameter|float|None, default:None) – Power law parameter \(n\).kwargs – For future model implementations.
- Return type:
- Returns:
Corresponding ranges in \(\mathrm{nm}\).
- generation(ene, range, excitation_energy, atol=1e-12)
Compute the generation term.
This is the probability for an incident electron with an energy
eneto generate a secondary electron.\[G = \frac{1}{R}\frac{E}{\xi}\]- Parameters:
ene (
float|ndarray[tuple[Any,...],dtype[float64]]) – PEs energy in \(\mathrm{eV}\).range (
float|ndarray[tuple[Any,...],dtype[float64]]) – Corresponding ranges in \(\mathrm{nm}\).excitation_energy (
Parameter|float) – Energy required to excite a secondary electron in the material in \(\mathrm{eV}\).
- Return type:
- Returns:
Probabiliy for an electron to generate secondary electrons.