chung_and_everhart module

Create the Chung and Everhart model, to compute SEs emission distribution.

You will need to provide emission energy distribution measurements.

Model parameters

Parameter

Name

Unit

Initial

Description

\(W_f\)

W_f

\(\mathrm{eV}\)

\(8.0\)

Material work function.

\(k\)

norm

\(\mathrm{1}\)

\(1.0\)

Distribution re-normalization constant.

class ChungEverhartParameters

Bases: TypedDict

W_f: Parameter
norm: Parameter
class ChungEverhart(parameters_values=None)

Bases: Model

Chung and Everhart model, defined in [CE74].

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 Energy']
populations: list[Literal['SE', 'EBE', 'IBE', 'all']] = ['SE']
considers_energy: bool = True
is_3d: bool = False
is_dielectrics_compatible: bool = False
model_config: ModelConfig = ModelConfig(emission_yield_files=(), emission_energy_files=('all',), emission_angle_files=())
initial_parameters: dict[str, dict[str, str | float | bool]] = {'W_f': {'description': 'Material work function.', 'lower_bound': 0.0, 'markdown': 'W_f', 'unit': 'eV', 'value': 8.0}, 'norm': {'description': 'Distribution re-normalization constant.', 'lower_bound': 0.0, 'markdown': 'k', 'unit': '1', 'value': 1.0}}
parameters: ChungEverhartParameters

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

get_data(population, emission_data_type, energy, theta, *args, **kwargs)

Return desired data according to current model.

Will return a dataframe only if the SEs energy distribution is asked.

Return type:

DataFrame | None

find_optimal_parameters(data_matrix, **kwargs)

Fit model parameters on measurements.

Return type:

None

_chung_everhart_norm(w_f)

Return norm value to have distribution maximum to unity.

Return type:

float

chung_everhart_func(ene, W_f, norm=None, **parameters)

Compute the energy distribution.

Return type:

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

_residue(w_f, ene, measured)

Compute array of residues between model and measurements.

Return type:

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