Skip to content

Commit d3d3f0f

Browse files
committed
Add focal length for thick lens
1 parent 8addd99 commit d3d3f0f

1 file changed

Lines changed: 3 additions & 1 deletion

File tree

src/elements.jl

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,11 +33,13 @@ struct ThickLens{T<:Number} <: Element{T}
3333
n_lens::T
3434
n1::T
3535
n2::T
36+
focal_length::T
3637
end
3738

3839
function ThickLens(; R1, R2, t, n_lens=1.5, n1=1.0, n2=1.0)
3940
R1, R2, t, n_lens, n1, n2 = promote(R1, R2, t, n_lens, n1, n2)
40-
return ThickLens{typeof(R1)}(R1, R2, t, n_lens, n1, n2)
41+
focal_length = inv(-(n_lens - n2) / n1 / R2 + (n_lens - n1) / n1 / R1 + (n_lens - n1) * (n_lens - n2) / n1 / n_lens * t / R1 / R2)
42+
return ThickLens{typeof(R1)}(R1, R2, t, n_lens, n1, n2, focal_length)
4143
end
4244

4345
struct Interface{T<:Number} <: Element{T}

0 commit comments

Comments
 (0)