Table of Contents
Fetching ...

pyBoLaNO: A Python symbolic package for normal ordering involving bosonic ladder operators

Hendry M. Lim, Donny Dwiputra, M. Shoufie Ukhtary, Ahmad R. T. Nugraha

TL;DR

pyBoLaNO addresses the computational bottleneck of normal ordering bosonic ladder-operator expressions by implementing Blasiak's formulae in Python using SymPy, and extends this capability to normal-ordered commutators and Lindblad master-equation based expectation-value evolution. The package exposes a compact API (NO, NO_commutator, LME_expval_evo) and supports multipartite systems with multiprocessing, enabling scalable algebraic manipulation for open quantum systems. Demonstrations across representative quantum-oscillator models (e.g., SHO, Rayleigh oscillator, bipartite quantum battery, PT-symmetric trimer, nonreciprocal resonators) validate both correctness and applicability to current quantum optics research. Benchmark results indicate substantial speedups over the default SymPy operator-ordering routines, highlighting the practical impact of using explicit Blasiak-based formulas for large expressions. Overall, pyBoLaNO provides a practical, scalable tool for automated, high-precision symbolic normal ordering and Lindblad-evolution analyses in open quantum systems.

Abstract

We present pyBoLaNO, a Python symbolic package based on SymPy to quickly normal-order (Wick-order) any polynomial in bosonic ladder operators. By extension, this package offers the normal ordering of commutators of any two polynomials in bosonic ladder operators and the evaluation of the normal-ordered expectation value evolution in the Lindblad master equation framework for open quantum systems. The package also supports multipartite descriptions and multiprocessing. We describe the package's workflow, show examples of use, and discuss its computational performance. All codes and examples are available on our GitHub repository.

pyBoLaNO: A Python symbolic package for normal ordering involving bosonic ladder operators

TL;DR

pyBoLaNO addresses the computational bottleneck of normal ordering bosonic ladder-operator expressions by implementing Blasiak's formulae in Python using SymPy, and extends this capability to normal-ordered commutators and Lindblad master-equation based expectation-value evolution. The package exposes a compact API (NO, NO_commutator, LME_expval_evo) and supports multipartite systems with multiprocessing, enabling scalable algebraic manipulation for open quantum systems. Demonstrations across representative quantum-oscillator models (e.g., SHO, Rayleigh oscillator, bipartite quantum battery, PT-symmetric trimer, nonreciprocal resonators) validate both correctness and applicability to current quantum optics research. Benchmark results indicate substantial speedups over the default SymPy operator-ordering routines, highlighting the practical impact of using explicit Blasiak-based formulas for large expressions. Overall, pyBoLaNO provides a practical, scalable tool for automated, high-precision symbolic normal ordering and Lindblad-evolution analyses in open quantum systems.

Abstract

We present pyBoLaNO, a Python symbolic package based on SymPy to quickly normal-order (Wick-order) any polynomial in bosonic ladder operators. By extension, this package offers the normal ordering of commutators of any two polynomials in bosonic ladder operators and the evaluation of the normal-ordered expectation value evolution in the Lindblad master equation framework for open quantum systems. The package also supports multipartite descriptions and multiprocessing. We describe the package's workflow, show examples of use, and discuss its computational performance. All codes and examples are available on our GitHub repository.
Paper Structure (22 sections, 67 equations, 2 figures, 1 table)

This paper contains 22 sections, 67 equations, 2 figures, 1 table.

Figures (2)

  • Figure 1: Core functionalities of pyBoLaNO . The main functions are shown in blue, while the core utility functions are colored black. Meanwhile, the purple-colored [breaklines, bgcolor=gray!20, python3]pythonmp_config is a Python variable. Red connectors show symbolic workflows, while green connectors show visual workflows. Dashed rectangles indicate functionalities that are not accessible by the user.
  • Figure 2: Benchmarks of pyBoLaNO's normal ordering algorithm against sympy.physics.operatorordering.normal_ordererd_form involving random ladder operator monomials. Benchmark (a): execution time of the normal ordering of $1000$ monomials containing $10$ ladder operators of $2$ subsystems. Benchmark (b): Average of the ratio between the average execution time of the normal ordering of $1000$ monomials by SymPy and pyBoLaNO, for varying numbers of ladder operators and subsystems. Note: these results may not be exactly reproducible due to the random nature of the benchmarks.