Skip to main content

Fit various Electron EMIssion models on experimental data.

Project description

EEmiLib

EEmiLib (Electron EMIssion Library) provides several electron emission models and a simple interface to fit them to experimental data. It includes both a graphical user interface (GUI) for ease of use and a Python API for advanced users.

The library focuses on electron emission models relevant to multipactor simulations, i.e. for impinging energies ranging from a few eV to several hundred eV.

This project is still under active development. I maintain it in my free time, but I'll do my best to answer any questions you may have.

Features

  • Multiple electron emission models
  • Graphical interface for quick model fitting
  • Python API for scripting and automation

Installation

  1. Clone the repository git clone git@github.com:AdrienPlacais/EEmiLib.git
  2. Install in editable mode with dependencies cd EEmiLib pip install -e .[test]
    • Depending on your shell, you may need to use quotes: pip install -e "[.test]"
  3. Run the tests to ensure everything is working: pytest -m "not implementation"

Usage

Graphical User Interface

To start the GUI: eemilib-gui

GUI screenshot

Python API

import numpy as np
from eemilib.emission_data import DataMatrix
from eemilib.loader import PandasLoader
from eemilib.model import Vaughan
from eemilib.plotter import PandasPlotter
from eemilib import teey_cu


filepath = [teey_cu / "measured_TEEY_Cu_1_eroded.csv"]

# Object holding filepaths
data_matrix = DataMatrix()
# Indicate that this is TEEY file
data_matrix.set_files(
    filepath, population="all", emission_data_type="Emission Yield"
)
data_matrix.load_data(PandasLoader())

# Plot experimental data
plotter = PandasPlotter()
axes = data_matrix.plot(
    plotter, population="all", emission_data_type="Emission Yield"
)

# Select model and fit
model = Vaughan()
model.find_optimal_parameters(data_matrix)

# Plot fitted data
model.plot(
    plotter,
    population="all",
    emission_data_type="Emission Yield",
    energies=np.linspace(0, 1000, 1001),
    angles=np.linspace(0, 60, 4),
    axes=axes,
)

results screenshot

Roadmap/To-Do

  • Document abbreviations
  • Handle experimental data with error bars
  • Add control over interpolation of loaded experimental data
  • Optional smoothing of measured data
  • In GUI, display additional model information:
    • Quantitative criteria to assess model quality (e.g., Nicolas Fil's criterion)
    • Derived quantities such as crossover energies, maximum TEEY, etc.
  • Models:
    • Extend Chung–Everhart fitting to multiple data files
    • Dionne
    • Dionne 3D
    • Dekker
    • Furman and Pivi
  • PyPI release.
  • Different line styles/colors for different populations.
  • Export buttons
    • Tabulated model data.
    • Model parameters value (makes sense along with an Import button).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

eemilib-0.0.14.tar.gz (1.6 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

eemilib-0.0.14-py3-none-any.whl (113.3 kB view details)

Uploaded Python 3

File details

Details for the file eemilib-0.0.14.tar.gz.

File metadata

  • Download URL: eemilib-0.0.14.tar.gz
  • Upload date:
  • Size: 1.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for eemilib-0.0.14.tar.gz
Algorithm Hash digest
SHA256 b7e7d4f166e7b26f59f74798f590d10b5cbf45dbbf8eff03dbc48a37d2c8d388
MD5 c9eac04c0b29a03c2aa458603e62ab87
BLAKE2b-256 48720c19c8621705646f6dbc67777064bcaa4352b2878199761c90af660dd375

See more details on using hashes here.

Provenance

The following attestation bundles were made for eemilib-0.0.14.tar.gz:

Publisher: release.yml on AdrienPlacais/EEmiLib

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file eemilib-0.0.14-py3-none-any.whl.

File metadata

  • Download URL: eemilib-0.0.14-py3-none-any.whl
  • Upload date:
  • Size: 113.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for eemilib-0.0.14-py3-none-any.whl
Algorithm Hash digest
SHA256 a0b31a07701ea7cf4ef74c0dbbb971ad18486ba44a64eab6b6e1ad58fb4f2ce1
MD5 941333ba161e70ed80a83b95876aad87
BLAKE2b-256 31fa7943ce4cc8511c393f7e331c2ec2dcdb8a6273f7d310f99f7bb341954078

See more details on using hashes here.

Provenance

The following attestation bundles were made for eemilib-0.0.14-py3-none-any.whl:

Publisher: release.yml on AdrienPlacais/EEmiLib

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page