API changes:
- Spectroscopic observers and their groups are deprecated and replaced by groups based on Raysect's 0D observers. (#332)
- Support for Python 3.6 is dropped. It may still work, but is no longer actively tested.
Bug fixes:
- Fixed generomak plasma edge data paths.
- Fix and improve OpenCL utility functions. (#358)
- Fixed Bremsstrahlung trapezium evaluation (#384).
New:
- Make f_profile (current flux) a read-only attribute of EFITEquilibrium. (#355)
- Add group observer class for each of Raysect's 0D observers. (#332)
- Add a demo for observer group handling and plotting.
- Add verbose parameter to SartOpencl solver (default is False). (#358)
- Add Thomson Scattering model. (#97)
- Add Generomak core plasma profiles. (#360)
- Add toroidal_mesh_from_polygon for making mesh for not fully-360 degrees axisymmetric elements. (#365)
- Add common spectroscopic instruments: Polychromator, SurveySpectrometer, CzernyTurnerSpectrometer. (#299)
- Add new classes for free-free Gaunt factors and improve accuracy of the Gaunt factor used in Bremsstrahlung emission model. (#352)
- Add GaussianQuadrature integration method for Function1D. (#366)
- Add integrator attribute to LineShapeModel to use with lineshapes that cannot be analytically integrated over a spectral bin. (#366)
- Add a numerical integration of StarkBroadenedLine over the spectral bin. (#366)
- Add Generomak full plasma profiles obtained by blending the core and edge profiles. (#372)
- Clean up build/install dependencies. (#353)
- Test against Python 3.10 and latest released Numpy. Drop Python 3.6 and older Numpy from tests. (#391)
API changes:
- Use of Cherab's interpolators is now deprecated in favour of those upstream in Raysect.
Bug fixes:
- Fixed OpenADAS repository populate() method failing with the pure python interpreter but working in ipython. (#186)
- Fix loss of precision in OpenCL SART inversion. (#188)
- Tidy up bolometer API and fix sightline orientation. (#189, #191, #193, #195)
- Fix faulty periodicity check in cylindrical ray transfer classes. (#226)
- Use correct species temperature when calculating line broadening. (#236)
- Fix corrupting JSON file when populating OpenADAS repository (#244)
- Fix getting incorrect beam population rates from OpenADAS (#253)
- Fix the Gaunt factor in the Bremsstrahlung class. (#271)
- Fix wrong intensity_s1 coefficient in BeamEmissionMultiplet. (#277)
- Fix beam emission rate calculation. (#278)
- Fix some crashes when parameters are not correctly specified. (#287, #289)
- Fix mapping from flux coordinates to Cartesian. (#302)
- Use isotope rather than element wavelengths. (#296)
- Fix some documentation typos. (#309)
- Fix misleading error messages arising from sanity checks in plasma, beam and atomic models. (#333)
New:
- Add electron rest mass and classical radius constants. (#187)
- Improve performance of ray transfer emitters and integrators (#198)
- Add some bolometry examples to the demos and documentation (#161)
- Standardise on the name "Cherab" rather than "CHERAB"
- Comaptibility with Raysect 0.7.1
- Use Raysect's function framework where possible. (#214)
- Tools to create slab plasmas. (#208)
- Use PEP517-compliant pyproject.toml to improve installation process. (#250)
- Add more accurate hydrogen isotope wavelengths. (#265)
- Add the "Generomak", an example machine with first wall mesh (#268, #312), magnetic equilibrium (#335, #341) and edge plasma profiles (#337).
- Enable specifying the value outside the LCFS when mapping to EFIT equilibria. (#270)
- Allow user to specify the path to an atomic data repository. (#291, #316)
- Switch CI from Travis to Github actions. (#280, #293)
- Add Cython definition files for Ray Transfer Emitters. (#307)
- Add spectroscopic fibre optic observers. (#284)
- Add an infra-red video bolometer (IRVB) model. (#206)
- Improve project metadata to make PyPI page more informative. (#317)
- Add Zeeman spectral line shape models. (#246)
- Use Raysect's new interpolators in place of Cherab's. (#304)
- Interpolate OpenADAS rates in log-log space. (#304)
- Use nearest neighbour extrapolation for OpenADAS ionisation and recombination rates, impact excitation and recombination PECs and line and continuum radiated power rates. (#304)
API changes:
- AxisymmetricVoxel vertices initialisation switched to Nx2 numpy array.
- Raysect VolumeTransforms used to handle shifts in coordinate systems rather than material specific offsets.
- Numerous minor changes (see commit history).
New:
- Merged cherab-openadas package into the core cherab package to simplify installation.
- Beam object uses a cone primitive instead of a cylinder for the bounding volume of divergent beams.
- Added Clamp functions.
- Added ThermalCXRate.
- Added optimised ray transfer grid calculation tools.
- Added opencl optimised SART inversion to tools.
- Numerous improvements to bolometry tool chain (see commit history).
Bug fixes:
- Equilibrium normalised psi clamped to prevent negative values (occasionally caused by numerical precision issues at the core).
- trace_sightline() bug that caused repeated reintersection has been fixed.
- Numerous samller issues addressed throughout the framework (see commit history).
New:
- Added EFITEquilibrium class to cherab.tools.equilibrium.
- Added voxel handling utilities to cherab.tools
- Added differentials to interpolator functions.
- Added Slice2D and 3D functions to reduce the dimensions of a function object.
- Expanded list of isotopes and elements, nearly all elements/stable isotopes are now available.
- Can now look up element/isotope objects by name and/or atomic number/mass.
- Significantly expanded documentation and demos.
- Added Multiplet line-shape.
Bug fixes:
- Improved handling on non c-order arrays in various methods.
- Numerous minor bug fixes (see commit history)
Bug fixes:
- Cherab package would fail if Raysect structures were altered due to using prebuilt c files. Cython is now always used to rebuild against the installed version of raysect. Cython is therefore now a dependency.
Initial public release.