pyLaserPulse.catalogue_components.active_fibres

Created on Tue Jun 20 09:16:08 2023

@author: james feehan

Module of classes for branded active optical fibre.

Classes

CorActive_SCF_YB550_4_125_19(grid, length, ...)

step_index_active_fibre with default parameters which provide fibre properties matching CorActive SCF-YB550-4/125-19.

NKT_DC_200_40_PZ_YB(grid, length, ...[, ...])

photonic_crystal_active_fibre with default parameters which provide fibre properties approximating those of NKT DC-200/40-PZ-YB.

Nufern_EDFC_980_HP(grid, length, ...[, ...])

step_index_active_fibre with default parameters which provide fibre properties matching those of Nufern EDFC-980-HP.

Nufern_FUD_4288_LMA_YDF_48_400E(grid, ...[, ...])

step_index_active_fibre with default parameters which provide fibre properties matching those of Nufern FUD-4288 LMA-YDF-48/400E.

Nufern_PLMA_30_400(grid, length, ...[, ...])

step_index_active_fibre with default parameters which provide fibre properties matching those of Nufern PLMA-YDF-30/400-VIII.

Nufern_PLMA_YDF_10_125_M(grid, length, ...)

step_index_active_fibre with default parameters which provide fibre

Nufern_PLMA_YDF_25_250(grid, length, ...[, ...])

step_index_active_fibre with default parameters which provide fibre properties matching those of Nufern PLMA-YDF-25/250-VIII.

Nufern_PM_YDF_5_130_VIII(grid, length, ...)

step_index_active_fibre with default parameters which provide fibre properties matching those of Nufern PM-YDF-5/130-VIII.

Nufern_PM_YSF_HI_HP(grid, length, ...[, ...])

step_index_active_fibre with default parameters which provide fibre properties matching those of Nufern PLMA YSF 10/125.

OFS_R37003(grid, length, beat_length, ...[, ...])

step_index_active_fibre with default parameters which provide fibre properties matching OFS R37003 EDF.

ORC_HD406_YDF(grid, length, beat_length, ...)

step_index_active_fibre with default parameters which provide fibre properties approximating the ORC's HD406 Yb-doped fibre specifications.

Thorlabs_Liekki_M5_980_125(grid, length, ...)

step_index_active_fibre with default parameters which provide fibre properties matching those of Thorlabs/Liekki M-5(980/125).

Thorlabs_Liekki_Yb1200_6_125_DC(grid, ...[, ...])

step_index_active_fibre with default parameters which provide fibre properties matching those of Liekki Yb1200-6/125DC.

nLight_Yb1200_4_125(grid, length, ...[, ...])

step_index_active_fibre with default parameters which provide fibre properties matching nLight (Liekki) Yb1200-4/125 specifications.

class pyLaserPulse.catalogue_components.active_fibres.nLight_Yb1200_4_125(grid, length, beat_length, seed_repetition_rate, pump_points, ASE_wl_lims, boundary_conditions, time_domain_gain=False, n2=2.19e-20, verbose=False)

step_index_active_fibre with default parameters which provide fibre properties matching nLight (Liekki) Yb1200-4/125 specifications.

Parameters:
  • grid (pyLaserPulse.grid.grid object)

  • length (float) – Fibre length.

  • beat_length (float) – Polarization beat length in m

  • seed_repetition_rate (float) – Repetition rate of the seed laser pulses

  • pump_points (int) – Number of points in the pump light grid.

  • ASE_wl_lims (list) – Wavelength limits of the pump and ASE grid, [min_wl, max_wl] in m.

  • boundary_conditions (dict) – Set the boundary conditions for resolving the evolution of the pump, signal, and ASE light in both directions through the fibre. The type of simulation – i.e., single-pass or full boundary value solver – is determined by this dictionary. See pyLaserPulse.base_components.step_index_active_fibre

  • time_domain_gain (Boolean) – Time domain gain included if True.

  • n2 (float) – Nonlinear index in m^2 / W. Default value is 2.19e-20 m^2/W, which is the value for fused silica around 1060 nm.

  • verbose (bool) – Print information to terminal if True

__init__(grid, length, beat_length, seed_repetition_rate, pump_points, ASE_wl_lims, boundary_conditions, time_domain_gain=False, n2=2.19e-20, verbose=False)
Parameters:
  • g (pyLaserPulse.grid.grid object)

  • length (float) – Fibre length in m

  • loss_file (string) – Absolute path to the fibre loss as a function of wavelength. See pyLaserPulse.data.paths.materials.loss_spectra

  • Raman_file (string) – Absolute path to the Raman response as a function of time. See pyLaserPulse.data.paths.materials.Raman_profiles

  • core_diam (float) – Core diameter in m

  • NA (float) – Numerical aperture

  • beat_length (float) – Polarization beat length in m

  • n2 (float) – Nonlinear index in m^2 / W

  • fR (float) – Fractional Raman contribution to the fibre nonlinear response (e.g., fR = 0.18 for silica)

  • tol (float) – Maximum propagation error used to adjust the proapgation step size

  • doping_concentration (float) – Number density of the active ions in m^-3

  • cross_section_file (string) – Absolute path to the emission and absorption cross sections as a function of wavelength. See pyLaserPulse.data.paths.fibres.cross_sections.

  • seed_repetition_rate (float) – Repetition rate of the seed laser. See pyLaserPulse.pulse.pulse.repetition_rate

  • pump_points (int) – Number of points in the pump/ASE spectrum window.

  • ASE_wl_lims (list) – [min_wavelength, max_wavelength] for the pump/ASE wavelength window in m.

  • Sellmeier_file (string.) – Absolute path to file containing Sellmeier coefficients for the fibre material. See pyLaserPulse.data.paths.materials.Sellmeier_coefficients.

  • boundary_conditions (dict) – Set the boundary conditions for resolving the evolution of the pump, signal, and ASE light in both directions through the fibre. The type of simulation – i.e., single-pass or full boundary value solver – is determined by this dictionary. See the Notes section below for a full description of how this parameters is defined.

  • lifetime (float) – Upper-state lifetime of the rare-earth dopant in s.

  • cladding_pumping (dict.) –

    Parameters required to define a cladding-pumped fibre. Leave empty if core pumping. Otherwise, the following keys are required:

    pump_core_diamfloat

    Diameter of the pump cladding in m

    pump_delta_nfloat

    Refractive index difference between the fibre coating and the pump cladding (usually n_silica - 1.375)

    pump_cladding_nfloat

    Refractive index of the fibre coating (usually 1.375)

  • time_domain_gain (bool) – True if mixed-domain gain operator (i.e., both frequency- and time-domain gain) is to be used. If False, only frequency- domain gain is simulated.

Notes

The boundary_conditions dictionary accepts the following keys:
co_pump_powerfloat

Power of the co-propagating pump in W

co_pump_wavelengthfloat

Central wavelength of the co-propagating pump in m

co_pump_bandwidthfloat

Bandwidth of the co-propagating pump in m

counter_pump_powerfloat

Power of the counter-propagating pump in W

counter_pump_wavelengthfloat

Central wavelength of the counter-propagating pump in m

counter_pump_bandwidthfloat

Bandwidth of the counter-propagating pump in m

If no counter-pump values are specified, then the propagation is completed in a single step and no effort is made to resolve counter-propagating signals (i.e., the boundary value problem is not solved). This allows for co-pumping only. Example:

boundary_conditions = {

‘co_pump_power’: 1, ‘co_pump_wavelength’: 976e-9, ‘co_pump_bandwidth’: 1e-9}

The boundary value problem is solved whenever dictionary key ‘counter_pump_power’ is present, but it is not necessary to specify the wavelength or bandwidth of either the co- or counter-propagating pump if the power is zero. Here are a few examples of valid boundary_conditions dictionaries:

  1. Co-pumping with full boundary value solver:
    boundary_conditions = {

    ‘co_pump_power’: 1, ‘co_pump_wavelength’: 976e-9, ‘co_pump_bandwidth’: 1e-9, ‘counter_pump_power’: 0}

  2. Bidirectional pumping with full boundary value solver:
    boundary_conditions = {

    ‘co_pump_power’: 1, ‘co_pump_wavelength’: 976e-9, ‘co_pump_bandwidth’: 1e-9, ‘counter_pump_power’: 1, ‘counter_pump_wavelength’: 976e-9, ‘counter_pump_bandwidth’: 1e-9}

  3. Counter-pumping with full boundary value solver:
    boundary_conditions = {

    ‘co_pump_power’: 0, ‘counter_pump_power’: 1, ‘counter_pump_wavelength’: 976e-9, ‘counter_pump_bandwidth’: 1e-9}

class pyLaserPulse.catalogue_components.active_fibres.ORC_HD406_YDF(grid, length, beat_length, doping_concentration, seed_repetition_rate, pump_points, ASE_wl_lims, boundary_conditions, time_domain_gain=False, n2=2.19e-20, verbose=False)

step_index_active_fibre with default parameters which provide fibre properties approximating the ORC’s HD406 Yb-doped fibre specifications. No concrete data on this fibre is available to me, so I have matched the core diameter and index step to Corning HI1060.

Parameters:
  • grid (pyLaserPulse.grid.grid object)

  • length (float) – Fibre length.

  • beat_length (float) – Polarization beat length in m

  • doping_concentration (float) – Ion number density in m^-3.

  • seed_repetition_rate (float) – Repetition rate of the seed laser pulses

  • pump_points (int) – Number of points in the pump light grid.

  • ASE_wl_lims (list) – Wavelength limits of the pump and ASE grid, [min_wl, max_wl] in m.

  • boundary_conditions (dict) – Set the boundary conditions for resolving the evolution of the pump, signal, and ASE light in both directions through the fibre. The type of simulation – i.e., single-pass or full boundary value solver – is determined by this dictionary. See pyLaserPulse.base_components.step_index_active_fibre

  • time_domain_gain (Boolean) – Time domain gain included if True.

  • n2 (float) – Nonlinear index in m^2 / W. Default value is 2.19e-20 m^2/W, which is the value for fused silica around 1060 nm.

  • verbose (bool) – Print information to terminal if True

__init__(grid, length, beat_length, doping_concentration, seed_repetition_rate, pump_points, ASE_wl_lims, boundary_conditions, time_domain_gain=False, n2=2.19e-20, verbose=False)
Parameters:
  • g (pyLaserPulse.grid.grid object)

  • length (float) – Fibre length in m

  • loss_file (string) – Absolute path to the fibre loss as a function of wavelength. See pyLaserPulse.data.paths.materials.loss_spectra

  • Raman_file (string) – Absolute path to the Raman response as a function of time. See pyLaserPulse.data.paths.materials.Raman_profiles

  • core_diam (float) – Core diameter in m

  • NA (float) – Numerical aperture

  • beat_length (float) – Polarization beat length in m

  • n2 (float) – Nonlinear index in m^2 / W

  • fR (float) – Fractional Raman contribution to the fibre nonlinear response (e.g., fR = 0.18 for silica)

  • tol (float) – Maximum propagation error used to adjust the proapgation step size

  • doping_concentration (float) – Number density of the active ions in m^-3

  • cross_section_file (string) – Absolute path to the emission and absorption cross sections as a function of wavelength. See pyLaserPulse.data.paths.fibres.cross_sections.

  • seed_repetition_rate (float) – Repetition rate of the seed laser. See pyLaserPulse.pulse.pulse.repetition_rate

  • pump_points (int) – Number of points in the pump/ASE spectrum window.

  • ASE_wl_lims (list) – [min_wavelength, max_wavelength] for the pump/ASE wavelength window in m.

  • Sellmeier_file (string.) – Absolute path to file containing Sellmeier coefficients for the fibre material. See pyLaserPulse.data.paths.materials.Sellmeier_coefficients.

  • boundary_conditions (dict) – Set the boundary conditions for resolving the evolution of the pump, signal, and ASE light in both directions through the fibre. The type of simulation – i.e., single-pass or full boundary value solver – is determined by this dictionary. See the Notes section below for a full description of how this parameters is defined.

  • lifetime (float) – Upper-state lifetime of the rare-earth dopant in s.

  • cladding_pumping (dict.) –

    Parameters required to define a cladding-pumped fibre. Leave empty if core pumping. Otherwise, the following keys are required:

    pump_core_diamfloat

    Diameter of the pump cladding in m

    pump_delta_nfloat

    Refractive index difference between the fibre coating and the pump cladding (usually n_silica - 1.375)

    pump_cladding_nfloat

    Refractive index of the fibre coating (usually 1.375)

  • time_domain_gain (bool) – True if mixed-domain gain operator (i.e., both frequency- and time-domain gain) is to be used. If False, only frequency- domain gain is simulated.

Notes

The boundary_conditions dictionary accepts the following keys:
co_pump_powerfloat

Power of the co-propagating pump in W

co_pump_wavelengthfloat

Central wavelength of the co-propagating pump in m

co_pump_bandwidthfloat

Bandwidth of the co-propagating pump in m

counter_pump_powerfloat

Power of the counter-propagating pump in W

counter_pump_wavelengthfloat

Central wavelength of the counter-propagating pump in m

counter_pump_bandwidthfloat

Bandwidth of the counter-propagating pump in m

If no counter-pump values are specified, then the propagation is completed in a single step and no effort is made to resolve counter-propagating signals (i.e., the boundary value problem is not solved). This allows for co-pumping only. Example:

boundary_conditions = {

‘co_pump_power’: 1, ‘co_pump_wavelength’: 976e-9, ‘co_pump_bandwidth’: 1e-9}

The boundary value problem is solved whenever dictionary key ‘counter_pump_power’ is present, but it is not necessary to specify the wavelength or bandwidth of either the co- or counter-propagating pump if the power is zero. Here are a few examples of valid boundary_conditions dictionaries:

  1. Co-pumping with full boundary value solver:
    boundary_conditions = {

    ‘co_pump_power’: 1, ‘co_pump_wavelength’: 976e-9, ‘co_pump_bandwidth’: 1e-9, ‘counter_pump_power’: 0}

  2. Bidirectional pumping with full boundary value solver:
    boundary_conditions = {

    ‘co_pump_power’: 1, ‘co_pump_wavelength’: 976e-9, ‘co_pump_bandwidth’: 1e-9, ‘counter_pump_power’: 1, ‘counter_pump_wavelength’: 976e-9, ‘counter_pump_bandwidth’: 1e-9}

  3. Counter-pumping with full boundary value solver:
    boundary_conditions = {

    ‘co_pump_power’: 0, ‘counter_pump_power’: 1, ‘counter_pump_wavelength’: 976e-9, ‘counter_pump_bandwidth’: 1e-9}

class pyLaserPulse.catalogue_components.active_fibres.CorActive_SCF_YB550_4_125_19(grid, length, beat_length, seed_repetition_rate, pump_points, ASE_wl_lims, boundary_conditions, time_domain_gain=False, n2=2.19e-20, verbose=False)

step_index_active_fibre with default parameters which provide fibre properties matching CorActive SCF-YB550-4/125-19.

Parameters:
  • grid (pyLaserPulse.grid.grid object)

  • length (float) – Fibre length.

  • beat_length (float) – Polarization beat length in m

  • seed_repetition_rate (float) – Repetition rate of the seed laser pulses

  • pump_points (int) – Number of points in the pump light grid.

  • ASE_wl_lims (list) – Wavelength limits of the pump and ASE grid, [min_wl, max_wl] in m.

  • boundary_conditions (dict) – Set the boundary conditions for resolving the evolution of the pump, signal, and ASE light in both directions through the fibre. The type of simulation – i.e., single-pass or full boundary value solver – is determined by this dictionary. See pyLaserPulse.base_components.step_index_active_fibre

  • time_domain_gain (Boolean) – Time domain gain included if True.

  • n2 (float) – Nonlinear index in m^2 / W. Default value is 2.19e-20 m^2/W, which is the value for fused silica around 1060 nm.

  • verbose (bool) – Print information to terminal if True

__init__(grid, length, beat_length, seed_repetition_rate, pump_points, ASE_wl_lims, boundary_conditions, time_domain_gain=False, n2=2.19e-20, verbose=False)
Parameters:
  • g (pyLaserPulse.grid.grid object)

  • length (float) – Fibre length in m

  • loss_file (string) – Absolute path to the fibre loss as a function of wavelength. See pyLaserPulse.data.paths.materials.loss_spectra

  • Raman_file (string) – Absolute path to the Raman response as a function of time. See pyLaserPulse.data.paths.materials.Raman_profiles

  • core_diam (float) – Core diameter in m

  • NA (float) – Numerical aperture

  • beat_length (float) – Polarization beat length in m

  • n2 (float) – Nonlinear index in m^2 / W

  • fR (float) – Fractional Raman contribution to the fibre nonlinear response (e.g., fR = 0.18 for silica)

  • tol (float) – Maximum propagation error used to adjust the proapgation step size

  • doping_concentration (float) – Number density of the active ions in m^-3

  • cross_section_file (string) – Absolute path to the emission and absorption cross sections as a function of wavelength. See pyLaserPulse.data.paths.fibres.cross_sections.

  • seed_repetition_rate (float) – Repetition rate of the seed laser. See pyLaserPulse.pulse.pulse.repetition_rate

  • pump_points (int) – Number of points in the pump/ASE spectrum window.

  • ASE_wl_lims (list) – [min_wavelength, max_wavelength] for the pump/ASE wavelength window in m.

  • Sellmeier_file (string.) – Absolute path to file containing Sellmeier coefficients for the fibre material. See pyLaserPulse.data.paths.materials.Sellmeier_coefficients.

  • boundary_conditions (dict) – Set the boundary conditions for resolving the evolution of the pump, signal, and ASE light in both directions through the fibre. The type of simulation – i.e., single-pass or full boundary value solver – is determined by this dictionary. See the Notes section below for a full description of how this parameters is defined.

  • lifetime (float) – Upper-state lifetime of the rare-earth dopant in s.

  • cladding_pumping (dict.) –

    Parameters required to define a cladding-pumped fibre. Leave empty if core pumping. Otherwise, the following keys are required:

    pump_core_diamfloat

    Diameter of the pump cladding in m

    pump_delta_nfloat

    Refractive index difference between the fibre coating and the pump cladding (usually n_silica - 1.375)

    pump_cladding_nfloat

    Refractive index of the fibre coating (usually 1.375)

  • time_domain_gain (bool) – True if mixed-domain gain operator (i.e., both frequency- and time-domain gain) is to be used. If False, only frequency- domain gain is simulated.

Notes

The boundary_conditions dictionary accepts the following keys:
co_pump_powerfloat

Power of the co-propagating pump in W

co_pump_wavelengthfloat

Central wavelength of the co-propagating pump in m

co_pump_bandwidthfloat

Bandwidth of the co-propagating pump in m

counter_pump_powerfloat

Power of the counter-propagating pump in W

counter_pump_wavelengthfloat

Central wavelength of the counter-propagating pump in m

counter_pump_bandwidthfloat

Bandwidth of the counter-propagating pump in m

If no counter-pump values are specified, then the propagation is completed in a single step and no effort is made to resolve counter-propagating signals (i.e., the boundary value problem is not solved). This allows for co-pumping only. Example:

boundary_conditions = {

‘co_pump_power’: 1, ‘co_pump_wavelength’: 976e-9, ‘co_pump_bandwidth’: 1e-9}

The boundary value problem is solved whenever dictionary key ‘counter_pump_power’ is present, but it is not necessary to specify the wavelength or bandwidth of either the co- or counter-propagating pump if the power is zero. Here are a few examples of valid boundary_conditions dictionaries:

  1. Co-pumping with full boundary value solver:
    boundary_conditions = {

    ‘co_pump_power’: 1, ‘co_pump_wavelength’: 976e-9, ‘co_pump_bandwidth’: 1e-9, ‘counter_pump_power’: 0}

  2. Bidirectional pumping with full boundary value solver:
    boundary_conditions = {

    ‘co_pump_power’: 1, ‘co_pump_wavelength’: 976e-9, ‘co_pump_bandwidth’: 1e-9, ‘counter_pump_power’: 1, ‘counter_pump_wavelength’: 976e-9, ‘counter_pump_bandwidth’: 1e-9}

  3. Counter-pumping with full boundary value solver:
    boundary_conditions = {

    ‘co_pump_power’: 0, ‘counter_pump_power’: 1, ‘counter_pump_wavelength’: 976e-9, ‘counter_pump_bandwidth’: 1e-9}

class pyLaserPulse.catalogue_components.active_fibres.OFS_R37003(grid, length, beat_length, seed_repetition_rate, pump_points, ASE_wl_lims, boundary_conditions, time_domain_gain=False, n2=2.33e-20, verbose=False)

step_index_active_fibre with default parameters which provide fibre properties matching OFS R37003 EDF.

Parameters:
  • grid (pyLaserPulse.grid.grid object)

  • length (float) – Fibre length.

  • beat_length (float) – Polarization beat length in m

  • seed_repetition_rate (float) – Repetition rate of the seed laser pulses

  • pump_points (int) – Number of points in the pump light grid.

  • ASE_wl_lims (list) – Wavelength limits of the pump and ASE grid, [min_wl, max_wl] in m.

  • boundary_conditions (dict) – Set the boundary conditions for resolving the evolution of the pump, signal, and ASE light in both directions through the fibre. The type of simulation – i.e., single-pass or full boundary value solver – is determined by this dictionary. See pyLaserPulse.base_components.step_index_active_fibre

  • time_domain_gain (Boolean) – Time domain gain included if True.

  • n2 (float) – Nonlinear index in m^2 / W. Default value is 2.33e-20 m^2/W, which is the value for fused silica around 1550 nm.

  • verbose (bool) – Print information to terminal if True

__init__(grid, length, beat_length, seed_repetition_rate, pump_points, ASE_wl_lims, boundary_conditions, time_domain_gain=False, n2=2.33e-20, verbose=False)
Parameters:
  • g (pyLaserPulse.grid.grid object)

  • length (float) – Fibre length in m

  • loss_file (string) – Absolute path to the fibre loss as a function of wavelength. See pyLaserPulse.data.paths.materials.loss_spectra

  • Raman_file (string) – Absolute path to the Raman response as a function of time. See pyLaserPulse.data.paths.materials.Raman_profiles

  • core_diam (float) – Core diameter in m

  • NA (float) – Numerical aperture

  • beat_length (float) – Polarization beat length in m

  • n2 (float) – Nonlinear index in m^2 / W

  • fR (float) – Fractional Raman contribution to the fibre nonlinear response (e.g., fR = 0.18 for silica)

  • tol (float) – Maximum propagation error used to adjust the proapgation step size

  • doping_concentration (float) – Number density of the active ions in m^-3

  • cross_section_file (string) – Absolute path to the emission and absorption cross sections as a function of wavelength. See pyLaserPulse.data.paths.fibres.cross_sections.

  • seed_repetition_rate (float) – Repetition rate of the seed laser. See pyLaserPulse.pulse.pulse.repetition_rate

  • pump_points (int) – Number of points in the pump/ASE spectrum window.

  • ASE_wl_lims (list) – [min_wavelength, max_wavelength] for the pump/ASE wavelength window in m.

  • Sellmeier_file (string.) – Absolute path to file containing Sellmeier coefficients for the fibre material. See pyLaserPulse.data.paths.materials.Sellmeier_coefficients.

  • boundary_conditions (dict) – Set the boundary conditions for resolving the evolution of the pump, signal, and ASE light in both directions through the fibre. The type of simulation – i.e., single-pass or full boundary value solver – is determined by this dictionary. See the Notes section below for a full description of how this parameters is defined.

  • lifetime (float) – Upper-state lifetime of the rare-earth dopant in s.

  • cladding_pumping (dict.) –

    Parameters required to define a cladding-pumped fibre. Leave empty if core pumping. Otherwise, the following keys are required:

    pump_core_diamfloat

    Diameter of the pump cladding in m

    pump_delta_nfloat

    Refractive index difference between the fibre coating and the pump cladding (usually n_silica - 1.375)

    pump_cladding_nfloat

    Refractive index of the fibre coating (usually 1.375)

  • time_domain_gain (bool) – True if mixed-domain gain operator (i.e., both frequency- and time-domain gain) is to be used. If False, only frequency- domain gain is simulated.

Notes

The boundary_conditions dictionary accepts the following keys:
co_pump_powerfloat

Power of the co-propagating pump in W

co_pump_wavelengthfloat

Central wavelength of the co-propagating pump in m

co_pump_bandwidthfloat

Bandwidth of the co-propagating pump in m

counter_pump_powerfloat

Power of the counter-propagating pump in W

counter_pump_wavelengthfloat

Central wavelength of the counter-propagating pump in m

counter_pump_bandwidthfloat

Bandwidth of the counter-propagating pump in m

If no counter-pump values are specified, then the propagation is completed in a single step and no effort is made to resolve counter-propagating signals (i.e., the boundary value problem is not solved). This allows for co-pumping only. Example:

boundary_conditions = {

‘co_pump_power’: 1, ‘co_pump_wavelength’: 976e-9, ‘co_pump_bandwidth’: 1e-9}

The boundary value problem is solved whenever dictionary key ‘counter_pump_power’ is present, but it is not necessary to specify the wavelength or bandwidth of either the co- or counter-propagating pump if the power is zero. Here are a few examples of valid boundary_conditions dictionaries:

  1. Co-pumping with full boundary value solver:
    boundary_conditions = {

    ‘co_pump_power’: 1, ‘co_pump_wavelength’: 976e-9, ‘co_pump_bandwidth’: 1e-9, ‘counter_pump_power’: 0}

  2. Bidirectional pumping with full boundary value solver:
    boundary_conditions = {

    ‘co_pump_power’: 1, ‘co_pump_wavelength’: 976e-9, ‘co_pump_bandwidth’: 1e-9, ‘counter_pump_power’: 1, ‘counter_pump_wavelength’: 976e-9, ‘counter_pump_bandwidth’: 1e-9}

  3. Counter-pumping with full boundary value solver:
    boundary_conditions = {

    ‘co_pump_power’: 0, ‘counter_pump_power’: 1, ‘counter_pump_wavelength’: 976e-9, ‘counter_pump_bandwidth’: 1e-9}

class pyLaserPulse.catalogue_components.active_fibres.OFS_EDF07_PM(grid, length, seed_repetition_rate, pump_points, ASE_wl_lims, boundary_conditions, time_domain_gain=False, n2=2.33e-20, verbose=False)

step_index_active_fibre with default parameters which provide fibre properties matching OFS EDF07 PM.

Low doping concentration Er-doped fibre (spec. ~7 dB/m @ 1530 nm).

Parameters:
  • grid (pyLaserPulse.grid.grid object)

  • length (float) – Fibre length.

  • seed_repetition_rate (float) – Repetition rate of the seed laser pulses

  • pump_points (int) – Number of points in the pump light grid.

  • ASE_wl_lims (list) – Wavelength limits of the pump and ASE grid, [min_wl, max_wl] in m.

  • boundary_conditions (dict) – Set the boundary conditions for resolving the evolution of the pump, signal, and ASE light in both directions through the fibre. The type of simulation – i.e., single-pass or full boundary value solver – is determined by this dictionary. See pyLaserPulse.base_components.step_index_active_fibre

  • time_domain_gain (Boolean) – Time domain gain included if True.

  • n2 (float) – Nonlinear index in m^2 / W. Default value is 2.19e-20 m^2/W, which is the value for fused silica around 1060 nm.

  • verbose (bool) – Print information to terminal if True

Notes

Dispersion values are NOT calculated from the fibre structure. Instead, Taylor coefficients derived from measured dispersion data are used with the override_dispersion_using_Taylor_coefficients method.

__init__(grid, length, seed_repetition_rate, pump_points, ASE_wl_lims, boundary_conditions, time_domain_gain=False, n2=2.33e-20, verbose=False)
Parameters:
  • g (pyLaserPulse.grid.grid object)

  • length (float) – Fibre length in m

  • loss_file (string) – Absolute path to the fibre loss as a function of wavelength. See pyLaserPulse.data.paths.materials.loss_spectra

  • Raman_file (string) – Absolute path to the Raman response as a function of time. See pyLaserPulse.data.paths.materials.Raman_profiles

  • core_diam (float) – Core diameter in m

  • NA (float) – Numerical aperture

  • beat_length (float) – Polarization beat length in m

  • n2 (float) – Nonlinear index in m^2 / W

  • fR (float) – Fractional Raman contribution to the fibre nonlinear response (e.g., fR = 0.18 for silica)

  • tol (float) – Maximum propagation error used to adjust the proapgation step size

  • doping_concentration (float) – Number density of the active ions in m^-3

  • cross_section_file (string) – Absolute path to the emission and absorption cross sections as a function of wavelength. See pyLaserPulse.data.paths.fibres.cross_sections.

  • seed_repetition_rate (float) – Repetition rate of the seed laser. See pyLaserPulse.pulse.pulse.repetition_rate

  • pump_points (int) – Number of points in the pump/ASE spectrum window.

  • ASE_wl_lims (list) – [min_wavelength, max_wavelength] for the pump/ASE wavelength window in m.

  • Sellmeier_file (string.) – Absolute path to file containing Sellmeier coefficients for the fibre material. See pyLaserPulse.data.paths.materials.Sellmeier_coefficients.

  • boundary_conditions (dict) – Set the boundary conditions for resolving the evolution of the pump, signal, and ASE light in both directions through the fibre. The type of simulation – i.e., single-pass or full boundary value solver – is determined by this dictionary. See the Notes section below for a full description of how this parameters is defined.

  • lifetime (float) – Upper-state lifetime of the rare-earth dopant in s.

  • cladding_pumping (dict.) –

    Parameters required to define a cladding-pumped fibre. Leave empty if core pumping. Otherwise, the following keys are required:

    pump_core_diamfloat

    Diameter of the pump cladding in m

    pump_delta_nfloat

    Refractive index difference between the fibre coating and the pump cladding (usually n_silica - 1.375)

    pump_cladding_nfloat

    Refractive index of the fibre coating (usually 1.375)

  • time_domain_gain (bool) – True if mixed-domain gain operator (i.e., both frequency- and time-domain gain) is to be used. If False, only frequency- domain gain is simulated.

Notes

The boundary_conditions dictionary accepts the following keys:
co_pump_powerfloat

Power of the co-propagating pump in W

co_pump_wavelengthfloat

Central wavelength of the co-propagating pump in m

co_pump_bandwidthfloat

Bandwidth of the co-propagating pump in m

counter_pump_powerfloat

Power of the counter-propagating pump in W

counter_pump_wavelengthfloat

Central wavelength of the counter-propagating pump in m

counter_pump_bandwidthfloat

Bandwidth of the counter-propagating pump in m

If no counter-pump values are specified, then the propagation is completed in a single step and no effort is made to resolve counter-propagating signals (i.e., the boundary value problem is not solved). This allows for co-pumping only. Example:

boundary_conditions = {

‘co_pump_power’: 1, ‘co_pump_wavelength’: 976e-9, ‘co_pump_bandwidth’: 1e-9}

The boundary value problem is solved whenever dictionary key ‘counter_pump_power’ is present, but it is not necessary to specify the wavelength or bandwidth of either the co- or counter-propagating pump if the power is zero. Here are a few examples of valid boundary_conditions dictionaries:

  1. Co-pumping with full boundary value solver:
    boundary_conditions = {

    ‘co_pump_power’: 1, ‘co_pump_wavelength’: 976e-9, ‘co_pump_bandwidth’: 1e-9, ‘counter_pump_power’: 0}

  2. Bidirectional pumping with full boundary value solver:
    boundary_conditions = {

    ‘co_pump_power’: 1, ‘co_pump_wavelength’: 976e-9, ‘co_pump_bandwidth’: 1e-9, ‘counter_pump_power’: 1, ‘counter_pump_wavelength’: 976e-9, ‘counter_pump_bandwidth’: 1e-9}

  3. Counter-pumping with full boundary value solver:
    boundary_conditions = {

    ‘co_pump_power’: 0, ‘counter_pump_power’: 1, ‘counter_pump_wavelength’: 976e-9, ‘counter_pump_bandwidth’: 1e-9}

class pyLaserPulse.catalogue_components.active_fibres.OFS_EDF08_PM(grid, length, seed_repetition_rate, pump_points, ASE_wl_lims, boundary_conditions, time_domain_gain=False, n2=2.33e-20, verbose=False)

step_index_active_fibre with default parameters which provide fibre properties matching an OFS fibre with part number EDF08-PM that has been reported in a few articles that I have read, but that I have not been able to find in the OFS catalogue (James Feehan <pylaserpulse@hotmail.com>).

Low doping concentration Er-doped fibre (borrow the EDF07-PM spec. ~7 dB/m @ 1530 nm).

Parameters:
  • grid (pyLaserPulse.grid.grid object)

  • length (float) – Fibre length.

  • seed_repetition_rate (float) – Repetition rate of the seed laser pulses

  • pump_points (int) – Number of points in the pump light grid.

  • ASE_wl_lims (list) – Wavelength limits of the pump and ASE grid, [min_wl, max_wl] in m.

  • boundary_conditions (dict) – Set the boundary conditions for resolving the evolution of the pump, signal, and ASE light in both directions through the fibre. The type of simulation – i.e., single-pass or full boundary value solver – is determined by this dictionary. See pyLaserPulse.base_components.step_index_active_fibre

  • time_domain_gain (Boolean) – Time domain gain included if True.

  • n2 (float) – Nonlinear index in m^2 / W. Default value is 2.19e-20 m^2/W, which is the value for fused silica around 1060 nm.

  • verbose (bool) – Print information to terminal if True

Notes

Dispersion values are NOT calculated from the fibre structure. Instead, Taylor coefficients derived from measured dispersion data are used with the override_dispersion_using_Taylor_coefficients method.

__init__(grid, length, seed_repetition_rate, pump_points, ASE_wl_lims, boundary_conditions, time_domain_gain=False, n2=2.33e-20, verbose=False)
Parameters:
  • g (pyLaserPulse.grid.grid object)

  • length (float) – Fibre length in m

  • loss_file (string) – Absolute path to the fibre loss as a function of wavelength. See pyLaserPulse.data.paths.materials.loss_spectra

  • Raman_file (string) – Absolute path to the Raman response as a function of time. See pyLaserPulse.data.paths.materials.Raman_profiles

  • core_diam (float) – Core diameter in m

  • NA (float) – Numerical aperture

  • beat_length (float) – Polarization beat length in m

  • n2 (float) – Nonlinear index in m^2 / W

  • fR (float) – Fractional Raman contribution to the fibre nonlinear response (e.g., fR = 0.18 for silica)

  • tol (float) – Maximum propagation error used to adjust the proapgation step size

  • doping_concentration (float) – Number density of the active ions in m^-3

  • cross_section_file (string) – Absolute path to the emission and absorption cross sections as a function of wavelength. See pyLaserPulse.data.paths.fibres.cross_sections.

  • seed_repetition_rate (float) – Repetition rate of the seed laser. See pyLaserPulse.pulse.pulse.repetition_rate

  • pump_points (int) – Number of points in the pump/ASE spectrum window.

  • ASE_wl_lims (list) – [min_wavelength, max_wavelength] for the pump/ASE wavelength window in m.

  • Sellmeier_file (string.) – Absolute path to file containing Sellmeier coefficients for the fibre material. See pyLaserPulse.data.paths.materials.Sellmeier_coefficients.

  • boundary_conditions (dict) – Set the boundary conditions for resolving the evolution of the pump, signal, and ASE light in both directions through the fibre. The type of simulation – i.e., single-pass or full boundary value solver – is determined by this dictionary. See the Notes section below for a full description of how this parameters is defined.

  • lifetime (float) – Upper-state lifetime of the rare-earth dopant in s.

  • cladding_pumping (dict.) –

    Parameters required to define a cladding-pumped fibre. Leave empty if core pumping. Otherwise, the following keys are required:

    pump_core_diamfloat

    Diameter of the pump cladding in m

    pump_delta_nfloat

    Refractive index difference between the fibre coating and the pump cladding (usually n_silica - 1.375)

    pump_cladding_nfloat

    Refractive index of the fibre coating (usually 1.375)

  • time_domain_gain (bool) – True if mixed-domain gain operator (i.e., both frequency- and time-domain gain) is to be used. If False, only frequency- domain gain is simulated.

Notes

The boundary_conditions dictionary accepts the following keys:
co_pump_powerfloat

Power of the co-propagating pump in W

co_pump_wavelengthfloat

Central wavelength of the co-propagating pump in m

co_pump_bandwidthfloat

Bandwidth of the co-propagating pump in m

counter_pump_powerfloat

Power of the counter-propagating pump in W

counter_pump_wavelengthfloat

Central wavelength of the counter-propagating pump in m

counter_pump_bandwidthfloat

Bandwidth of the counter-propagating pump in m

If no counter-pump values are specified, then the propagation is completed in a single step and no effort is made to resolve counter-propagating signals (i.e., the boundary value problem is not solved). This allows for co-pumping only. Example:

boundary_conditions = {

‘co_pump_power’: 1, ‘co_pump_wavelength’: 976e-9, ‘co_pump_bandwidth’: 1e-9}

The boundary value problem is solved whenever dictionary key ‘counter_pump_power’ is present, but it is not necessary to specify the wavelength or bandwidth of either the co- or counter-propagating pump if the power is zero. Here are a few examples of valid boundary_conditions dictionaries:

  1. Co-pumping with full boundary value solver:
    boundary_conditions = {

    ‘co_pump_power’: 1, ‘co_pump_wavelength’: 976e-9, ‘co_pump_bandwidth’: 1e-9, ‘counter_pump_power’: 0}

  2. Bidirectional pumping with full boundary value solver:
    boundary_conditions = {

    ‘co_pump_power’: 1, ‘co_pump_wavelength’: 976e-9, ‘co_pump_bandwidth’: 1e-9, ‘counter_pump_power’: 1, ‘counter_pump_wavelength’: 976e-9, ‘counter_pump_bandwidth’: 1e-9}

  3. Counter-pumping with full boundary value solver:
    boundary_conditions = {

    ‘co_pump_power’: 0, ‘counter_pump_power’: 1, ‘counter_pump_wavelength’: 976e-9, ‘counter_pump_bandwidth’: 1e-9}

class pyLaserPulse.catalogue_components.active_fibres.nLight_Er80_4_125_HD_PM(grid, length, seed_repetition_rate, pump_points, ASE_wl_lims, boundary_conditions, time_domain_gain=False, n2=2.33e-20, verbose=False)

step_index_active_fibre with default parameters which provide fibre properties matching nLight Er80-4/125-HD-PM.

High doping concentration Er-doped fibre (spec. 80+/-20 dB/m @ 1530 nm).

Parameters:
  • grid (pyLaserPulse.grid.grid object)

  • length (float) – Fibre length.

  • seed_repetition_rate (float) – Repetition rate of the seed laser pulses

  • pump_points (int) – Number of points in the pump light grid.

  • ASE_wl_lims (list) – Wavelength limits of the pump and ASE grid, [min_wl, max_wl] in m.

  • boundary_conditions (dict) – Set the boundary conditions for resolving the evolution of the pump, signal, and ASE light in both directions through the fibre. The type of simulation – i.e., single-pass or full boundary value solver – is determined by this dictionary. See pyLaserPulse.base_components.step_index_active_fibre

  • time_domain_gain (Boolean) – Time domain gain included if True.

  • n2 (float) – Nonlinear index in m^2 / W. Default value is 2.19e-20 m^2/W, which is the value for fused silica around 1060 nm.

  • verbose (bool) – Print information to terminal if True

Notes

Core diameter and NA were selected to match the specified dispersion value and MFD at 1550 nm. These are -22 ps/(nm km) and 6.5 +/- 1 um, respectively. The values given by the choice of core diameter and NA below are -19.4 ps/(nm km) and 5.6 um, respectively.

__init__(grid, length, seed_repetition_rate, pump_points, ASE_wl_lims, boundary_conditions, time_domain_gain=False, n2=2.33e-20, verbose=False)
Parameters:
  • g (pyLaserPulse.grid.grid object)

  • length (float) – Fibre length in m

  • loss_file (string) – Absolute path to the fibre loss as a function of wavelength. See pyLaserPulse.data.paths.materials.loss_spectra

  • Raman_file (string) – Absolute path to the Raman response as a function of time. See pyLaserPulse.data.paths.materials.Raman_profiles

  • core_diam (float) – Core diameter in m

  • NA (float) – Numerical aperture

  • beat_length (float) – Polarization beat length in m

  • n2 (float) – Nonlinear index in m^2 / W

  • fR (float) – Fractional Raman contribution to the fibre nonlinear response (e.g., fR = 0.18 for silica)

  • tol (float) – Maximum propagation error used to adjust the proapgation step size

  • doping_concentration (float) – Number density of the active ions in m^-3

  • cross_section_file (string) – Absolute path to the emission and absorption cross sections as a function of wavelength. See pyLaserPulse.data.paths.fibres.cross_sections.

  • seed_repetition_rate (float) – Repetition rate of the seed laser. See pyLaserPulse.pulse.pulse.repetition_rate

  • pump_points (int) – Number of points in the pump/ASE spectrum window.

  • ASE_wl_lims (list) – [min_wavelength, max_wavelength] for the pump/ASE wavelength window in m.

  • Sellmeier_file (string.) – Absolute path to file containing Sellmeier coefficients for the fibre material. See pyLaserPulse.data.paths.materials.Sellmeier_coefficients.

  • boundary_conditions (dict) – Set the boundary conditions for resolving the evolution of the pump, signal, and ASE light in both directions through the fibre. The type of simulation – i.e., single-pass or full boundary value solver – is determined by this dictionary. See the Notes section below for a full description of how this parameters is defined.

  • lifetime (float) – Upper-state lifetime of the rare-earth dopant in s.

  • cladding_pumping (dict.) –

    Parameters required to define a cladding-pumped fibre. Leave empty if core pumping. Otherwise, the following keys are required:

    pump_core_diamfloat

    Diameter of the pump cladding in m

    pump_delta_nfloat

    Refractive index difference between the fibre coating and the pump cladding (usually n_silica - 1.375)

    pump_cladding_nfloat

    Refractive index of the fibre coating (usually 1.375)

  • time_domain_gain (bool) – True if mixed-domain gain operator (i.e., both frequency- and time-domain gain) is to be used. If False, only frequency- domain gain is simulated.

Notes

The boundary_conditions dictionary accepts the following keys:
co_pump_powerfloat

Power of the co-propagating pump in W

co_pump_wavelengthfloat

Central wavelength of the co-propagating pump in m

co_pump_bandwidthfloat

Bandwidth of the co-propagating pump in m

counter_pump_powerfloat

Power of the counter-propagating pump in W

counter_pump_wavelengthfloat

Central wavelength of the counter-propagating pump in m

counter_pump_bandwidthfloat

Bandwidth of the counter-propagating pump in m

If no counter-pump values are specified, then the propagation is completed in a single step and no effort is made to resolve counter-propagating signals (i.e., the boundary value problem is not solved). This allows for co-pumping only. Example:

boundary_conditions = {

‘co_pump_power’: 1, ‘co_pump_wavelength’: 976e-9, ‘co_pump_bandwidth’: 1e-9}

The boundary value problem is solved whenever dictionary key ‘counter_pump_power’ is present, but it is not necessary to specify the wavelength or bandwidth of either the co- or counter-propagating pump if the power is zero. Here are a few examples of valid boundary_conditions dictionaries:

  1. Co-pumping with full boundary value solver:
    boundary_conditions = {

    ‘co_pump_power’: 1, ‘co_pump_wavelength’: 976e-9, ‘co_pump_bandwidth’: 1e-9, ‘counter_pump_power’: 0}

  2. Bidirectional pumping with full boundary value solver:
    boundary_conditions = {

    ‘co_pump_power’: 1, ‘co_pump_wavelength’: 976e-9, ‘co_pump_bandwidth’: 1e-9, ‘counter_pump_power’: 1, ‘counter_pump_wavelength’: 976e-9, ‘counter_pump_bandwidth’: 1e-9}

  3. Counter-pumping with full boundary value solver:
    boundary_conditions = {

    ‘co_pump_power’: 0, ‘counter_pump_power’: 1, ‘counter_pump_wavelength’: 976e-9, ‘counter_pump_bandwidth’: 1e-9}

class pyLaserPulse.catalogue_components.active_fibres.Thorlabs_Liekki_M5_980_125(grid, length, beat_length, seed_repetition_rate, pump_points, ASE_wl_lims, boundary_conditions, time_domain_gain=False, n2=2.33e-20, verbose=False)

step_index_active_fibre with default parameters which provide fibre properties matching those of Thorlabs/Liekki M-5(980/125).

Parameters:
  • grid (pyLaserPulse.grid.grid object)

  • length (float) – Fibre length.

  • beat_length (float) – Polarization beat length in m

  • seed_repetition_rate (float) – Repetition rate of the seed laser pulses

  • pump_points (int) – Number of points in the pump light grid.

  • ASE_wl_lims (list) – Wavelength limits of the pump and ASE grid, [min_wl, max_wl] in m.

  • boundary_conditions (dict) – Set the boundary conditions for resolving the evolution of the pump, signal, and ASE light in both directions through the fibre. The type of simulation – i.e., single-pass or full boundary value solver – is determined by this dictionary. See pyLaserPulse.base_components.step_index_active_fibre

  • time_domain_gain (Boolean) – Time domain gain included if True.

  • n2 (float) – Nonlinear index in m^2 / W. Default value is 2.33e-20 m^2/W, which is the value for fused silica around 1550 nm.

  • verbose (bool) – Print information to terminal if True

__init__(grid, length, beat_length, seed_repetition_rate, pump_points, ASE_wl_lims, boundary_conditions, time_domain_gain=False, n2=2.33e-20, verbose=False)
Parameters:
  • g (pyLaserPulse.grid.grid object)

  • length (float) – Fibre length in m

  • loss_file (string) – Absolute path to the fibre loss as a function of wavelength. See pyLaserPulse.data.paths.materials.loss_spectra

  • Raman_file (string) – Absolute path to the Raman response as a function of time. See pyLaserPulse.data.paths.materials.Raman_profiles

  • core_diam (float) – Core diameter in m

  • NA (float) – Numerical aperture

  • beat_length (float) – Polarization beat length in m

  • n2 (float) – Nonlinear index in m^2 / W

  • fR (float) – Fractional Raman contribution to the fibre nonlinear response (e.g., fR = 0.18 for silica)

  • tol (float) – Maximum propagation error used to adjust the proapgation step size

  • doping_concentration (float) – Number density of the active ions in m^-3

  • cross_section_file (string) – Absolute path to the emission and absorption cross sections as a function of wavelength. See pyLaserPulse.data.paths.fibres.cross_sections.

  • seed_repetition_rate (float) – Repetition rate of the seed laser. See pyLaserPulse.pulse.pulse.repetition_rate

  • pump_points (int) – Number of points in the pump/ASE spectrum window.

  • ASE_wl_lims (list) – [min_wavelength, max_wavelength] for the pump/ASE wavelength window in m.

  • Sellmeier_file (string.) – Absolute path to file containing Sellmeier coefficients for the fibre material. See pyLaserPulse.data.paths.materials.Sellmeier_coefficients.

  • boundary_conditions (dict) – Set the boundary conditions for resolving the evolution of the pump, signal, and ASE light in both directions through the fibre. The type of simulation – i.e., single-pass or full boundary value solver – is determined by this dictionary. See the Notes section below for a full description of how this parameters is defined.

  • lifetime (float) – Upper-state lifetime of the rare-earth dopant in s.

  • cladding_pumping (dict.) –

    Parameters required to define a cladding-pumped fibre. Leave empty if core pumping. Otherwise, the following keys are required:

    pump_core_diamfloat

    Diameter of the pump cladding in m

    pump_delta_nfloat

    Refractive index difference between the fibre coating and the pump cladding (usually n_silica - 1.375)

    pump_cladding_nfloat

    Refractive index of the fibre coating (usually 1.375)

  • time_domain_gain (bool) – True if mixed-domain gain operator (i.e., both frequency- and time-domain gain) is to be used. If False, only frequency- domain gain is simulated.

Notes

The boundary_conditions dictionary accepts the following keys:
co_pump_powerfloat

Power of the co-propagating pump in W

co_pump_wavelengthfloat

Central wavelength of the co-propagating pump in m

co_pump_bandwidthfloat

Bandwidth of the co-propagating pump in m

counter_pump_powerfloat

Power of the counter-propagating pump in W

counter_pump_wavelengthfloat

Central wavelength of the counter-propagating pump in m

counter_pump_bandwidthfloat

Bandwidth of the counter-propagating pump in m

If no counter-pump values are specified, then the propagation is completed in a single step and no effort is made to resolve counter-propagating signals (i.e., the boundary value problem is not solved). This allows for co-pumping only. Example:

boundary_conditions = {

‘co_pump_power’: 1, ‘co_pump_wavelength’: 976e-9, ‘co_pump_bandwidth’: 1e-9}

The boundary value problem is solved whenever dictionary key ‘counter_pump_power’ is present, but it is not necessary to specify the wavelength or bandwidth of either the co- or counter-propagating pump if the power is zero. Here are a few examples of valid boundary_conditions dictionaries:

  1. Co-pumping with full boundary value solver:
    boundary_conditions = {

    ‘co_pump_power’: 1, ‘co_pump_wavelength’: 976e-9, ‘co_pump_bandwidth’: 1e-9, ‘counter_pump_power’: 0}

  2. Bidirectional pumping with full boundary value solver:
    boundary_conditions = {

    ‘co_pump_power’: 1, ‘co_pump_wavelength’: 976e-9, ‘co_pump_bandwidth’: 1e-9, ‘counter_pump_power’: 1, ‘counter_pump_wavelength’: 976e-9, ‘counter_pump_bandwidth’: 1e-9}

  3. Counter-pumping with full boundary value solver:
    boundary_conditions = {

    ‘co_pump_power’: 0, ‘counter_pump_power’: 1, ‘counter_pump_wavelength’: 976e-9, ‘counter_pump_bandwidth’: 1e-9}

class pyLaserPulse.catalogue_components.active_fibres.NKT_DC_200_40_PZ_YB(grid, length, seed_repetition_rate, pump_points, ASE_wl_lims, boundary_conditions, time_domain_gain=False, cladding_pumping=True, n2=2.19e-20, verbose=False)

photonic_crystal_active_fibre with default parameters which provide fibre properties approximating those of NKT DC-200/40-PZ-YB.

Parameters:
  • grid (pyLaserPulse.grid.grid object)

  • length (float) – Fibre length.

  • beat_length (float) – Polarization beat length in m

  • seed_repetition_rate (float) – Repetition rate of the seed laser pulses

  • pump_ponts (int) – Number of points in the pump light grid

  • ASE_wl_lims (list) – Wavelength limits of the pump and ASE grid, [min_wl, max_wl] in m.

  • boundary_conditions (dict) – Set the boundary conditions for resolving the evolution of the pump, signal, and ASE light in both directions through the fibre. The type of simulation – i.e., single-pass or full boundary value solver – is determined by this dictionary. See pyLaserPulse.base_components.step_index_active_fibre

  • time_domain_gain (Boolean) – Time domain gain included if True.

  • cladding_pumping (bool) – Pump light is propagated in the cladding if true.

  • n2 (float) – Nonlinear index in m^2 / W. Default value is 2.19e-20 m^2/W, which is the value for fused silica around 1060 nm.

  • verbose (bool) – Print information to terminal if True

Notes

This fibre model is approximate only, and is not expected to produce highly accurate results.

This fibre can be used for cladding or core pumping.

__init__(grid, length, seed_repetition_rate, pump_points, ASE_wl_lims, boundary_conditions, time_domain_gain=False, cladding_pumping=True, n2=2.19e-20, verbose=False)
Parameters:
  • g (pyLaserPulse.grid.grid object)

  • length (float) – Fibre length in m

  • loss_file (string) – Absolute path to the fibre loss as a function of wavelength. See pyLaserPulse.data.paths.materials.loss_spectra

  • Raman_file (string) – Absolute path to the Raman response as a function of time. See pyLaserPulse.data.paths.materials.Raman_profiles

  • hole_pitch (float) – Separation of neighbouring air holes in the hexagonal-lattice PCF structure.

  • hole_diam_over_pitch (float) – Ratio of the air hole diameter to the hole pitch.

  • beat_length (float) – Polarization beat length in m

  • n2 (float) – Nonlinear index in m^2 / W

  • fR (float) – Fractional Raman contribution to the fibre nonlinear response (e.g., fR = 0.18 for silica)

  • tol (float) – Maximum propagation error used to adjust the proapgation step size

  • doping_concentration (float) – Number density of the active ions in m^-3

  • cross_section_file (string) – Absolute path to the emission and absorption cross sections as a function of wavelength. See pyLaserPulse.data.paths.fibres.cross_sections.

  • seed_repetition_rate (float) – Repetition rate of the seed laser. See pyLaserPulse.pulse.pulse.repetition_rate

  • pump_points (int) – Number of points in the pump/ASE spectrum window.

  • ASE_wl_lims (list) – [min_wavelength, max_wavelength] for the pump/ASE wavelength window in m.

  • Sellmeier_file (string) – Absolute path to the Sellmeier coefficients. See pyLaserPulse.data.paths.materials.Sellmeier_coefficients.

  • boundary_conditions (dict) – Set the boundary conditions for resolving the evolution of the pump, signal, and ASE light in both directions through the fibre. The type of simulation – i.e., single-pass or full boundary value solver – is determined by this dictionary. See the Notes section below for a full description of how this parameters is defined.

  • core_diam (Nonetype or float) – Diameter of the signal core in metres. If None, the standard value is used for hexagonal-lattice PCF, where the core is made up of a single missing air hole.

  • lifetime (float) – Upper-state lifetime of the rare-earth dopant in s.

  • cladding_pumping (dict.) –

    Parameters required to define a cladding-pumped fibre. Leave empty if core pumping. Otherwise, the following keys are required:

    pump_core_diamfloat

    Diameter of the pump cladding in m

    pump_delta_nfloat

    Refractive index difference between the fibre coating and the pump cladding (usually n_silica - 1.375)

    pump_cladding_nfloat

    Refractive index of the fibre coating (usually 1.375)

  • time_domain_gain (bool) – True if mixed-domain gain operator (i.e., both frequency- and time-domain gain) is to be used. If False, only frequency- domain gain is simulated.

  • verbose (bool) – Print information to terminal if True

Notes

The boundary_conditions dictionary accepts the following keys:
co_pump_powerfloat

Power of the co-propagating pump in W

co_pump_wavelengthfloat

Central wavelength of the co-propagating pump in m

co_pump_bandwidthfloat

Bandwidth of the co-propagating pump in m

counter_pump_powerfloat

Power of the counter-propagating pump in W

counter_pump_wavelengthfloat

Central wavelength of the counter-propagating pump in m

counter_pump_bandwidthfloat

Bandwidth of the counter-propagating pump in m

If no counter-pump values are specified, then no effort is made to resolve counter-propagating signals (i.e., the boundary value problem is not solved). This allows for co-pumping only. Example:

boundary_conditions = {

‘co_pump_power’: 1, ‘co_pump_wavelength’: 976e-9, ‘co_pump_bandwidth’: 1e-9}

The boundary value problem is solved whenever dictionary key ‘counter_pump_power’ is present, but it is not necessary to specify the wavelength or bandwidth of either the co- or counter-propagating pump if the power is zero. Here are a few examples of valid boundary_conditions dictionaries:

  1. Co-pumping with full boundary value solver:
    boundary_conditions = {

    ‘co_pump_power’: 1, ‘co_pump_wavelength’: 976e-9, ‘co_pump_bandwidth’: 1e-9, ‘counter_pump_power’: 0}

  2. Bidirectional pumping with full boundary value solver:
    boundary_conditions = {

    ‘co_pump_power’: 1, ‘co_pump_wavelength’: 976e-9, ‘co_pump_bandwidth’: 1e-9, ‘counter_pump_power’: 1, ‘counter_pump_wavelength’: 976e-9, ‘counter_pump_bandwidth’: 1e-9}

  3. Counter-pumping with full boundary value solver:
    boundary_conditions = {

    ‘co_pump_power’: 0, ‘counter_pump_power’: 1, ‘counter_pump_wavelength’: 976e-9, ‘counter_pump_bandwidth’: 1e-9}

class pyLaserPulse.catalogue_components.active_fibres.Nufern_EDFC_980_HP(grid, length, beat_length, seed_repetition_rate, pump_points, ASE_wl_lims, boundary_conditions, time_domain_gain=False, n2=2.33e-20, verbose=False)

step_index_active_fibre with default parameters which provide fibre properties matching those of Nufern EDFC-980-HP.

Parameters:
  • grid (pyLaserPulse.grid.grid object)

  • length (float) – Fibre length.

  • beat_length (float) – Polarization beat length in m

  • seed_repetition_rate (float) – Repetition rate of the seed laser pulses

  • pump_points (int) – Number of points in the pump light grid.

  • ASE_wl_lims (list) – Wavelength limits of the pump and ASE grid, [min_wl, max_wl] in m.

  • boundary_conditions (dict) – Set the boundary conditions for resolving the evolution of the pump, signal, and ASE light in both directions through the fibre. The type of simulation – i.e., single-pass or full boundary value solver – is determined by this dictionary. See pyLaserPulse.base_components.step_index_active_fibre

  • time_domain_gain (Boolean) – Time domain gain included if True.

  • n2 (float) – Nonlinear index in m^2 / W. Default value is 2.33e-20 m^2/W, which is the value for fused silica around 1550 nm.

  • verbose (bool) – Print information to terminal if True

__init__(grid, length, beat_length, seed_repetition_rate, pump_points, ASE_wl_lims, boundary_conditions, time_domain_gain=False, n2=2.33e-20, verbose=False)
Parameters:
  • g (pyLaserPulse.grid.grid object)

  • length (float) – Fibre length in m

  • loss_file (string) – Absolute path to the fibre loss as a function of wavelength. See pyLaserPulse.data.paths.materials.loss_spectra

  • Raman_file (string) – Absolute path to the Raman response as a function of time. See pyLaserPulse.data.paths.materials.Raman_profiles

  • core_diam (float) – Core diameter in m

  • NA (float) – Numerical aperture

  • beat_length (float) – Polarization beat length in m

  • n2 (float) – Nonlinear index in m^2 / W

  • fR (float) – Fractional Raman contribution to the fibre nonlinear response (e.g., fR = 0.18 for silica)

  • tol (float) – Maximum propagation error used to adjust the proapgation step size

  • doping_concentration (float) – Number density of the active ions in m^-3

  • cross_section_file (string) – Absolute path to the emission and absorption cross sections as a function of wavelength. See pyLaserPulse.data.paths.fibres.cross_sections.

  • seed_repetition_rate (float) – Repetition rate of the seed laser. See pyLaserPulse.pulse.pulse.repetition_rate

  • pump_points (int) – Number of points in the pump/ASE spectrum window.

  • ASE_wl_lims (list) – [min_wavelength, max_wavelength] for the pump/ASE wavelength window in m.

  • Sellmeier_file (string.) – Absolute path to file containing Sellmeier coefficients for the fibre material. See pyLaserPulse.data.paths.materials.Sellmeier_coefficients.

  • boundary_conditions (dict) – Set the boundary conditions for resolving the evolution of the pump, signal, and ASE light in both directions through the fibre. The type of simulation – i.e., single-pass or full boundary value solver – is determined by this dictionary. See the Notes section below for a full description of how this parameters is defined.

  • lifetime (float) – Upper-state lifetime of the rare-earth dopant in s.

  • cladding_pumping (dict.) –

    Parameters required to define a cladding-pumped fibre. Leave empty if core pumping. Otherwise, the following keys are required:

    pump_core_diamfloat

    Diameter of the pump cladding in m

    pump_delta_nfloat

    Refractive index difference between the fibre coating and the pump cladding (usually n_silica - 1.375)

    pump_cladding_nfloat

    Refractive index of the fibre coating (usually 1.375)

  • time_domain_gain (bool) – True if mixed-domain gain operator (i.e., both frequency- and time-domain gain) is to be used. If False, only frequency- domain gain is simulated.

Notes

The boundary_conditions dictionary accepts the following keys:
co_pump_powerfloat

Power of the co-propagating pump in W

co_pump_wavelengthfloat

Central wavelength of the co-propagating pump in m

co_pump_bandwidthfloat

Bandwidth of the co-propagating pump in m

counter_pump_powerfloat

Power of the counter-propagating pump in W

counter_pump_wavelengthfloat

Central wavelength of the counter-propagating pump in m

counter_pump_bandwidthfloat

Bandwidth of the counter-propagating pump in m

If no counter-pump values are specified, then the propagation is completed in a single step and no effort is made to resolve counter-propagating signals (i.e., the boundary value problem is not solved). This allows for co-pumping only. Example:

boundary_conditions = {

‘co_pump_power’: 1, ‘co_pump_wavelength’: 976e-9, ‘co_pump_bandwidth’: 1e-9}

The boundary value problem is solved whenever dictionary key ‘counter_pump_power’ is present, but it is not necessary to specify the wavelength or bandwidth of either the co- or counter-propagating pump if the power is zero. Here are a few examples of valid boundary_conditions dictionaries:

  1. Co-pumping with full boundary value solver:
    boundary_conditions = {

    ‘co_pump_power’: 1, ‘co_pump_wavelength’: 976e-9, ‘co_pump_bandwidth’: 1e-9, ‘counter_pump_power’: 0}

  2. Bidirectional pumping with full boundary value solver:
    boundary_conditions = {

    ‘co_pump_power’: 1, ‘co_pump_wavelength’: 976e-9, ‘co_pump_bandwidth’: 1e-9, ‘counter_pump_power’: 1, ‘counter_pump_wavelength’: 976e-9, ‘counter_pump_bandwidth’: 1e-9}

  3. Counter-pumping with full boundary value solver:
    boundary_conditions = {

    ‘co_pump_power’: 0, ‘counter_pump_power’: 1, ‘counter_pump_wavelength’: 976e-9, ‘counter_pump_bandwidth’: 1e-9}

class pyLaserPulse.catalogue_components.active_fibres.Nufern_PLMA_YDF_10_125_M(grid, length, seed_repetition_rate, pump_points, ASE_wl_lims, boundary_conditions, time_domain_gain=False, cladding_pumping=False, n2=2.19e-20, verbose=False)

step_index_active_fibre with default parameters which provide fibre properties matching those of Nufern PLMA GDF 10/125 M

grid : pyLaserPulse.grid.grid object length : float

Fibre length.

seed_repetition_ratefloat

Repetition rate of the seed laser pulses

pump_pointsint

Number of points in the pump light grid.

ASE_wl_limslist

Wavelength limits of the pump and ASE grid, [min_wl, max_wl] in m.

boundary_conditionsdict

Set the boundary conditions for resolving the evolution of the pump, signal, and ASE light in both directions through the fibre. The type of simulation – i.e., single-pass or full boundary value solver – is determined by this dictionary. See pyLaserPulse.base_components.step_index_active_fibre

time_domain_gainBoolean

Time domain gain included if True.

n2float

Nonlinear index in m^2 / W. Default value is 2.19e-20 m^2/W, which is the value for fused silica around 1060 nm.

verbosebool

Print information to terminal if True

Notes

This fibre can be used for caldding or core pumping.

__init__(grid, length, seed_repetition_rate, pump_points, ASE_wl_lims, boundary_conditions, time_domain_gain=False, cladding_pumping=False, n2=2.19e-20, verbose=False)
Parameters:
  • g (pyLaserPulse.grid.grid object)

  • length (float) – Fibre length in m

  • loss_file (string) – Absolute path to the fibre loss as a function of wavelength. See pyLaserPulse.data.paths.materials.loss_spectra

  • Raman_file (string) – Absolute path to the Raman response as a function of time. See pyLaserPulse.data.paths.materials.Raman_profiles

  • core_diam (float) – Core diameter in m

  • NA (float) – Numerical aperture

  • beat_length (float) – Polarization beat length in m

  • n2 (float) – Nonlinear index in m^2 / W

  • fR (float) – Fractional Raman contribution to the fibre nonlinear response (e.g., fR = 0.18 for silica)

  • tol (float) – Maximum propagation error used to adjust the proapgation step size

  • doping_concentration (float) – Number density of the active ions in m^-3

  • cross_section_file (string) – Absolute path to the emission and absorption cross sections as a function of wavelength. See pyLaserPulse.data.paths.fibres.cross_sections.

  • seed_repetition_rate (float) – Repetition rate of the seed laser. See pyLaserPulse.pulse.pulse.repetition_rate

  • pump_points (int) – Number of points in the pump/ASE spectrum window.

  • ASE_wl_lims (list) – [min_wavelength, max_wavelength] for the pump/ASE wavelength window in m.

  • Sellmeier_file (string.) – Absolute path to file containing Sellmeier coefficients for the fibre material. See pyLaserPulse.data.paths.materials.Sellmeier_coefficients.

  • boundary_conditions (dict) – Set the boundary conditions for resolving the evolution of the pump, signal, and ASE light in both directions through the fibre. The type of simulation – i.e., single-pass or full boundary value solver – is determined by this dictionary. See the Notes section below for a full description of how this parameters is defined.

  • lifetime (float) – Upper-state lifetime of the rare-earth dopant in s.

  • cladding_pumping (dict.) –

    Parameters required to define a cladding-pumped fibre. Leave empty if core pumping. Otherwise, the following keys are required:

    pump_core_diamfloat

    Diameter of the pump cladding in m

    pump_delta_nfloat

    Refractive index difference between the fibre coating and the pump cladding (usually n_silica - 1.375)

    pump_cladding_nfloat

    Refractive index of the fibre coating (usually 1.375)

  • time_domain_gain (bool) – True if mixed-domain gain operator (i.e., both frequency- and time-domain gain) is to be used. If False, only frequency- domain gain is simulated.

Notes

The boundary_conditions dictionary accepts the following keys:
co_pump_powerfloat

Power of the co-propagating pump in W

co_pump_wavelengthfloat

Central wavelength of the co-propagating pump in m

co_pump_bandwidthfloat

Bandwidth of the co-propagating pump in m

counter_pump_powerfloat

Power of the counter-propagating pump in W

counter_pump_wavelengthfloat

Central wavelength of the counter-propagating pump in m

counter_pump_bandwidthfloat

Bandwidth of the counter-propagating pump in m

If no counter-pump values are specified, then the propagation is completed in a single step and no effort is made to resolve counter-propagating signals (i.e., the boundary value problem is not solved). This allows for co-pumping only. Example:

boundary_conditions = {

‘co_pump_power’: 1, ‘co_pump_wavelength’: 976e-9, ‘co_pump_bandwidth’: 1e-9}

The boundary value problem is solved whenever dictionary key ‘counter_pump_power’ is present, but it is not necessary to specify the wavelength or bandwidth of either the co- or counter-propagating pump if the power is zero. Here are a few examples of valid boundary_conditions dictionaries:

  1. Co-pumping with full boundary value solver:
    boundary_conditions = {

    ‘co_pump_power’: 1, ‘co_pump_wavelength’: 976e-9, ‘co_pump_bandwidth’: 1e-9, ‘counter_pump_power’: 0}

  2. Bidirectional pumping with full boundary value solver:
    boundary_conditions = {

    ‘co_pump_power’: 1, ‘co_pump_wavelength’: 976e-9, ‘co_pump_bandwidth’: 1e-9, ‘counter_pump_power’: 1, ‘counter_pump_wavelength’: 976e-9, ‘counter_pump_bandwidth’: 1e-9}

  3. Counter-pumping with full boundary value solver:
    boundary_conditions = {

    ‘co_pump_power’: 0, ‘counter_pump_power’: 1, ‘counter_pump_wavelength’: 976e-9, ‘counter_pump_bandwidth’: 1e-9}

class pyLaserPulse.catalogue_components.active_fibres.Nufern_PM_YDF_5_130_VIII(grid, length, seed_repetition_rate, pump_points, ASE_wl_lims, boundary_conditions, time_domain_gain=False, cladding_pumping=False, n2=2.19e-20, verbose=False)

step_index_active_fibre with default parameters which provide fibre properties matching those of Nufern PM-YDF-5/130-VIII.

Parameters:
  • grid (pyLaserPulse.grid.grid object)

  • length (float) – Fibre length.

  • seed_repetition_rate (float) – Repetition rate of the seed laser pulses

  • pump_points (int) – Number of points in the pump light grid.

  • ASE_wl_lims (list) – Wavelength limits of the pump and ASE grid, [min_wl, max_wl] in m.

  • boundary_conditions (dict) – Set the boundary conditions for resolving the evolution of the pump, signal, and ASE light in both directions through the fibre. The type of simulation – i.e., single-pass or full boundary value solver – is determined by this dictionary. See pyLaserPulse.base_components.step_index_active_fibre

  • time_domain_gain (Boolean) – Time domain gain included if True.

  • n2 (float) – Nonlinear index in m^2 / W. Default value is 2.19e-20 m^2/W, which is the value for fused silica around 1060 nm.

  • cladding_pumping (bool) – Pump light is propagated in the cladding if true.

  • verbose (bool) – Print information to terminal if True

Notes

This fibre can be used for caldding or core pumping.

__init__(grid, length, seed_repetition_rate, pump_points, ASE_wl_lims, boundary_conditions, time_domain_gain=False, cladding_pumping=False, n2=2.19e-20, verbose=False)
Parameters:
  • g (pyLaserPulse.grid.grid object)

  • length (float) – Fibre length in m

  • loss_file (string) – Absolute path to the fibre loss as a function of wavelength. See pyLaserPulse.data.paths.materials.loss_spectra

  • Raman_file (string) – Absolute path to the Raman response as a function of time. See pyLaserPulse.data.paths.materials.Raman_profiles

  • core_diam (float) – Core diameter in m

  • NA (float) – Numerical aperture

  • beat_length (float) – Polarization beat length in m

  • n2 (float) – Nonlinear index in m^2 / W

  • fR (float) – Fractional Raman contribution to the fibre nonlinear response (e.g., fR = 0.18 for silica)

  • tol (float) – Maximum propagation error used to adjust the proapgation step size

  • doping_concentration (float) – Number density of the active ions in m^-3

  • cross_section_file (string) – Absolute path to the emission and absorption cross sections as a function of wavelength. See pyLaserPulse.data.paths.fibres.cross_sections.

  • seed_repetition_rate (float) – Repetition rate of the seed laser. See pyLaserPulse.pulse.pulse.repetition_rate

  • pump_points (int) – Number of points in the pump/ASE spectrum window.

  • ASE_wl_lims (list) – [min_wavelength, max_wavelength] for the pump/ASE wavelength window in m.

  • Sellmeier_file (string.) – Absolute path to file containing Sellmeier coefficients for the fibre material. See pyLaserPulse.data.paths.materials.Sellmeier_coefficients.

  • boundary_conditions (dict) – Set the boundary conditions for resolving the evolution of the pump, signal, and ASE light in both directions through the fibre. The type of simulation – i.e., single-pass or full boundary value solver – is determined by this dictionary. See the Notes section below for a full description of how this parameters is defined.

  • lifetime (float) – Upper-state lifetime of the rare-earth dopant in s.

  • cladding_pumping (dict.) –

    Parameters required to define a cladding-pumped fibre. Leave empty if core pumping. Otherwise, the following keys are required:

    pump_core_diamfloat

    Diameter of the pump cladding in m

    pump_delta_nfloat

    Refractive index difference between the fibre coating and the pump cladding (usually n_silica - 1.375)

    pump_cladding_nfloat

    Refractive index of the fibre coating (usually 1.375)

  • time_domain_gain (bool) – True if mixed-domain gain operator (i.e., both frequency- and time-domain gain) is to be used. If False, only frequency- domain gain is simulated.

Notes

The boundary_conditions dictionary accepts the following keys:
co_pump_powerfloat

Power of the co-propagating pump in W

co_pump_wavelengthfloat

Central wavelength of the co-propagating pump in m

co_pump_bandwidthfloat

Bandwidth of the co-propagating pump in m

counter_pump_powerfloat

Power of the counter-propagating pump in W

counter_pump_wavelengthfloat

Central wavelength of the counter-propagating pump in m

counter_pump_bandwidthfloat

Bandwidth of the counter-propagating pump in m

If no counter-pump values are specified, then the propagation is completed in a single step and no effort is made to resolve counter-propagating signals (i.e., the boundary value problem is not solved). This allows for co-pumping only. Example:

boundary_conditions = {

‘co_pump_power’: 1, ‘co_pump_wavelength’: 976e-9, ‘co_pump_bandwidth’: 1e-9}

The boundary value problem is solved whenever dictionary key ‘counter_pump_power’ is present, but it is not necessary to specify the wavelength or bandwidth of either the co- or counter-propagating pump if the power is zero. Here are a few examples of valid boundary_conditions dictionaries:

  1. Co-pumping with full boundary value solver:
    boundary_conditions = {

    ‘co_pump_power’: 1, ‘co_pump_wavelength’: 976e-9, ‘co_pump_bandwidth’: 1e-9, ‘counter_pump_power’: 0}

  2. Bidirectional pumping with full boundary value solver:
    boundary_conditions = {

    ‘co_pump_power’: 1, ‘co_pump_wavelength’: 976e-9, ‘co_pump_bandwidth’: 1e-9, ‘counter_pump_power’: 1, ‘counter_pump_wavelength’: 976e-9, ‘counter_pump_bandwidth’: 1e-9}

  3. Counter-pumping with full boundary value solver:
    boundary_conditions = {

    ‘co_pump_power’: 0, ‘counter_pump_power’: 1, ‘counter_pump_wavelength’: 976e-9, ‘counter_pump_bandwidth’: 1e-9}

class pyLaserPulse.catalogue_components.active_fibres.Nufern_PLMA_YDF_25_250(grid, length, seed_repetition_rate, pump_points, ASE_wl_lims, boundary_conditions, time_domain_gain=False, cladding_pumping=False, n2=2.19e-20, verbose=False)

step_index_active_fibre with default parameters which provide fibre properties matching those of Nufern PLMA-YDF-25/250-VIII.

Parameters:
  • grid (pyLaserPulse.grid.grid object)

  • length (float) – Fibre length.

  • seed_repetition_rate (float) – Repetition rate of the seed laser pulses

  • pump_points (int) – Number of points in the pump light grid.

  • ASE_wl_lims (list) – Wavelength limits of the pump and ASE grid, [min_wl, max_wl] in m.

  • boundary_conditions (dict) – Set the boundary conditions for resolving the evolution of the pump, signal, and ASE light in both directions through the fibre. The type of simulation – i.e., single-pass or full boundary value solver – is determined by this dictionary. See pyLaserPulse.base_components.step_index_active_fibre

  • time_domain_gain (Boolean) – Time domain gain included if True.

  • cladding_pumping (bool) – Pump light is propagated in the cladding if true.

  • n2 (float) – Nonlinear index in m^2 / W. Default value is 2.19e-20 m^2/W, which is the value for fused silica around 1060 nm.

  • verbose (bool) – Print information to terminal if True

Notes

This fibre can be used for cladding or core pumping.

__init__(grid, length, seed_repetition_rate, pump_points, ASE_wl_lims, boundary_conditions, time_domain_gain=False, cladding_pumping=False, n2=2.19e-20, verbose=False)
Parameters:
  • g (pyLaserPulse.grid.grid object)

  • length (float) – Fibre length in m

  • loss_file (string) – Absolute path to the fibre loss as a function of wavelength. See pyLaserPulse.data.paths.materials.loss_spectra

  • Raman_file (string) – Absolute path to the Raman response as a function of time. See pyLaserPulse.data.paths.materials.Raman_profiles

  • core_diam (float) – Core diameter in m

  • NA (float) – Numerical aperture

  • beat_length (float) – Polarization beat length in m

  • n2 (float) – Nonlinear index in m^2 / W

  • fR (float) – Fractional Raman contribution to the fibre nonlinear response (e.g., fR = 0.18 for silica)

  • tol (float) – Maximum propagation error used to adjust the proapgation step size

  • doping_concentration (float) – Number density of the active ions in m^-3

  • cross_section_file (string) – Absolute path to the emission and absorption cross sections as a function of wavelength. See pyLaserPulse.data.paths.fibres.cross_sections.

  • seed_repetition_rate (float) – Repetition rate of the seed laser. See pyLaserPulse.pulse.pulse.repetition_rate

  • pump_points (int) – Number of points in the pump/ASE spectrum window.

  • ASE_wl_lims (list) – [min_wavelength, max_wavelength] for the pump/ASE wavelength window in m.

  • Sellmeier_file (string.) – Absolute path to file containing Sellmeier coefficients for the fibre material. See pyLaserPulse.data.paths.materials.Sellmeier_coefficients.

  • boundary_conditions (dict) – Set the boundary conditions for resolving the evolution of the pump, signal, and ASE light in both directions through the fibre. The type of simulation – i.e., single-pass or full boundary value solver – is determined by this dictionary. See the Notes section below for a full description of how this parameters is defined.

  • lifetime (float) – Upper-state lifetime of the rare-earth dopant in s.

  • cladding_pumping (dict.) –

    Parameters required to define a cladding-pumped fibre. Leave empty if core pumping. Otherwise, the following keys are required:

    pump_core_diamfloat

    Diameter of the pump cladding in m

    pump_delta_nfloat

    Refractive index difference between the fibre coating and the pump cladding (usually n_silica - 1.375)

    pump_cladding_nfloat

    Refractive index of the fibre coating (usually 1.375)

  • time_domain_gain (bool) – True if mixed-domain gain operator (i.e., both frequency- and time-domain gain) is to be used. If False, only frequency- domain gain is simulated.

Notes

The boundary_conditions dictionary accepts the following keys:
co_pump_powerfloat

Power of the co-propagating pump in W

co_pump_wavelengthfloat

Central wavelength of the co-propagating pump in m

co_pump_bandwidthfloat

Bandwidth of the co-propagating pump in m

counter_pump_powerfloat

Power of the counter-propagating pump in W

counter_pump_wavelengthfloat

Central wavelength of the counter-propagating pump in m

counter_pump_bandwidthfloat

Bandwidth of the counter-propagating pump in m

If no counter-pump values are specified, then the propagation is completed in a single step and no effort is made to resolve counter-propagating signals (i.e., the boundary value problem is not solved). This allows for co-pumping only. Example:

boundary_conditions = {

‘co_pump_power’: 1, ‘co_pump_wavelength’: 976e-9, ‘co_pump_bandwidth’: 1e-9}

The boundary value problem is solved whenever dictionary key ‘counter_pump_power’ is present, but it is not necessary to specify the wavelength or bandwidth of either the co- or counter-propagating pump if the power is zero. Here are a few examples of valid boundary_conditions dictionaries:

  1. Co-pumping with full boundary value solver:
    boundary_conditions = {

    ‘co_pump_power’: 1, ‘co_pump_wavelength’: 976e-9, ‘co_pump_bandwidth’: 1e-9, ‘counter_pump_power’: 0}

  2. Bidirectional pumping with full boundary value solver:
    boundary_conditions = {

    ‘co_pump_power’: 1, ‘co_pump_wavelength’: 976e-9, ‘co_pump_bandwidth’: 1e-9, ‘counter_pump_power’: 1, ‘counter_pump_wavelength’: 976e-9, ‘counter_pump_bandwidth’: 1e-9}

  3. Counter-pumping with full boundary value solver:
    boundary_conditions = {

    ‘co_pump_power’: 0, ‘counter_pump_power’: 1, ‘counter_pump_wavelength’: 976e-9, ‘counter_pump_bandwidth’: 1e-9}

class pyLaserPulse.catalogue_components.active_fibres.Nufern_PLMA_30_400(grid, length, seed_repetition_rate, pump_points, ASE_wl_lims, boundary_conditions, time_domain_gain=False, cladding_pumping=False, n2=2.19e-20, verbose=False)

step_index_active_fibre with default parameters which provide fibre properties matching those of Nufern PLMA-YDF-30/400-VIII.

Parameters:
  • grid (pyLaserPulse.grid.grid object)

  • length (float) – Fibre length.

  • seed_repetition_rate (float) – Repetition rate of the seed laser pulses

  • pump_points (int) – Number of points in the pump light grid.

  • ASE_wl_lims (list) – Wavelength limits of the pump and ASE grid, [min_wl, max_wl] in m.

  • boundary_conditions (dict) – Set the boundary conditions for resolving the evolution of the pump, signal, and ASE light in both directions through the fibre. The type of simulation – i.e., single-pass or full boundary value solver – is determined by this dictionary. See pyLaserPulse.base_components.step_index_active_fibre

  • time_domain_gain (Boolean) – Time domain gain included if True.

  • cladding_pumping (bool) – Pump light is propagated in the cladding if true.

  • n2 (float) – Nonlinear index in m^2 / W. Default value is 2.19e-20 m^2/W, which is the value for fused silica around 1060 nm.

  • verbose (bool) – Print information to terminal if True

Notes

This fibre can be used for cladding or core pumping.

__init__(grid, length, seed_repetition_rate, pump_points, ASE_wl_lims, boundary_conditions, time_domain_gain=False, cladding_pumping=False, n2=2.19e-20, verbose=False)
Parameters:
  • g (pyLaserPulse.grid.grid object)

  • length (float) – Fibre length in m

  • loss_file (string) – Absolute path to the fibre loss as a function of wavelength. See pyLaserPulse.data.paths.materials.loss_spectra

  • Raman_file (string) – Absolute path to the Raman response as a function of time. See pyLaserPulse.data.paths.materials.Raman_profiles

  • core_diam (float) – Core diameter in m

  • NA (float) – Numerical aperture

  • beat_length (float) – Polarization beat length in m

  • n2 (float) – Nonlinear index in m^2 / W

  • fR (float) – Fractional Raman contribution to the fibre nonlinear response (e.g., fR = 0.18 for silica)

  • tol (float) – Maximum propagation error used to adjust the proapgation step size

  • doping_concentration (float) – Number density of the active ions in m^-3

  • cross_section_file (string) – Absolute path to the emission and absorption cross sections as a function of wavelength. See pyLaserPulse.data.paths.fibres.cross_sections.

  • seed_repetition_rate (float) – Repetition rate of the seed laser. See pyLaserPulse.pulse.pulse.repetition_rate

  • pump_points (int) – Number of points in the pump/ASE spectrum window.

  • ASE_wl_lims (list) – [min_wavelength, max_wavelength] for the pump/ASE wavelength window in m.

  • Sellmeier_file (string.) – Absolute path to file containing Sellmeier coefficients for the fibre material. See pyLaserPulse.data.paths.materials.Sellmeier_coefficients.

  • boundary_conditions (dict) – Set the boundary conditions for resolving the evolution of the pump, signal, and ASE light in both directions through the fibre. The type of simulation – i.e., single-pass or full boundary value solver – is determined by this dictionary. See the Notes section below for a full description of how this parameters is defined.

  • lifetime (float) – Upper-state lifetime of the rare-earth dopant in s.

  • cladding_pumping (dict.) –

    Parameters required to define a cladding-pumped fibre. Leave empty if core pumping. Otherwise, the following keys are required:

    pump_core_diamfloat

    Diameter of the pump cladding in m

    pump_delta_nfloat

    Refractive index difference between the fibre coating and the pump cladding (usually n_silica - 1.375)

    pump_cladding_nfloat

    Refractive index of the fibre coating (usually 1.375)

  • time_domain_gain (bool) – True if mixed-domain gain operator (i.e., both frequency- and time-domain gain) is to be used. If False, only frequency- domain gain is simulated.

Notes

The boundary_conditions dictionary accepts the following keys:
co_pump_powerfloat

Power of the co-propagating pump in W

co_pump_wavelengthfloat

Central wavelength of the co-propagating pump in m

co_pump_bandwidthfloat

Bandwidth of the co-propagating pump in m

counter_pump_powerfloat

Power of the counter-propagating pump in W

counter_pump_wavelengthfloat

Central wavelength of the counter-propagating pump in m

counter_pump_bandwidthfloat

Bandwidth of the counter-propagating pump in m

If no counter-pump values are specified, then the propagation is completed in a single step and no effort is made to resolve counter-propagating signals (i.e., the boundary value problem is not solved). This allows for co-pumping only. Example:

boundary_conditions = {

‘co_pump_power’: 1, ‘co_pump_wavelength’: 976e-9, ‘co_pump_bandwidth’: 1e-9}

The boundary value problem is solved whenever dictionary key ‘counter_pump_power’ is present, but it is not necessary to specify the wavelength or bandwidth of either the co- or counter-propagating pump if the power is zero. Here are a few examples of valid boundary_conditions dictionaries:

  1. Co-pumping with full boundary value solver:
    boundary_conditions = {

    ‘co_pump_power’: 1, ‘co_pump_wavelength’: 976e-9, ‘co_pump_bandwidth’: 1e-9, ‘counter_pump_power’: 0}

  2. Bidirectional pumping with full boundary value solver:
    boundary_conditions = {

    ‘co_pump_power’: 1, ‘co_pump_wavelength’: 976e-9, ‘co_pump_bandwidth’: 1e-9, ‘counter_pump_power’: 1, ‘counter_pump_wavelength’: 976e-9, ‘counter_pump_bandwidth’: 1e-9}

  3. Counter-pumping with full boundary value solver:
    boundary_conditions = {

    ‘co_pump_power’: 0, ‘counter_pump_power’: 1, ‘counter_pump_wavelength’: 976e-9, ‘counter_pump_bandwidth’: 1e-9}

class pyLaserPulse.catalogue_components.active_fibres.Nufern_FUD_4288_LMA_YDF_48_400E(grid, length, seed_repetition_rate, pump_points, ASE_wl_lims, boundary_conditions, time_domain_gain=False, cladding_pumping=False, n2=2.19e-20, verbose=False)

step_index_active_fibre with default parameters which provide fibre properties matching those of Nufern FUD-4288 LMA-YDF-48/400E.

Parameters:
  • grid (pyLaserPulse.grid.grid object)

  • length (float) – Fibre length.

  • seed_repetition_rate (float) – Repetition rate of the seed laser pulses

  • pump_points (int) – Number of points in the pump light grid.

  • ASE_wl_lims (list) – Wavelength limits of the pump and ASE grid, [min_wl, max_wl] in m.

  • boundary_conditions (dict) – Set the boundary conditions for resolving the evolution of the pump, signal, and ASE light in both directions through the fibre. The type of simulation – i.e., single-pass or full boundary value solver – is determined by this dictionary. See pyLaserPulse.base_components.step_index_active_fibre

  • time_domain_gain (Boolean) – Time domain gain included if True.

  • cladding_pumping (bool) – Pump light is propagated in the cladding if true.

  • n2 (float) – Nonlinear index in m^2 / W. Default value is 2.19e-20 m^2/W, which is the value for fused silica around 1060 nm.

  • verbose (bool) – Print information to terminal if True

Notes

This fibre can be used for cladding or core pumping.

__init__(grid, length, seed_repetition_rate, pump_points, ASE_wl_lims, boundary_conditions, time_domain_gain=False, cladding_pumping=False, n2=2.19e-20, verbose=False)
Parameters:
  • g (pyLaserPulse.grid.grid object)

  • length (float) – Fibre length in m

  • loss_file (string) – Absolute path to the fibre loss as a function of wavelength. See pyLaserPulse.data.paths.materials.loss_spectra

  • Raman_file (string) – Absolute path to the Raman response as a function of time. See pyLaserPulse.data.paths.materials.Raman_profiles

  • core_diam (float) – Core diameter in m

  • NA (float) – Numerical aperture

  • beat_length (float) – Polarization beat length in m

  • n2 (float) – Nonlinear index in m^2 / W

  • fR (float) – Fractional Raman contribution to the fibre nonlinear response (e.g., fR = 0.18 for silica)

  • tol (float) – Maximum propagation error used to adjust the proapgation step size

  • doping_concentration (float) – Number density of the active ions in m^-3

  • cross_section_file (string) – Absolute path to the emission and absorption cross sections as a function of wavelength. See pyLaserPulse.data.paths.fibres.cross_sections.

  • seed_repetition_rate (float) – Repetition rate of the seed laser. See pyLaserPulse.pulse.pulse.repetition_rate

  • pump_points (int) – Number of points in the pump/ASE spectrum window.

  • ASE_wl_lims (list) – [min_wavelength, max_wavelength] for the pump/ASE wavelength window in m.

  • Sellmeier_file (string.) – Absolute path to file containing Sellmeier coefficients for the fibre material. See pyLaserPulse.data.paths.materials.Sellmeier_coefficients.

  • boundary_conditions (dict) – Set the boundary conditions for resolving the evolution of the pump, signal, and ASE light in both directions through the fibre. The type of simulation – i.e., single-pass or full boundary value solver – is determined by this dictionary. See the Notes section below for a full description of how this parameters is defined.

  • lifetime (float) – Upper-state lifetime of the rare-earth dopant in s.

  • cladding_pumping (dict.) –

    Parameters required to define a cladding-pumped fibre. Leave empty if core pumping. Otherwise, the following keys are required:

    pump_core_diamfloat

    Diameter of the pump cladding in m

    pump_delta_nfloat

    Refractive index difference between the fibre coating and the pump cladding (usually n_silica - 1.375)

    pump_cladding_nfloat

    Refractive index of the fibre coating (usually 1.375)

  • time_domain_gain (bool) – True if mixed-domain gain operator (i.e., both frequency- and time-domain gain) is to be used. If False, only frequency- domain gain is simulated.

Notes

The boundary_conditions dictionary accepts the following keys:
co_pump_powerfloat

Power of the co-propagating pump in W

co_pump_wavelengthfloat

Central wavelength of the co-propagating pump in m

co_pump_bandwidthfloat

Bandwidth of the co-propagating pump in m

counter_pump_powerfloat

Power of the counter-propagating pump in W

counter_pump_wavelengthfloat

Central wavelength of the counter-propagating pump in m

counter_pump_bandwidthfloat

Bandwidth of the counter-propagating pump in m

If no counter-pump values are specified, then the propagation is completed in a single step and no effort is made to resolve counter-propagating signals (i.e., the boundary value problem is not solved). This allows for co-pumping only. Example:

boundary_conditions = {

‘co_pump_power’: 1, ‘co_pump_wavelength’: 976e-9, ‘co_pump_bandwidth’: 1e-9}

The boundary value problem is solved whenever dictionary key ‘counter_pump_power’ is present, but it is not necessary to specify the wavelength or bandwidth of either the co- or counter-propagating pump if the power is zero. Here are a few examples of valid boundary_conditions dictionaries:

  1. Co-pumping with full boundary value solver:
    boundary_conditions = {

    ‘co_pump_power’: 1, ‘co_pump_wavelength’: 976e-9, ‘co_pump_bandwidth’: 1e-9, ‘counter_pump_power’: 0}

  2. Bidirectional pumping with full boundary value solver:
    boundary_conditions = {

    ‘co_pump_power’: 1, ‘co_pump_wavelength’: 976e-9, ‘co_pump_bandwidth’: 1e-9, ‘counter_pump_power’: 1, ‘counter_pump_wavelength’: 976e-9, ‘counter_pump_bandwidth’: 1e-9}

  3. Counter-pumping with full boundary value solver:
    boundary_conditions = {

    ‘co_pump_power’: 0, ‘counter_pump_power’: 1, ‘counter_pump_wavelength’: 976e-9, ‘counter_pump_bandwidth’: 1e-9}

class pyLaserPulse.catalogue_components.active_fibres.Nufern_PM_YSF_HI_HP(grid, length, seed_repetition_rate, pump_points, ASE_wl_lims, boundary_conditions, time_domain_gain=False, n2=2.19e-20, verbose=False)

step_index_active_fibre with default parameters which provide fibre properties matching those of Nufern PLMA YSF 10/125.

Parameters:
  • grid (pyLaserPulse.grid.grid object)

  • length (float) – Fibre length.

  • seed_repetition_rate (float) – Repetition rate of the seed laser pulses

  • pump_points (int) – Number of points in the pump light grid.

  • ASE_wl_lims (list) – Wavelength limits of the pump and ASE grid, [min_wl, max_wl] in m.

  • boundary_conditions (dict) – Set the boundary conditions for resolving the evolution of the pump, signal, and ASE light in both directions through the fibre. The type of simulation – i.e., single-pass or full boundary value solver – is determined by this dictionary. See pyLaserPulse.base_components.step_index_active_fibre

  • time_domain_gain (Boolean) – Time domain gain included if True.

  • n2 (float) – Nonlinear index in m^2 / W. Default value is 2.19e-20 m^2/W, which is the value for fused silica around 1060 nm.

  • verbose (bool) – Print information to terminal if True

__init__(grid, length, seed_repetition_rate, pump_points, ASE_wl_lims, boundary_conditions, time_domain_gain=False, n2=2.19e-20, verbose=False)
Parameters:
  • g (pyLaserPulse.grid.grid object)

  • length (float) – Fibre length in m

  • loss_file (string) – Absolute path to the fibre loss as a function of wavelength. See pyLaserPulse.data.paths.materials.loss_spectra

  • Raman_file (string) – Absolute path to the Raman response as a function of time. See pyLaserPulse.data.paths.materials.Raman_profiles

  • core_diam (float) – Core diameter in m

  • NA (float) – Numerical aperture

  • beat_length (float) – Polarization beat length in m

  • n2 (float) – Nonlinear index in m^2 / W

  • fR (float) – Fractional Raman contribution to the fibre nonlinear response (e.g., fR = 0.18 for silica)

  • tol (float) – Maximum propagation error used to adjust the proapgation step size

  • doping_concentration (float) – Number density of the active ions in m^-3

  • cross_section_file (string) – Absolute path to the emission and absorption cross sections as a function of wavelength. See pyLaserPulse.data.paths.fibres.cross_sections.

  • seed_repetition_rate (float) – Repetition rate of the seed laser. See pyLaserPulse.pulse.pulse.repetition_rate

  • pump_points (int) – Number of points in the pump/ASE spectrum window.

  • ASE_wl_lims (list) – [min_wavelength, max_wavelength] for the pump/ASE wavelength window in m.

  • Sellmeier_file (string.) – Absolute path to file containing Sellmeier coefficients for the fibre material. See pyLaserPulse.data.paths.materials.Sellmeier_coefficients.

  • boundary_conditions (dict) – Set the boundary conditions for resolving the evolution of the pump, signal, and ASE light in both directions through the fibre. The type of simulation – i.e., single-pass or full boundary value solver – is determined by this dictionary. See the Notes section below for a full description of how this parameters is defined.

  • lifetime (float) – Upper-state lifetime of the rare-earth dopant in s.

  • cladding_pumping (dict.) –

    Parameters required to define a cladding-pumped fibre. Leave empty if core pumping. Otherwise, the following keys are required:

    pump_core_diamfloat

    Diameter of the pump cladding in m

    pump_delta_nfloat

    Refractive index difference between the fibre coating and the pump cladding (usually n_silica - 1.375)

    pump_cladding_nfloat

    Refractive index of the fibre coating (usually 1.375)

  • time_domain_gain (bool) – True if mixed-domain gain operator (i.e., both frequency- and time-domain gain) is to be used. If False, only frequency- domain gain is simulated.

Notes

The boundary_conditions dictionary accepts the following keys:
co_pump_powerfloat

Power of the co-propagating pump in W

co_pump_wavelengthfloat

Central wavelength of the co-propagating pump in m

co_pump_bandwidthfloat

Bandwidth of the co-propagating pump in m

counter_pump_powerfloat

Power of the counter-propagating pump in W

counter_pump_wavelengthfloat

Central wavelength of the counter-propagating pump in m

counter_pump_bandwidthfloat

Bandwidth of the counter-propagating pump in m

If no counter-pump values are specified, then the propagation is completed in a single step and no effort is made to resolve counter-propagating signals (i.e., the boundary value problem is not solved). This allows for co-pumping only. Example:

boundary_conditions = {

‘co_pump_power’: 1, ‘co_pump_wavelength’: 976e-9, ‘co_pump_bandwidth’: 1e-9}

The boundary value problem is solved whenever dictionary key ‘counter_pump_power’ is present, but it is not necessary to specify the wavelength or bandwidth of either the co- or counter-propagating pump if the power is zero. Here are a few examples of valid boundary_conditions dictionaries:

  1. Co-pumping with full boundary value solver:
    boundary_conditions = {

    ‘co_pump_power’: 1, ‘co_pump_wavelength’: 976e-9, ‘co_pump_bandwidth’: 1e-9, ‘counter_pump_power’: 0}

  2. Bidirectional pumping with full boundary value solver:
    boundary_conditions = {

    ‘co_pump_power’: 1, ‘co_pump_wavelength’: 976e-9, ‘co_pump_bandwidth’: 1e-9, ‘counter_pump_power’: 1, ‘counter_pump_wavelength’: 976e-9, ‘counter_pump_bandwidth’: 1e-9}

  3. Counter-pumping with full boundary value solver:
    boundary_conditions = {

    ‘co_pump_power’: 0, ‘counter_pump_power’: 1, ‘counter_pump_wavelength’: 976e-9, ‘counter_pump_bandwidth’: 1e-9}

class pyLaserPulse.catalogue_components.active_fibres.Thorlabs_Liekki_Yb1200_6_125_DC(grid, length, seed_repetition_rate, pump_points, ASE_wl_lims, boundary_conditions, time_domain_gain=False, cladding_pumping=False, n2=2.19e-20, verbose=False)

step_index_active_fibre with default parameters which provide fibre properties matching those of Liekki Yb1200-6/125DC.

Parameters:
  • grid (pyLaserPulse.grid.grid object)

  • length (float) – Fibre length.

  • seed_repetition_rate (float) – Repetition rate of the seed laser pulses

  • pump_points (int) – Number of points in the pump light grid.

  • ASE_wl_lims (list) – Wavelength limits of the pump and ASE grid, [min_wl, max_wl] in m.

  • boundary_conditions (dict) – Set the boundary conditions for resolving the evolution of the pump, signal, and ASE light in both directions through the fibre. The type of simulation – i.e., single-pass or full boundary value solver – is determined by this dictionary. See pyLaserPulse.base_components.step_index_active_fibre

  • time_domain_gain (Boolean) – Time domain gain included if True.

  • n2 (float) – Nonlinear index in m^2 / W. Default value is 2.19e-20 m^2/W, which is the value for fused silica around 1060 nm.

  • cladding_pumping (bool) – Pump light is propagated in the cladding if true.

  • verbose (bool) – Print information to terminal if True

Notes

This fibre can be used for caldding or core pumping.

The octagonal cladding geometry is not modelled, so cladding absorption is appriximate only.

__init__(grid, length, seed_repetition_rate, pump_points, ASE_wl_lims, boundary_conditions, time_domain_gain=False, cladding_pumping=False, n2=2.19e-20, verbose=False)
Parameters:
  • g (pyLaserPulse.grid.grid object)

  • length (float) – Fibre length in m

  • loss_file (string) – Absolute path to the fibre loss as a function of wavelength. See pyLaserPulse.data.paths.materials.loss_spectra

  • Raman_file (string) – Absolute path to the Raman response as a function of time. See pyLaserPulse.data.paths.materials.Raman_profiles

  • core_diam (float) – Core diameter in m

  • NA (float) – Numerical aperture

  • beat_length (float) – Polarization beat length in m

  • n2 (float) – Nonlinear index in m^2 / W

  • fR (float) – Fractional Raman contribution to the fibre nonlinear response (e.g., fR = 0.18 for silica)

  • tol (float) – Maximum propagation error used to adjust the proapgation step size

  • doping_concentration (float) – Number density of the active ions in m^-3

  • cross_section_file (string) – Absolute path to the emission and absorption cross sections as a function of wavelength. See pyLaserPulse.data.paths.fibres.cross_sections.

  • seed_repetition_rate (float) – Repetition rate of the seed laser. See pyLaserPulse.pulse.pulse.repetition_rate

  • pump_points (int) – Number of points in the pump/ASE spectrum window.

  • ASE_wl_lims (list) – [min_wavelength, max_wavelength] for the pump/ASE wavelength window in m.

  • Sellmeier_file (string.) – Absolute path to file containing Sellmeier coefficients for the fibre material. See pyLaserPulse.data.paths.materials.Sellmeier_coefficients.

  • boundary_conditions (dict) – Set the boundary conditions for resolving the evolution of the pump, signal, and ASE light in both directions through the fibre. The type of simulation – i.e., single-pass or full boundary value solver – is determined by this dictionary. See the Notes section below for a full description of how this parameters is defined.

  • lifetime (float) – Upper-state lifetime of the rare-earth dopant in s.

  • cladding_pumping (dict.) –

    Parameters required to define a cladding-pumped fibre. Leave empty if core pumping. Otherwise, the following keys are required:

    pump_core_diamfloat

    Diameter of the pump cladding in m

    pump_delta_nfloat

    Refractive index difference between the fibre coating and the pump cladding (usually n_silica - 1.375)

    pump_cladding_nfloat

    Refractive index of the fibre coating (usually 1.375)

  • time_domain_gain (bool) – True if mixed-domain gain operator (i.e., both frequency- and time-domain gain) is to be used. If False, only frequency- domain gain is simulated.

Notes

The boundary_conditions dictionary accepts the following keys:
co_pump_powerfloat

Power of the co-propagating pump in W

co_pump_wavelengthfloat

Central wavelength of the co-propagating pump in m

co_pump_bandwidthfloat

Bandwidth of the co-propagating pump in m

counter_pump_powerfloat

Power of the counter-propagating pump in W

counter_pump_wavelengthfloat

Central wavelength of the counter-propagating pump in m

counter_pump_bandwidthfloat

Bandwidth of the counter-propagating pump in m

If no counter-pump values are specified, then the propagation is completed in a single step and no effort is made to resolve counter-propagating signals (i.e., the boundary value problem is not solved). This allows for co-pumping only. Example:

boundary_conditions = {

‘co_pump_power’: 1, ‘co_pump_wavelength’: 976e-9, ‘co_pump_bandwidth’: 1e-9}

The boundary value problem is solved whenever dictionary key ‘counter_pump_power’ is present, but it is not necessary to specify the wavelength or bandwidth of either the co- or counter-propagating pump if the power is zero. Here are a few examples of valid boundary_conditions dictionaries:

  1. Co-pumping with full boundary value solver:
    boundary_conditions = {

    ‘co_pump_power’: 1, ‘co_pump_wavelength’: 976e-9, ‘co_pump_bandwidth’: 1e-9, ‘counter_pump_power’: 0}

  2. Bidirectional pumping with full boundary value solver:
    boundary_conditions = {

    ‘co_pump_power’: 1, ‘co_pump_wavelength’: 976e-9, ‘co_pump_bandwidth’: 1e-9, ‘counter_pump_power’: 1, ‘counter_pump_wavelength’: 976e-9, ‘counter_pump_bandwidth’: 1e-9}

  3. Counter-pumping with full boundary value solver:
    boundary_conditions = {

    ‘co_pump_power’: 0, ‘counter_pump_power’: 1, ‘counter_pump_wavelength’: 976e-9, ‘counter_pump_bandwidth’: 1e-9}