A Julia package for symbolic manipulation and algebraic computation with second quantized operators. SecondQuantizedAlgebra.jl provides a flexible framework for working with creation and annihilation operators, commutation relations, and algebraic expressions common in quantum many-body theory and quantum optics.
The package provides:
- Symbolic representation of bosonic fock creation and annihilation operators
- Automatic (anti-)commutation relation handling
- Algebraic simplification and normal ordering
- Support for atom and spin operators
- Extensible for custom operator types
The code was refactored out of QuantumCumulants.jl.
Install with Julia's package manager:
pkg> add SecondQuantizedAlgebra
using SecondQuantizedAlgebra
using SymbolicUtils
ha = NLevelSpace(:atoms,2)
hc = FockSpace(:cavity)
h = hc ⊗ ha
@qnumbers b::Destroy(h)
σ(i,j) = Transition(h,:σ,i,j)
@cnumbers 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.