You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This projects definitely needs a redesign. It should be CUDA compatible and also differentiable by automatic differentiation!
First, I want to focus (:zany_face:) on scalar optics.
I think it might make sense to introduce types like:
struct ScalarField{T, N, A <:Union{Array{T, N}, CuArray{T, N}}}
# wavelength
λ ::T# length of eletrical field
L ::T# Array, CuArray, ... of
field ::Aend
Those are the trivial parameters we need to describe a field. Scalar Fourier optics is possible with such a type.
The text was updated successfully, but these errors were encountered:
I guess we should introduce L1 and L2 to handle non-quadratic fields (different scaled fields) as well?
struct ScalarField{T, N, A <: Union{Array{T, N}, CuArray{T, N}}}
# wavelength
λ :: T
# length of eletrical field in each of the dimensions
L1 :: T
L2 :: T
# Array, CuArray, ... of
field :: A
end
This projects definitely needs a redesign. It should be CUDA compatible and also differentiable by automatic differentiation!
First, I want to focus (:zany_face:) on scalar optics.
I think it might make sense to introduce types like:
Those are the trivial parameters we need to describe a field. Scalar Fourier optics is possible with such a type.
The text was updated successfully, but these errors were encountered: