Skip to content

Commit 2d48018

Browse files
authored
Merge pull request #54 from SebastianM-C/fix-threading
Replace ParallelProcessingTools.ThreadLocal with TaskLocalValues.TaskLocalValue
2 parents 7e06f1c + f27239a commit 2d48018

4 files changed

Lines changed: 43 additions & 33 deletions

File tree

Project.toml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
name = "LaserTypes"
22
uuid = "e07c0bfa-524c-4f35-a151-c3dd916fa2f0"
3-
authors = ["Sebastian Micluța-Câmpeanu <m.c.sebastian95@gmail.com>", "Petru-Vlad Toma <tomapv@gmail.com>"]
43
version = "0.2.0"
4+
authors = ["Sebastian Micluța-Câmpeanu <m.c.sebastian95@gmail.com>", "Petru-Vlad Toma <tomapv@gmail.com>"]
55

66
[deps]
77
AutoHashEquals = "15f4f7f2-30c1-5605-9d31-71845cf9641f"
88
CoordinateTransformations = "150eb455-5306-5404-9cee-2592286d6298"
99
HypergeometricFunctions = "34004b35-14d8-5ef3-9330-4cdb6864b03a"
1010
LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
11-
ParallelProcessingTools = "8e8a01fc-6193-5ca1-a2f1-20776dae4199"
1211
Parameters = "d96e819e-fc66-5662-9728-84c9c7592b0a"
1312
PhysicalConstants = "5ad8b20f-a522-5ce9-bfc9-ddf1d5bda6ab"
1413
StaticArrays = "90137ffa-7385-5640-81b9-e52037218182"
14+
TaskLocalValues = "ed4db957-447d-4319-bfb6-7fa9ae7ecf34"
1515
UnPack = "3a884ed6-31ef-47d7-9d2a-63182c4928ed"
1616
Unitful = "1986cc42-f94f-5a68-af5c-568840ba703d"
1717
UnitfulAtomic = "a7773ee8-282e-5fa2-be4e-bd808c38a91a"
@@ -20,10 +20,10 @@ UnitfulAtomic = "a7773ee8-282e-5fa2-be4e-bd808c38a91a"
2020
AutoHashEquals = "2.2"
2121
CoordinateTransformations = "0.6"
2222
HypergeometricFunctions = "0.2, 0.3"
23-
ParallelProcessingTools = "0.4"
2423
Parameters = "0.12"
2524
PhysicalConstants = "0.2"
2625
StaticArrays = "0.12, 1.0"
26+
TaskLocalValues = "0.1.3"
2727
UnPack = "1.0"
2828
Unitful = "1.0"
2929
UnitfulAtomic = "0.3, 1.0"

src/LaserTypes.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ using LinearAlgebra
1414
using StaticArrays
1515
using CoordinateTransformations
1616
using AutoHashEquals
17-
using ParallelProcessingTools
17+
using TaskLocalValues
1818
using HypergeometricFunctions: _₁F₁, pochhammer
1919
import PhysicalConstants.CODATA2018: c_0, e, m_e, ε_0, μ_0
2020

src/gauss.jl

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -29,14 +29,16 @@ end
2929
end
3030

3131
function GaussLaserCache(λ, E)
32-
ThreadLocal(GaussLaserCache(
33-
zero(λ), # x
34-
zero(λ), # y
35-
zero(λ), # wz
36-
zero(E*im), # Ex
37-
zero(E*im), # Ey
38-
zero(E*im) # Ez
39-
))
32+
TaskLocalValue{GaussLaserCache{typeof(zero(λ)),typeof(zero(E*im))}}() do
33+
GaussLaserCache(
34+
zero(λ), # x
35+
zero(λ), # y
36+
zero(λ), # wz
37+
zero(E*im), # Ex
38+
zero(E*im), # Ey
39+
zero(E*im) # Ez
40+
)
41+
end
4042
end
4143

4244
function Base.fill!(cache::GaussLaserCache, x::AbstractVector)

src/laguerre-gauss.jl

Lines changed: 29 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -36,18 +36,20 @@ end
3636
end
3737

3838
function LaguerreGaussLaserCache(λ, E)
39-
ThreadLocal(LaguerreGaussLaserCache(
40-
zero(λ), # x
41-
zero(λ), # y
42-
zero/λ), # σ
43-
zero(λ), # wz
44-
zero(E*im), # Ex
45-
zero(E*im), # Ey
46-
zero(E*im), # Ez
47-
zero(E*im), # Eg
48-
zero(E*im), # NEgexp
49-
zero/λ), # rwz
50-
))
39+
TaskLocalValue{LaguerreGaussLaserCache{typeof(zero(λ)),typeof(zero(λ/λ)),typeof(zero(E*im)),typeof(zero(E*im))}}() do
40+
LaguerreGaussLaserCache(
41+
zero(λ), # x
42+
zero(λ), # y
43+
zero/λ), # σ
44+
zero(λ), # wz
45+
zero(E*im), # Ex
46+
zero(E*im), # Ey
47+
zero(E*im), # Ez
48+
zero(E*im), # Eg
49+
zero(E*im), # NEgexp
50+
zero/λ), # rwz
51+
)
52+
end
5153
end
5254

5355

@@ -91,21 +93,23 @@ LaguerreGaussLaser
9193
struct LaguerreGaussLaser{_P,_M,_MA,
9294
C0,Q,M,Eps,Mu,U,
9395
IC,W,K,T,Z,E,F,
94-
L,S,CE,EE,
96+
Cache,
9597
D,R,
9698
C,
9799
P,
100+
L,
101+
FF,
98102
I} <: AbstractLaser
99103
constants::FundamentalConstants{C0,Q,M,Eps,Mu,U}
100104
derived::LaguerreGaussLaserConstantCache{IC,W,K,T,Z,E,F}
101-
cache::ThreadLocal{LaguerreGaussLaserCache{L,S,CE,EE}}
105+
cache::Cache
102106
geometry::LaserGeometry{D,R}
103107
polarization::LaserPolarization{C}
104108
profile::P
105109
# laser parameters
106110
λ::L
107-
a₀::F
108-
ϕ₀::F
111+
a₀::FF
112+
ϕ₀::FF
109113
w₀::L
110114
p::I
111115
m::I
@@ -115,30 +119,34 @@ end
115119
function LaguerreGaussLaser(
116120
constants::FundamentalConstants{C0,Q,M,Eps,Mu,U},
117121
derived::LaguerreGaussLaserConstantCache{IC,W,K,T,Z,E,F},
118-
cache::ThreadLocal{LaguerreGaussLaserCache{L,S,CE,EE}},
122+
cache::Cache,
119123
geometry::LaserGeometry{D,R},
120124
polarization::LaserPolarization{C},
121125
profile::P,
122126
λ::L,
123-
a₀::F,
124-
ϕ₀::F,
127+
a₀::FF,
128+
ϕ₀::FF,
125129
w₀::L,
126130
p::I,
127131
m::I
128132
) where {C0,Q,M,Eps,Mu,U,
129133
IC,W,K,T,Z,E,F,
130-
L,S,CE,EE,
134+
Cache,
131135
D,R,
132136
C,
133137
P,
138+
L,
139+
FF,
134140
I}
135141
LaguerreGaussLaser{Val{p},Val{m},Val{abs(m)},
136142
C0,Q,M,Eps,Mu,U,
137143
IC,W,K,T,Z,E,F,
138-
L,S,CE,EE,
144+
Cache,
139145
D,R,
140146
C,
141147
P,
148+
L,
149+
FF,
142150
I}(
143151
constants,
144152
derived,

0 commit comments

Comments
 (0)