SecondQuantizedAlgebra

codecov Benchmarks

Aqua QA jet

A Julia package for symbolic manipulation and algebraic computation with second-quantized operators. SecondQuantizedAlgebra.jl provides a flexible framework for working with quantum operators, their commutation relations, and algebraic expressions common in quantum many-body theory and quantum optics.

The package provides:

  • Bosonic, N-level, Pauli, spin, and phase-space operators in composite Hilbert spaces
  • Automatic commutation relations and canonical-form arithmetic
  • Normal ordering, simplification, and completeness expansion
  • Symbolic summations with automatic diagonal splitting
  • Averaging and numeric conversion via QuantumOpticsBase
  • Extensible for custom operator types

The code was refactored out of QuantumCumulants.jl.

Installation

Install with Julia's package manager:

pkg> add SecondQuantizedAlgebra

Usage

using SecondQuantizedAlgebra

hc = FockSpace(:cavity)
ha = NLevelSpace(:atoms, 2)
h = hc ⊗ ha

@qnumbers b::Destroy(h, 1)
σ(i, j) = Transition(h, :σ, i, j, 2)

@variables g Δ

H = Δ * b' * b + g * (b * σ(2, 1) + b' * σ(1, 2))

@show b * b'
@show σ(2, 1) * σ(1, 1)

simplify(commutator(H, b))

See the documentation for more details and advanced usage.

Contributing

Contributions and suggestions are welcome! Please open issues or pull requests on GitHub.

License

This project is licensed under the MIT License.