OpticalFibers.jl

Documentation for OpticalFibers.jl

Materials

OpticalFibers.MaterialType
Material(B1::Real, B2::Real, B3::Real, C1::Real, C2::Real, C3::Real)

Create a Material with Sellmeier coefficients B₁, B₂, B₃, C₁, C₂, and C₃, where C₁, C₂, and C₃ must be given in square micrometers.

source
OpticalFibers.sellmeier_equationFunction
sellmeier_equation(material::Material, wavelength_μm::Real)

Compute the refractive index, n, of the material for light with a free space wavelength of wavelength_μm, which must be given in micrometers.

The Sellmeier equation reads

\[n^{2}(λ) = 1 + \sum_{i} \frac{B_{i} λ^{2}}{λ^{2} - C_{i}},\]

where $B_{i}$ and $C_{i}$ are constants that depend on the material, and $λ$ is the wavelength of light in vacuum.

source

Propagation Constant

OpticalFibers.fiber_equationFunction
fiber_equation(u, parameters)

Compute the value of the characteristic fiber equation with all terms moved to the same side of the equal sign, where u is the propagation constant, and parameters contains the fiber radius, refraction index, and frequency in said order.

Used as an input to the non-linear solver to find the propagation constant.

The characteristic fiber equation for single mode cylindrical fibers reads Fam Le Kien and A. Rauschenbeutel, Phys. Rev. A 95, 023838 (2017)

\[\frac{J_{0}(p a)}{p a J_{1}(pa)} + \frac{n^{2} + 1}{2 n^{2}} \frac{K_{1}'(q a)}{q a K_{1}(q a)} - \frac{1}{p^2 a^2} + \Biggl[\biggl( \frac{n^2 - 1}{2 n^2} \frac{K_{1}'(q a)}{q a K_{1}(q a)} \biggr)^2 + \frac{\beta^2}{n^2 k^2} \biggl( \frac{1}{p^2 a^2} + \frac{1}{q^2 a^2} \biggr)^2 \Biggr]^{1 / 2} = 0,\]

where $a$ is the fiber radius, $k$ is the free space wave number of the light, $n$ is the refractive index of the fiber, $p = \sqrt{n^2 k^2 - \beta^2}$, and $q = \sqrt{\beta^2 - k^2}$. Futhermore, $J_n$ and $K_n$ are Bessel functions of the first kind, and modified Bessel functions of the second kind, respectively, and the prime denotes the derivative.

source
OpticalFibers._propagation_constantFunction
_propagation_constant(a::Real, n::Real, ω::Real)

Compute the propagation constant of a fiber with radius a, refactive index n and frequency ω by solving the characteristic equation of the fiber as written as eq. (1A) in [PRA 95, 023838].

source
OpticalFibers._propagation_constant_derivativeFunction
_propagation_constant_derivative(a::Real, n::Real, ω::Real; dω = 1e-9)

Compute the derivative of the propagation constant with respect to frequency evaluated at ω of a fiber with radius a, and refactive index n.

source

Fibers

OpticalFibers.radiusFunction
radius(fiber::Fiber)

Return the radius of the fiber in micrometers.

Examples

julia> fiber = Fiber(0.1, 0.4, OpticalFibers.SiO2);

julia> radius(fiber)
0.1
source
OpticalFibers.wavelengthFunction
wavelength(fiber::Fiber)

Return the wavelength of the fiber mode in micrometers.

Examples

julia> fiber = Fiber(0.1, 0.4, OpticalFibers.SiO2);

julia> wavelength(fiber)
0.4
source
OpticalFibers.frequencyFunction
frequency(fiber::Fiber)

Return the angular frequency of the fiber mode in units of inverse micrometers with the speed of light c = 1.

Examples

julia> fiber = Fiber(0.1, 0.4, OpticalFibers.SiO2);

julia> frequency(fiber)
15.707963267948966
source
OpticalFibers.materialFunction
material(fiber::Fiber)

Return the material of the fiber.

Examples

julia> fiber = Fiber(0.1, 0.4, OpticalFibers.SiO2);

julia> material(fiber)
Material with Sellmeier coefficients:
B₁ = 0.6961663
B₂ = 0.4079426
B₃ = 0.8974794
C₁ = 0.00467914825849μm²
C₂ = 0.013512063073959999μm²
C₃ = 97.93400253792099μm²
source
OpticalFibers.refractive_indexFunction
refractive_index(fiber::Fiber)

Return the refractive index of the fiber for light with the same wavelength as the fiber mode.

Examples

julia> fiber = Fiber(0.1, 0.4, OpticalFibers.SiO2);

julia> refractive_index(fiber)
1.4701161185594052
source
OpticalFibers.propagation_constantFunction
propagation_constant(fiber::Fiber)

Return the propagation constant of the fiber in inverse micrometers for light with the same wavelength as the fiber mode.

Examples

julia> fiber = Fiber(0.1, 0.4, OpticalFibers.SiO2);

julia> propagation_constant(fiber)
17.242890161273014
source
OpticalFibers.propagation_constant_derivativeFunction
propagation_constant_derivative(fiber::Fiber)

Return the derivative of the propagation constant with respect to angular frequency of the fiber evaluated at the angular frequency of the fiber mode.

Examples

julia> fiber = Fiber(0.1, 0.4, OpticalFibers.SiO2);

julia> propagation_constant_derivative(fiber)
1.4431087436150847
source
OpticalFibers.group_velocityFunction
group_velocity(fiber::Fiber)

Return the group velocity of the fiber mode in units of the speed of light c = 1.

Examples

julia> fiber = Fiber(0.1, 0.4, OpticalFibers.SiO2);

julia> group_velocity(fiber)
0.6929484728191256
source
OpticalFibers.normalized_frequencyFunction
normalized_frequency(fiber::Fiber)

Return the normalized frequency of the fiber mode.

Examples

julia> fiber = Fiber(0.1, 0.4, OpticalFibers.SiO2);

julia> normalized_frequency(fiber)
1.692704437607302
source
OpticalFibers.effective_refractive_indexFunction
effective_refractive_index(fiber::Fiber)

Return the effective refractive index of the fiber.

Examples

julia> fiber = Fiber(0.1, 0.4, OpticalFibers.SiO2);

julia> effective_refractive_index(fiber)
1.0977164809428834
source
OpticalFibers.guided_mode_normalization_constantFunction
guided_mode_normalization_constant(a::Real, n::Real, β::Real, h::Real, q::Real, s::Real)

Compute the normalization constant of an electric guided fiber mode.

The fiber modes are normalized according to the condition

\[\int_{0}^{\infty} \! \mathrm{d} \rho \int_{0}^{2 \pi} \! \mathrm{d} \phi \, n^{2}(\rho) \lvert \mathrm{\mathbf{e}}(\rho, \phi) \rvert^{2} = 1,\]

where $n(\rho)$ is the step index refractive index given as

\[n(\rho) = \begin{cases} n, & \rho < a, \\ 1 & \rho > a, \end{cases}\]

and $\mathrm{\mathbf{e}}(\rho, \phi) = e_{\rho} \hat{\mathrm{\mathbf{\rho}}} + e_{\phi} \hat{\mathrm{\mathbf{\phi}}} + e_{z} \hat{\mathrm{\mathbf{z}}}$, where the components are given by electric_guided_mode_base.

source

Electric Fields

OpticalFibers.electric_guided_mode_baseFunction
electric_guided_mode_base(ρ::Real, fiber::Fiber)

Compute the underlying cylindrical components of the guided mode electric field used in the expressions for both the quasilinear and quasicircular guided modes.

These components for $\rho < a$ are given by

\[\begin{aligned} e_{\rho} &= A \mathrm{i} \frac{q}{h} \frac{K_{1}(q a)}{J_{1}(h a)} [(1 - s) J_{0}(h \rho) - (1 + s) J_{2}(h \rho)] \\ e_{\phi} &= -A \frac{q}{h} \frac{K_{1}(q a)}{J_{1}(h a)} [(1 - s) J_{0}(h \rho) + (1 + s) J_{2}(h \rho)] \\ e_{z} &= A \frac{2 q}{\beta} \frac{K_{1}(q a)}{J_{1}(h a)} J_{1}(h \rho), \end{aligned}\]

and the components for $\rho > a$ are given by

\[\begin{aligned} e_{\rho} &= A \mathrm{i} [(1 - s) K_{0}(q \rho) + (1 + s) K_{2}(q \rho)] \\ e_{\phi} &= -A [(1 - s) K_{0}(q \rho) - (1 + s) K_{2}(q \rho)] \\ e_{z} &= A \frac{2 q}{\beta} K_{1}(q \rho), \end{aligned}\]

where $A$ is the normalization constant, $a$ is the fiber radius, $\beta$ is the propagation constant, $h = \sqrt{n^2 k^2 - \beta^2}$, and $q = \sqrt{\beta^2 - k^2}$, with $k$ being the free space wavenumber of the light. Futhermore, $J_n$ and $K_n$ are Bessel functions of the first kind, and modified Bessel functions of the second kind, respectively, and the prime denotes the derivative. Lastly, $s$ is defined as

\[s = \frac{\frac{1}{h^2 a^2} + \frac{1}{q^2 a^2}}{\frac{J_{1}'(h a)}{h a J_{1}(h a)} + \frac{K_{1}'(q a)}{q a K_{1}(q a)}}.\]

source
OpticalFibers.electric_guided_field_cartesianFunction
electric_guided_field_cartesian(ρ::Real, ϕ::Real, z::Real, t::Real, field::GuidedField)

Compute the cartesian components of a guided electric field at position $(ρ, ϕ, z)$ and time $t$ with the given $power$.

source

Master Equation Coefficients

OpticalFibers.vacuum_coefficientsFunction
vacuum_coefficients(positions, dipole, ω₀)

Compute the dipole-dipole and decay coefficients for the master equation describing a cloud of atoms with positions given by the columns in r (in cartesian coordinates), dipole moment d, and transition frequency ω₀ coupled to the vacuum field.

source
OpticalFibers.guided_coefficientsFunction
guided_coefficients(r, d, fiber)

Compute the guided dipole-dipole and decay coefficients for the master equation describing a cloud of atoms with positions given by the columns in r (in cartesian coordinates), and dipole moment d coupled to an optical fiber.

source
OpticalFibers.guided_directional_coefficientsFunction
guided_directional_coefficients(r, d, fiber)

Compute the guided dipole-dipole and decay coefficients due to the modes with direction f for the master equation describing a cloud of atoms with positions given by the columns in r (in cartesian coordinates), and dipole moment d coupled to an optical fiber.

source
OpticalFibers.radiation_coefficientsFunction
radiation_coefficients(positions, dipole, Γ₀, fiber)

Compute the dipole-dipole and decay coefficients for the master equation describing a cloud of atoms with positions given by the columns in r (in cartesian coordinates), and dipole moment d coupled to the radiation modes from an optical fiber.

source

Transmission

OpticalFibers.transmission_two_levelFunction
transmission_two_level(Δes, fiber, gs, J, Γ)

Compute the transmission of a cloud of two level atoms surrounding an optical fiber for each value of the detuning given by Δes.

The parameters of the fiber are given by fiber, while the atoms have light-matter coupling constants gs, dipole-dipole interaction matrix J, and cross decay rate matrix Γ.

source
OpticalFibers.transmission_three_levelFunction
transmission_three_level(Δes, probe::GuidedMode, atom::ThreeLevelAtom, gs, Ω, H_effective, Γ)

Compute the transmission of a cloud of three level atoms surrounding an optical fiber for each value of the lower transition detuning given by Δes, where each atom experience the same Rabi frequency.

The parameters of the fiber are given by fiber, while the atoms have upper transition detuning Δr, control Rabi frequenciy Ω, pump coupling constants gs, dipole-dipole interaction matrix J, cross decay rate matrix Γ, and Rydberg to intermediate state decay rate γ.

source

Atomic Traps

OpticalFibers.gaussian_beam_intensityFunction
gaussian_beam_intensity(x::Real, y::Real, z::Real, trap::CrossedTweezerTrap)

Compute the intensity at position (x, y, z) of a gaussian beam parallel to the z-axis with parameters given in trap.

source
OpticalFibers.trap_intensityFunction
trap_intensity(x::Real, y::Real, z::Real, trap::CrossedTweezerTrap)

Compute the intensity of the trap at position (x, y, z).

source
OpticalFibers.trap_potentialFunction
trap_potential(x::Real, y::Real, z::Real, trap::CrossedTweezerTrap)

Compute the potential of the trap at position (x, y, z).

source

Atomic Clouds

OpticalFibers.peak_density_gaussian_cloudFunction
peak_density_gaussian_cloud(σ_x::Real, σ_y::Real, σ_z::Real, fiber_radius::Real,
                            exclusion_zone::Real, number_of_atoms::Int)

Compute the peak density of a Gaussian cloud with the given parameters.

source