Skip to content

Commit 1e3de72

Browse files
Merge remote-tracking branch 'upstream/main' into dev/patch-1
2 parents 4784a58 + f556c33 commit 1e3de72

24 files changed

+185
-299
lines changed

.github/workflows/CI.yml

Lines changed: 13 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,8 @@ jobs:
3838
matrix:
3939
# for core tests (latest and oldest supported versions)
4040
version:
41-
- '1.7' # oldest
42-
- '1' # latest
41+
- '1.10' # oldest
42+
# - '1' # latest
4343
os:
4444
- ubuntu-latest
4545
- windows-latest
@@ -49,25 +49,21 @@ jobs:
4949
- Core
5050

5151
include:
52-
# for core tests on macOS
53-
- version: '1.7' # oldest (julia v1.7 does not support M-series chip)
54-
os: 'macOS-13' # Intel chip
52+
# for core tests on macOS (M-series chip)
53+
- version: '1.10' # oldest
54+
os: 'macOS-latest'
5555
arch: 'x64'
5656
group: 'Core'
57-
- version: '1' # latest
58-
os: 'macOS-latest' # M-series chip
59-
arch: 'arm64'
60-
group: 'Core'
57+
# - version: '1' # latest
58+
# os: 'macOS-latest'
59+
# arch: 'arm64'
60+
# group: 'Core'
6161

6262
# for core tests (intermediate versions)
63-
- version: '1.8'
64-
os: 'ubuntu-latest'
65-
arch: 'x64'
66-
group: 'Core'
67-
- version: '1.9'
68-
os: 'ubuntu-latest'
69-
arch: 'x64'
70-
group: 'Core'
63+
# - version: '1.x'
64+
# os: 'ubuntu-latest'
65+
# arch: 'x64'
66+
# group: 'Core'
7167

7268
# for code quality tests
7369
- version: '1'

Project.toml

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,21 @@ version = "0.13.0"
55

66
[deps]
77
ArrayInterface = "4fba245c-0d91-5ea0-9b3e-6abc04ee57a9"
8+
DiffEqBase = "2b5f629d-d688-5b77-993f-72d75c75574e"
89
DiffEqCallbacks = "459566f4-90b8-5000-8ac3-15dfb0a30def"
910
FFTW = "7a1cc6ca-52ef-59f5-83cd-3a7055c09341"
1011
Graphs = "86223c79-3864-5bf0-83f7-82e725a168b6"
1112
IncompleteLU = "40713840-3770-5561-ab4c-a76e7d0d7895"
1213
LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
1314
LinearMaps = "7a12625a-238d-50fd-b39a-03d52299707e"
1415
LinearSolve = "7ed4a6bd-45f5-4d41-b270-4a48e9bafcae"
15-
OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed"
16+
OrdinaryDiffEqCore = "bbf590c4-e513-4bbe-9b18-05decba2e5d8"
17+
OrdinaryDiffEqTsit5 = "b1df2697-797e-41e3-8120-5422d3b24e4a"
1618
Pkg = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f"
1719
Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c"
1820
Reexport = "189a3867-3050-52da-a836-e630ba90ab69"
21+
SciMLBase = "0bca4576-84f4-4d90-8ffe-ffa030f20462"
22+
SciMLOperators = "c0aeaf25-5076-4817-a8d5-81caf7dfa961"
1923
SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf"
2024
SpecialFunctions = "276daf66-3868-5448-9aa4-cd146d93841b"
2125
StaticArraysCore = "1e83bf80-4336-4d27-bf5d-d5a4f845583c"
@@ -29,22 +33,26 @@ QuantumToolboxCUDAExt = "CUDA"
2933
[compat]
3034
ArrayInterface = "6, 7"
3135
CUDA = "5"
36+
DiffEqBase = "6"
3237
DiffEqCallbacks = "2 - 3.1, 3.8"
3338
FFTW = "1.5"
3439
Graphs = "1.7"
3540
IncompleteLU = "0.2"
3641
LinearAlgebra = "<0.0.1, 1"
3742
LinearMaps = "3"
3843
LinearSolve = "2"
39-
OrdinaryDiffEq = "6"
44+
OrdinaryDiffEqCore = "1"
45+
OrdinaryDiffEqTsit5 = "1"
4046
Pkg = "<0.0.1, 1"
4147
Random = "<0.0.1, 1"
4248
Reexport = "1"
49+
SciMLBase = "2"
50+
SciMLOperators = "0.3"
4351
SparseArrays = "<0.0.1, 1"
4452
SpecialFunctions = "2"
4553
StaticArraysCore = "1"
4654
Test = "<0.0.1, 1"
47-
julia = "1.7"
55+
julia = "1.10"
4856

4957
[extras]
5058
CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba"

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ QuantumToolbox.jl is equipped with a robust set of features:
6868

6969
## Installation
7070

71-
> **_NOTE:_** `QuantumToolbox.jl` requires `Julia 1.7+`.
71+
> **_NOTE:_** `QuantumToolbox.jl` requires `Julia 1.10+`.
7272
7373
To install `QuantumToolbox.jl`, run the following commands inside Julia's interactive session (also known as REPL):
7474
```julia
@@ -77,7 +77,7 @@ Pkg.add("QuantumToolbox")
7777
```
7878
Alternatively, this can also be done in Julia's [Pkg REPL](https://julialang.github.io/Pkg.jl/v1/getting-started/) by pressing the key `]` in the REPL to use the package mode, and then type the following command:
7979
```julia-repl
80-
(1.7) pkg> add QuantumToolbox
80+
(1.10) pkg> add QuantumToolbox
8181
```
8282
More information about `Julia`'s package manager can be found at [`Pkg.jl`](https://julialang.github.io/Pkg.jl/v1/).
8383

benchmarks/Project.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
11
[deps]
22
BenchmarkTools = "6e4b80f9-dd63-53aa-95a3-0cdb28fa8baf"
3+
LinearSolve = "7ed4a6bd-45f5-4d41-b270-4a48e9bafcae"
4+
OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed"
35
QuantumToolbox = "6c2fb7c5-b903-41d2-bc5e-5a7c320b9fab"

benchmarks/runbenchmarks.jl

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
using BenchmarkTools
22
using QuantumToolbox
3+
using OrdinaryDiffEq
4+
using LinearSolve
35

46
BLAS.set_num_threads(1)
57

docs/src/index.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ QuantumToolbox.jl is equipped with a robust set of features:
2121
## [Installation](@id doc:Installation)
2222

2323
!!! note "Requirements"
24-
`QuantumToolbox.jl` requires `Julia 1.7+`.
24+
`QuantumToolbox.jl` requires `Julia 1.10+`.
2525

2626
To install `QuantumToolbox.jl`, run the following commands inside Julia's interactive session (also known as REPL):
2727
```julia
@@ -30,7 +30,7 @@ Pkg.add("QuantumToolbox")
3030
```
3131
Alternatively, this can also be done in Julia's [Pkg REPL](https://julialang.github.io/Pkg.jl/v1/getting-started/) by pressing the key `]` in the REPL to use the package mode, and then type the following command:
3232
```julia-REPL
33-
(1.7) pkg> add QuantumToolbox
33+
(1.10) pkg> add QuantumToolbox
3434
```
3535
More information about `Julia`'s package manager can be found at [`Pkg.jl`](https://julialang.github.io/Pkg.jl/v1/).
3636

docs/src/tutorials/lowrank.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@ Define the options for the low-rank evolution
130130

131131
```@example lowrank
132132
opt =
133-
LRMesolveOptions(alg = Tsit5(), err_max = 1e-3, p0 = 0.0, atol_inv = 1e-6, adj_condition = "variational", Δt = 0.0);
133+
LRMesolveOptions(err_max = 1e-3, p0 = 0.0, atol_inv = 1e-6, adj_condition = "variational", Δt = 0.0);
134134
135135
@time lrsol = lr_mesolve(H, z, B, tl, c_ops; e_ops = e_ops, f_ops = (f_purity, f_entropy, f_trace), opt = opt);
136136
```

src/QuantumToolbox.jl

Lines changed: 26 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,49 @@
11
module QuantumToolbox
22

33
# Re-export:
4-
# 1. basic functions in LinearAlgebra and SparseArrays
5-
# 2. the solvers in ODE and LinearSolve
4+
# 1. StaticArraysCore.SVector for the type of dims
5+
# 2. basic functions in LinearAlgebra and SparseArrays
66
import Reexport: @reexport
7+
@reexport import StaticArraysCore: SVector
78
@reexport using LinearAlgebra
89
@reexport using SparseArrays
9-
@reexport using OrdinaryDiffEq
10-
@reexport using LinearSolve
1110

1211
# other functions in LinearAlgebra
1312
import LinearAlgebra: BlasReal, BlasInt, BlasFloat, BlasComplex, checksquare
1413
import LinearAlgebra.BLAS: @blasfunc
15-
if VERSION < v"1.10"
16-
import LinearAlgebra: chkstride1
17-
import LinearAlgebra.BLAS: libblastrampoline
18-
import LinearAlgebra.LAPACK: chklapackerror
19-
import Base: require_one_based_indexing
20-
else
21-
import LinearAlgebra.LAPACK: hseqr!
22-
end
14+
import LinearAlgebra.LAPACK: hseqr!
15+
16+
# SciML packages (for OrdinaryDiffEq and LinearSolve)
17+
import SciMLBase:
18+
solve,
19+
solve!,
20+
init,
21+
reinit!,
22+
remake,
23+
u_modified!,
24+
ODEProblem,
25+
EnsembleProblem,
26+
EnsembleThreads,
27+
FullSpecialize,
28+
CallbackSet,
29+
ContinuousCallback,
30+
DiscreteCallback
31+
import SciMLOperators: MatrixOperator
32+
import LinearSolve: LinearSolve, LinearProblem, SciMLLinearSolveAlgorithm, KrylovJL_MINRES, KrylovJL_GMRES
33+
import DiffEqBase: get_tstops
34+
import DiffEqCallbacks: PeriodicCallback, PresetTimeCallback, TerminateSteadyState
35+
import OrdinaryDiffEqCore: OrdinaryDiffEqCore, OrdinaryDiffEqAlgorithm
36+
import OrdinaryDiffEqTsit5: Tsit5
2337

2438
# other dependencies (in alphabetical order)
2539
import ArrayInterface: allowed_getindex, allowed_setindex!
26-
import DiffEqCallbacks: DiscreteCallback, PeriodicCallback, PresetTimeCallback, TerminateSteadyState
2740
import FFTW: fft, fftshift
2841
import Graphs: connected_components, DiGraph
2942
import IncompleteLU: ilu
3043
import LinearMaps: LinearMap
31-
import OrdinaryDiffEq: OrdinaryDiffEqAlgorithm
3244
import Pkg
3345
import Random
3446
import SpecialFunctions: loggamma
35-
@reexport import StaticArraysCore: SVector
3647
import StaticArraysCore: MVector
3748

3849
# Setting the number of threads to 1 allows

0 commit comments

Comments
 (0)