Capillary.jl
Luna.Capillary.MarcatiliMode
— TypeMarcatiliMode
Type representing a mode of a hollow capillary as presented in:
Marcatili, E. & Schmeltzer, R. "Hollow metallic and dielectric waveguides for long distance optical transmission and lasers (Long distance optical transmission in hollow dielectric and metal circular waveguides, examining normal mode propagation)." Bell System Technical Journal 43, 1783–1809 (1964).
Luna.Capillary.MarcatiliMode
— MethodMarcatiliMode(a, gas, P, cladn; kwargs...)
Create a MarcatiliMode for a capillary made of a cladding material defined by the refractive index cladn(ω; z)
with a core radius a
which is filled with gas
to pressure P
.
Luna.Capillary.MarcatiliMode
— MethodMarcatiliMode(a, n, m, kind, ϕ, coren, cladn; model=:full, loss=true)
Create a MarcatiliMode.
Arguments
a
: Either aNumber
for constant core radius, or a functiona(z)
for variable radius.n::Int
: Azimuthal mode index (number of nodes in the field along azimuthal angle).m::Int
: Radial mode index (number of nodes in the field along radial coordinate).kind::Symbol
::TE
for transverse electric,:TM
for transverse magnetic,:HE
for hybrid mode.ϕ::Float
: Azimuthal offset angle (for linearly polarised modes, this is the angle between the mode polarisation and the:y
axis)coren
: Callablecoren(ω; z)
which returns the refractive index of the corecladn
: Callablecladn(ω; z)
which returns the refractive index of the claddingmodel::Symbol=:full
: If:full
, use the complete Marcatili model which takes into account the dispersive influence of the cladding refractive index. If:reduced
, use the simplified model common in the literatureloss::Bool=true
: Whether to include loss.
Luna.Capillary.MarcatiliMode
— MethodMarcatiliMode(a, gas, P; kwargs...)
Create a MarcatiliMode for a capillary with radius a
which is filled with gas
to pressure P
.
Luna.Capillary.MarcatiliMode
— MethodMarcatiliMode(a, coren; kwargs...)
Create a MarcatiliMode for a capillary with radius a
with z
-dependent gas fill determined by coren(ω; z)
.
Luna.Capillary.MarcatiliMode
— MethodMarcatiliMode(a; kwargs...)
Create a MarcatiliMode
for a capillary with radius a
and no gas fill.
Luna.Capillary.gradient
— Methodgradient(gas, L, p0, p1)
Convenience function to create density and core index profiles for simple two-point gradient fills defined by the waveguide length L
and the pressures at z=0
and z=L
.
Luna.Capillary.gradient
— Methodgradient(gas, Z, P)
Convenience function to create density and core index profiles for multi-point gradient fills defined by positions Z
and pressures P
.
Luna.Capillary.transmission
— Methodtransmission(a, λ, L; kind=:HE, n=1, m=1)
Calculate the transmission through a capillary with core radius a
and length L
at the wavelength λ
when propagating the MarcatiliMode
defined by kind
, n
and m
.
Luna.Modes.neff
— Methodneff(m::MarcatiliMode, ω; z=0)
Calculate the complex effective index of Marcatili mode with dielectric core and arbitrary (metal or dielectric) cladding.
Adapted from:
Marcatili, E. & Schmeltzer, R. "Hollow metallic and dielectric waveguides for long distance optical transmission and lasers (Long distance optical transmission in hollow dielectric and metal circular waveguides, examining normal mode propagation)." Bell System Technical Journal 43, 1783–1809 (1964).