optmat.solid.bundle#
The silica nonlinear bundle: n2, f_R and h_R as one object (OEP 1, section 4.7).
A propagation code in the \(n_0 = 1\) convention of the nonlinear Schrödinger equation takes the nonlinear response
with the total long-pulse \(n_2\): the triple \((n_2, f_R, h_R)\). A bundle is
that triple, so its parts cannot be mismatched. Every bundle holds the total
\(n_2(\lambda)\) of the Kerr fit (kerr/SiO2), the quantity the data measure,
and its shape’s own \(f_R\): its electronic part is \((1 - f_R)\,n_2\), and a
scalar and a vector run agree in the long-pulse limit.
"default": Hollenbeck and Cantrell’s shape with the Kerr fit’s \(f_R\),paired, copolarised only;"tensor": Lin and Agrawal’s shape with its own \(f_R\) (TC-734), which has the isotropic and anisotropic parts;one bundle per silica response, under the response’s name.
Each carries its gain check against Stolen and Ippen’s measured Stokes gain (526.0 nm,
330 cm^-1; stolen_1973), a consistency check for a shape other than the one the
Kerr fit’s \(f_R\) was set with. The silica response’s raman_coefficient and
electronic_susceptibility include \(n_0^2\); a code in the \(n_0 = 1\)
convention takes the bundle’s \(n_2\), \(f_R\) and \(h_R\) instead.
Module Attributes
The version of this module's evaluation code, in every bundle's identity. |
Functions
|
Return a silica bundle. |
Return every silica bundle, by name. |
Classes
|
A bundle's Stokes gain against Stolen and Ippen's measurement. |
|
The consistent triple (n2, f_R, h_R) of fused silica. |
- optmat.solid.bundle.EVALUATION_VERSION: Final = 1#
The version of this module’s evaluation code, in every bundle’s identity.
- class optmat.solid.bundle.GainCheck(pump_wavelength, shift, predicted, measured, sigma, reference)[source]#
Bases:
objectA bundle’s Stokes gain against Stolen and Ippen’s measurement.
- Attributes:
- pump_wavelengthfloat
- shiftfloat
The Stokes shift, cm^-1.
- predictedfloat
The bundle’s copolarised gain there, with its total n2 and f_R, m/W.
- measuredfloat
Stolen and Ippen’s, m/W.
- sigmafloat
Its standard uncertainty, m/W.
- referencestr
The curated dataset.
- class optmat.solid.bundle.SilicaNonlinearBundle(name, kerr, response, *, status='user', status_reason='', modified=(), base='')[source]#
Bases:
IdentifiedThe consistent triple (n2, f_R, h_R) of fused silica.
- Attributes:
- namestr
The bundle’s name:
default,tensoror a silica response’s.- kerrKerrModel
The Kerr fit, whose total long-pulse n2 the bundle holds.
- responseSilicaRamanResponse
The Raman shape, with its f_R.
- statusstr
validatedfor the default and the tensor default and their responses’ bundles;comparisonfor the other shapes.
- property gain_check: GainCheck[source]#
The bundle’s copolarised Stokes gain against Stolen and Ippen’s.
- Returns:
- GainCheck
At their pump and shift, with the bundle’s total n2 and f_R.
- h_r(time, component='parallel')[source]#
Return the normalised Raman response h_R (or one of its tensor parts).
- Parameters:
- timearray_like
Delay after the impulse, s.
- component{“parallel”, “a”, “b”}, optional
The part; the tensor parts only for a shape that has them.
- Returns:
- numpy.ndarray
The response h_R, 1/s;
parallelintegrates to one.
- n2(wavelength)[source]#
Return the total long-pulse n2, the Kerr fit’s.
- Parameters:
- wavelengtharray_like or float
Vacuum wavelength, m.
- Returns:
- numpy.ndarray
The n2, m^2/W.
- Warns:
- ModelRangeWarning
Outside the Kerr fit’s wavelengths.
- n2_electronic(wavelength)[source]#
Return the instantaneous part,
(1 - f_R) n2, with the shape’s f_R.- Parameters:
- wavelengtharray_like or float
Vacuum wavelength, m.
- Returns:
- numpy.ndarray
The electronic n2, m^2/W.
- n2_raman(wavelength)[source]#
Return the delayed part,
f_R n2.- Parameters:
- wavelengtharray_like or float
Vacuum wavelength, m.
- Returns:
- numpy.ndarray
The Raman n2, m^2/W.
- property paired: bool#
Whether f_R is the one the Kerr fit found with this shape.
- Returns:
- bool
The response’s
paired.
- property raman_fraction: float#
The shape’s f_R, the Raman share of the total n2.
- Returns:
- float
The fraction f_R.
- response: SilicaRamanResponse#
- optmat.solid.bundle.silica_bundle(name='default')[source]#
Return a silica bundle.
- Parameters:
- namestr, optional
default(Hollenbeck, paired),tensor(Lin and Agrawal, their f_R) or a silica response’s name.
- Returns:
- SilicaNonlinearBundle
The bundle.
- Raises:
- DataError
For an unknown name.
Examples
>>> bundle = silica_bundle() >>> bundle.paired, f"{bundle.raman_fraction:.3f}" (True, '0.219') >>> f"{silica_bundle('tensor').gain_check.deviation:+.3f}" '-0.079'