Commercial Fiber Library & Glass Presets

GNLSE provides a built-in catalog of commercial optical fibers (FiberLibrary) and standard optical glass Sellmeier dispersion models (RefractiveIndex.io database parameters).


🏬 Commercial Fiber Catalog (commercial_fiber)

Instead of manually constructing Taylor dispersion vectors and nonlinear coefficients, you can instantiate standard commercial fibers with a single call to commercial_fiber:

using GNLSE

# 1. Corning SMF-28e+ (Standard Telecom Fiber at 1550 nm)
smf28 = commercial_fiber("Corning_SMF28", length=100.0)

# 2. NKT Photonics NL-PM-750 (Supercontinuum Photonic Crystal Fiber)
pcf = commercial_fiber("NKT_NL_PM_750", length=0.15)

# 3. Thorlabs PM780-HP (Polarization Maintaining 780 nm Fiber)
pm780 = commercial_fiber("Thorlabs_PM780", length=2.0)

Available Commercial Fibers

Fiber KeyManufacturerDescriptionDefault $\lambda_0$$\gamma$ [1/(W·m)]Loss [dB/m]
"Corning_SMF28"CorningStandard single-mode telecom fiber for C-band1550 nm0.001270.0002
"NKT_NL_PM_750"NKT PhotonicsHighly nonlinear PM photonic crystal fiber835 nm0.110.0010
"Thorlabs_PM780"ThorlabsPM fiber for 780 nm delivery780 nm0.00550.0030
"Thorlabs_PM1550"ThorlabsPM fiber for 1550 nm1550 nm0.00120.0002
"NKT_LMA10"NKT PhotonicsLarge Mode Area photonic crystal fiber1064 nm0.00150.0005

Overriding Wavelength or Loss

You can override default parameters when instantiating:

custom_smf = commercial_fiber("Corning_SMF28", length=50.0, lambda0=1310e-9, loss=0.0004)

🧪 Glass Refractive Index Presets (RefractiveIndex.io)

GNLSE provides standard Sellmeier dispersion models derived from the RefractiveIndex.io database:

  • FusedSilica(): Pure fused silica glass ($0.21 - 3.71\,\mu\text{m}$, Malitson 1965).
  • SF6(): Schott SF6 heavy flint glass.
  • SF57(): Schott SF57 lead-silicate glass.
  • GeO2DopedSilica(x): Germania-doped silica core ($x \in [0, 15]\,\%\text{ GeO}_2$, Fleming 1978).

Example: Custom Fiber with Fused Silica Core

grid = create_grid(2^13, 10e-12, 1064e-9)
pulse = sech_pulse(grid, 5000.0, 100e-15)

# Fiber with Fused Silica Sellmeier dispersion
medium = Medium(
    length = 0.5,
    gamma = 0.01,
    loss = 0.0,
    dispersion = FusedSilica(),
    lambda0 = 1064e-9
)

params = SimParams(; medium=medium, z_saves=100)
sol = solve(pulse, params)