PhysData.jl

Luna.PhysData.densityFunction
density(material::Symbol, P=1.0, T=roomtemp)

For a gas material, return the number density [m^-3] at pressure P [bar] and temperature T [K]. For a glass, this simply returns 1.0.

source
Luna.PhysData.densitysplineMethod
densityspline(gas; Pmax, Pmin=0, N=2^10, T=roomtemp)

Create a CSpline interpolant for the density of the gas between pressures Pmin and Pmax at temperature T. The spline is created using N samples.

source
Luna.PhysData.dispersionFunction
dispersion(order, material, λ, P=1.0, T=roomtemp; lookup=nothing)

Calculate the dispersion of order order of a given material at a wavelength λ.

For gases the pressure P (default:atmosphere) and the temperature T (default: room temp) can also be specified. lookup::Bool determines whether a lookup table or a Sellmeier expansion is used for the refractive index (default is material dependent).

Examples

julia> dispersion(2, :BK7, 400e-9) * 1e30 * 1e-3 # convert to fs^2/mm
122.03632107303108
source
Luna.PhysData.ionisation_potentialMethod
ionisation_potential(material; unit=:SI)

Return the first ionisation potential of the material in a specific unit (default: SI). Possible units are :SI, :atomic and :eV.

source
Luna.PhysData.pressureFunction
pressure(gas, density, T=roomtemp)

Calculate the pressure in bar of the gas at number density density and temperature T.

source
Luna.PhysData.process_mirror_dataMethod
process_mirror_data(λR, R, λGDD, GDD, λ0, λmin, λmax; fitorder=5, windowwidth=20e-9)

Process reflectivity and group-delay dispersion data for a mirror and create a transfer function for a frequency-domain electric field representing the mirror.

Arguments:

  • λR: wavelength samples for reflectivity in SI units (m)
  • R: mirror reflectivity (between 0 and 1)
  • λGDD: wavelength samples for GDD in SI units (m)
  • GDD: GDD in SI units (s²)
  • λ0: central wavelength (used to remove any overall group delay)
  • λmin, λmax: bounds of the wavelength region to apply the transfer function over

Keyword arguments

  • fitorder: order of polynomial fit to use in removing overall group delay (default: 5)
  • windowwidth: wavelength width of the smoothing region outside (λmin, λmax) for the window in SI units (default: 20e-9, i.e. 20 nm)
source
Luna.PhysData.raman_parametersMethod
raman_parameters(material)

Get the Raman parameters for material.

Fields

Fields in the returned named tuple must include:

  • kind::Symbol: one of :molecular or :intermediate or :normedsdo

If kind == :molecular then the following must also be specified:

  • rotation::Symbol: only :nonrigid or :none supported at present.
  • vibration::Symbol: only :sdo or :none supported at present.

If rotation == :nonrigid then the following must also be specified:

  • B::Real: the rotational constant [1/m]
  • Δα::Real: molecular polarizability anisotropy [m^3]
  • qJodd::Integer: nuclear spin parameter for odd J
  • qJeven::Integer: nuclear spin parameter for even J
  • D::Real=0.0: centrifugal constant [1/m]

Along with one of:

  • τ2r::Real: coherence time [s]
  • Bρr::Real : density dependent broadening coefficient [Hz/amagat]

If both τ2r and Bρr are specified, then Bρr takes precedence. If Bρr is specified then we also need:

  • Aρr::Real : self diffusion coefficient [Hz amagat]

If vibration == :sdo then the following must also be specified:

  • Ωv::Real: vibrational frequency [rad/s]
  • dαdQ::Real: isotropic averaged polarizability derivative [m^2]
  • μ::Real: reduced molecular mass [kg]

Along with one of:

  • τ2v::Real: coherence time [s]
  • Bρv::Real : density dependent broadening coefficient [Hz/amagat]

If both τ2v and Bρv are specified, then Bρv takes precedence. If Bρv is specified then we also need:

  • Aρv::Real : self diffusion coefficient [Hz amagat]

And can also add (if necessary) a constant offset:

  • Cv::Real : constant linewidth offset [Hz]

If kind == :intermediate then the following must be specified

  • ωi::Vector{Real} [rad/s], central angular freqencies
  • Ai::Vector{Real}, amplitudes
  • Γi::Vector{Real} [rad/s], Gaussian widths
  • γi::Vector{Real} [rad/s], Lorentzian widths

References

[1] Phys. Rev. A, 94, 023816 (2016) [2] Phys. Rev. A, 85, 043820 (2012) [3] Phys. Rev. A, 92, 063828 (2015) [4] Journal of Raman Spectroscopy 2, 133 (1974) [5] J. Phys. Chem., 91, 41 (1987) [6] Applied Spectroscopy 23, 211 (1969) [7] Phys. Rev. A, 34, 3, 1944 (1986) [8] Can. J. Phys., 44, 4, 797 (1966) [9] G. V. MIKHAtLOV, SOVIET PHYSICS JETP, vol. 36, no. 9, (1959). [10] Phys. Rev. A, 33, 5, 3113 (1986) [11] IEEE Journal of Quantum Electronics 1986, 22 (2), 332–336. https://doi.org/10.1109/JQE.1986.1072945. [12] Phys. Rev. Lett. 1998, 81 (6), 1215–1218. https://doi.org/10.1103/PhysRevLett.81.1215. [13] Optics Communications 1987, 64 (4), 393–397. https://doi.org/10.1016/0030-4018(87)90258-6. [14] Science Advances 2020, 6 (34), eabb5375. https://doi.org/10.1126/sciadv.abb5375. [15] Long, The Raman Effect; John Wiley & Sons, Ltd, 2002; [16] IEEE Journal of Quantum Electronics, vol. 24, no. 10, pp. 2076–2080, Oct. 1988, doi: 10.1109/3.8545. [17] Journal of Raman Spectroscopy, vol. 22, no. 11, pp. 607–611, 1991, doi: 10.1002/jrs.1250221103. [18] Hollenbeck and Cantrell, JOSA B 19, 2886-2892 (2002). https://doi.org/10.1364/JOSAB.19.002886

source
Luna.PhysData.ref_indexFunction
ref_index(material, λ, P=1.0, T=roomtemp; lookup=nothing)

Get refractive index for any material at wavelength given in SI units.

source
Luna.PhysData.ref_index_funMethod
ref_index_fun(gases, P, T=roomtemp; lookup=nothing)

Get function which returns refractive index for gas mixture. gases is a Tuple of gas identifiers (Symbols) and P is a Tuple of equal length containing pressures.

source
Luna.PhysData.ref_index_funMethod
ref_index_fun(gases, T=roomtemp)

Get function which returns ref index for mixture as function of wavelength and densities.

source
Luna.PhysData.sellmeier_crystalMethod
sellmeier_crystal(material, axis)

Sellmeier for crystals. Returns function of wavelength in μm which in turn returns the refractive index directly. Possible values for axis depend on the type of crystal.

source
Luna.PhysData.sellmeier_gasMethod
sellmeier_gas(material::Symbol)

Return function for linear polarisability γ, i.e. susceptibility of a single particle, calculated from Sellmeier expansions.

source
Luna.PhysData.sellmeier_glassMethod
sellmeier_glass(material::Symbol)

Sellmeier for glasses. Returns function of wavelength in μm which in turn returns the refractive index directly

source
Luna.PhysData.ΔλΔωMethod
ΔλΔω(Δλ, λ)

Convert Δλ (wavelength bandwidth) at λ (central wavelength) to Δω (angular frequency bandwidth)

source
Luna.PhysData.γ3_gasMethod
γ3_gas(material::Symbol; source=nothing)

Calculate single-molecule third-order hyperpolarisability of a gas at given wavelength(s) and at room temperature. If source == :Bishop: Uses reference values to calculate γ If source == :Lehmeier (default): Uses scaling factors to calculate χ3 at 1 bar and scales by density to get to a single molecule i.e. the hyperpolarisability

References: [1] Journal of Chemical Physics, AIP, 91, 3549-3551 (1989) [2] Chemical Reviews, 94, 3-29 (1994) [3] Optics Communications, 56(1), 67–72 (1985) [4] Phys. Rev. A, vol. 42, 2578 (1990) [5] Optics Letters Vol. 40, No. 24 (2015)) [6] Phys. Rev. A 2012, 85 (4), 043820. https://doi.org/10.1103/PhysRevA.85.043820. [7] Phys. Rev. A, 32, no. 6, 3454, (1985), doi: 10.1103/PhysRevA.32.3454.

source
Luna.PhysData.γ_BörzsönyiMethod
γ_Börzsönyi(B1, C1, B2, C2)

Sellmeier expansion for linear susceptibility from Applied Optics 47, 27, 4856 (2008) at room temperature and atmospheric pressure

source
Luna.PhysData.γ_JCTMethod
γ_JCT(B1, C1, B2, C2, B3, C3)

Adapted Sellmeier expansion for helium made to fit high frequency data Phys. Rev. A 92, 033821 (2015)

source
Luna.PhysData.γ_PeckMethod
γ_Peck(B1, C1, B2, C2, dens)

Sellmeier expansion for linear susceptibility from J. Opt. Soc. Am. 67, 1550 (1977)

source
Luna.PhysData.γ_QuanfuHeMethod
γ_QuanfuHe(A, B, C, dens)

Sellmeier expansion for CH4, SF6 and N2O from Atmospheric Chemistry and Physics 2021, 21 (19), 14927–14940. https://doi.org/10.5194/acp-21-14927-2021.

source
Luna.PhysData.χ1Function
χ1(gas::Symbol, λ, P=1.0, T=roomtemp)

Calculate χ1 at wavelength λ in SI units, pressure P in bar and temperature T in Kelvin. Gases only.

source
Luna.PhysData.χ1_funMethod
χ1_fun(gas::Symbol)

Get function to return χ1 (linear susceptibility) for gases as a function of wavelength in SI units, pressure in bar, and temperature in Kelvin.

source