Skip to content

Commit c984f95

Browse files
Change MultiSiteOperator function name to multisite_operator (#394)
Co-authored-by: Yi-Te Huang <[email protected]>
1 parent 2b6e0d6 commit c984f95

File tree

6 files changed

+28
-22
lines changed

6 files changed

+28
-22
lines changed

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
99

1010
- Rename `sparse_to_dense` as `to_dense` and `dense_to_sparse` as `to_sparse`. ([#392])
1111
- Fix erroneous definition of the stochastic term in `smesolve`. ([#393])
12+
- Change name of `MultiSiteOperator` to `multisite_operator`. ([#394])
1213

1314
## [v0.26.0]
1415
Release date: 2025-02-09
@@ -120,3 +121,4 @@ Release date: 2024-11-13
120121
[#389]: https://github.com/qutip/QuantumToolbox.jl/issues/389
121122
[#392]: https://github.com/qutip/QuantumToolbox.jl/issues/392
122123
[#393]: https://github.com/qutip/QuantumToolbox.jl/issues/393
124+
[#394]: https://github.com/qutip/QuantumToolbox.jl/issues/394

docs/src/resources/api.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -260,7 +260,7 @@ fidelity
260260

261261
```@docs
262262
Lattice
263-
MultiSiteOperator
263+
multisite_operator
264264
DissipativeIsing
265265
```
266266

docs/src/users_guide/cluster.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -99,9 +99,9 @@ hy = 0.0
9999
hz = 0.0
100100
γ = 1
101101

102-
Sx = mapreduce(i -> MultiSiteOperator(latt, i=>sigmax()), +, 1:latt.N)
103-
Sy = mapreduce(i -> MultiSiteOperator(latt, i=>sigmay()), +, 1:latt.N)
104-
Sz = mapreduce(i -> MultiSiteOperator(latt, i=>sigmaz()), +, 1:latt.N)
102+
Sx = mapreduce(i -> multisite_operator(latt, i=>sigmax()), +, 1:latt.N)
103+
Sy = mapreduce(i -> multisite_operator(latt, i=>sigmay()), +, 1:latt.N)
104+
Sz = mapreduce(i -> multisite_operator(latt, i=>sigmaz()), +, 1:latt.N)
105105

106106
H, c_ops = DissipativeIsing(Jx, Jy, Jz, hx, hy, hz, γ, latt; boundary_condition = Val(:periodic_bc), order = 1)
107107
e_ops = [Sx, Sy, Sz]

src/deprecated.jl

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,3 +93,7 @@ correlation_2op_1t(
9393
} = error(
9494
"The parameter order of `correlation_2op_1t` has been changed, please use `?correlation_2op_1t` to check the updated docstring.",
9595
)
96+
97+
MultiSiteOperator(dims::Union{AbstractVector,Tuple}, pairs::Pair{<:Integer,<:QuantumObject}...) = error(
98+
"`MultiSiteOperator` has been deprecated and will be removed in next major release, please use `multisite_operator` instead.",
99+
)

src/spin_lattice.jl

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
export Lattice, MultiSiteOperator, DissipativeIsing
1+
export Lattice, multisite_operator, DissipativeIsing
22

33
@doc raw"""
44
Lattice
@@ -15,7 +15,7 @@ end
1515

1616
#Definition of many-body operators
1717
@doc raw"""
18-
MultiSiteOperator(dims::Union{AbstractVector, Tuple}, pairs::Pair{<:Integer,<:QuantumObject}...)
18+
multisite_operator(dims::Union{AbstractVector, Tuple}, pairs::Pair{<:Integer,<:QuantumObject}...)
1919
2020
A Julia function for generating a multi-site operator ``\\hat{O} = \\hat{O}_i \\hat{O}_j \\cdots \\hat{O}_k``. The function takes a vector of dimensions `dims` and a list of pairs `pairs` where the first element of the pair is the site index and the second element is the operator acting on that site.
2121
@@ -28,7 +28,7 @@ A Julia function for generating a multi-site operator ``\\hat{O} = \\hat{O}_i \\
2828
2929
# Example
3030
```jldoctest
31-
julia> op = MultiSiteOperator(Val(8), 5=>sigmax(), 7=>sigmaz());
31+
julia> op = multisite_operator(Val(8), 5=>sigmax(), 7=>sigmaz());
3232
3333
julia> op.dims
3434
8-element SVector{8, Int64} with indices SOneTo(8):
@@ -42,7 +42,7 @@ julia> op.dims
4242
2
4343
```
4444
"""
45-
function MultiSiteOperator(dims::Union{AbstractVector,Tuple}, pairs::Pair{<:Integer,<:QuantumObject}...)
45+
function multisite_operator(dims::Union{AbstractVector,Tuple}, pairs::Pair{<:Integer,<:QuantumObject}...)
4646
sites_unsorted = collect(first.(pairs))
4747
idxs = sortperm(sites_unsorted)
4848
_sites = sites_unsorted[idxs]
@@ -61,13 +61,13 @@ function MultiSiteOperator(dims::Union{AbstractVector,Tuple}, pairs::Pair{<:Inte
6161

6262
return QuantumObject(data; type = Operator, dims = dims)
6363
end
64-
function MultiSiteOperator(N::Union{Integer,Val}, pairs::Pair{<:Integer,<:QuantumObject}...)
64+
function multisite_operator(N::Union{Integer,Val}, pairs::Pair{<:Integer,<:QuantumObject}...)
6565
dims = ntuple(j -> 2, makeVal(N))
6666

67-
return MultiSiteOperator(dims, pairs...)
67+
return multisite_operator(dims, pairs...)
6868
end
69-
function MultiSiteOperator(latt::Lattice, pairs::Pair{<:Integer,<:QuantumObject}...)
70-
return MultiSiteOperator(makeVal(latt.N), pairs...)
69+
function multisite_operator(latt::Lattice, pairs::Pair{<:Integer,<:QuantumObject}...)
70+
return multisite_operator(makeVal(latt.N), pairs...)
7171
end
7272

7373
#Definition of nearest-neighbour sites on lattice
@@ -127,25 +127,25 @@ function DissipativeIsing(
127127
boundary_condition::Union{Symbol,Val} = Val(:periodic_bc),
128128
order::Integer = 1,
129129
)
130-
S = [MultiSiteOperator(latt, i => sigmam()) for i in 1:latt.N]
130+
S = [multisite_operator(latt, i => sigmam()) for i in 1:latt.N]
131131
c_ops = sqrt(γ) .* S
132132

133133
op_sum(S, i::CartesianIndex) =
134134
S[latt.lin_idx[i]] * sum(S[latt.lin_idx[nearest_neighbor(i, latt, makeVal(boundary_condition); order = order)]])
135135

136136
H = 0
137137
if (Jx != 0 || hx != 0)
138-
S = [MultiSiteOperator(latt, i => sigmax()) for i in 1:latt.N]
138+
S = [multisite_operator(latt, i => sigmax()) for i in 1:latt.N]
139139
H += Jx / 2 * mapreduce(i -> op_sum(S, i), +, latt.car_idx) #/2 because we are double counting
140140
H += hx * sum(S)
141141
end
142142
if (Jy != 0 || hy != 0)
143-
S = [MultiSiteOperator(latt, i => sigmay()) for i in 1:latt.N]
143+
S = [multisite_operator(latt, i => sigmay()) for i in 1:latt.N]
144144
H += Jy / 2 * mapreduce(i -> op_sum(S, i), +, latt.car_idx)
145145
H += hy * sum(S)
146146
end
147147
if (Jz != 0 || hz != 0)
148-
S = [MultiSiteOperator(latt, i => sigmaz()) for i in 1:latt.N]
148+
S = [multisite_operator(latt, i => sigmaz()) for i in 1:latt.N]
149149
H += Jz / 2 * mapreduce(i -> op_sum(S, i), +, latt.car_idx)
150150
H += hz * sum(S)
151151
end

test/core-test/low_rank_dynamics.jl

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,12 @@
1515
i = 1
1616
for j in 1:N_modes
1717
i += 1
18-
i <= M && (ϕ[i] = MultiSiteOperator(latt, j => sigmap()) * ϕ[1])
18+
i <= M && (ϕ[i] = multisite_operator(latt, j => sigmap()) * ϕ[1])
1919
end
2020
for k in 1:N_modes-1
2121
for l in k+1:N_modes
2222
i += 1
23-
i <= M && (ϕ[i] = MultiSiteOperator(latt, k => sigmap(), l => sigmap()) * ϕ[1])
23+
i <= M && (ϕ[i] = multisite_operator(latt, k => sigmap(), l => sigmap()) * ϕ[1])
2424
end
2525
end
2626
for i in i+1:M
@@ -43,11 +43,11 @@
4343
hz = 0.0
4444
γ = 1
4545

46-
Sx = mapreduce(i -> MultiSiteOperator(latt, i => sigmax()), +, 1:latt.N)
47-
Sy = mapreduce(i -> MultiSiteOperator(latt, i => sigmay()), +, 1:latt.N)
48-
Sz = mapreduce(i -> MultiSiteOperator(latt, i => sigmaz()), +, 1:latt.N)
46+
Sx = mapreduce(i -> multisite_operator(latt, i => sigmax()), +, 1:latt.N)
47+
Sy = mapreduce(i -> multisite_operator(latt, i => sigmay()), +, 1:latt.N)
48+
Sz = mapreduce(i -> multisite_operator(latt, i => sigmaz()), +, 1:latt.N)
4949
SFxx = mapreduce(
50-
x -> MultiSiteOperator(latt, x[1] => sigmax(), x[2] => sigmax()),
50+
x -> multisite_operator(latt, x[1] => sigmax(), x[2] => sigmax()),
5151
+,
5252
Iterators.product(1:latt.N, 1:latt.N),
5353
)

0 commit comments

Comments
 (0)