What’s New#
The format is based on Keep a Changelog, and this project adheres to Intended Effort Versioning (EffVer for short). Release notes are automatically recovered from GitHub by sphinx-github-changelog.
v1.3.0#
Released on 2024-12-17 - GitHub - PyPI
Removed
Fixed
- Fixed Dataset.load_snapshot to use the specified number of scalar digits instead of just the last one by @fschuch in #75
Internals
Full Changelog: v1.2.1...v1.3.0
v1.2.1#
Released on 2024-09-13 - GitHub - PyPI
Added
Full Changelog: v1.2.0...v1.2.1
v1.2.0#
Released on 2024-06-21 - GitHub - PyPI
Deprecated
- The integration methods
cumtrapz
andsimps
onxcompact3d_toolbox.array
have been deprecated in favor ofcumulative_trapezoid
andsimpson
respectively, following the same changes applied upstream on SciPy 1.12.0
Added
- Added loguru to enhance logging in the project
Changed
- Dropped support for Python 3.7 and added support for Python 3.10, 3.11, and 3.12
- Boolean arguments in all functions and methods changed to keyword-only
- Changed all arguments on
xcompact3d_toolbox.sandbox.Geometry
to keyword-only - Changed the project versioning schema to Intended Effort Versioning
- Function
xcompact3d_toolbox.gene_epsi_3D
was renamed toxcompact3d_toolbox.gene_epsi_3d
Fixed
- Corrected typos, typing annotating, and formatting issues in the codebase and documentation
- Fixed a bug on
xcompact3d_toolbox.gui._divisor_generator
affecting the coupling betweenp_row
,p_col
, andncores
onParametersGui._observe_2decomp
method - Fixed bug on
xcompact3d_toolbox.sandbox.Geometry.from_stl
on some platforms that resolvenp.longdouble
tonp.float128
, which is not compatible with Numba - Fixed compatibility issue on
xcompact3d_toolbox.io.Dataset.load_snapshot
when testing if fieldis_scalar
on Python 3.8 - Fixed issue on
xcompact3d_toolbox.sandbox.Geometry.square
that was resulting in a TypeError becauseset
object is not subscriptable
Documentation
- Replaced documentation framework by Jupyter Books to enhance interactive tutorials
- Migrated documentation hosting from readthedocs to GitHub Pages by @fschuch in #41
- Added a changelog page auto generated from GitHub release notes by @fschuch in #60
Internals
- Configured sonarcloud to power code quality analysis and coverage tracking on the project
- Modified the way of working on the project by applying the Wizard-Template by @fschuch in #14:
- Hatch now manages Python installations, virtual environments, dependencies, maintenance scripts, and builds
- mypy for static type checking
- ruff as the linter and code formatter
- codespell to check spelling
- pytest as the test engine
- Git hooks to guarantee consistency and leverage the aforementioned tools
- GitHub workflows and dependabot were reviewed to address the previous points
Full Changelog: v1.1.1...v1.2.0
v1.1.1#
Released on 2023-08-10 - GitHub - PyPI
Fixed
Modified
- Support for parallel computing with dask was extended at
genepsi.gene_epsi_3D
, by @fschuch.
v1.1.0#
Released on 2021-10-07 - GitHub - PyPI
Added
- Add
sandbox.Geometry.from_stl
. It reads anstl
file and is able to compute what mesh points are inside or outside the geometry, so we can specify the geometry for a very customized immersed boundary method. By @fschuch and @nbeb. - Add
xcompact3d_toolbox.tutorial
, making it easier to get datasets for documentation and tutorials, by @fschuch. - Add
xcompact3d_toolbox.Parameters.from_string
, an useful method to get the parameters from the datasets at the tutorials, by @fschuch. - Add tutorial Computing and Plotting, by @fschuch.
- Add tutorial Reading and writing files, by @fschuch.
Modified
io.Dataset.data_path
is now obtained automatically fromparameters.Parameter.filename
at initialization (i.g., iffilename = "./example/input.i3d"
thendata_path = "./example/data/"
). Of course,data_path
can be changed to any value after that. By @fschuch.io.Dataset.load_wind_turbine_data
now have a default location forfile_pattern
. Atributes were included for the coordinate time. By @fschuch.io.Dataset.set
now accepts keyword arguments to send toio.FilenameProperties.set
, for a more concise sintaxe. By @fschuch.- The default return from
xcompact3d.param.boundary_condition
now takes in consideration if the domain is periodic or not, by @fschuch.
Fixed
fix_bug
at gene_epsi_3D was not working properly (#3), by @fschuch.xcompact3d.io.Dataset.load_array
was not working for files that do not change in time, like./data/geometry/epsilon.bin
, by @fschuch.
v1.0.1#
Released on 2021-09-23 - GitHub - PyPI
Modified
- Rename the default branch to
main
, by @fschuch.
Added
- Add
load_wind_turbine_data
that reads the files from the disc and wraps the data into axarray.Dataset
, by @fschuch.
Fixed
Black
version was not working properly atsetup.py
, by @fschuch.
v1.0.0#
Released on 2021-09-14 - GitHub - PyPI
Xcompact3d-toolbox has evolved considerably in the last year. The pre-release version has been employed in CFD research projects, and the feedback from the users helped to improve its interfaces and functionalities. The integration between this Python package and the numerical solver XCompact3d was experimental, and many of the functionalities were only available in a forked repository for a test of concept (fschuch/Xcompact3d). These features are now part of the main repository XCompact3d (see PR #51). With this, Xcompact3d-toolbox is ready for its first stable release.
Added
- Support for stretched mesh at the xdmf writer and automatized tests for it, by @fschuch.
- A class to handle the binary filenames and their tests. Now all methods support different filenames, like the classic
ux000
, or the newux-0000.bin
, besides some combinations between them. By @fschuch. - Classes to handle the coordinates and their tests, so they can be moved out of the parameters class, by @fschuch.
- New class for the 3D coordinate system, with useful methods and its testes, by @fschuch.
- Add
class Dataset
to read the binary files from XCompact3d on-demand, it is possible to loop through the snapshots, select any of them or read the entire time-series for a given variable. It returns them in a properxarray.Dataset
, by @fschuch. - Sets of dependencies for extra functionalities, like docs, tests, and visu, by @fschuch.
- More parameters are now covered in the Parameters class, by @fschuch.
- Add type hints to many functions and class methods, for a better development experience using modern IDEs, by @fschuch.
Modified
- Writing methods for the binary files were moved from the xarray accessors to the Dataset class, by @fschuch.
- The new sandbox flow configuration is now set with
itype = 12
, following its addition the XCompact3d's main repository (see #51), by @fschuch. - The documentation was improved, by @fschuch.
Fixed
v0.1.11#
Released on 2021-02-12 - GitHub - PyPI
Fixed
v0.1.10#
Released on 2021-02-11 - GitHub - PyPI
Added
- Add support for the previous parameters format
.prm
(#7), by @fschuch. - Class
ParametersGui
, a subclass fromParameters
, but with widgets, by @fschuch. - Argument
loadfile
added to classParameters
, so it is possible to initialize and load form the disc with just one line of codeprm = x3d.Parameters(loadfile='example.i3d')
, by @fschuch.
Changed
- Changed from method
__call__
to__repr__
atparameters.py
as the procedure to show the parameters on screen, by @fschuch. - Functions to read binary fields were moved from
io.py
to methods atparameters.py
, so the syntax is simplified fromx3d.read_field('filename', prm)
to justprm.read_field('filename')
. by @fschuch.
Fixed
v0.1.9#
Released on 2020-10-09 - GitHub - PyPI
Added
get_boundary_condition
at classParameters
. It returns the appropriate boundary parameters that are
expected by the derivative functions. by @fschuch.- First and second derivatives for stretched mesh in y, by @fschuch.
Changed
- Syntax for
<da,ds>.x3d.simps
and<da,ds>.x3d.pencil_decomp
. It is now possible to use them over multiple dimensions with just one call (for instanceds.x3d.simps('x', 'y', 'z')
), by @fschuch.
Fixed
- First derivative was incorrect when
ncl1=1
andncln=2
. by @fschuch.
v0.1.8#
Released on 2020-09-29 - GitHub - PyPI
Fixed
v0.1.7#
Released on 2020-08-28 - GitHub - PyPI
Fixed
v0.1.6#
Released on 2020-08-28 - GitHub - PyPI
Fixed
- python-publish action does not trigger if the release was first drafted, then published, by @fschuch.
v0.1.5#
Released on 2020-08-28 - GitHub - PyPI
Added
- Support for stretched mesh in y, by @fschuch.
Fixed
v0.1.4#
Released on 2020-08-20 - GitHub - PyPI
Fixed
- Fixed bug producing potential
KeyError
on the cylinder geometry
Changed
param = {'mytype': np.float64}
changed to justmytype = float64
(param.py), by @fschuch.- Code style changed to black, by @fschuch.
Documentation
- Created the
docs
folder powered by sphinx, by @fschuch. - Examples for Sandbox flow configuration (by @fschuch):
- Tutorials (by @fschuch):
- Added a page for autogenerated API references, by @fschuch.
- Extended the docstring for most classes, methods, and functions, by @fschuch.
- Integration with Read the Docs, by @fschuch.
Internals
- python-versioneer removed the tedious and error-prone "update the embedded version string" step from our release process, by @fschuch.
v0.1.3#
Released on 2020-08-17 - GitHub - PyPI
The kickoff for the project, the first release to PyPi.
Added
- CHANGELOG.md by @fschuch.
class Parameters
built on top of traitlets, for type checking, dynamically calculated default values, and "on change" callbacks, by @fschuch.- ipywidgets for all relevant parameters and two-ways linking with traitlets variables, by @fschuch.
- Accessors for xarray's
Dataset
andDataArray
, making possible high-order derivatives (with appropriated boundary conditions), I/O, parallel execution with pencil decomposition (powered by dask) and integration withscipy.integrate.simps
andscipy.integrate.cumtrapz
. By @fschuch. - Ported genepsi.f90 to genepsi.py (powered by Numba), generating all the files necessary for our customized Immersed Boundary Method, by @fschuch.
- Support to Sandbox Flow Configuration (see fschuch/Xcompact3d), by @fschuch.
- Ahmed body as benchmark geometry, mirror and plotting tools, by @momba98.