SecondQuantizedAlgebra
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 SecondQuantizedAlgebraUsage
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.