LinearOps.jl

Luna.LinearOps.conj_clampMethod
conj_clamp(n, ω)

Simultaneously conjugate and clamp the effective index n to safe levels.

The real part is lower-bounded at 1e-3 and the imaginary part upper-bounded at an attenuation coefficient α of 3000 (130 dB/cm). The limits are somewhat arbitrary and chosen empirically from previous bugs. See https://github.com/LupoLab/Luna/pull/142.

See also αlim!.

source
Luna.LinearOps.make_const_linopMethod
make_const_linop(grid, mode, λ0)

Make constant linear operator for mode-averaged propagation in mode mode with a reference wavelength λ0.

source
Luna.LinearOps.make_const_linopMethod
make_const_linop(grid, modes, λ0; ref_mode=1)

Make constant (z-invariant) linear operator for multimode propagation. The frame velocity is taken as the group velocity at wavelength λ0 in the mode given by ref_mode (which indexes into modes)

source
Luna.LinearOps.make_const_linopMethod
make_const_linop(grid, q::QDHT, n, frame_vel)

Make constant linear operator for radial free-space. n is the refractive index (array) and β1 is 1/velocity of the reference frame.

source
Luna.LinearOps.make_const_linopMethod
make_const_linop(grid, xygrid, n, frame_vel)

Make constant linear operator for full 3D propagation. n is the refractive index (array) and β1 is 1/velocity of the reference frame.

source
Luna.LinearOps.make_linopMethod
make_linop(grid, q::QDHT, nfun)

Make z-dependent linear operator for radial free-space propagation. nfun(ω; z) should return the refractive index as a function of frequency ω and (kwarg) propagation distance z.

source
Luna.LinearOps.make_linopMethod
make_linop(grid, xygrid, nfun)

Make z-dependent linear operator for free-space propagation. nfun(ω; z) should return the refractive index as a function of frequency ω and (kwarg) propagation distance z.

source
Luna.LinearOps.neff_gridMethod
neff_grid(grid, modes, λ0; ref_mode=1)

Create a closure that returns the effective index as a function of the frequency grid and mode index, rather than the mode and frequency themselves. Any Modes.AbstractMode may define its one method for neff_grid to accelerate repeated calculation on the same frequency grid.

source
Luna.LinearOps.neff_β_gridMethod
neff_β_grid(grid, mode, λ0; ref_mode=1)

Create closures which return the effective index and propagation constant as a function of the frequency grid index, rather than the frequency itself. Any Modes.AbstractMode may define its own method for neff_β_grid to accelerate repeated calculation on the same frequency grid.

source