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_{c,\,1}\)

E_c1

\(\mathrm{eV}\)

\(0.0\)

First crossover energy. Must be provided instead of E_0 for SPARK3D Vaughan.

class SombrinParameters

Bases: TypedDict

E_max: Parameter
teey_max: Parameter
E_c1: Parameter
class Sombrin(parameters_values: dict[str, Any] | None = None)

Bases: Model

Define the Sombrin model, defined in [Som93].

We use the implementation from [FBHP16].

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. Must be provided instead of E_0 for SPARK3D Vaughan.', 'lower_bound': 0.0, 'markdown': 'E_{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}}
__init__(parameters_values: dict[str, Any] | None = None) None

Instantiate the object.

Parameters:

parameters_values – Contains name of parameters and associated value. If provided, will override the default values set in initial_parameters.

parameters: SombrinParameters
_E: float | None
property E: float

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

get_data(population: Literal['SE', 'EBE', 'IBE', 'all'], emission_data_type: Literal['Emission Yield', 'Emission Energy', 'Emission Angle'], energy: ndarray[tuple[Any, ...], dtype[float64]], theta: ndarray[tuple[Any, ...], dtype[float64]], *args, **kwargs) DataFrame | None

Return desired data according to current model.

Will return a dataframe only if the TEEY is asked.

set_parameter_value(name: str, value: Any) None

Set E to None before updating the parameter.

find_optimal_parameters(data_matrix: DataMatrix, **kwargs) None

Extract main TEEY curve parameters from measure.

evaluate(data_matrix: DataMatrix) dict[str, float]

Evaluate the quality of the model using Fil criterions.

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

_abc_impl = <_abc._abc_data object>
_sombrin_func(ene: float | ndarray[tuple[Any, ...], dtype[float64]], E_max: Parameter, teey_max: Parameter, E_c1: Parameter, E_param: float | None, **parameters) float | ndarray[tuple[Any, ...], dtype[float64]]

Compute the TEEY for incident energy E.

_e_parameter(sigma_max: Parameter, E_max: Parameter, E_c1: Parameter) float

Compute parameter E in Sombrin model.