What's Changed
* Added global option ``pygasflow.defaults.solver_to_dict`` in order to force all solvers to return a dictionary of results if it's set to True.
* Added new functions:
* `gas_solver`
* `ideal_gas_solver`
* `sonic_condition`
* `normal_shockwave_solver`
* `oblique_shockwave_solver` as an alias to the old name ``shockwave_solver``. This new name makes it impossible to confuse it with other shockwave solvers.
* Added a new sub-module, ``pygasflow.interactive``, which provides a web-based GUI (graphical user interface) to many of the functionalities of the module, implemented with [holoviz panel](https://panel.holoviz.org/). The GUI allows:
* for an easier and non-programmatic way of getting quick results.
* to easily explore different configurations.
* reliability: over the years there have been many web-based compressible flow GUIs on the internet. However, they are not guaranteed to exists forever. On the other hand, this sub-module is part of pygasflow, and it will always be readily available should the user needs it.
* Added a new sub-module, ``pygasflow.interactive.diagram``, which provides functionalities to quickly creates diagram related to compressible flows, like isentropic diagram, Fanno diagram, oblique shock diagram, shock polar diagram, etc.
* Added `PressureDeflectionLocus` and `PressureDeflectionDiagram` to easily create pressure-deflection diagrams and compute related quantities.
* Improved reliability of `sonic_point_oblique_shock` and `sonic_point_conical_shock`.
* Fixed bug with `oblique_shockwave_solver` and propagation of the specific heats ratio when the flow deflection angle and the shock wave angle were provided as input arguments.
* Fixed bug with `m_from_critical_temperature_ratio` and propagation of the specific heats ratio.
* Fixed bug with `mach_from_theta_beta`, which computed a wrong Mach number for the special case beta=90, theta=0.
* Fixed bug with some functions that computed wrong results when integer numbers were provided as arguments.
* Fixed bug with `shock_polar` and propagation of a parameter to other functions.
* Fixed functions that raised *RuntimeWarning: divide by zero encountered in divide*.
* Fixed bug with data not being loaded by the module.
* DEPRECATIONS: here is a list of newly introduced deprecations. See [this documentation page](https://pygasflow.readthedocs.io/en/latest/deprecations.html) to understand the motivations.
* The following is a list of parameter names used by `oblique_shockwave_solver` and `conical_shockwave_solver` which are now deprecated:
* ``"m1"`` indicated the upstream Mach number. ``"mu"`` should be used instead.
* ``"mn1"`` indicated the upstream normal Mach number. ``"mnu"`` should be used instead.
* ``"m2"`` indicated the downstream Mach number. ``"md"`` should be used instead.
* ``"mn2"`` indicated the downstream normal Mach number. ``"mnd"`` should be used instead.
* ``"m"`` indicated the upstream Mach number of a conical shock wave.
``"mu"`` should be used instead.
These changes also applies to the dictionary of results, if the solver was executed with the keyword argument ``to_dict=True``.
* ``beta_theta_max_for_unit_mach_downstream`` has been deprecated in favor of `sonic_point_oblique_shock`.
* ``beta_from_mach_max_theta`` has been deprecated in favor of `detachment_point_oblique_shock`.
* ``beta_theta_c_for_unit_mach_downstream`` has been deprecated in favor of `sonic_point_conical_shock`.
* BREAKING:
* Removed classes ``Ideal_Gas`` and ``Flow_State`` from ``pygasflow.utils.common`` as no longer useful to the module.
* Refactoring of ``pygasflow.nozzles`` and ``pygasflow.solver.de_laval`` in order to use the [holoviz param](https://param.holoviz.org/) module, which allows for a more robust code base while also providing the foundation for interactive applications. In particular, `De_Laval_Solver`, `CD_Conical_Nozzle`, `CD_TOP_Nozzle`, `CD_Min_Length_Nozzle` are no longer compatible with previous versions of the module.