LIBSkit
A software tool for the simulation and analysis of laser-induced breakdown spectroscopy (LIBS) spectra.
The simulation core is written in C++ with Python bindings via pybind11. Atomic databases (NIST ASD lines, ionization energies, energy levels) are bundled with the package and loaded automatically on import.
Quick Start
import libskit
import numpy as np
# Create an LTE plasma model
model = libskit.LTEModel(
{"Si": 0.72, "Na": 0.09, "Ca": 0.19}, # %
temperature=17300.0, # K
electron_density=2.53e23, # m^-3
length=2.4e-3 # m
)
# Define an instrument and calculate a spectrum
wavelengths = np.arange(250, 900, 0.05) # nm
instrument = libskit.GenericSpectrometer(0.05, 0.001) # nm
spectrum = instrument.calculate_spectrum(wavelengths, model)
Installation
This package is only available as a source build — it is not published on PyPI or any package registry.
Source builds need a Clang toolchain with the Enzyme automatic-differentiation plugin.
- Linux:
sudo apt install cmake ninja-build git clang llvm-dev - macOS: install LLVM/Clang and CMake, then build Enzyme against that LLVM
- Windows: use an LLVM/Clang toolchain with Enzyme available
Then:
git clone <repository-url>
cd libskit
python -m venv .venv
source .venv/bin/activate # Linux/macOS
# .venv\Scripts\activate # Windows
pip install -r requirements.txt
./scripts/dev.sh
This builds the Enzyme plugin and installs the package in one step.
Note: Eigen3 is downloaded automatically during build if not found on your system.
Prerequisites (for development)
To build the code from source you need:
- Clang-compatible C++20 compiler
- CMake 3.15+
- Python 3.8+
Tutorials
The notebooks/ directory in this repository contains a curated set of tutorials (tutorial_1_… through tutorial_7_…).
Contributors
Christoph H. Egerland
License
MIT
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
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 libskit-0.2.tar.gz.
File metadata
- Download URL: libskit-0.2.tar.gz
- Upload date:
- Size: 8.7 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dad0759904b586746bfcf36a4c28875cc0d309b1fa5f921dc61e866cd8a07088
|
|
| MD5 |
1213cb457fcfed986d194529be02ce6d
|
|
| BLAKE2b-256 |
60cc44c90fc80bc80ec38d743bec49adac724eaa804f446188d892e7ec2e0370
|
Provenance
The following attestation bundles were made for libskit-0.2.tar.gz:
Publisher:
release.yml on DLR-WR/libskit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
libskit-0.2.tar.gz -
Subject digest:
dad0759904b586746bfcf36a4c28875cc0d309b1fa5f921dc61e866cd8a07088 - Sigstore transparency entry: 2369050345
- Sigstore integration time:
-
Permalink:
DLR-WR/libskit@d9381bf9edda0f9df71d9728dd1ec10b1b2e1989 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/DLR-WR
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@d9381bf9edda0f9df71d9728dd1ec10b1b2e1989 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file libskit-0.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: libskit-0.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 7.7 MB
- Tags: CPython 3.13, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1f94d446c2c5d72da6b2a1eb13dc28b24c2336a37ba1c0ad5158a990745ee52a
|
|
| MD5 |
8c7e6d5b6248b868f806246bb1fba404
|
|
| BLAKE2b-256 |
dea95349d33804be1d3ead215587a82844b4467fc794fe61f224320c4e1a3120
|
Provenance
The following attestation bundles were made for libskit-0.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:
Publisher:
release.yml on DLR-WR/libskit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
libskit-0.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl -
Subject digest:
1f94d446c2c5d72da6b2a1eb13dc28b24c2336a37ba1c0ad5158a990745ee52a - Sigstore transparency entry: 2369050412
- Sigstore integration time:
-
Permalink:
DLR-WR/libskit@d9381bf9edda0f9df71d9728dd1ec10b1b2e1989 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/DLR-WR
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@d9381bf9edda0f9df71d9728dd1ec10b1b2e1989 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file libskit-0.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: libskit-0.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 7.7 MB
- Tags: CPython 3.12, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5146ec6eaafaa8becc307052c74ca29c7e5b4bef7bf4bda5c0ef7ef26da99395
|
|
| MD5 |
8f754d1383184862b9ff7c31809c86b4
|
|
| BLAKE2b-256 |
820d4c4b47e1469211ddfeebdaf085ce49a226e0f25b2ee23b3707a7a97faabb
|
Provenance
The following attestation bundles were made for libskit-0.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:
Publisher:
release.yml on DLR-WR/libskit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
libskit-0.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl -
Subject digest:
5146ec6eaafaa8becc307052c74ca29c7e5b4bef7bf4bda5c0ef7ef26da99395 - Sigstore transparency entry: 2369050482
- Sigstore integration time:
-
Permalink:
DLR-WR/libskit@d9381bf9edda0f9df71d9728dd1ec10b1b2e1989 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/DLR-WR
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@d9381bf9edda0f9df71d9728dd1ec10b1b2e1989 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file libskit-0.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: libskit-0.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 7.6 MB
- Tags: CPython 3.11, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a60b9fe4e831d1f76432195c3e2e82c545cd2d92b5ac1c9e77cff8d8593c974b
|
|
| MD5 |
9cf709ffe706ed7108cfabe4f5624ee8
|
|
| BLAKE2b-256 |
9fa5d6243eef5941fe7693dcd8b71a287af3e5cd2a53b7967c89a9d5a64999b1
|
Provenance
The following attestation bundles were made for libskit-0.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:
Publisher:
release.yml on DLR-WR/libskit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
libskit-0.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl -
Subject digest:
a60b9fe4e831d1f76432195c3e2e82c545cd2d92b5ac1c9e77cff8d8593c974b - Sigstore transparency entry: 2369050561
- Sigstore integration time:
-
Permalink:
DLR-WR/libskit@d9381bf9edda0f9df71d9728dd1ec10b1b2e1989 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/DLR-WR
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@d9381bf9edda0f9df71d9728dd1ec10b1b2e1989 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file libskit-0.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: libskit-0.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 7.6 MB
- Tags: CPython 3.10, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
63001f8dea0703ff9a7573cddcd6c3cd2a34340409f5ca5d8e90a908671751ca
|
|
| MD5 |
383e3a5d84f9df6e0ac6b556d68efdc3
|
|
| BLAKE2b-256 |
db40e209c5fb948e0af8f179577bc24a7af49eaa11c977145c5187e613d497db
|
Provenance
The following attestation bundles were made for libskit-0.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:
Publisher:
release.yml on DLR-WR/libskit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
libskit-0.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl -
Subject digest:
63001f8dea0703ff9a7573cddcd6c3cd2a34340409f5ca5d8e90a908671751ca - Sigstore transparency entry: 2369050686
- Sigstore integration time:
-
Permalink:
DLR-WR/libskit@d9381bf9edda0f9df71d9728dd1ec10b1b2e1989 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/DLR-WR
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@d9381bf9edda0f9df71d9728dd1ec10b1b2e1989 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file libskit-0.2-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: libskit-0.2-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 9.5 MB
- Tags: CPython 3.9, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
15c80b72290d0531646e7243efa659d6eb9e6c0628019a47747138e9816800de
|
|
| MD5 |
6962d759084fe4795a892f4176bec1b2
|
|
| BLAKE2b-256 |
32ce8a987dd5c11f72ee3623e44e2fe559c0d9abbcdc8ad75c5b99a722b3e1b3
|
Provenance
The following attestation bundles were made for libskit-0.2-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:
Publisher:
release.yml on DLR-WR/libskit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
libskit-0.2-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl -
Subject digest:
15c80b72290d0531646e7243efa659d6eb9e6c0628019a47747138e9816800de - Sigstore transparency entry: 2369050623
- Sigstore integration time:
-
Permalink:
DLR-WR/libskit@d9381bf9edda0f9df71d9728dd1ec10b1b2e1989 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/DLR-WR
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@d9381bf9edda0f9df71d9728dd1ec10b1b2e1989 -
Trigger Event:
workflow_dispatch
-
Statement type: