**Release date:** 2021-10-20
**Features**
- added `black_body` as one of possibilities for atmospheres
- support different atmospheres for celestial objects
- `velocity` and `radial_velocity` option for `colormap` argument added to BinarySystem.plot.surface() and
SingleSystem.plot.surface()
- ability to select priors from uniform or normal distribution, standard deviation of the normal distribution is
defined with the `sigma` fit parameter attribute
**Enhancements**
- solar constant conserved with different levels of surface discretization
- improvements to trapezoidal discretization
- additional constraints for approximations used during integration of eccentric light curves,
relative change in irradiation is checked when similar orbital positions are evaluated, improves precision
- pre-build logging schemas added, that are accessible via LOG_CONFIG parameter with options 'default' or 'fit' or
path to custom configuration file. 'fit' schema will suppress all logging messages except for messages from
analytics class.
- utilizing numba for computationally heavy tasks such as reflection effect (preparation for GPU ready version of
ELISa)
- function elisa.analytics.tasks.load_results() returns results in form of dict
- command set_up_logging() not needed anymore while changing logging schemas
- adaptive and custom sampling during fitting accessed by 'samples' argument
- ability for surface plot to return figure instance with boolean argument `return_figure_instance`
- correction of surface underestimation is separately tuned for each discretization method (single star, detached,
over-contact)
- ablility to filter flat chain to be within specific interval of parameters using AnalyticsTask.filter_chain
function. This method is suitable for examining multiple solutions.
- ability to evaluate R^2 for set of model parameters using function AnalyticsTask.coefficient_of_determination.
- adding ability to load from json in "radius"-based format that describes the size of the star with
`equivalent_radius` instead of polar gravity `polar_log_g` in "standard" format
- BinarySystem and SingleSystem now contain a function build_container that builds a complete model of a system at
given photometric `phase` or observational `time`.
- in the default mode (when user did not specified the discretization factor), sizes of surface elements of both
components are scaled in a way, that the surface elements of both components roughly output the same amount of
flux, if the (min, max) range of discretization factors can be maintained. This prevents from unnecessary surface
oversampling of smaller and dimmer binary components.
**Fixes**
- <binary_system>.init() reinitialize parameters corretly (require fix for pulsations)
- inclination rotation is provided in positive direction instead of negative
- line-of-sight vector is switched from [1, 0, 0] to [-1, 0, 0] to make model consistent with radial velocity
observations where negative value describes velocity of body moving towards the observer. Azimuth of the body is
now measured with respect to y-axis. Observer is now located at [-inf, 0, 0]
- atmosphere models are interpolated using flux-based weights instead of temperature based weights
- calculation of surface element visibility was fixed in cases of eclipses caused by stars smaller than surface
elements on eclipsed components
- starting value for implicit solver adjusted in case of near-side parts of overcontact stars generated in
cylindrical symmetry from polar_radius to 0.25 * polar radius. This prevents a crash of solver for points near
the neck.