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

For citing this package: arXiv


✨ 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://molecool-py.readthedocs.io/


🧾 Citation and Further Reading

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

Further background on molecular level structure, spectroscopy, and laser cooling, as well as the application of MoleCool to achieve isotopologue-selective laser cooling of complex molecules via serrodyne modulation, is presented in the PhD thesis

Felix Kogel – Laser Cooling of Molecules for Precision Measurements of Parity Violation

This work introduces a novel strategy for designing optimized optical spectra to laser cool heavy, low-abundant barium monofluoride (BaF) molecules, whose additional nuclear spin creates an exceptionally intricate level structure.


🧠 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.3.tar.gz (870.3 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.3-py3-none-any.whl (143.0 kB view details)

Uploaded Python 3

File details

Details for the file molecool-3.7.3.tar.gz.

File metadata

  • Download URL: molecool-3.7.3.tar.gz
  • Upload date:
  • Size: 870.3 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.3.tar.gz
Algorithm Hash digest
SHA256 ca84d3a1ed6dd1f911785f9bbbcfd7ff79997c96b649fb680d9fbefec5383d03
MD5 dc67a66af840e06dd872d923050971be
BLAKE2b-256 5a9a48abc93797151d56cf9945da8e412321b389458a780d8e6a2391e7bbe79d

See more details on using hashes here.

File details

Details for the file molecool-3.7.3-py3-none-any.whl.

File metadata

  • Download URL: molecool-3.7.3-py3-none-any.whl
  • Upload date:
  • Size: 143.0 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.3-py3-none-any.whl
Algorithm Hash digest
SHA256 2ef800d99349313ee1ed4644c108f27e76dc8badc9b4eba0fd984a97179428a7
MD5 1b545f3611386a1278172dd6ca75d4bb
BLAKE2b-256 5e27756a582daf5d904cb7414009062449b897b75a77065f80021d2ca190467d

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