pulsesuite.libpulsesuite.materialproperties¶
Material properties module.
Accesses the materials database and retrieves various material parameters such as refractive index, dispersion coefficients, nonlinear index, absorption, and plasma parameters.
Converted from materialproperties.F90.
Author: Rahul R. Sah
Attributes¶
Classes¶
Enum where members are also (and must be) ints |
Functions¶
|
Set the local materials database file path. |
|
Retrieve the Sellmeier coefficients from the materials database. |
|
Calculate the index of refraction from Sellmeier coefficients. |
|
Calculate or retrieve the index of refraction. |
|
Retrieve the intensity-based nonlinear refractive index n2I [m^2/W]. |
|
Retrieve the field-based nonlinear refractive index n2F [m^2/V^2]. |
|
Return the linear absorption coefficient [1/m]. |
|
Retrieve the two-photon absorption coefficient. |
|
Calculate the phase velocity [m/s]. |
|
Calculate the magnitude of the wavevector k0 = 2*pi*n0/lam. |
|
Calculate the group velocity as 1/k1 [m/s]. |
|
Calculate dk/dw (first-order dispersion, inverse group velocity) [s/m]. |
|
Calculate d^2k/dw^2 (group velocity dispersion) [s^2/m]. |
|
Calculate d^3k/dw^3 (third-order dispersion) [s^3/m]. |
|
Calculate d^4k/dw^4 (fourth-order dispersion) [s^4/m]. |
|
Calculate d^5k/dw^5 (fifth-order dispersion) [s^5/m]. |
|
Create an array of k values for the given angular frequencies. |
|
Retrieve the Raman response parameter [s]. |
|
Retrieve the plasma electron mass. |
|
Retrieve the plasma band gap. |
|
Retrieve the plasma trapping time. |
|
Retrieve the plasma collision time. |
|
Retrieve the plasma maximum density. |
|
Retrieve the plasma multi-photon ionisation order. |
|
Retrieve the plasma multi-photon cross section. |
Module Contents¶
- pulsesuite.libpulsesuite.materialproperties.log¶
- class pulsesuite.libpulsesuite.materialproperties.MatError¶
Bases:
enum.IntEnumEnum where members are also (and must be) ints
- NOERROR = 0¶
- NOFILE = 1¶
- NOTFOUND = 2¶
- FILE_FORMAT = 3¶
- OUTOFRANGE = 4¶
- BADVALUE = 5¶
- DEFAULTUSED = 6¶
- pulsesuite.libpulsesuite.materialproperties.set_database_file(path: str) None¶
Set the local materials database file path.
- pulsesuite.libpulsesuite.materialproperties.sellmeiercoeff(mat: str, lam: float) Tuple[float, numpy.ndarray, numpy.ndarray, int]¶
Retrieve the Sellmeier coefficients from the materials database.
Returns (A, B, C, err).
- pulsesuite.libpulsesuite.materialproperties.n0_sellmeier(A: float, B: numpy.ndarray, C: numpy.ndarray, lam: float) float¶
Calculate the index of refraction from Sellmeier coefficients.
n0 = sqrt(A + sum(B * lam^2 / (lam^2 - C)))
- pulsesuite.libpulsesuite.materialproperties.n0(mat: str, lam: float, err: list | None = None) float¶
Calculate or retrieve the index of refraction.
Uses Sellmeier coefficients when available, otherwise looks for discrete values in the database.
- pulsesuite.libpulsesuite.materialproperties.n2I(mat: str, lam: float, err: list | None = None) float¶
Retrieve the intensity-based nonlinear refractive index n2I [m^2/W].
- pulsesuite.libpulsesuite.materialproperties.n2F(mat: str, lam: float, err: list | None = None) float¶
Retrieve the field-based nonlinear refractive index n2F [m^2/V^2].
- pulsesuite.libpulsesuite.materialproperties.alpha(mat: str, lam: float, err: list | None = None) float¶
Return the linear absorption coefficient [1/m].
Uses spline interpolation of the Absorption array when available, falls back to discrete lookup.
- pulsesuite.libpulsesuite.materialproperties.beta(mat: str, lam: float, err: list | None = None) float¶
Retrieve the two-photon absorption coefficient.
- pulsesuite.libpulsesuite.materialproperties.Vp(mat: str, lam: float, err: list | None = None) float¶
Calculate the phase velocity [m/s].
- pulsesuite.libpulsesuite.materialproperties.k0_val(mat: str, lam: float, err: list | None = None) float¶
Calculate the magnitude of the wavevector k0 = 2*pi*n0/lam.
- pulsesuite.libpulsesuite.materialproperties.Vg(mat: str, lam: float, err: list | None = None) float¶
Calculate the group velocity as 1/k1 [m/s].
- pulsesuite.libpulsesuite.materialproperties.k1(mat: str, lam: float, err: list | None = None) float¶
Calculate dk/dw (first-order dispersion, inverse group velocity) [s/m].
Uses frequency-domain Sellmeier when available, then falls back to discrete k1 or Vg values.
- pulsesuite.libpulsesuite.materialproperties.k2(mat: str, lam: float, err: list | None = None) float¶
Calculate d^2k/dw^2 (group velocity dispersion) [s^2/m].
- pulsesuite.libpulsesuite.materialproperties.k3(mat: str, lam: float, err: list | None = None) float¶
Calculate d^3k/dw^3 (third-order dispersion) [s^3/m].
- pulsesuite.libpulsesuite.materialproperties.k4(mat: str, lam: float, err: list | None = None) float¶
Calculate d^4k/dw^4 (fourth-order dispersion) [s^4/m].
- pulsesuite.libpulsesuite.materialproperties.k5(mat: str, lam: float, err: list | None = None) float¶
Calculate d^5k/dw^5 (fifth-order dispersion) [s^5/m].
- pulsesuite.libpulsesuite.materialproperties.GetKW(mat: str, W: numpy.ndarray, err: list | None = None) numpy.ndarray¶
Create an array of k values for the given angular frequencies.
- pulsesuite.libpulsesuite.materialproperties.Tr(mat: str, lam: float, err: list | None = None) float¶
Retrieve the Raman response parameter [s].
- pulsesuite.libpulsesuite.materialproperties.GetPlasmaElectronMass(mat: str, lam: float, err: list | None = None) float¶
Retrieve the plasma electron mass.
- pulsesuite.libpulsesuite.materialproperties.GetPlasmaBandGap(mat: str, lam: float, err: list | None = None) float¶
Retrieve the plasma band gap.
- pulsesuite.libpulsesuite.materialproperties.GetPlasmaTrappingTime(mat: str, lam: float, err: list | None = None) float¶
Retrieve the plasma trapping time.
- pulsesuite.libpulsesuite.materialproperties.GetPlasmaCollisionTime(mat: str, lam: float, err: list | None = None) float¶
Retrieve the plasma collision time.
- pulsesuite.libpulsesuite.materialproperties.GetPlasmaMaximumDensity(mat: str, lam: float, err: list | None = None) float¶
Retrieve the plasma maximum density.