Skip to content

Commit 5d11da6

Browse files
authored
Merge pull request LupoLab#359 from chrisbrahms/complex-ref-index
RFC: Complex ref index for gases
2 parents 935a108 + 5666251 commit 5d11da6

File tree

2 files changed

+30
-7
lines changed

2 files changed

+30
-7
lines changed

src/PhysData.jl

+5-5
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ Sellmeier expansion for linear susceptibility from Applied Optics 47, 27, 4856 (
9090
room temperature and atmospheric pressure
9191
"""
9292
function γ_Börzsönyi(B1, C1, B2, C2)
93-
return μm -> (B1 * μm^2 / (μm^2 - C1) + B2 * μm^2 / (μm^2 - C2))
93+
return μm -> complex(B1 * μm^2 / (μm^2 - C1) + B2 * μm^2 / (μm^2 - C2))
9494
end
9595

9696
"""
@@ -100,7 +100,7 @@ Adapted Sellmeier expansion for helium made to fit high frequency data
100100
Phys. Rev. A 92, 033821 (2015)
101101
"""
102102
function γ_JCT(B1, C1, B2, C2, B3, C3)
103-
return μm -> (B1 * μm^2 / (μm^2 - C1)
103+
return μm -> complex(B1 * μm^2 / (μm^2 - C1)
104104
+ B2 * μm^2 / (μm^2 - C2)
105105
+ B3 * μm^2 / (μm^2 - C3))
106106
end
@@ -112,7 +112,7 @@ Sellmeier expansion for linear susceptibility from
112112
J. Opt. Soc. Am. 67, 1550 (1977)
113113
"""
114114
function γ_Peck(B1, C1, B2, C2, dens)
115-
return μm -> @. (((B1 / (C1 - 1/μm^2) + B2 / (C2 - 1/μm^2)) + 1)^2 - 1)/dens
115+
return μm -> complex(((B1 / (C1 - 1/μm^2) + B2 / (C2 - 1/μm^2)) + 1)^2 - 1)/dens
116116
end
117117

118118
"""
@@ -121,7 +121,7 @@ end
121121
Sellmeier expansion for Oxygen from Applied Optics 50, 35, 6484 (2011)
122122
"""
123123
function γ_Zhang(A, B, C, dens)
124-
return μm -> ((1 + A + B/(C-1/μm^2))^2 - 1)/dens
124+
return μm -> complex((1 + A + B/(C-1/μm^2))^2 - 1)/dens
125125
end
126126

127127
"""
@@ -132,7 +132,7 @@ https://doi.org/10.5194/acp-21-14927-2021.
132132
133133
"""
134134
function γ_QuanfuHe(A, B, C, dens)
135-
return μm -> ((1 + 1e-8*(A + B/(C - (1e4/μm)^2))))/dens
135+
return μm -> complex((1 + 1e-8*(A + B/(C - (1e4/μm)^2))))/dens
136136
end
137137

138138
"""

test/test_fields.jl

+25-2
Original file line numberDiff line numberDiff line change
@@ -405,7 +405,7 @@ end
405405
# test diversity of power fluctuations
406406
@test mean(std(Its[istart:iend,:], dims=2)[:,1]) > 10
407407
end
408-
408+
##
409409
@testset "Propagation" begin
410410
λ0 = 800e-9
411411
τfwhm = 2.5e-15
@@ -536,8 +536,31 @@ end
536536
ϕs, Eωcomp = Fields.optcomp_taylor(Eωmirr, grid, λ0; order=3)
537537
@test isapprox(ϕs[3], -reflections*gdd, rtol=0.1)
538538
end
539-
end
540539

540+
# check (back-)propagation for all gases with a large grid
541+
λ0 = 800e-9
542+
τfwhm = 2.5e-15
543+
grid = Grid.RealGrid(1, λ0, (70e-9, 4e-6), 500e-15)
544+
input = Fields.GaussField(λ0=λ0, τfwhm=τfwhm, energy=1e-6)
545+
x = Array{Float64}(undef, length(grid.t))
546+
FT = FFTW.plan_rfft(x, 1)
547+
= input(grid, FT)
548+
@testset "gas propgation: $g" for g in PhysData.gas
549+
Eωgas = Fields.prop_material(Eω, grid, g, 10, λ0)
550+
Et = FT \ Eωgas
551+
gab = Maths.gabor(grid.t, Et, [-10e-15, 10e-15], 3e-15)
552+
ω0 = Maths.moment(grid.ω, abs2.(gab))
553+
@test ω0[1] < ω0[2]
554+
555+
Eωgas = Fields.prop_material(Eω, grid, g, -10, λ0)
556+
Et = FT \ Eωgas
557+
gab = Maths.gabor(grid.t, Et, [-10e-15, 10e-15], 3e-15)
558+
ω0 = Maths.moment(grid.ω, abs2.(gab))
559+
@test ω0[1] > ω0[2]
560+
end
561+
562+
end
563+
##
541564
@testset "Compression" begin
542565
# Short pulse with 100 fs^2
543566
λ0 = 800e-9

0 commit comments

Comments
 (0)