Skip to content

ntezak/QuantumTensors.jl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

QuantumTensors

Build Status

This package contains special methods for efficiently representing sparse local quantum operators that act on a tensor product space. The most important methods are:

using QuantumTensors

# Create a creation operator with N basis states
create(N)

# Create an annihilation operator with N basis states
destroy(N)

# Create an angular momentum J-z operator
jz(N)

# Create a truncated angular momentum J_z operator with only K basis states
jz(J, K)

# Create an angular momentum J_+ operator (with optional basis truncation)
jplus(J, K)

# Create an angular momentum J_- operator (with optional basis truncation)
jminus(J, K)


# products within a local degree of freedom
jz(J,K) * jplus(J,K)

# form a tensor product between different degrees of freedom
tensor(jz(J), create(N))


# in-place apply a single tensor product operator to a state
# (needs to be an array with as many dimensions as the tensor product factors)
A_mul_B!(λ, A, Ψ, μ, Φ) ==>  Φ -> μ Φ + λ A.Ψ


# in-place apply a sequence single tensor product operators to a state
# with certain coefficients (supports CSR type sparse matrices as well)
apply_serial!([λ1,λ2], [A1,A2], Ψ, μ, Φ) ==>  Φ -> μ Φ + λ1 A1.Ψ + λ2 A2.Ψ

Documentation will fleshed out more soon. See the tests for some further usage examples.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published