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
- Clone the repository
git clone git@github.com:AdrienPlacais/EEmiLib.git - Install in editable mode with dependencies
cd EEmiLibpip install -e .[test]- Depending on your shell, you may need to use quotes:
pip install -e "[.test]"
- Depending on your shell, you may need to use quotes:
- Run the tests to ensure everything is working:
pytest -m "not implementation"
Usage
Graphical User Interface
To start the GUI:
eemilib-gui
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,
)
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
-
PyPIrelease. - Different line styles/colors for different populations.
-
Exportbuttons- Tabulated model data.
- Model parameters value (makes sense along with an
Importbutton).
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b7e7d4f166e7b26f59f74798f590d10b5cbf45dbbf8eff03dbc48a37d2c8d388
|
|
| MD5 |
c9eac04c0b29a03c2aa458603e62ab87
|
|
| BLAKE2b-256 |
48720c19c8621705646f6dbc67777064bcaa4352b2878199761c90af660dd375
|
Provenance
The following attestation bundles were made for eemilib-0.0.14.tar.gz:
Publisher:
release.yml on AdrienPlacais/EEmiLib
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
eemilib-0.0.14.tar.gz -
Subject digest:
b7e7d4f166e7b26f59f74798f590d10b5cbf45dbbf8eff03dbc48a37d2c8d388 - Sigstore transparency entry: 630162559
- Sigstore integration time:
-
Permalink:
AdrienPlacais/EEmiLib@79bceef45f2e85b27939cfc1f8996f7dd7bcc4a0 -
Branch / Tag:
refs/tags/v0.0.14 - Owner: https://github.com/AdrienPlacais
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@79bceef45f2e85b27939cfc1f8996f7dd7bcc4a0 -
Trigger Event:
push
-
Statement type:
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a0b31a07701ea7cf4ef74c0dbbb971ad18486ba44a64eab6b6e1ad58fb4f2ce1
|
|
| MD5 |
941333ba161e70ed80a83b95876aad87
|
|
| BLAKE2b-256 |
31fa7943ce4cc8511c393f7e331c2ec2dcdb8a6273f7d310f99f7bb341954078
|
Provenance
The following attestation bundles were made for eemilib-0.0.14-py3-none-any.whl:
Publisher:
release.yml on AdrienPlacais/EEmiLib
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
eemilib-0.0.14-py3-none-any.whl -
Subject digest:
a0b31a07701ea7cf4ef74c0dbbb971ad18486ba44a64eab6b6e1ad58fb4f2ce1 - Sigstore transparency entry: 630162563
- Sigstore integration time:
-
Permalink:
AdrienPlacais/EEmiLib@79bceef45f2e85b27939cfc1f8996f7dd7bcc4a0 -
Branch / Tag:
refs/tags/v0.0.14 - Owner: https://github.com/AdrienPlacais
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@79bceef45f2e85b27939cfc1f8996f7dd7bcc4a0 -
Trigger Event:
push
-
Statement type: