Molecular Laser-Cooling and Spectra Simulation
Project description
MoleCool
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 Documentation • PyPI • GitHub
✨ 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_ivpand compiled with Numba’s just-in-time (JIT) compiler for near-C speed. - Independent simulations are automatically parallelized across multiple cores
using Python’smultiprocessingmodule — 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:
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.
MoleCool — A modular Python framework for simulating laser cooling of molecules.
Project details
Release history Release notifications | RSS feed
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 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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ca84d3a1ed6dd1f911785f9bbbcfd7ff79997c96b649fb680d9fbefec5383d03
|
|
| MD5 |
dc67a66af840e06dd872d923050971be
|
|
| BLAKE2b-256 |
5a9a48abc93797151d56cf9945da8e412321b389458a780d8e6a2391e7bbe79d
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2ef800d99349313ee1ed4644c108f27e76dc8badc9b4eba0fd984a97179428a7
|
|
| MD5 |
1b545f3611386a1278172dd6ca75d4bb
|
|
| BLAKE2b-256 |
5e27756a582daf5d904cb7414009062449b897b75a77065f80021d2ca190467d
|