sombrin module

Create the Sombrin model, to compute TEEY.

It is very precise on the first crossover energy, but does not take the incident angle into account.

Model parameters

Parameter

Name

Unit

Initial

Description

\(E_\mathrm{max}\)

E_max

\(\mathrm{eV}\)

\(1.0\)

Energy at maximum TEEY.

\(\sigma_\mathrm{max}\)

teey_max

\(\mathrm{1}\)

\(0.0\)

Maximum TEEY, directly taken from the measurement.

\(E_{\mathrm{c,\,1}}\)

E_c1

\(\mathrm{eV}\)

\(0.0\)

First crossover energy.

class SombrinParameters

Bases: TypedDict

E_max: Parameter
teey_max: Parameter
E_c1: Parameter
class Sombrin(parameters_values=None)

Bases: Model

Define the Sombrin model, defined in [Som93].

We use the implementation from [FBHP16].

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 in initial_parameters.

emission_data_types: list[Literal['Emission Yield', 'Emission Energy', 'Emission Angle']] = ['Emission Yield']
populations: list[Literal['SE', 'EBE', 'IBE', 'all']] = ['all']
considers_energy: bool = True
is_3d: bool = False
is_dielectrics_compatible: bool = False
model_config: ModelConfig = ModelConfig(emission_yield_files=('all',), emission_energy_files=(), emission_angle_files=())
initial_parameters: dict[str, dict[str, str | float | bool]] = {'E_c1': {'description': 'First crossover energy.', 'lower_bound': 0.0, 'markdown': 'E_{\\mathrm{c,\\,1}}', 'unit': 'eV', 'value': 0.0}, 'E_max': {'description': 'Energy at maximum TEEY.', 'lower_bound': 0.0, 'markdown': 'E_\\mathrm{max}', 'unit': 'eV', 'value': 1.0}, 'teey_max': {'description': 'Maximum TEEY, directly taken from the measurement.', 'lower_bound': 0.0, 'markdown': '\\sigma_\\mathrm{max}', 'unit': '1', 'value': 0.0}}
parameters: SombrinParameters

A TypedDict specific to every model.Model. Keys are parameters names, values are Parameter.

_E: float | None
property E: float

Return the E parameter in Sombrin model. Not incident energy.

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.

Return type:

DataFrame | None

set_parameter_value(name, value)

Set E to None before updating the parameter.

Return type:

None

find_optimal_parameters(data_matrix, **kwargs)

Extract main TEEY curve parameters from measure.

Return type:

None

evaluate(data_matrix)

Evaluate the quality of the model using Fil criterions.

Fil criterions [FBHP16, FBHP20] are adapted to TEEY models.

Return type:

dict[str, float]

sombrin_func(ene, E_max, teey_max, E_c1, E_param, **parameters)

Compute the TEEY for incident energy E.

Return type:

float | ndarray[tuple[Any, ...], dtype[float64]]

_e_parameter(sigma_max, E_max, E_c1)

Compute parameter E in Sombrin model.

Return type:

float