Skip to main content

Molecular Laser-Cooling and Spectra Simulation

Project description

MoleCool

MoleCool logo

MoleCool is a Python library for numerical modeling of light–matter interactions,
with a focus on laser cooling of molecules — from simple few-level systems and diatomics
to polyatomics and even radioactive species.

📘 Full DocumentationPyPIGitHub


✨ Overview

MoleCool enables you to simulate, analyze, and visualize the dynamics of laser–molecule interactions
for designing and optimizing experimental setups in state-of-the-art cooling and trapping experiments.

Key Features

  • Flexible dynamics solvers — rate equations and Optical Bloch equations (OBEs),
    including effects of external magnetic fields.
    MoleCool reads predefined molecular constants (dipole matrix elements, hyperfine frequencies,
    g-factors, etc.) from JSON files.

  • Interactive level-scheme handling — intuitive tools for exploring and visualizing
    electronic, vibrational, and rotational structures.

  • Laser cooling force profiles — fast evaluation across high-dimensional parameter spaces
    for optimization of cooling configurations.

  • Monte Carlo trajectory simulations — track many particles through laser fields
    using pre-evaluated force profiles for statistical reliability.

  • Spectra analysis module — compute, fit, and interpret molecular spectra via
    effective Hamiltonians; extract constants for use in dynamics simulations.

Target Audience

MoleCool is intended for researchers and physicists working in
atomic, molecular, and optical (AMO) physics, particularly in:

  • Modeling laser–molecule interactions
  • Optimizing cooling and trapping experiments
  • Interpreting or predicting spectroscopic measurements

⚙️ Installation

We recommend installing MoleCool in a dedicated virtual environment
(using either virtualenv or conda) to avoid dependency conflicts. See the Installation Guide for more details.

Requires: Python ≥ 3.8 (Python ≤ 3.10 recommended)

Using pip (stable release)

pip install MoleCool

Using conda (via conda-forge)

conda install -c conda-forge MoleCool

Development version (latest from GitHub)

git clone https://github.com/LangenGroup/MoleCool
cd MoleCool
pip install .

🧪 Verifying the Installation

You can verify a correct installation by running the built-in example suite:

python -m MoleCool.run_examples

Add the -h flag for a help message and a list of all available example scripts.


🚀 Quickstart Example

Below is a minimal working example demonstrating MoleCool’s basic workflow:

from MoleCool import System

# Initialize a molecular system (e.g. 138BaF)
system = System(load_constants='138BaF')

# Build level scheme and remove loss channels
system.levels.add_all_levels(v_max=0)
system.levels.X.del_lossstate()

# Define a multi-sideband laser configuration
system.lasers.add_sidebands(
    lamb        = 859.83e-9,
    P           = 20e-3,
    offset_freq = 19e6,
    mod_freq    = 39.33e6,
    sidebands   = [-2, -1, 1, 2],
    ratios      = [0.8, 1, 1, 0.8],
)

# Turn on a magnetic field
system.Bfield.turnon(strength=5e-4, direction=[1, 1, 1])

# Run dynamics simulations
system.calc_OBEs(t_int=8e-6, dt=1e-9, magn_remixing=True)
system.calc_rateeqs(t_int=8e-6, magn_remixing=True, position_dep=True)

# Visualize populations
system.plot_N()

For detailed usage, see the
👉 User Guide
and Examples.


⚡ Performance and Parallelization

  • Dynamics equations are solved using scipy.integrate.solve_ivp and compiled with Numba’s just-in-time (JIT) compiler for near-C speed.
  • Independent simulations are automatically parallelized across multiple cores
    using Python’s multiprocessing module — ideal for large parameter sweeps
    and Monte Carlo trajectory studies.

🤝 Contributing

Contributions are welcome! To develop MoleCool locally:

git clone https://github.com/LangenGroup/MoleCool
cd MoleCool
pip install -e .[dev,doc]

The -e flag enables editable mode, allowing immediate testing of code changes.
See the Installation Guide for more details.

⚠️ Important: Do not import the package from its parent folder if the directory name is also MoleCool, as this can confuse Python’s import system.


📚 Documentation

Full documentation, tutorials, and API reference are hosted on ReadTheDocs:

👉 https://langengroup.github.io/MoleCool/


🧾 Citation

If you use MoleCool in your research, please cite the corresponding paper:
arXiv


🧠 License

© Felix Kogel — released under the MIT License.
See LICENSE for details.


👩‍🔬 Developed by Felix Kogel

For questions or feedback, open an issue on GitHub.


MoleCoolA modular Python framework for simulating laser cooling of molecules.

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

molecool-3.7.0.post0.tar.gz (869.2 kB view details)

Uploaded Source

Built Distribution

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

molecool-3.7.0.post0-py3-none-any.whl (142.8 kB view details)

Uploaded Python 3

File details

Details for the file molecool-3.7.0.post0.tar.gz.

File metadata

  • Download URL: molecool-3.7.0.post0.tar.gz
  • Upload date:
  • Size: 869.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.6

File hashes

Hashes for molecool-3.7.0.post0.tar.gz
Algorithm Hash digest
SHA256 a4fbe026c067768d5b3e7e3bd4e79d0b26e6b19bde6df3077af7c5d8686948bb
MD5 13b20a1ba1dea1d0b398c8ae32fc5878
BLAKE2b-256 a3c17ce75da6bbbea4fdcba779286d9bce2e662c9acc96c02b16a825a75f793e

See more details on using hashes here.

File details

Details for the file molecool-3.7.0.post0-py3-none-any.whl.

File metadata

  • Download URL: molecool-3.7.0.post0-py3-none-any.whl
  • Upload date:
  • Size: 142.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.6

File hashes

Hashes for molecool-3.7.0.post0-py3-none-any.whl
Algorithm Hash digest
SHA256 e4712f4a8460e0a93b000946ddb2a3723f4a421f4bd88f5f865768bebeefa793
MD5 72f3508747b6a422dbdb5e456767a6f7
BLAKE2b-256 ccdb93894c81b73b01ae6c9b3ddef08bfdf76d48ab161df4be3451f265ef1af4

See more details on using hashes here.

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