Skip to content

qojulia/SecondQuantizedAlgebra.jl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

88 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SecondQuantizedAlgebra

docs codecov Benchmarks

Code Style: Blue 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.