diff --git a/dev/.documenter-siteinfo.json b/dev/.documenter-siteinfo.json index 5f69916..f0e5218 100644 --- a/dev/.documenter-siteinfo.json +++ b/dev/.documenter-siteinfo.json @@ -1 +1 @@ -{"documenter":{"julia_version":"1.11.3","generation_timestamp":"2025-01-23T15:36:01","documenter_version":"1.8.0"}} \ No newline at end of file +{"documenter":{"julia_version":"1.11.3","generation_timestamp":"2025-01-24T11:16:17","documenter_version":"1.8.0"}} \ No newline at end of file diff --git a/dev/api/index.html b/dev/api/index.html index b36f5fc..24d3a6e 100644 --- a/dev/api/index.html +++ b/dev/api/index.html @@ -1,6 +1,6 @@ -API · CherenkovMediumBase.jl

API Reference

This section provides a detailed reference for all functions and types defined in the CherenkovMediumBase module.

CherenkovMediumBase.DIPPR105Function

DIPPR105(temperature::Real, params::DIPPR105Params=DDBDIPR105Params)

Use DPPIR105 formula to calculate water density as function of temperature. temperature in K.

Reference: http://ddbonline.ddbst.de/DIPPR105DensityCalculation/DIPPR105CalculationCGI.exe?component=Water

Returns density in kg/m^3

source
CherenkovMediumBase._hg_scattering_funcMethod
_hg_scattering_func(g::Real)

Henyey-Greenstein scattering in one plane.

Arguments

  • g::Real: mean scattering angle

Returns

  • typeof(g) cosine of a scattering angle sampled from the distribution
source
CherenkovMediumBase._refractive_index_fryMethod
refractive_index_fry(wavelength, salinity, temperature, pressure)

The phase refractive index of sea water according to a model from Quan & Fry.

wavelength is given in nm, salinity in permille, temperature in °C and pressure in atm

The original model is taken from: X. Quan, E.S. Fry, Appl. Opt., 34, 18 (1995) 3477-3480.

An additional term describing pressure dependence was included according to: Wolfgang H.W.A. Schuster, "Measurement of the Optical Properties of the Deep Mediterranean - the ANTARES Detector Medium.", PhD thesis (2002), St. Catherine's College, Oxford downloaded Jan 2011 from: http://www.physics.ox.ac.uk/Users/schuster/thesis0098mmjhuyynh/thesis.ps

Adapted from clsim (https://github.com/claudiok/clsim)

source
CherenkovMediumBase._sca_len_part_concMethod
sca_len_part_conc(wavelength; vol_conc_small_part, vol_conc_large_part)

Calculates the scattering length (in m) for a given wavelength based on concentrations of small (vol_conc_small_part) and large (vol_conc_large_part) particles. wavelength is given in nm, volconcsmallpart and volconclargepart in ppm

C.D. Mobley "Light and Water", ISBN 0-12-502750-8, pag. 119.

source
CherenkovMediumBase.calc_quan_fry_paramsMethod
calc_quan_fry_params(salinity::Real, temperature::Real, pressure::Real)

Helper function to get the parameters for the Quan & Fry formula as function of salinity, temperature and pressure.

source
CherenkovMediumBase.dispersionMethod
dispersion(medium::MediumProperties, wavelength)

Return the dispersion dn/dλ at wavelength in units 1/nm. wavelength is expected to be in units nm.

source
CherenkovMediumBase.dispersion_fryMethod
dispersion_fry(
+API · CherenkovMediumBase.jl

API Reference

This section provides a detailed reference for all functions and types defined in the CherenkovMediumBase module.

CherenkovMediumBase.DIPPR105Function

DIPPR105(temperature::Real, params::DIPPR105Params=DDBDIPR105Params)

Use DPPIR105 formula to calculate water density as function of temperature. temperature in K.

Reference: http://ddbonline.ddbst.de/DIPPR105DensityCalculation/DIPPR105CalculationCGI.exe?component=Water

Returns density in kg/m^3

source
CherenkovMediumBase._hg_scattering_funcMethod
_hg_scattering_func(g::Real)

Henyey-Greenstein scattering in one plane.

Arguments

  • g::Real: mean scattering angle

Returns

  • typeof(g) cosine of a scattering angle sampled from the distribution
source
CherenkovMediumBase._refractive_index_fryMethod
refractive_index_fry(wavelength, salinity, temperature, pressure)

The phase refractive index of sea water according to a model from Quan & Fry.

wavelength is given in nm, salinity in permille, temperature in °C and pressure in atm

The original model is taken from: X. Quan, E.S. Fry, Appl. Opt., 34, 18 (1995) 3477-3480.

An additional term describing pressure dependence was included according to: Wolfgang H.W.A. Schuster, "Measurement of the Optical Properties of the Deep Mediterranean - the ANTARES Detector Medium.", PhD thesis (2002), St. Catherine's College, Oxford downloaded Jan 2011 from: http://www.physics.ox.ac.uk/Users/schuster/thesis0098mmjhuyynh/thesis.ps

Adapted from clsim (https://github.com/claudiok/clsim)

source
CherenkovMediumBase._sca_len_part_concMethod
sca_len_part_conc(wavelength; vol_conc_small_part, vol_conc_large_part)

Calculates the scattering length (in m) for a given wavelength based on concentrations of small (vol_conc_small_part) and large (vol_conc_large_part) particles. wavelength is given in nm, volconcsmallpart and volconclargepart in ppm

C.D. Mobley "Light and Water", ISBN 0-12-502750-8, pag. 119.

source
CherenkovMediumBase.calc_quan_fry_paramsMethod
calc_quan_fry_params(salinity::Real, temperature::Real, pressure::Real)

Helper function to get the parameters for the Quan & Fry formula as function of salinity, temperature and pressure.

source
CherenkovMediumBase.dispersionMethod
dispersion(medium::MediumProperties, wavelength)

Return the dispersion dn/dλ at wavelength in units 1/nm. wavelength is expected to be in units nm.

source
CherenkovMediumBase.dispersion_fryMethod
dispersion_fry(
     wavelength::T;
     salinity::Real,
     temperature::Real,
-    pressure::Real) where {T <: Real}

Calculate the dispersion (dn/dλ) for the Quan & Fry model. Wavelength is given in nm, salinity in permille, temperature in °C and pressure in atm

source
CherenkovMediumBase.scattering_lengthMethod
scattering_length(medium::MediumProperties, wavelength)

Return scattering length at wavelength in units m. wavelength is expected to be in units nm. Returned length is in units m.

source
CherenkovMediumBase.sl_scattering_funcMethod
sl_scattering_func(g::Real)

Simplified-Liu scattering angle function. Implementation from: https://user-web.icecube.wisc.edu/~dima/work/WISC/ppc/spice/new/paper/a.pdf

Arguments

  • g::Real: mean scattering angle
source
+ pressure::Real) where {T <: Real}

Calculate the dispersion (dn/dλ) for the Quan & Fry model. Wavelength is given in nm, salinity in permille, temperature in °C and pressure in atm

source
CherenkovMediumBase.scattering_lengthMethod
scattering_length(medium::MediumProperties, wavelength)

Return scattering length at wavelength in units m. wavelength is expected to be in units nm. Returned length is in units m.

source
CherenkovMediumBase.sl_scattering_funcMethod
sl_scattering_func(g::Real)

Simplified-Liu scattering angle function. Implementation from: https://user-web.icecube.wisc.edu/~dima/work/WISC/ppc/spice/new/paper/a.pdf

Arguments

  • g::Real: mean scattering angle
source
diff --git a/dev/index.html b/dev/index.html index e765f6f..9def070 100644 --- a/dev/index.html +++ b/dev/index.html @@ -16,4 +16,4 @@ medium = CustomMedium() # Use the medium in calculations -println(CherenkovMediumBase.pressure(medium))

Documentation

The following sections provide detailed documentation for the package:

+println(CherenkovMediumBase.pressure(medium))

Documentation

The following sections provide detailed documentation for the package:

diff --git a/dev/objects.inv b/dev/objects.inv index a284129..047d771 100644 Binary files a/dev/objects.inv and b/dev/objects.inv differ diff --git a/dev/search_index.js b/dev/search_index.js index e530c86..aa2df75 100644 --- a/dev/search_index.js +++ b/dev/search_index.js @@ -1,3 +1,3 @@ var documenterSearchIndex = {"docs": -[{"location":"api/","page":"API","title":"API","text":"CurrentModule = CherenkovMediumBase","category":"page"},{"location":"api/#API-Reference","page":"API","title":"API Reference","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"This section provides a detailed reference for all functions and types defined in the CherenkovMediumBase module.","category":"page"},{"location":"api/","page":"API","title":"API","text":"","category":"page"},{"location":"api/","page":"API","title":"API","text":"Modules = [CherenkovMediumBase]","category":"page"},{"location":"api/#CherenkovMediumBase.DIPPR105Params","page":"API","title":"CherenkovMediumBase.DIPPR105Params","text":"DIPPR105Params\n\nParameters for the DIPPR105 formula\n\n\n\n\n\n","category":"type"},{"location":"api/#CherenkovMediumBase.HenyeyGreenStein","page":"API","title":"CherenkovMediumBase.HenyeyGreenStein","text":"HenyeyGreenStein{T}\n\nStruct for Henyey-Greenstein scattering function.\n\n\n\n\n\n","category":"type"},{"location":"api/#CherenkovMediumBase.KopelevichScatteringModel","page":"API","title":"CherenkovMediumBase.KopelevichScatteringModel","text":"KopelevichScatteringModel{F<:AbstractScatteringFunction, T}\n\nStruct for Kopelevich scattering model.\n\n\n\n\n\n","category":"type"},{"location":"api/#CherenkovMediumBase.PolynomialScatteringFunction","page":"API","title":"CherenkovMediumBase.PolynomialScatteringFunction","text":"PolynomialScatteringFunction{T, P <: ImmutablePolynomial{T}}\n\nStruct for polynomial scattering function.\n\n\n\n\n\n","category":"type"},{"location":"api/#CherenkovMediumBase.QuanFryDispersion","page":"API","title":"CherenkovMediumBase.QuanFryDispersion","text":"QuanFryDispersion{T <: Real}\n\nStruct to hold parameters for the Quan & Fry dispersion model.\n\n\n\n\n\n","category":"type"},{"location":"api/#CherenkovMediumBase.QuanFryDispersion-NTuple{4, Any}","page":"API","title":"CherenkovMediumBase.QuanFryDispersion","text":"QuanFryDispersion(a01, a2, a3, a4)\n\nConstructor for QuanFryDispersion with given parameters.\n\n\n\n\n\n","category":"method"},{"location":"api/#CherenkovMediumBase.QuanFryDispersion-Tuple{Any, Any, Any}","page":"API","title":"CherenkovMediumBase.QuanFryDispersion","text":"QuanFryDispersion(salinity, temperature, pressure)\n\nConstructor for QuanFryDispersion using salinity, temperature, and pressure.\n\n\n\n\n\n","category":"method"},{"location":"api/#CherenkovMediumBase.SimplifiedLiu","page":"API","title":"CherenkovMediumBase.SimplifiedLiu","text":"SimplifiedLiu{T}\n\nStruct for Simplified-Liu scattering function.\n\n\n\n\n\n","category":"type"},{"location":"api/#CherenkovMediumBase.TwoComponentScatteringModel","page":"API","title":"CherenkovMediumBase.TwoComponentScatteringModel","text":"TwoComponentScatteringModel{F1<:AbstractScatteringFunction, F2<:AbstractScatteringFunction}\n\nStruct for two-component scattering model.\n\n\n\n\n\n","category":"type"},{"location":"api/#CherenkovMediumBase.DIPPR105","page":"API","title":"CherenkovMediumBase.DIPPR105","text":"DIPPR105(temperature::Real, params::DIPPR105Params=DDBDIPR105Params)\n\nUse DPPIR105 formula to calculate water density as function of temperature. temperature in K.\n\nReference: http://ddbonline.ddbst.de/DIPPR105DensityCalculation/DIPPR105CalculationCGI.exe?component=Water\n\nReturns density in kg/m^3\n\n\n\n\n\n","category":"function"},{"location":"api/#CherenkovMediumBase._hg_scattering_func-Union{Tuple{T}, Tuple{Random.AbstractRNG, T}} where T<:Real","page":"API","title":"CherenkovMediumBase._hg_scattering_func","text":"_hg_scattering_func(g::Real)\n\nHenyey-Greenstein scattering in one plane.\n\nArguments\n\ng::Real: mean scattering angle\n\nReturns\n\ntypeof(g) cosine of a scattering angle sampled from the distribution\n\n\n\n\n\n","category":"method"},{"location":"api/#CherenkovMediumBase._refractive_index_fry-Tuple{T} where T<:Real","page":"API","title":"CherenkovMediumBase._refractive_index_fry","text":"refractive_index_fry(wavelength, salinity, temperature, pressure)\n\nThe phase refractive index of sea water according to a model from Quan & Fry.\n\nwavelength is given in nm, salinity in permille, temperature in °C and pressure in atm\n\nThe original model is taken from: X. Quan, E.S. Fry, Appl. Opt., 34, 18 (1995) 3477-3480.\n\nAn additional term describing pressure dependence was included according to: Wolfgang H.W.A. Schuster, \"Measurement of the Optical Properties of the Deep Mediterranean - the ANTARES Detector Medium.\", PhD thesis (2002), St. Catherine's College, Oxford downloaded Jan 2011 from: http://www.physics.ox.ac.uk/Users/schuster/thesis0098mmjhuyynh/thesis.ps\n\nAdapted from clsim (https://github.com/claudiok/clsim)\n\n\n\n\n\n","category":"method"},{"location":"api/#CherenkovMediumBase._sca_len_part_conc-Tuple{T} where T<:Real","page":"API","title":"CherenkovMediumBase._sca_len_part_conc","text":"sca_len_part_conc(wavelength; vol_conc_small_part, vol_conc_large_part)\n\nCalculates the scattering length (in m) for a given wavelength based on concentrations of small (vol_conc_small_part) and large (vol_conc_large_part) particles. wavelength is given in nm, volconcsmallpart and volconclargepart in ppm\n\nC.D. Mobley \"Light and Water\", ISBN 0-12-502750-8, pag. 119. \n\n\n\n\n\n","category":"method"},{"location":"api/#CherenkovMediumBase.absorption_length-Tuple{MediumProperties, Any}","page":"API","title":"CherenkovMediumBase.absorption_length","text":"absorption_length(medium::MediumProperties, wavelength)\n\nReturn absorption length at wavelength in units m. wavelength is expected to be in units nm.\n\n\n\n\n\n","category":"method"},{"location":"api/#CherenkovMediumBase.calc_quan_fry_params-Tuple{Real, Real, Real}","page":"API","title":"CherenkovMediumBase.calc_quan_fry_params","text":"calc_quan_fry_params(salinity::Real, temperature::Real, pressure::Real)\n\nHelper function to get the parameters for the Quan & Fry formula as function of salinity, temperature and pressure.\n\n\n\n\n\n","category":"method"},{"location":"api/#CherenkovMediumBase.cherenkov_angle-Tuple{MediumProperties, Any}","page":"API","title":"CherenkovMediumBase.cherenkov_angle","text":"cherenkov_angle(medium, wavelength)\n\nCalculate the cherenkov angle (in rad) for wavelength.\n\nwavelength is expected to be in units nm.\n\n\n\n\n\n","category":"method"},{"location":"api/#CherenkovMediumBase.dispersion-Tuple{CherenkovMediumBase.AbstractDispersionModel}","page":"API","title":"CherenkovMediumBase.dispersion","text":"dispersion(disperion_model::AbstractDispersionModel)\n\nCalculate the dispersion for a given dispersion model.\n\n\n\n\n\n","category":"method"},{"location":"api/#CherenkovMediumBase.dispersion-Tuple{MediumProperties, Any}","page":"API","title":"CherenkovMediumBase.dispersion","text":"dispersion(medium::MediumProperties, wavelength)\n\nReturn the dispersion dn/dλ at wavelength in units 1/nm. wavelength is expected to be in units nm.\n\n\n\n\n\n","category":"method"},{"location":"api/#CherenkovMediumBase.dispersion-Tuple{QuanFryDispersion, Any}","page":"API","title":"CherenkovMediumBase.dispersion","text":"dispersion(dispersion_model::QuanFryDispersion, wavelength)\n\nCalculate the dispersion for the Quan & Fry dispersion model.\n\n\n\n\n\n","category":"method"},{"location":"api/#CherenkovMediumBase.dispersion_fry-Tuple{T} where T<:Real","page":"API","title":"CherenkovMediumBase.dispersion_fry","text":"dispersion_fry(\n wavelength::T;\n salinity::Real,\n temperature::Real,\n pressure::Real) where {T <: Real}\n\nCalculate the dispersion (dn/dλ) for the Quan & Fry model. Wavelength is given in nm, salinity in permille, temperature in °C and pressure in atm\n\n\n\n\n\n","category":"method"},{"location":"api/#CherenkovMediumBase.es_scattering-Union{Tuple{T}, Tuple{T, T}} where T<:Real","page":"API","title":"CherenkovMediumBase.es_scattering","text":"es_scattering(cos_theta::T, b::T) where {T<:Real}\n\nEinstein-Smoluchowsky Scattering PDF.\n\n\n\n\n\n","category":"method"},{"location":"api/#CherenkovMediumBase.es_scattering_cumulative-Union{Tuple{T}, Tuple{T, T}} where T<:Real","page":"API","title":"CherenkovMediumBase.es_scattering_cumulative","text":"es_scattering_integral(cos_theta::T, b::T) where {T<:Real}\n\nIntegral of ES scattering function from -1 to cos_theta\n\n\n\n\n\n","category":"method"},{"location":"api/#CherenkovMediumBase.es_scattering_integral-Union{Tuple{T}, Tuple{T, T}} where T<:Real","page":"API","title":"CherenkovMediumBase.es_scattering_integral","text":"es_scattering_integral(cos_theta::T, b::T) where {T<:Real}\n\nAnti-derivative of the ES scattering function.\n\n\n\n\n\n","category":"method"},{"location":"api/#CherenkovMediumBase.group_refractive_index-Tuple{Any, Any}","page":"API","title":"CherenkovMediumBase.group_refractive_index","text":"group_refractive_index(medium, wavelength)\n\nReturn the group refractive index at wavelength.\n\nwavelength is expected to be in units nm.\n\n\n\n\n\n","category":"method"},{"location":"api/#CherenkovMediumBase.group_velocity-Tuple{MediumProperties, Any}","page":"API","title":"CherenkovMediumBase.group_velocity","text":"group_velocity(medium, wavelength)\n\nReturn the group_velocity in m/ns at wavelength.\n\nwavelength is expected to be in units nm.\n\n\n\n\n\n","category":"method"},{"location":"api/#CherenkovMediumBase.make_inverse_es_polynomial-Tuple{T} where T<:Real","page":"API","title":"CherenkovMediumBase.make_inverse_es_polynomial","text":"make_inverse_es_polynomial(b::T) where {T<:Real}\n\nMake a 3rd order polynomial that approximates the inverse of the ES scattering function.\n\n\n\n\n\n","category":"method"},{"location":"api/#CherenkovMediumBase.material_density-Tuple{MediumProperties}","page":"API","title":"CherenkovMediumBase.material_density","text":"material_density(medium::MediumProperties)\n\nThis function returns the material density for a given medium.\n\n\n\n\n\n","category":"method"},{"location":"api/#CherenkovMediumBase.phase_refractive_index-Tuple{CherenkovMediumBase.AbstractDispersionModel}","page":"API","title":"CherenkovMediumBase.phase_refractive_index","text":"phase_refractive_index(disperion_model::AbstractDispersionModel)\n\nCalculate the phase refractive index for a given dispersion model.\n\n\n\n\n\n","category":"method"},{"location":"api/#CherenkovMediumBase.phase_refractive_index-Tuple{MediumProperties, Any}","page":"API","title":"CherenkovMediumBase.phase_refractive_index","text":"phase_refractive_index(medium::MediumProperties, wavelength)\n\nReturn the phase refractive index at wavelength. wavelength is expected to be in units nm.\n\n\n\n\n\n","category":"method"},{"location":"api/#CherenkovMediumBase.phase_refractive_index-Tuple{QuanFryDispersion, Any}","page":"API","title":"CherenkovMediumBase.phase_refractive_index","text":"phase_refractive_index(disperion_model::QuanFryDispersion, wavelength)\n\nCalculate the phase refractive index for the Quan & Fry dispersion model.\n\n\n\n\n\n","category":"method"},{"location":"api/#CherenkovMediumBase.pressure-Tuple{MediumProperties}","page":"API","title":"CherenkovMediumBase.pressure","text":"pressure(medium::MediumProperties)\n\nThis function returns the pressure for a given medium.\n\n\n\n\n\n","category":"method"},{"location":"api/#CherenkovMediumBase.radiation_length-Tuple{MediumProperties}","page":"API","title":"CherenkovMediumBase.radiation_length","text":"radiation_length(medium::MediumProperties)\n\nThis function returns the radiation length for a given medium.\n\n\n\n\n\n","category":"method"},{"location":"api/#CherenkovMediumBase.sample_scattering_function-Tuple{MediumProperties}","page":"API","title":"CherenkovMediumBase.sample_scattering_function","text":"sample_scattering_function(medium::MediumProperties)\n\nReturn a scattering angle sampled from the scattering function of the medium.\n\n\n\n\n\n","category":"method"},{"location":"api/#CherenkovMediumBase.scattering_length-Tuple{KopelevichScatteringModel, Real}","page":"API","title":"CherenkovMediumBase.scattering_length","text":"scattering_length(model::KopelevichScatteringModel, wavelength::Real)\n\nCalculate the scattering length for the Kopelevich scattering model.\n\n\n\n\n\n","category":"method"},{"location":"api/#CherenkovMediumBase.scattering_length-Tuple{MediumProperties, Any}","page":"API","title":"CherenkovMediumBase.scattering_length","text":"scattering_length(medium::MediumProperties, wavelength)\n\nReturn scattering length at wavelength in units m. wavelength is expected to be in units nm. Returned length is in units m.\n\n\n\n\n\n","category":"method"},{"location":"api/#CherenkovMediumBase.sl_scattering_func-Union{Tuple{T}, Tuple{Random.AbstractRNG, T}} where T<:Real","page":"API","title":"CherenkovMediumBase.sl_scattering_func","text":"sl_scattering_func(g::Real)\n\nSimplified-Liu scattering angle function. Implementation from: https://user-web.icecube.wisc.edu/~dima/work/WISC/ppc/spice/new/paper/a.pdf\n\nArguments\n\ng::Real: mean scattering angle\n\n\n\n\n\n","category":"method"},{"location":"api/#CherenkovMediumBase.temperature-Tuple{MediumProperties}","page":"API","title":"CherenkovMediumBase.temperature","text":"temperature(medium::MediumProperties)\n\nThis function returns the temperature for a given medium.\n\n\n\n\n\n","category":"method"},{"location":"","page":"Home","title":"Home","text":"CurrentModule = CherenkovMediumBase","category":"page"},{"location":"#CherenkovMediumBase","page":"Home","title":"CherenkovMediumBase","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"Welcome to the documentation for CherenkovMediumBase.","category":"page"},{"location":"","page":"Home","title":"Home","text":"This package provides a set of tools and abstractions for working with medium properties in physics simulations.","category":"page"},{"location":"#Installation","page":"Home","title":"Installation","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"To install the package, use the following command:","category":"page"},{"location":"","page":"Home","title":"Home","text":"using Pkg\nPkg.add(\"CherenkovMediumBase\")","category":"page"},{"location":"#Usage","page":"Home","title":"Usage","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"Here is a simple example of how to use the package:","category":"page"},{"location":"","page":"Home","title":"Home","text":"using CherenkovMediumBase\n\n# Define a custom medium\nstruct CustomMedium <: MediumProperties end\n\n# Implement required methods\nfunction CherenkovMediumBase.pressure(medium::CustomMedium)\n return 1.0 # Example pressure\nend\n\n# ...implement other required methods...\n\n# Create an instance of the custom medium\nmedium = CustomMedium()\n\n# Use the medium in calculations\nprintln(CherenkovMediumBase.pressure(medium))","category":"page"},{"location":"#Documentation","page":"Home","title":"Documentation","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"The following sections provide detailed documentation for the package:","category":"page"},{"location":"","page":"Home","title":"Home","text":"","category":"page"}] +[{"location":"api/","page":"API","title":"API","text":"CurrentModule = CherenkovMediumBase","category":"page"},{"location":"api/#API-Reference","page":"API","title":"API Reference","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"This section provides a detailed reference for all functions and types defined in the CherenkovMediumBase module.","category":"page"},{"location":"api/","page":"API","title":"API","text":"","category":"page"},{"location":"api/","page":"API","title":"API","text":"Modules = [CherenkovMediumBase]","category":"page"},{"location":"api/#CherenkovMediumBase.DIPPR105Params","page":"API","title":"CherenkovMediumBase.DIPPR105Params","text":"DIPPR105Params\n\nParameters for the DIPPR105 formula\n\n\n\n\n\n","category":"type"},{"location":"api/#CherenkovMediumBase.HenyeyGreenStein","page":"API","title":"CherenkovMediumBase.HenyeyGreenStein","text":"HenyeyGreenStein{T}\n\nStruct for Henyey-Greenstein scattering function.\n\n\n\n\n\n","category":"type"},{"location":"api/#CherenkovMediumBase.KopelevichScatteringModel","page":"API","title":"CherenkovMediumBase.KopelevichScatteringModel","text":"KopelevichScatteringModel{F<:AbstractScatteringFunction, T}\n\nStruct for Kopelevich scattering model.\n\n\n\n\n\n","category":"type"},{"location":"api/#CherenkovMediumBase.PolynomialScatteringFunction","page":"API","title":"CherenkovMediumBase.PolynomialScatteringFunction","text":"PolynomialScatteringFunction{T, P <: ImmutablePolynomial{T}}\n\nStruct for polynomial scattering function.\n\n\n\n\n\n","category":"type"},{"location":"api/#CherenkovMediumBase.QuanFryDispersion","page":"API","title":"CherenkovMediumBase.QuanFryDispersion","text":"QuanFryDispersion{T <: Real}\n\nStruct to hold parameters for the Quan & Fry dispersion model.\n\n\n\n\n\n","category":"type"},{"location":"api/#CherenkovMediumBase.QuanFryDispersion-NTuple{4, Any}","page":"API","title":"CherenkovMediumBase.QuanFryDispersion","text":"QuanFryDispersion(a01, a2, a3, a4)\n\nConstructor for QuanFryDispersion with given parameters.\n\n\n\n\n\n","category":"method"},{"location":"api/#CherenkovMediumBase.QuanFryDispersion-Tuple{Any, Any, Any}","page":"API","title":"CherenkovMediumBase.QuanFryDispersion","text":"QuanFryDispersion(salinity, temperature, pressure)\n\nConstructor for QuanFryDispersion using salinity, temperature, and pressure.\n\n\n\n\n\n","category":"method"},{"location":"api/#CherenkovMediumBase.SimplifiedLiu","page":"API","title":"CherenkovMediumBase.SimplifiedLiu","text":"SimplifiedLiu{T}\n\nStruct for Simplified-Liu scattering function.\n\n\n\n\n\n","category":"type"},{"location":"api/#CherenkovMediumBase.TwoComponentScatteringFunction","page":"API","title":"CherenkovMediumBase.TwoComponentScatteringFunction","text":"TwoComponentScatteringFunction{F1<:AbstractScatteringFunction, F2<:AbstractScatteringFunction}\n\nStruct for two-component scattering model.\n\n\n\n\n\n","category":"type"},{"location":"api/#CherenkovMediumBase.DIPPR105","page":"API","title":"CherenkovMediumBase.DIPPR105","text":"DIPPR105(temperature::Real, params::DIPPR105Params=DDBDIPR105Params)\n\nUse DPPIR105 formula to calculate water density as function of temperature. temperature in K.\n\nReference: http://ddbonline.ddbst.de/DIPPR105DensityCalculation/DIPPR105CalculationCGI.exe?component=Water\n\nReturns density in kg/m^3\n\n\n\n\n\n","category":"function"},{"location":"api/#CherenkovMediumBase._hg_scattering_func-Union{Tuple{T}, Tuple{Random.AbstractRNG, T}} where T<:Real","page":"API","title":"CherenkovMediumBase._hg_scattering_func","text":"_hg_scattering_func(g::Real)\n\nHenyey-Greenstein scattering in one plane.\n\nArguments\n\ng::Real: mean scattering angle\n\nReturns\n\ntypeof(g) cosine of a scattering angle sampled from the distribution\n\n\n\n\n\n","category":"method"},{"location":"api/#CherenkovMediumBase._refractive_index_fry-Tuple{T} where T<:Real","page":"API","title":"CherenkovMediumBase._refractive_index_fry","text":"refractive_index_fry(wavelength, salinity, temperature, pressure)\n\nThe phase refractive index of sea water according to a model from Quan & Fry.\n\nwavelength is given in nm, salinity in permille, temperature in °C and pressure in atm\n\nThe original model is taken from: X. Quan, E.S. Fry, Appl. Opt., 34, 18 (1995) 3477-3480.\n\nAn additional term describing pressure dependence was included according to: Wolfgang H.W.A. Schuster, \"Measurement of the Optical Properties of the Deep Mediterranean - the ANTARES Detector Medium.\", PhD thesis (2002), St. Catherine's College, Oxford downloaded Jan 2011 from: http://www.physics.ox.ac.uk/Users/schuster/thesis0098mmjhuyynh/thesis.ps\n\nAdapted from clsim (https://github.com/claudiok/clsim)\n\n\n\n\n\n","category":"method"},{"location":"api/#CherenkovMediumBase._sca_len_part_conc-Tuple{T} where T<:Real","page":"API","title":"CherenkovMediumBase._sca_len_part_conc","text":"sca_len_part_conc(wavelength; vol_conc_small_part, vol_conc_large_part)\n\nCalculates the scattering length (in m) for a given wavelength based on concentrations of small (vol_conc_small_part) and large (vol_conc_large_part) particles. wavelength is given in nm, volconcsmallpart and volconclargepart in ppm\n\nC.D. Mobley \"Light and Water\", ISBN 0-12-502750-8, pag. 119. \n\n\n\n\n\n","category":"method"},{"location":"api/#CherenkovMediumBase.absorption_length-Tuple{MediumProperties, Any}","page":"API","title":"CherenkovMediumBase.absorption_length","text":"absorption_length(medium::MediumProperties, wavelength)\n\nReturn absorption length at wavelength in units m. wavelength is expected to be in units nm.\n\n\n\n\n\n","category":"method"},{"location":"api/#CherenkovMediumBase.calc_quan_fry_params-Tuple{Real, Real, Real}","page":"API","title":"CherenkovMediumBase.calc_quan_fry_params","text":"calc_quan_fry_params(salinity::Real, temperature::Real, pressure::Real)\n\nHelper function to get the parameters for the Quan & Fry formula as function of salinity, temperature and pressure.\n\n\n\n\n\n","category":"method"},{"location":"api/#CherenkovMediumBase.cherenkov_angle-Tuple{MediumProperties, Any}","page":"API","title":"CherenkovMediumBase.cherenkov_angle","text":"cherenkov_angle(medium, wavelength)\n\nCalculate the cherenkov angle (in rad) for wavelength.\n\nwavelength is expected to be in units nm.\n\n\n\n\n\n","category":"method"},{"location":"api/#CherenkovMediumBase.dispersion-Tuple{CherenkovMediumBase.AbstractDispersionModel}","page":"API","title":"CherenkovMediumBase.dispersion","text":"dispersion(disperion_model::AbstractDispersionModel)\n\nCalculate the dispersion for a given dispersion model.\n\n\n\n\n\n","category":"method"},{"location":"api/#CherenkovMediumBase.dispersion-Tuple{MediumProperties, Any}","page":"API","title":"CherenkovMediumBase.dispersion","text":"dispersion(medium::MediumProperties, wavelength)\n\nReturn the dispersion dn/dλ at wavelength in units 1/nm. wavelength is expected to be in units nm.\n\n\n\n\n\n","category":"method"},{"location":"api/#CherenkovMediumBase.dispersion-Tuple{QuanFryDispersion, Any}","page":"API","title":"CherenkovMediumBase.dispersion","text":"dispersion(dispersion_model::QuanFryDispersion, wavelength)\n\nCalculate the dispersion for the Quan & Fry dispersion model.\n\n\n\n\n\n","category":"method"},{"location":"api/#CherenkovMediumBase.dispersion_fry-Tuple{T} where T<:Real","page":"API","title":"CherenkovMediumBase.dispersion_fry","text":"dispersion_fry(\n wavelength::T;\n salinity::Real,\n temperature::Real,\n pressure::Real) where {T <: Real}\n\nCalculate the dispersion (dn/dλ) for the Quan & Fry model. Wavelength is given in nm, salinity in permille, temperature in °C and pressure in atm\n\n\n\n\n\n","category":"method"},{"location":"api/#CherenkovMediumBase.es_scattering-Union{Tuple{T}, Tuple{T, T}} where T<:Real","page":"API","title":"CherenkovMediumBase.es_scattering","text":"es_scattering(cos_theta::T, b::T) where {T<:Real}\n\nEinstein-Smoluchowsky Scattering PDF.\n\n\n\n\n\n","category":"method"},{"location":"api/#CherenkovMediumBase.es_scattering_cumulative-Union{Tuple{T}, Tuple{T, T}} where T<:Real","page":"API","title":"CherenkovMediumBase.es_scattering_cumulative","text":"es_scattering_integral(cos_theta::T, b::T) where {T<:Real}\n\nIntegral of ES scattering function from -1 to cos_theta\n\n\n\n\n\n","category":"method"},{"location":"api/#CherenkovMediumBase.es_scattering_integral-Union{Tuple{T}, Tuple{T, T}} where T<:Real","page":"API","title":"CherenkovMediumBase.es_scattering_integral","text":"es_scattering_integral(cos_theta::T, b::T) where {T<:Real}\n\nAnti-derivative of the ES scattering function.\n\n\n\n\n\n","category":"method"},{"location":"api/#CherenkovMediumBase.get_dispersion_model-Tuple{MediumProperties}","page":"API","title":"CherenkovMediumBase.get_dispersion_model","text":"get_dispersion_model(medium::MediumProperties)\n\nReturn the dispersion model for a given medium.\n\n\n\n\n\n","category":"method"},{"location":"api/#CherenkovMediumBase.get_scattering_model-Tuple{MediumProperties}","page":"API","title":"CherenkovMediumBase.get_scattering_model","text":"get_scattering_model(medium::MediumProperties)\n\nReturn the scattering model for a given medium.\n\n\n\n\n\n","category":"method"},{"location":"api/#CherenkovMediumBase.group_refractive_index-Tuple{Any, Any}","page":"API","title":"CherenkovMediumBase.group_refractive_index","text":"group_refractive_index(medium, wavelength)\n\nReturn the group refractive index at wavelength.\n\nwavelength is expected to be in units nm.\n\n\n\n\n\n","category":"method"},{"location":"api/#CherenkovMediumBase.group_velocity-Tuple{MediumProperties, Any}","page":"API","title":"CherenkovMediumBase.group_velocity","text":"group_velocity(medium, wavelength)\n\nReturn the group_velocity in m/ns at wavelength.\n\nwavelength is expected to be in units nm.\n\n\n\n\n\n","category":"method"},{"location":"api/#CherenkovMediumBase.make_inverse_es_polynomial-Tuple{T} where T<:Real","page":"API","title":"CherenkovMediumBase.make_inverse_es_polynomial","text":"make_inverse_es_polynomial(b::T) where {T<:Real}\n\nMake a 3rd order polynomial that approximates the inverse of the ES scattering function.\n\n\n\n\n\n","category":"method"},{"location":"api/#CherenkovMediumBase.material_density-Tuple{MediumProperties}","page":"API","title":"CherenkovMediumBase.material_density","text":"material_density(medium::MediumProperties)\n\nThis function returns the material density for a given medium.\n\n\n\n\n\n","category":"method"},{"location":"api/#CherenkovMediumBase.phase_refractive_index-Tuple{CherenkovMediumBase.AbstractDispersionModel}","page":"API","title":"CherenkovMediumBase.phase_refractive_index","text":"phase_refractive_index(disperion_model::AbstractDispersionModel)\n\nCalculate the phase refractive index for a given dispersion model.\n\n\n\n\n\n","category":"method"},{"location":"api/#CherenkovMediumBase.phase_refractive_index-Tuple{MediumProperties, Any}","page":"API","title":"CherenkovMediumBase.phase_refractive_index","text":"phase_refractive_index(medium::MediumProperties, wavelength)\n\nReturn the phase refractive index at wavelength. wavelength is expected to be in units nm.\n\n\n\n\n\n","category":"method"},{"location":"api/#CherenkovMediumBase.phase_refractive_index-Tuple{QuanFryDispersion, Any}","page":"API","title":"CherenkovMediumBase.phase_refractive_index","text":"phase_refractive_index(disperion_model::QuanFryDispersion, wavelength)\n\nCalculate the phase refractive index for the Quan & Fry dispersion model.\n\n\n\n\n\n","category":"method"},{"location":"api/#CherenkovMediumBase.pressure-Tuple{MediumProperties}","page":"API","title":"CherenkovMediumBase.pressure","text":"pressure(medium::MediumProperties)\n\nThis function returns the pressure for a given medium.\n\n\n\n\n\n","category":"method"},{"location":"api/#CherenkovMediumBase.radiation_length-Tuple{MediumProperties}","page":"API","title":"CherenkovMediumBase.radiation_length","text":"radiation_length(medium::MediumProperties)\n\nThis function returns the radiation length for a given medium.\n\n\n\n\n\n","category":"method"},{"location":"api/#CherenkovMediumBase.sample_scattering_function-Tuple{MediumProperties}","page":"API","title":"CherenkovMediumBase.sample_scattering_function","text":"sample_scattering_function(medium::MediumProperties)\n\nReturn a scattering angle sampled from the scattering function of the medium.\n\n\n\n\n\n","category":"method"},{"location":"api/#CherenkovMediumBase.scattering_length-Tuple{KopelevichScatteringModel, Real}","page":"API","title":"CherenkovMediumBase.scattering_length","text":"scattering_length(model::KopelevichScatteringModel, wavelength::Real)\n\nCalculate the scattering length for the Kopelevich scattering model.\n\n\n\n\n\n","category":"method"},{"location":"api/#CherenkovMediumBase.scattering_length-Tuple{MediumProperties, Any}","page":"API","title":"CherenkovMediumBase.scattering_length","text":"scattering_length(medium::MediumProperties, wavelength)\n\nReturn scattering length at wavelength in units m. wavelength is expected to be in units nm. Returned length is in units m.\n\n\n\n\n\n","category":"method"},{"location":"api/#CherenkovMediumBase.sl_scattering_func-Union{Tuple{T}, Tuple{Random.AbstractRNG, T}} where T<:Real","page":"API","title":"CherenkovMediumBase.sl_scattering_func","text":"sl_scattering_func(g::Real)\n\nSimplified-Liu scattering angle function. Implementation from: https://user-web.icecube.wisc.edu/~dima/work/WISC/ppc/spice/new/paper/a.pdf\n\nArguments\n\ng::Real: mean scattering angle\n\n\n\n\n\n","category":"method"},{"location":"api/#CherenkovMediumBase.temperature-Tuple{MediumProperties}","page":"API","title":"CherenkovMediumBase.temperature","text":"temperature(medium::MediumProperties)\n\nThis function returns the temperature for a given medium.\n\n\n\n\n\n","category":"method"},{"location":"","page":"Home","title":"Home","text":"CurrentModule = CherenkovMediumBase","category":"page"},{"location":"#CherenkovMediumBase","page":"Home","title":"CherenkovMediumBase","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"Welcome to the documentation for CherenkovMediumBase.","category":"page"},{"location":"","page":"Home","title":"Home","text":"This package provides a set of tools and abstractions for working with medium properties in physics simulations.","category":"page"},{"location":"#Installation","page":"Home","title":"Installation","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"To install the package, use the following command:","category":"page"},{"location":"","page":"Home","title":"Home","text":"using Pkg\nPkg.add(\"CherenkovMediumBase\")","category":"page"},{"location":"#Usage","page":"Home","title":"Usage","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"Here is a simple example of how to use the package:","category":"page"},{"location":"","page":"Home","title":"Home","text":"using CherenkovMediumBase\n\n# Define a custom medium\nstruct CustomMedium <: MediumProperties end\n\n# Implement required methods\nfunction CherenkovMediumBase.pressure(medium::CustomMedium)\n return 1.0 # Example pressure\nend\n\n# ...implement other required methods...\n\n# Create an instance of the custom medium\nmedium = CustomMedium()\n\n# Use the medium in calculations\nprintln(CherenkovMediumBase.pressure(medium))","category":"page"},{"location":"#Documentation","page":"Home","title":"Documentation","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"The following sections provide detailed documentation for the package:","category":"page"},{"location":"","page":"Home","title":"Home","text":"","category":"page"}] }