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.
Install with Julia's package manager:
pkg> add SecondQuantizedAlgebrausing 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.
Contributions and suggestions are welcome! Please open issues or pull requests on GitHub.
This project is licensed under the MIT License.