Skip to main content

LIBSkit

CI Documentation Status PyPI

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

libskit-0.2.tar.gz (8.7 MB view details)

Uploaded Source

Built Distributions

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

libskit-0.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (7.7 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

libskit-0.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (7.7 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

libskit-0.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (7.6 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

libskit-0.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (7.6 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

libskit-0.2-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (9.5 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

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

Hashes for libskit-0.2.tar.gz
Algorithm Hash digest
SHA256 dad0759904b586746bfcf36a4c28875cc0d309b1fa5f921dc61e866cd8a07088
MD5 1213cb457fcfed986d194529be02ce6d
BLAKE2b-256 60cc44c90fc80bc80ec38d743bec49adac724eaa804f446188d892e7ec2e0370

See more details on using hashes here.

Provenance

The following attestation bundles were made for libskit-0.2.tar.gz:

Publisher: release.yml on DLR-WR/libskit

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

File details

Details for the file libskit-0.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for libskit-0.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1f94d446c2c5d72da6b2a1eb13dc28b24c2336a37ba1c0ad5158a990745ee52a
MD5 8c7e6d5b6248b868f806246bb1fba404
BLAKE2b-256 dea95349d33804be1d3ead215587a82844b4467fc794fe61f224320c4e1a3120

See more details on using hashes here.

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

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

File details

Details for the file libskit-0.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for libskit-0.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5146ec6eaafaa8becc307052c74ca29c7e5b4bef7bf4bda5c0ef7ef26da99395
MD5 8f754d1383184862b9ff7c31809c86b4
BLAKE2b-256 820d4c4b47e1469211ddfeebdaf085ce49a226e0f25b2ee23b3707a7a97faabb

See more details on using hashes here.

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

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

File details

Details for the file libskit-0.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for libskit-0.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a60b9fe4e831d1f76432195c3e2e82c545cd2d92b5ac1c9e77cff8d8593c974b
MD5 9cf709ffe706ed7108cfabe4f5624ee8
BLAKE2b-256 9fa5d6243eef5941fe7693dcd8b71a287af3e5cd2a53b7967c89a9d5a64999b1

See more details on using hashes here.

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

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

File details

Details for the file libskit-0.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for libskit-0.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 63001f8dea0703ff9a7573cddcd6c3cd2a34340409f5ca5d8e90a908671751ca
MD5 383e3a5d84f9df6e0ac6b556d68efdc3
BLAKE2b-256 db40e209c5fb948e0af8f179577bc24a7af49eaa11c977145c5187e613d497db

See more details on using hashes here.

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

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

File details

Details for the file libskit-0.2-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for libskit-0.2-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 15c80b72290d0531646e7243efa659d6eb9e6c0628019a47747138e9816800de
MD5 6962d759084fe4795a892f4176bec1b2
BLAKE2b-256 32ce8a987dd5c11f72ee3623e44e2fe559c0d9abbcdc8ad75c5b99a722b3e1b3

See more details on using hashes here.

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

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

Release history Release notifications | RSS feed

This release

0.2 This release

6 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page