diff --git a/CHANGES.md b/CHANGES.md new file mode 100644 index 000000000..5a03da2e3 --- /dev/null +++ b/CHANGES.md @@ -0,0 +1,299 @@ +# Release notes + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a +Changelog](https://keepachangelog.com/en/1.0.0/), and this project +adheres to [Semantic +Versioning](https://semver.org/spec/v2.0.0.html). + +% Type of changes + +% --------------- + +% Added Added for new features. + +% Changed Changed for changes in existing functionality. + +% Deprecated Deprecated for soon-to-be removed features. + +% Removed Removed for now removed features. + +% Fixed Fixed for any bug fixes. + +% Security Security in case of vulnerabilities. + +% Unreleased_ + +% ----------- + +% towncrier release notes start + +## [0.7.4] (2023-10-05) + +- [!342](https://foss.heptapod.net/fluiddyn/fluidsim/-/merge_requests/342) + Refactoring and improvements spectra ns2d and ns3d. +- [!335](https://foss.heptapod.net/fluiddyn/fluidsim/-/merge_requests/335) + Improvement `fluidsim-ipy-load` which can now take a path as argument +- Code improvements, bug fixes (in particular for movies) and compatibility + with new Matplotlib + +## [0.7.3] (2023-05-24) + +- Official support for only Python 3.9, 3.10 and 3.11. +- Few improvements for [Fluidsimfoam](https://foss.heptapod.net/fluiddyn/fluidsimfoam). + +## [0.7.2] (2023-01-05) + +- New module {mod}`fluidsim_core.output.remaining_clock_time`. + +## [0.7.1] (2022-11-30) + +- [!325](https://foss.heptapod.net/fluiddyn/fluidsim/-/merge_requests/325) + Small changes in restarts utilities for Snek5000 0.8.0. + +## [0.7.0] (2022-11-23) + +- [!316](https://foss.heptapod.net/fluiddyn/fluidsim/-/merge_requests/316) + Interactive movies + +- [!317](https://foss.heptapod.net/fluiddyn/fluidsim/-/merge_requests/317) + and [!318](https://foss.heptapod.net/fluiddyn/fluidsim/-/merge_requests/318) + + - Refactor movie code in fluidsim-core with several improvements and bugfixes + ({mod}`fluidsim_core.output.movies` and {mod}`fluidsim_core.output.phys_fields`) + - Movies for Snek5000 + +- [!319](https://foss.heptapod.net/fluiddyn/fluidsim/-/merge_requests/319) + Refactor restart code in fluidsim-core + ({class}`fluidsim_core.scripts.restart.RestarterABC` and + {class}`fluidsim.util.scripts.restart.Restarter`) + +- [!320](https://foss.heptapod.net/fluiddyn/fluidsim/-/merge_requests/320) Restart for Snek5000 in fluidsim-core + +- [!321](https://foss.heptapod.net/fluiddyn/fluidsim/-/merge_requests/321) command `fluidsim-ipy-load`. + +## [0.6.1] (2022-09-07) + +- Turbulence models with `extend_simul_class` ([!308](https://foss.heptapod.net/fluiddyn/fluidsim/-/merge_requests/308), see + {mod}`fluidsim.base.turb_model`) + +- Kolmogorov forcing ([!307](https://foss.heptapod.net/fluiddyn/fluidsim/-/merge_requests/307), see + {mod}`fluidsim.base.forcing.kolmogorov`) + +- Output {mod}`fluidsim.base.output.horiz_means` ([!309](https://foss.heptapod.net/fluiddyn/fluidsim/-/merge_requests/309)) + +- Output {mod}`fluidsim.base.output.cross_corr3d` ([!295](https://foss.heptapod.net/fluiddyn/fluidsim/-/merge_requests/295)) + +- Better support for 3d FFT libs based on pencil decompositions ([!283](https://foss.heptapod.net/fluiddyn/fluidsim/-/merge_requests/283)) + +- [!289](https://foss.heptapod.net/fluiddyn/fluidsim/-/merge_requests/289) + + - File `is_being_advanced.lock` in the result directory during the runs + - Better handling of signals (`SIGINT`, `SIGTERM` and `SIGUSR2`) + - `fluidsim-restart` supports idempotent jobs (OAR scheduler) + - {func}`fluidsim.util.get_dataframe_from_paths` using `sim.output.get_mean_values` + - {func}`fluidsim.util.get_last_estimated_remaining_duration` + - `sim.output.spatiotemporal_spectra.get_spectra` + +- CI also running on Github Actions ([!224](https://foss.heptapod.net/fluiddyn/fluidsim/-/merge_requests/224)) + +- Various fixes (in particular energy steps with `fluidsim-restart`) + +- Various plot improvements (in particular `plot_omega_emp` in {mod}`fluidsim.base.output.spatiotemporal_spectra`) + +## [0.6.0] (2022-02-07) + +- New subpackage {mod}`fluidsim.util.scripts` and module + {mod}`fluidsim.util.scripts.turb_trandom_anisotropic` ([!255](https://foss.heptapod.net/fluiddyn/fluidsim/-/merge_requests/255)). + +- Entry points console_scripts `fluidsim-restart` ([!261](https://foss.heptapod.net/fluiddyn/fluidsim/-/merge_requests/261)) and + `fluidsim-modif-resolution` ([!263](https://foss.heptapod.net/fluiddyn/fluidsim/-/merge_requests/263)). + +- Forcing {class}`fluidsim.base.forcing.anisotropic.TimeCorrelatedRandomPseudoSpectralAnisotropic` + (extension for 3d solvers + new parameter `params.forcing.tcrandom_anisotropic.delta_angle`) + ([!247](https://foss.heptapod.net/fluiddyn/fluidsim/-/merge_requests/247)). + +- New projection functions (toroidal/poloidal) in + {mod}`fluidsim.operators.operators3d` ([!247](https://foss.heptapod.net/fluiddyn/fluidsim/-/merge_requests/247)). + +- [! 250](https://foss.heptapod.net/fluiddyn/fluidsim/-/merge_requests/250): + New parameter `params.projection` for ns3d solvers. + + The equations (`ns3d`, `ns3d.strat` and `ns3d.bouss`) can be modified by + projecting the solutions on the poloidal or toroidal manifolds. + +- Faster loading at Python start ([!264](https://foss.heptapod.net/fluiddyn/fluidsim/-/merge_requests/264)) + +- Various bugfixes, in particular related to restart. + +## [0.5.1] (2021-11-05) + +- [!244](https://foss.heptapod.net/fluiddyn/fluidsim/-/merge_requests/244): + Taylor Green forcing for ns3d solvers +- fluidsim-core: change order for the initialization of the parameters: Simul + class before the subclasses. + +## [0.5.0] (2021-09-29) + +### Added + +- [!200](https://foss.heptapod.net/fluiddyn/fluidsim/-/merge_requests/200) : + New mechanism to easily extend a Simul class (subpackage + {mod}`fluidsim.extend_simul`). + +- [!201](https://foss.heptapod.net/fluiddyn/fluidsim/-/merge_requests/201) : + Improve FluidSim Core API with a warning and a convenience function + + - Warnings added when `_set_attrib` is called instead of `_set_child` by + a InfoSolver instance + - New function `iter_complete_params` + +- Output `spatial_means_regions_milestone.py` using {mod}`fluidsim.extend_simul`. + +- New options `no_vz_kz0` and `NO_KY0`. + +- Spatiotemporal spectra and many improvements for the temporal spectra for + ns3d and ns2d solvers by Jason Reneuve ([!202](https://foss.heptapod.net/fluiddyn/fluidsim/-/merge_requests/202), ...) + +- Better Burgers1d solvers (by Ashwin Vishnu) + +### Changed + +- [!200](https://foss.heptapod.net/fluiddyn/fluidsim/-/merge_requests/200) : + (internal) {class}`fluidsim_core.info.InfoSolverCore`: `__init__` now fully + initializes the instance (calling the method `complete_with_classes`). New + keyword argument `only_root` to initialize only the root level. +- [!211](https://foss.heptapod.net/fluiddyn/fluidsim/-/merge_requests/211) : + Replace for ns2d solvers the output `frequency_spectra` (nearly not used) by + the newer output `temporal_spectra` written for ns3d solvers. + +### Fixed + +- Many bugfixes! + +## [0.4.1] (2021-02-02) + +Few bugfixes and [!192](https://foss.heptapod.net/fluiddyn/fluidsim/-/merge_requests/192) +(temporal spectra for ns3d solvers). + +## [0.4.0] (2021-01-11) + +- [!186](https://foss.heptapod.net/fluiddyn/fluidsim/-/merge_requests/186): Package split into `fluidsim-core` and `fluidsim` + + - Base classes and abstract base classes defined for `params`, `info_solver`, `sim`, `output` instances + - Entry points as a *plugin framework* to register FluidSim solvers + +- `base/output/print_stdout.py`: better regularity saving + method `plot_clock_times` + +- Able to run bigger simulations (`2034x2034x384`) on the Occigen cluster (in + particular new function `fluidsim.modif_resolution_from_dir_memory_efficient`) + +## [0.3.3] (2020-10-15) + +- Bugfixes and optimizations (in particular for ns3d solvers) +- Forcing WATU Coriolis and Milestone for ns3d.strat +- pyproject.toml and isolated build +- Timestepping using phase-shifting for dealiasing +- Improve regularity of saving for some outputs + +## [0.3.2] (2019-11-14) + +- Bug fixes and Transonic 0.4 compatibility + +## [0.3.1] (2019-03-07) + +- Windows compatibility +- Only Python code (stop using Cython) +- Improvements ns2d.strat + +## [0.3.0] (2019-01-31) + +- Drop support for Python 2.7! +- Accelerated by Transonic & Pythran (also time stepping) +- Better setup.py (by Ashwin Vishnu) +- Improvement ns2d.strat (by Miguel Calpe Linares) +- Much better testing (internal, CI, compatibility pytest, coverage 87%) +- Fix several bugs :-) +- New function load_for_restart + +## [0.2.2] (2018-07-01) + +- Let fluidfft decides which FFT class to use (dependency fluidfft >= 0.2.4) + +## [0.2.1] (2018-05-24) + +- IPython magic commands (by Ashwin Vishnu). +- Bugfix divergence-free flow and time_stepping in ns3d solvers. + +## [0.2.0] (2018-05-04) + +- Many bugfixes and nicer code (using the Python code formatter Black). +- Faster ns3d solver. +- ns2d.strat + anisotropic forcing (by Miguel Calpe Linares). +- Nicer forcing parameters. + +## 0.1.1 + +- Better `phys_fields.plot` and `phys_fields.animate` (by Ashwin Vishnu and + Miguel Calpe Linares). +- Faster installation (with configuration file). +- Installation without mpi4py. +- Faster time stepping with less memory allocation. +- Much faster ns3d solvers. + +## 0.1.0 + +- Uses fluidfft and Pythran + +## 0.0.5 + +- Compatible fluiddyn 0.1.2 + +## 0.0.4 + +- 0D models (predaprey, lorenz) +- Continuous integration, unittests with bitbucket-pipelines + +## 0.0.3a0 + +Merge with geofluidsim (Ashwin Vishnu Mohanan repository) + +- Movies. +- Preprocessing of parameters. +- Less bugs. + +## 0.0.2a1 + +- Use a cleaner parameter container class (fluiddyn 0.0.8a1). + +## 0.0.2a0 + +- SetOfVariables inherits from numpy.ndarray. +- The creation of default parameter has been simplified and is done + by a class function Simul.create_default_params. + +## 0.0.1a + +- Split the package fluiddyn between one base package and specialized + packages. + +[0.2.0]: https://foss.heptapod.net/fluiddyn/fluidsim/-/compare/0.1.1...0.2.0 +[0.2.1]: https://foss.heptapod.net/fluiddyn/fluidsim/-/compare/0.2.0...0.2.1 +[0.2.2]: https://foss.heptapod.net/fluiddyn/fluidsim/-/compare/0.2.1...0.2.2 +[0.3.0]: https://foss.heptapod.net/fluiddyn/fluidsim/-/compare/0.2.2...0.3.0 +[0.3.1]: https://foss.heptapod.net/fluiddyn/fluidsim/-/compare/0.3.0...0.3.1 +[0.3.2]: https://foss.heptapod.net/fluiddyn/fluidsim/-/compare/0.3.1...0.3.2 +[0.3.3]: https://foss.heptapod.net/fluiddyn/fluidsim/-/compare/0.3.2...0.3.3 +[0.4.0]: https://foss.heptapod.net/fluiddyn/fluidsim/-/compare/0.3.3...0.4.0 +[0.4.1]: https://foss.heptapod.net/fluiddyn/fluidsim/-/compare/0.4.0...0.4.1 +[0.5.0]: https://foss.heptapod.net/fluiddyn/fluidsim/-/compare/0.4.1...0.5.0 +[0.5.1]: https://foss.heptapod.net/fluiddyn/fluidsim/-/compare/0.5.0...0.5.1 +[0.6.0]: https://foss.heptapod.net/fluiddyn/fluidsim/-/compare/0.5.1...0.6.0 +[0.6.1]: https://foss.heptapod.net/fluiddyn/fluidsim/-/compare/0.6.0...0.6.1 +[0.7.0]: https://foss.heptapod.net/fluiddyn/fluidsim/-/compare/0.6.1...0.7.0 +[0.7.1]: https://foss.heptapod.net/fluiddyn/fluidsim/-/compare/0.7.0...0.7.1 +[0.7.2]: https://foss.heptapod.net/fluiddyn/fluidsim/-/compare/0.7.1...0.7.2 +[0.7.3]: https://foss.heptapod.net/fluiddyn/fluidsim/-/compare/0.7.2...0.7.3 +[0.7.4]: https://foss.heptapod.net/fluiddyn/fluidsim/-/compare/0.7.3...0.7.4 +[unreleased]: https://foss.heptapod.net/fluiddyn/fluidsim/-/compare/0.7.3...branch%2Fdefault diff --git a/CHANGES.rst b/CHANGES.rst deleted file mode 100644 index d9dea0350..000000000 --- a/CHANGES.rst +++ /dev/null @@ -1,336 +0,0 @@ -Changes -======= - -All notable changes to this project will be documented in this file. - -The format is based on `Keep a -Changelog `__, and this project -adheres to `Semantic -Versioning `__. - -.. Type of changes -.. --------------- -.. Added Added for new features. -.. Changed Changed for changes in existing functionality. -.. Deprecated Deprecated for soon-to-be removed features. -.. Removed Removed for now removed features. -.. Fixed Fixed for any bug fixes. -.. Security Security in case of vulnerabilities. - - -.. Unreleased_ -.. ----------- - -.. towncrier release notes start - -0.7.4_ (2023-10-05) -------------------- - -- `!342 `__ - Refactoring and improvements spectra ns2d and ns3d. - -- `!335 `__ - Improvement `fluidsim-ipy-load` which can now take a path as argument - -- Code improvements, bug fixes (in particular for movies) and compatibility - with new Matplotlib - -0.7.3_ (2023-05-24) -------------------- - -- Official support for only Python 3.9, 3.10 and 3.11. - -- Few improvements for `Fluidsimfoam - `_. - -0.7.2_ (2023-01-05) -------------------- - -- New module :mod:`fluidsim_core.output.remaining_clock_time`. - -0.7.1_ (2022-11-30) -------------------- - -- `!325 `__ - Small changes in restarts utilities for Snek5000 0.8.0. - -0.7.0_ (2022-11-23) -------------------- - -- `!316 `__ - Interactive movies - -- `!317 `__ - and `!318 `__ - - - Refactor movie code in fluidsim-core with several improvements and bugfixes - (:mod:`fluidsim_core.output.movies` and :mod:`fluidsim_core.output.phys_fields`) - - Movies for Snek5000 - -- `!319 `__ - Refactor restart code in fluidsim-core - (:class:`fluidsim_core.scripts.restart.RestarterABC` and - :class:`fluidsim.util.scripts.restart.Restarter`) - -- `!320 `__ Restart for Snek5000 in fluidsim-core - -- `!321 `__ command ``fluidsim-ipy-load``. - -0.6.1_ (2022-09-07) -------------------- - -- Turbulence models with ``extend_simul_class`` (`!308 - `__, see - :mod:`fluidsim.base.turb_model`) - -- Kolmogorov forcing (`!307 - `__, see - :mod:`fluidsim.base.forcing.kolmogorov`) - -- Output :mod:`fluidsim.base.output.horiz_means` (`!309 `__) - -- Output :mod:`fluidsim.base.output.cross_corr3d` (`!295 `__) - -- Better support for 3d FFT libs based on pencil decompositions (`!283 `__) - -- `!289 `__ - - - File ``is_being_advanced.lock`` in the result directory during the runs - - Better handling of signals (``SIGINT``, ``SIGTERM`` and ``SIGUSR2``) - - ``fluidsim-restart`` supports idempotent jobs (OAR scheduler) - - :func:`fluidsim.util.get_dataframe_from_paths` using ``sim.output.get_mean_values`` - - :func:`fluidsim.util.get_last_estimated_remaining_duration` - - ``sim.output.spatiotemporal_spectra.get_spectra`` - -- CI also running on Github Actions (`!224 `__) - -- Various fixes (in particular energy steps with ``fluidsim-restart``) - -- Various plot improvements (in particular ``plot_omega_emp`` in :mod:`fluidsim.base.output.spatiotemporal_spectra`) - -0.6.0_ (2022-02-07) -------------------- - -- New subpackage :mod:`fluidsim.util.scripts` and module - :mod:`fluidsim.util.scripts.turb_trandom_anisotropic` (`!255 - `__). - -- Entry points console_scripts ``fluidsim-restart`` (`!261 - `__) and - ``fluidsim-modif-resolution`` (`!263 - `__). - -- Forcing :class:`fluidsim.base.forcing.anisotropic.TimeCorrelatedRandomPseudoSpectralAnisotropic` - (extension for 3d solvers + new parameter ``params.forcing.tcrandom_anisotropic.delta_angle``) - (`!247 `__). - -- New projection functions (toroidal/poloidal) in - :mod:`fluidsim.operators.operators3d` (`!247 - `__). - -- `! 250 `__: - New parameter ``params.projection`` for ns3d solvers. - - The equations (``ns3d``, ``ns3d.strat`` and ``ns3d.bouss``) can be modified by - projecting the solutions on the poloidal or toroidal manifolds. - -- Faster loading at Python start (`!264 - `__) - -- Various bugfixes, in particular related to restart. - -0.5.1_ (2021-11-05) -------------------- - -- `!244 `__: - Taylor Green forcing for ns3d solvers -- fluidsim-core: change order for the initialization of the parameters: Simul - class before the subclasses. - -0.5.0_ (2021-09-29) -------------------- - -Added -~~~~~ - -* `!200 `__ : - New mechanism to easily extend a Simul class (subpackage - :mod:`fluidsim.extend_simul`). - -* `!201 `__ : - Improve FluidSim Core API with a warning and a convenience function - - - Warnings added when ``_set_attrib`` is called instead of ``_set_child`` by - a InfoSolver instance - - New function ``iter_complete_params`` - -* Output ``spatial_means_regions_milestone.py`` using :mod:`fluidsim.extend_simul`. - -* New options ``no_vz_kz0`` and ``NO_KY0``. - -* Spatiotemporal spectra and many improvements for the temporal spectra for - ns3d and ns2d solvers by Jason Reneuve (`!202 - `__, ...) - -* Better Burgers1d solvers (by Ashwin Vishnu) - -Changed -~~~~~~~ - -* `!200 `__ : - (internal) :class:`fluidsim_core.info.InfoSolverCore`: ``__init__`` now fully - initializes the instance (calling the method ``complete_with_classes``). New - keyword argument ``only_root`` to initialize only the root level. - -* `!211 `__ : - Replace for ns2d solvers the output ``frequency_spectra`` (nearly not used) by - the newer output ``temporal_spectra`` written for ns3d solvers. - -Fixed -~~~~~ - -* Many bugfixes! - -0.4.1_ (2021-02-02) -------------------- - -Few bugfixes and `!192 `__ -(temporal spectra for ns3d solvers). - -0.4.0_ (2021-01-11) -------------------- - -* `!186 `__: Package split into ``fluidsim-core`` and ``fluidsim`` - - - Base classes and abstract base classes defined for ``params``, ``info_solver``, ``sim``, ``output`` instances - - Entry points as a *plugin framework* to register FluidSim solvers - -* ``base/output/print_stdout.py``: better regularity saving + method ``plot_clock_times`` - -* Able to run bigger simulations (``2034x2034x384``) on the Occigen cluster (in - particular new function ``fluidsim.modif_resolution_from_dir_memory_efficient``) - -0.3.3_ (2020-10-15) -------------------- - -- Bugfixes and optimizations (in particular for ns3d solvers) -- Forcing WATU Coriolis and Milestone for ns3d.strat -- pyproject.toml and isolated build -- Timestepping using phase-shifting for dealiasing -- Improve regularity of saving for some outputs - -0.3.2_ (2019-11-14) -------------------- - -- Bug fixes and Transonic 0.4 compatibility - -0.3.1_ (2019-03-07) -------------------- - -- Windows compatibility -- Only Python code (stop using Cython) -- Improvements ns2d.strat - -0.3.0_ (2019-01-31) -------------------- - -- Drop support for Python 2.7! -- Accelerated by Transonic & Pythran (also time stepping) -- Better setup.py (by Ashwin Vishnu) -- Improvement ns2d.strat (by Miguel Calpe Linares) -- Much better testing (internal, CI, compatibility pytest, coverage 87%) -- Fix several bugs :-) -- New function load_for_restart - -0.2.2_ (2018-07-01) -------------------- - -- Let fluidfft decides which FFT class to use (dependency fluidfft >= 0.2.4) - -0.2.1_ (2018-05-24) -------------------- - -- IPython magic commands (by Ashwin Vishnu). -- Bugfix divergence-free flow and time_stepping in ns3d solvers. - -0.2.0_ (2018-05-04) -------------------- - -- Many bugfixes and nicer code (using the Python code formatter Black). -- Faster ns3d solver. -- ns2d.strat + anisotropic forcing (by Miguel Calpe Linares). -- Nicer forcing parameters. - -0.1.1 ------ - -- Better ``phys_fields.plot`` and ``phys_fields.animate`` (by Ashwin Vishnu and - Miguel Calpe Linares). -- Faster installation (with configuration file). -- Installation without mpi4py. -- Faster time stepping with less memory allocation. -- Much faster ns3d solvers. - -0.1.0 ------ - -- Uses fluidfft and Pythran - -0.0.5 ------ - -- Compatible fluiddyn 0.1.2 - -0.0.4 ------ - -- 0D models (predaprey, lorenz) -- Continuous integration, unittests with bitbucket-pipelines - -0.0.3a0 -------- - -Merge with geofluidsim (Ashwin Vishnu Mohanan repository) - -- Movies. -- Preprocessing of parameters. -- Less bugs. - -0.0.2a1 -------- - -- Use a cleaner parameter container class (fluiddyn 0.0.8a1). - -0.0.2a0 -------- - -- SetOfVariables inherits from numpy.ndarray. - -- The creation of default parameter has been simplified and is done - by a class function Simul.create_default_params. - -0.0.1a ------- - -- Split the package fluiddyn between one base package and specialized - packages. - -.. _Unreleased: https://foss.heptapod.net/fluiddyn/fluidsim/-/compare/0.7.3...branch%2Fdefault -.. _0.7.4: https://foss.heptapod.net/fluiddyn/fluidsim/-/compare/0.7.3...0.7.4 -.. _0.7.3: https://foss.heptapod.net/fluiddyn/fluidsim/-/compare/0.7.2...0.7.3 -.. _0.7.2: https://foss.heptapod.net/fluiddyn/fluidsim/-/compare/0.7.1...0.7.2 -.. _0.7.1: https://foss.heptapod.net/fluiddyn/fluidsim/-/compare/0.7.0...0.7.1 -.. _0.7.0: https://foss.heptapod.net/fluiddyn/fluidsim/-/compare/0.6.1...0.7.0 -.. _0.6.1: https://foss.heptapod.net/fluiddyn/fluidsim/-/compare/0.6.0...0.6.1 -.. _0.6.0: https://foss.heptapod.net/fluiddyn/fluidsim/-/compare/0.5.1...0.6.0 -.. _0.5.1: https://foss.heptapod.net/fluiddyn/fluidsim/-/compare/0.5.0...0.5.1 -.. _0.5.0: https://foss.heptapod.net/fluiddyn/fluidsim/-/compare/0.4.1...0.5.0 -.. _0.4.1: https://foss.heptapod.net/fluiddyn/fluidsim/-/compare/0.4.0...0.4.1 -.. _0.4.0: https://foss.heptapod.net/fluiddyn/fluidsim/-/compare/0.3.3...0.4.0 -.. _0.3.3: https://foss.heptapod.net/fluiddyn/fluidsim/-/compare/0.3.2...0.3.3 -.. _0.3.2: https://foss.heptapod.net/fluiddyn/fluidsim/-/compare/0.3.1...0.3.2 -.. _0.3.1: https://foss.heptapod.net/fluiddyn/fluidsim/-/compare/0.3.0...0.3.1 -.. _0.3.0: https://foss.heptapod.net/fluiddyn/fluidsim/-/compare/0.2.2...0.3.0 -.. _0.2.2: https://foss.heptapod.net/fluiddyn/fluidsim/-/compare/0.2.1...0.2.2 -.. _0.2.1: https://foss.heptapod.net/fluiddyn/fluidsim/-/compare/0.2.0...0.2.1 -.. _0.2.0: https://foss.heptapod.net/fluiddyn/fluidsim/-/compare/0.1.1...0.2.0 diff --git a/README.md b/README.md index 17465e1b5..554182795 100644 --- a/README.md +++ b/README.md @@ -8,12 +8,12 @@ [![Heptapod CI](https://foss.heptapod.net/fluiddyn/fluidsim/badges/branch/default/pipeline.svg)](https://foss.heptapod.net/fluiddyn/fluidsim/-/pipelines) [![Github Actions](https://github.com/fluiddyn/fluidsim/actions/workflows/ci.yml/badge.svg?branch=branch/default)](https://github.com/fluiddyn/fluidsim/actions) -Fluidsim is an extensible framework for studying fluid dynamics with -numerical simulations using Python. Fluidsim is an object-oriented -library to develop solvers (mainly using pseudo-spectral methods) by -writing mainly Python code. The result is **very efficient** even -compared to a pure Fortran or C++ code since the time-consuming tasks -are performed by optimized compiled functions. +Fluidsim is an extensible framework for studying fluid dynamics with numerical +simulations using Python. Fluidsim is an object-oriented library to develop +Fluidsim "solvers" (i.e. Python packages solving equations) by writing mainly +Python code. The result is **very efficient** even compared to a pure Fortran +or C++ code since the time-consuming tasks are performed by optimized compiled +functions. **Documentation**: @@ -26,7 +26,7 @@ For a **basic installation** it should be sufficient to run: pip install fluidsim -or with conda: +or with [conda/mamba](https://github.com/conda-forge/miniforge): conda install -c conda-forge fluidsim @@ -59,7 +59,7 @@ used to extend existing solvers with Python interfaces such as We have created fluidsim to be **easy and nice to use and to develop**, **efficient** and **robust**. -*Keywords and ambitions*: fluid dynamics research with Python (>=3.6); +*Keywords and ambitions*: fluid dynamics research with Python (>=3.9); modular, object-oriented, collaborative, tested and documented, free and open-source software. @@ -78,23 +78,36 @@ project](https://openresearchsoftware.metajnl.com/articles/10.5334/jors.237/), and [FluidSim](https://openresearchsoftware.metajnl.com/articles/10.5334/jors.239/): - @article{fluiddyn, doi = {10.5334/jors.237}, year = {2019}, publisher - = {Ubiquity Press, Ltd.}, volume = {7}, author = {Pierre Augier and - Ashwin Vishnu Mohanan and Cyrille Bonamy}, title = {{FluidDyn}: A - Python Open-Source Framework for Research and Teaching in Fluid - Dynamics by Simulations, Experiments and Data Processing}, journal = - {Journal of Open Research Software} } - - @article{fluidfft, doi = {10.5334/jors.238}, year = {2019}, publisher - = {Ubiquity Press, Ltd.}, volume = {7}, author = {Ashwin Vishnu - Mohanan and Cyrille Bonamy and Pierre Augier}, title = {{FluidFFT}: - Common {API} (C\$mathplusmathplus\$ and Python) for Fast Fourier - Transform {HPC} Libraries}, journal = {Journal of Open Research - Software} } - - @article{fluidsim, doi = {10.5334/jors.239}, year = {2019}, publisher - = {Ubiquity Press, Ltd.}, volume = {7}, author = {Mohanan, Ashwin - Vishnu and Bonamy, Cyrille and Linares, Miguel Calpe and Augier, - Pierre}, title = {{FluidSim}: {Modular}, {Object}-{Oriented} {Python} - {Package} for {High}-{Performance} {CFD} {Simulations}}, journal = - {Journal of Open Research Software} } + @article{fluiddyn, + doi = {10.5334/jors.237}, + year = {2019}, + publisher = {Ubiquity Press, Ltd.}, + volume = {7}, + author = {Pierre Augier and Ashwin Vishnu Mohanan and Cyrille Bonamy}, + title = {{FluidDyn}: A Python Open-Source Framework for Research and Teaching in Fluid Dynamics + by Simulations, Experiments and Data Processing}, + journal = {Journal of Open Research Software} + } + + @article{fluidfft, + doi = {10.5334/jors.238}, + year = {2019}, + publisher = {Ubiquity Press, Ltd.}, + volume = {7}, + author = {Ashwin Vishnu Mohanan and Cyrille Bonamy and Pierre Augier}, + title = {{FluidFFT}: Common {API} (C$\mathplus\mathplus$ and Python) + for Fast Fourier Transform {HPC} Libraries}, + journal = {Journal of Open Research Software} + } + + @article{fluidsim, + doi = {10.5334/jors.239}, + year = {2019}, + publisher = {Ubiquity Press, Ltd.}, + volume = {7}, + author = {Mohanan, Ashwin Vishnu and Bonamy, Cyrille and Linares, Miguel + Calpe and Augier, Pierre}, + title = {{FluidSim}: {Modular}, {Object}-{Oriented} {Python} {Package} for + {High}-{Performance} {CFD} {Simulations}}, + journal = {Journal of Open Research Software} + } diff --git a/doc/HOWTO_build_the_doc b/doc/HOWTO_build_the_doc deleted file mode 100644 index 3725d5b44..000000000 --- a/doc/HOWTO_build_the_doc +++ /dev/null @@ -1,8 +0,0 @@ -Run in a terminal from this directory:: - - make html - -Also useful:: - - rm -rf generated - make clean diff --git a/doc/changes.md b/doc/changes.md new file mode 120000 index 000000000..cf547089d --- /dev/null +++ b/doc/changes.md @@ -0,0 +1 @@ +../CHANGES.md \ No newline at end of file diff --git a/doc/changes.rst b/doc/changes.rst deleted file mode 100644 index d9e113ec6..000000000 --- a/doc/changes.rst +++ /dev/null @@ -1 +0,0 @@ -.. include:: ../CHANGES.rst diff --git a/doc/conf.py b/doc/conf.py index 03d5d3d3b..09876c374 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -247,6 +247,14 @@ ' Citation', "https://doi.org/10.5334/jors.239", ), + ( + ' Mastodon', + "https://hachyderm.io/@fluiddyn", + ), + ( + ' Twitter', + "https://twitter.com/pyfluiddyn", + ), ], } @@ -327,9 +335,7 @@ # One entry per manual page. List of tuples # (source start file, name, description, authors, manual section). -man_pages = [ - ("index", "FluidSim", "FluidSim Documentation", ["Pierre Augier"], 1) -] +man_pages = [("index", "FluidSim", "FluidSim Documentation", ["Pierre Augier"], 1)] # If true, show URL addresses after external links. # man_show_urls = False @@ -380,3 +386,18 @@ for css_class in ("python", "ipython3", "default") ] ) + +myst_enable_extensions = [ + "amsmath", + # "attrs_inline", + # "colon_fence", + # "deflist", + "dollarmath", + # "fieldlist", + # "linkify", + # "replacements", + # "smartquotes", + # "strikethrough", + "substitution", + # "tasklist", +] diff --git a/doc/index.md b/doc/index.md new file mode 100644 index 000000000..cb92cc088 --- /dev/null +++ b/doc/index.md @@ -0,0 +1,191 @@ +--- +myst: + substitutions: + coverage: |- + ```{image} https://codecov.io/gh/fluiddyn/fluidsim/graph/badge.svg?token=dVfssLBgF2 + :alt: Code coverage + :target: https://codecov.io/gh/fluiddyn/fluidsim/ + ``` + release: |- + ```{image} https://img.shields.io/pypi/v/fluidsim.svg + :alt: Latest version + :target: https://pypi.org/project/fluidsim/ + ``` +--- + +# Fluidsim documentation + +## Overview + +Fluidsim is a framework for studying fluid dynamics with numerical simulations +using Python. It is part of the wider project +[FluidDyn](http://fluiddyn.readthedocs.io). + +Fluidsim is an object-oriented library to develop "solvers" (i.e. Python packages +solving equations) by writing mainly Python code. The result is **very efficient** +even compared to a pure Fortran or C++ code since the time-consuming tasks are +performed by optimized compiled functions. + +Fluidsim is a [HPC](https://en.wikipedia.org/wiki/High-performance_computing) code +written mostly in Python. It uses the library +[Fluidfft](http://fluidfft.readthedocs.io) to use very efficient FFT libraries. +Fluidfft is written in C++, Cython and Python. Fluidfft and fluidsim take +advantage of [Pythran](https://github.com/serge-sans-paille/pythran), a static +Python compiler which produces very efficient binaries by compiling Python via +C++11. Pythran is actually used in Fluidsim through +[Transonic](http://transonic.readthedocs.io), which is a new and cool project for +HPC with Python. + +An advantage of a CFD code written mostly in Python is that to run simulations and +analyze the results, the users communicate (possibly interactively) together and +with the machine with Python, which is nowadays among the best languages to do +these tasks. Moreover, it is much simpler and faster than with pure Fortran or C++ +codes to add any complicate analysis or to write a modified solver. + +We have created fluidsim to be **easy and nice to use and to develop**, highly +**efficient** and **robust**. + +Being a framework, Fluidsim can easily be extended in other packages to develop +other solvers (see for example the packages [snek5000] and [fluidsimfoam]). + +The list of solvers implemented using Fluidsim (see {mod}`fluidsim.solvers`, +[snek5000] and [fluidsimfoam]) gives a good idea of the versatility of this +framework. The main Fluidsim package contains mostly solvers solving equations +over a periodic space: + +- 2d and 3d incompressible Navier-Stokes equations, +- 2d and 3d incompressible Navier-Stokes equations under the Boussinesq + approximation (with a buoyancy variable), +- 2d and 3d stratified Navier-Stokes equations under the Boussinesq approximation + with constant Brunt-Väisälä frequency, +- 2d one-layer shallow-water equations + modified versions of these equations, +- 2d Föppl-von Kármán equations (elastic thin plate). + +### Metapapers and citations + +If you use FluidSim to produce scientific articles, please cite our metapapers +presenting the +[FluidDyn project](https://openresearchsoftware.metajnl.com/articles/10.5334/jors.237/), +[FluidFFT](https://openresearchsoftware.metajnl.com/articles/10.5334/jors.238/), +and +[FluidSim](https://openresearchsoftware.metajnl.com/articles/10.5334/jors.239/): + +```bibtex +@article{fluiddyn, +doi = {10.5334/jors.237}, +year = {2019}, +publisher = {Ubiquity Press, Ltd.}, +volume = {7}, +author = {Pierre Augier and Ashwin Vishnu Mohanan and Cyrille Bonamy}, +title = {{FluidDyn}: A Python Open-Source Framework for Research and Teaching in Fluid Dynamics + by Simulations, Experiments and Data Processing}, +journal = {Journal of Open Research Software} +} + +@article{fluidfft, +doi = {10.5334/jors.238}, +year = {2019}, +publisher = {Ubiquity Press, Ltd.}, +volume = {7}, +author = {Ashwin Vishnu Mohanan and Cyrille Bonamy and Pierre Augier}, +title = {{FluidFFT}: Common {API} (C$\mathplus\mathplus$ and Python) + for Fast Fourier Transform {HPC} Libraries}, +journal = {Journal of Open Research Software} +} + +@article{fluidsim, +doi = {10.5334/jors.239}, +year = {2019}, +publisher = {Ubiquity Press, Ltd.}, +volume = {7}, +author = {Mohanan, Ashwin Vishnu and Bonamy, Cyrille and Linares, Miguel + Calpe and Augier, Pierre}, +title = {{FluidSim}: {Modular}, {Object}-{Oriented} {Python} {Package} for + {High}-{Performance} {CFD} {Simulations}}, +journal = {Journal of Open Research Software} +} +``` + +```{toctree} +--- +caption: Get started +maxdepth: 1 +--- +install +tutorials +examples +faq +``` + +```{toctree} +--- +caption: Utilities +maxdepth: 1 +--- +test_bench_profile +ipynb/restart_modif_resol +``` + +## API Reference + +A pure-Python package `fluidsim-core` houses all the abstraction necessary to +define solvers. + +```{eval-rst} +.. autosummary:: + :toctree: generated/ + :caption: API reference fluidsim-core + + fluidsim_core +``` + +The package `fluidsim` provides a set of specialized solvers solvers, supporting +classes and functions. + +```{eval-rst} +.. autosummary:: + :toctree: generated/ + :caption: API reference fluidsim + + fluidsim.base + fluidsim.operators + fluidsim.solvers + fluidsim.util + fluidsim.magic + fluidsim.extend_simul + +``` + +```{toctree} +--- +caption: Fluidsim development +maxdepth: 1 +--- +changes +authors +Advice for FluidDyn developers +to_do +roadmap +release_process +``` + +## Links + +- [FluidDyn documentation](http://fluiddyn.readthedocs.io) +- [Fluidsim forge on Heptapod](https://foss.heptapod.net/fluiddyn/fluidsim) +- Fluidsim in PyPI {{release}} +- Unittest coverage {{coverage}} +- FluidDyn user chat room in + [Riot](https://riot.im/app/#/room/#fluiddyn-users:matrix.org) or + [Slack](https://fluiddyn.slack.com) +- [FluidDyn mailing list](https://www.freelists.org/list/fluiddyn) +- [FluidDyn on Twitter](https://twitter.com/pyfluiddyn) + +## Indices and tables + +- {ref}`genindex` +- {ref}`modindex` +- {ref}`search` + +[fluidsimfoam]: https://foss.heptapod.net/fluiddyn/fluidsimfoam +[snek5000]: https://github.com/exabl/snek5000/ diff --git a/doc/index.rst b/doc/index.rst deleted file mode 100644 index e15bc3580..000000000 --- a/doc/index.rst +++ /dev/null @@ -1,182 +0,0 @@ -.. FluidDyn documentation master file, created by - sphinx-quickstart on Sun Mar 2 12:15:31 2014. - -Fluidsim documentation -====================== - -Fluidsim is a framework for studying fluid dynamics with numerical -simulations using Python. It is part of the wider project `FluidDyn -`_. - -Fluidsim is an object-oriented library to develop solvers (mainly using -pseudo-spectral methods) by writing mainly Python code. The result is **very -efficient** even compared to a pure Fortran or C++ code since the -time-consuming tasks are performed by optimized compiled functions. - -Fluidsim is a `HPC `_ -code written mostly in Python. It uses the library `Fluidfft -`_ to use very efficient FFT libraries. -Fluidfft is written in C++, Cython and Python. Fluidfft and fluidsim take -advantage of `Pythran `_, a -static Python compiler which produces very efficient binaries by compiling -Python via C++11. Pythran is actually used in Fluidsim through `Transonic -`_, which is a new and cool project for HPC -with Python. - -An advantage of a CFD code written mostly in Python is that to run simulations -and analyze the results, the users communicate (possibly interactively) -together and with the machine with Python, which is nowadays among the best -languages to do these tasks. Moreover, it is much simpler and faster than with -pure Fortran or C++ codes to add any complicate analysis or to write a modified -solver. - -We have created fluidsim to be **easy and nice to use and to develop**, highly -**efficient** and **robust**. - -Fluidsim is a young package but the list of solvers already implemented (see -:mod:`fluidsim.solvers`) gives a good idea of the versatility of this -framework. However, currently, Fluidsim excels in particular in solving -equations over a periodic space: - -* 2d and 3d incompressible Navier-Stokes equations, - -* 2d and 3d incompressible Navier-Stokes equations under the Boussinesq - approximation (with a buoyancy variable), - -* 2d and 3d stratified Navier-Stokes equations under the Boussinesq - approximation with constant Brunt-Väisälä frequency, - -* 2d one-layer shallow-water equations + modified versions of these - equations, - -* 2d Föppl-von Kármán equations (elastic thin plate). - -Being a framework, Fluidsim can easily be extended in other packages to develop -other solvers (see for example the packages `snek5000 -`_, `fluidsimfoam -`_ and `fluidsim_ocean -`_). - - -**Metapapers and citations** - -If you use FluidSim to produce scientific articles, please cite our metapapers -presenting the `FluidDyn project -`__, -`FluidFFT -`__, and -`FluidSim -`__: - - -.. code-block :: bibtex - - @article{fluiddyn, - doi = {10.5334/jors.237}, - year = {2019}, - publisher = {Ubiquity Press, Ltd.}, - volume = {7}, - author = {Pierre Augier and Ashwin Vishnu Mohanan and Cyrille Bonamy}, - title = {{FluidDyn}: A Python Open-Source Framework for Research and Teaching in Fluid Dynamics - by Simulations, Experiments and Data Processing}, - journal = {Journal of Open Research Software} - } - - @article{fluidfft, - doi = {10.5334/jors.238}, - year = {2019}, - publisher = {Ubiquity Press, Ltd.}, - volume = {7}, - author = {Ashwin Vishnu Mohanan and Cyrille Bonamy and Pierre Augier}, - title = {{FluidFFT}: Common {API} (C$\mathplus\mathplus$ and Python) - for Fast Fourier Transform {HPC} Libraries}, - journal = {Journal of Open Research Software} - } - - @article{fluidsim, - doi = {10.5334/jors.239}, - year = {2019}, - publisher = {Ubiquity Press, Ltd.}, - volume = {7}, - author = {Mohanan, Ashwin Vishnu and Bonamy, Cyrille and Linares, Miguel - Calpe and Augier, Pierre}, - title = {{FluidSim}: {Modular}, {Object}-{Oriented} {Python} {Package} for - {High}-{Performance} {CFD} {Simulations}}, - journal = {Journal of Open Research Software} - } - -.. toctree:: - :maxdepth: 1 - :caption: User Guide - - install - tutorials - examples - test_bench_profile - ipynb/restart_modif_resol - faq - -Modules Reference ------------------ - -A pure-Python package ``fluidsim-core`` houses all the abstraction necessary to -define solvers. - -.. autosummary:: - :toctree: generated/ - - fluidsim_core - -The package ``fluidsim`` provides a set of specialized solvers solvers, -supporting classes and functions. - -.. autosummary:: - :toctree: generated/ - - fluidsim.base - fluidsim.operators - fluidsim.solvers - fluidsim.util - fluidsim.magic - fluidsim.extend_simul - - -.. toctree:: - :maxdepth: 1 - :caption: More - - changes - Advice for FluidDyn developers - to_do - authors - roadmap - release_process - -Links ------ - -.. |release| image:: https://img.shields.io/pypi/v/fluidsim.svg - :target: https://pypi.org/project/fluidsim/ - :alt: Latest version - -.. |coverage| image:: https://codecov.io/gh/fluiddyn/fluidsim/branch/default/graph/badge.svg - :target: https://codecov.io/gh/fluiddyn/fluidsim/ - :alt: Code coverage - -- `FluidDyn documentation `_ -- `Fluidsim forge on Heptapod `_ -- Fluidsim in PyPI |release| -- Unittest coverage |coverage| -- FluidDyn user chat room in - `Riot `_ or - `Slack `_ -- `FluidDyn mailing list `_ -- `FluidDyn on Twitter `_ - - -Indices and tables -================== - -* :ref:`genindex` -* :ref:`modindex` -* :ref:`search`