- add
parseGasMixture
helper to parse gas mixtures from runtime values - ignore some low hanging performance fruit by avoiding
zip
- add
absorption
for gases (1 - transmission)
- add support for transmission output in
examples/calc_gas_mixtures
for solids- improve output filenames a bit more
- replace
μ
symbol in output file names byu
for compatibility
- change
examples/calc_gas_mixtures.nim
to not use half width space in filenames, use dot instead
- add basic CI running test / playground
- compile examples as static linux binary
- extend gas fraction example to include calculation of transmission data
- add
staticBuild
option and default to runtime elements. -> Compile with-d:staticBuild
to read all data files at compile time to have a binary that can be moved around without shipping the CSV data files. - add
pairs
iterator forGasMixture
and export one forCompound
- add helper
pressure
to compute pressure given temp and density - move
getFluorescenceLines
above the plotting helpers - deprecated molarWeight for compounds (-> molarMass), add for gases
- do not default to 3 digits of precision for gas mixtures
- minor fixes in
compound
macro for construction - add helper to parse a compound from a given string
- give runtime elements their name as field
- fix project structure to follow annoying nimble rules
- add missing dependencies
- add support for form factor files from NIST (useful for energies above 30 keV)
- adds a tool to download all data from NIST (files are shipped with the libraries though)
- do not return NaN below 30 eV (lower energies defined in Henke files)
- Elements now have a density field as well, which can be handed to the
init
call (in the future we might look them up as well). - Compounds can also be given a density in the
compound
macro by providing aρ
ordensity
argument. - The
DepthGradedMultilayer
type takes care of constructing the correct refractive indices & layers for such a coating. - add
depthGradedLayers
helper to compute the layer thicknesses according to the equations for depth graded layers - export
ρ
field for compounds - add
density
for gas mixtures to get density of the mixture - add
transmission
to compute the transmission of gas mixtures
- add
refractedAngle
,refractedAngleSin
to get refracted angle after an interface (and thesin(θ_j)
in the latter case) - add
energy
to convert a wavelength back to an energy - add support for depth graded multilayer reflections, i.e. like the LLNL telescope (NuSTAR optic)
- improve
reflectivity
implementation - allow calculation of refractive indices for compounds
- add
transmission
overload for convenience taking a compound, density, length and energy
- add
FluroscenceLine
type and CSV file: CSV file contains all known X-ray fluorescence lines and their intensities. UsinggetFluorescenceLines
the user can get all lines, their names and their relative intensities (be careful to normalize!). - add
GasMixture
type and option to compute absorption length and attenuation coefficient for a gas mixture
- fix attenuation coefficient interpolation from NIST data
- use NIST attenuation coefficients for > 30 keV for now instead of computing from f1, f2
- allow more parameters in plotting of attenuation and transmission
- change naming of some resource files
- initial release with basic features