3636end
3737
3838function 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
5153end
5254
5355
@@ -91,21 +93,23 @@ LaguerreGaussLaser
9193struct 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
115119function 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