Skip to content

Releases: fschuch/xcompact3d_toolbox

v1.3.0

17 Dec 20:20
8495c1c
Compare
Choose a tag to compare

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

  • Bumped all dependencies in the project by @fschuch in #74

Full Changelog: v1.2.1...v1.3.0

v1.2.1

13 Sep 14:18
931bf44
Compare
Choose a tag to compare

Added

  • Added iforces parameter to ibmstuff by @fschuch in #65

Full Changelog: v1.2.0...v1.2.1

v1.2.0

21 Jun 21:00
3fca47c
Compare
Choose a tag to compare

Deprecated

  • The integration methods cumtrapz and simps on xcompact3d_toolbox.array have been deprecated in favor of cumulative_trapezoid and simpson 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 to xcompact3d_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 between p_row, p_col, and ncores on ParametersGui._observe_2decomp method
  • Fixed bug on xcompact3d_toolbox.sandbox.Geometry.from_stl on some platforms that resolve np.longdouble to np.float128, which is not compatible with Numba
  • Fixed compatibility issue on xcompact3d_toolbox.io.Dataset.load_snapshot when testing if field is_scalar on Python 3.8
  • Fixed issue on xcompact3d_toolbox.sandbox.Geometry.square that was resulting in a TypeError because set 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

10 Aug 23:22
576dc7c
Compare
Choose a tag to compare

Fixed

  • Specified the version for netcdf4, to avoid a issues with the latest version (#13), by @fschuch.

Modified

  • Support for parallel computing with dask was extended at genepsi.gene_epsi_3D, by @fschuch.

v1.1.0

07 Oct 19:24
Compare
Choose a tag to compare

Added

  • Add sandbox.Geometry.from_stl. It reads an stl 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 from parameters.Parameter.filename at initialization (i.g., if filename = "./example/input.i3d" then data_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 for file_pattern. Atributes were included for the coordinate time. By @fschuch.
  • io.Dataset.set now accepts keyword arguments to send to io.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

23 Sep 20:20
ce66672
Compare
Choose a tag to compare

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 a xarray.Dataset, by @fschuch.

Fixed

  • Black version was not working properly at setup.py, by @fschuch.

v1.0.0

14 Sep 23:35
01e3641
Compare
Choose a tag to compare

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 new ux-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 proper xarray.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

  • Not installing all dependencies with pip install, by @fschuch.
  • Suppressed warning from tqdm, by @fschuch.
  • The output format from gene_epsi_3D has changed, fixing some compatibility issues with XCompact3d as well (see #51), by @fschuch.

v0.1.11

12 Feb 17:04
Compare
Choose a tag to compare

Fixed

  • Fix #8, a little incompatibility problem with xcompact3d was fixed, by @fschuch.

v0.1.10

11 Feb 19:36
Compare
Choose a tag to compare

Added

  • Add support for the previous parameters format .prm (#7), by @fschuch.
  • Class ParametersGui, a subclass from Parameters, but with widgets, by @fschuch.
  • Argument loadfile added to class Parameters, so it is possible to initialize and load form the disc with just one line of code prm = x3d.Parameters(loadfile='example.i3d'), by @fschuch.

Changed

  • Changed from method __call__ to __repr__ at parameters.py as the procedure to show the parameters on screen, by @fschuch.
  • Functions to read binary fields were moved from io.py to methods at parameters.py, so the syntax is simplified from x3d.read_field('filename', prm) to just prm.read_field('filename'). by @fschuch.

Fixed

  • Scale factor for Ahmed Body at the sandbox, by @fschuch.
  • Fix #2, widgets are now working in a new class ParametersGui, by @fschuch.
  • Fix #5, Bug at Ahmed body when using double-precision, by @fschuch.
  • Fix #6, The files describing the geometry are incompatible when running on Linux, by @fschuch.

v0.1.9

09 Oct 14:44
f17ee4e
Compare
Choose a tag to compare

Added

  • get_boundary_condition at class Parameters. 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 instance ds.x3d.simps('x', 'y', 'z')), by @fschuch.

Fixed

  • First derivative was incorrect when ncl1=1 and ncln=2. by @fschuch.