Releases: GeoscienceAustralia/anuga_core
Release list
v3.3.2
ANUGA 3.3.1
ANUGA 3.3.1 Release Notes
New Features
Parallel mesh distribution improvements
Added distribute_collaborative(): a new MPI-collaborative domain distribution function that uses shared memory
windows to significantly reduce peak memory usage during decomposition. Exported in the public API as
anuga.distribute_collaborative.
New BasicMesh class and distribute_mesh() workflow enabling a "mesh-first" parallel pattern — build the mesh once
then distribute, without writing intermediate files.
New rectangular_basic_mesh and rectangular_cross_basic_mesh factory functions and create_basic_mesh_from_regions().
Added distribute_basic_mesh with full tests and examples.
Performance: replaced pickle-based isend with zero-copy buffer-protocol Isend; vectorised submesh_quantities ghost
triangle extraction; eliminated O(P×|boundary|) quadratic loop in submesh_full(); Cythonised ghost_layer() and
ghost_bnd_layer().
Added MPI shared-memory optimisation with graceful fallback when Win.Allocate_shared is unavailable.
TOML/Excel scenario runner
New anuga.scenario package and anuga_run_toml script for running simulations from TOML or Excel configuration files.
Support for omp_num_threads, multiprocessor_mode, outputstep in TOML config.
Replaced xlrd with openpyxl for Excel import.
Tees timestepping statistics to both terminal and log file.
Coordinate reference system (CRS/EPSG) support
Geo_reference class now carries an EPSG code and is_located() flag.
Support for non-UTM national grids via pyproj.
sww_merge now correctly preserves hemisphere, EPSG, and timezone in merged output.
SWW → VTU/PVD converter
New anuga/file_conversion/sww2vtu.py: converts SWW files to ParaView-compatible VTU+PVD format (no VTK dependency,
binary base64 encoding, derived depth/speed quantities, z-scale and absolute-coordinates options).
Mesh pipeline improvements
Domain() now accepts Pmesh objects directly (no intermediate mesh file required).
create_domain_from_regions() no longer needs a mesh_filename argument.
create_mesh_from_regions renamed to create_pmesh_from_regions (old name deprecated).
Documentation
NumPy-style docstrings added throughout.
New Sphinx pages: CRS/EPSG support, parallel MPI usage, visualisation guide, boundary conditions, domain setup
script.
Added VERSIONING.md describing the git-tag-based version scheme.
Dependency changes
Removed: osgeo / GDAL — replaced throughout by rasterio, fiona, and shapely.
All conda environment files updated accordingly.
pyproj, affine, rasterio, fiona, shapely are now the standard optional [data] dependencies.
Bug fixes and code quality
Fixed Set_stage_operator physics bug and related operator issues.
Fixed bare except: clauses in ~500 locations (production code, tests, and import guards).
Fixed TypeError when quantity_names=None in timefile2netcdf.
Fixed meshpy RuntimeError when point/element attributes are empty.
Fixed GUI mesh generation (anuga_pmesh_gui): snake_case method names, correct _generateMesh_impl call.
Fixed mesh_filename kwarg being clobbered in Generic_Domain.init.
Added named constants for multiprocessor_mode and low_froude flags.
sww_merge updated to preserve metadata correctly.
--run-fast pytest option to skip slow (MPI/parallel) tests for quick feedback.
CI: replaced osgeo in all test import guards; fixed sys.path ordering so installed package takes precedence over
source tree.
CI / packaging
GitHub Actions updated to use conda-forge compilers with OpenMP on all platforms.
Windows CI uses standard compilers package (covers OpenMP).
Python 3.14 added to CI matrix and classifiers.
actions/checkout bumped to v6, fetch-depth: 0 for correct git-tag versioning.
ANUGA 3.3.0
ANUGA 3.3.0 Release Notes
New Features
Parallel mesh distribution improvements
- Added distribute_collaborative(): a new MPI-collaborative domain distribution function that uses shared memory
windows to significantly reduce peak memory usage during decomposition. Exported in the public API as
anuga.distribute_collaborative. - New BasicMesh class and distribute_mesh() workflow enabling a "mesh-first" parallel pattern — build the mesh once
then distribute, without writing intermediate files. - New rectangular_basic_mesh and rectangular_cross_basic_mesh factory functions and create_basic_mesh_from_regions().
- Added distribute_basic_mesh with full tests and examples.
- Performance: replaced pickle-based isend with zero-copy buffer-protocol Isend; vectorised submesh_quantities ghost
triangle extraction; eliminated O(P×|boundary|) quadratic loop in submesh_full(); Cythonised ghost_layer() and
ghost_bnd_layer(). - Added MPI shared-memory optimisation with graceful fallback when Win.Allocate_shared is unavailable.
TOML/Excel scenario runner
- New anuga.scenario package and anuga_run_toml script for running simulations from TOML or Excel configuration files.
- Support for omp_num_threads, multiprocessor_mode, outputstep in TOML config.
- Replaced xlrd with openpyxl for Excel import.
- Tees timestepping statistics to both terminal and log file.
Coordinate reference system (CRS/EPSG) support
- Geo_reference class now carries an EPSG code and is_located() flag.
- Support for non-UTM national grids via pyproj.
- sww_merge now correctly preserves hemisphere, EPSG, and timezone in merged output.
SWW → VTU/PVD converter
- New anuga/file_conversion/sww2vtu.py: converts SWW files to ParaView-compatible VTU+PVD format (no VTK dependency,
binary base64 encoding, derived depth/speed quantities, z-scale and absolute-coordinates options).
Mesh pipeline improvements
- Domain() now accepts Pmesh objects directly (no intermediate mesh file required).
- create_domain_from_regions() no longer needs a mesh_filename argument.
- create_mesh_from_regions renamed to create_pmesh_from_regions (old name deprecated).
Documentation
- NumPy-style docstrings added throughout.
- New Sphinx pages: CRS/EPSG support, parallel MPI usage, visualisation guide, boundary conditions, domain setup
script. - Added VERSIONING.md describing the git-tag-based version scheme.
Dependency changes
- Removed: osgeo / GDAL — replaced throughout by rasterio, fiona, and shapely.
- All conda environment files updated accordingly.
- pyproj, affine, rasterio, fiona, shapely are now the standard optional [data] dependencies.
Bug fixes and code quality
- Fixed Set_stage_operator physics bug and related operator issues.
- Fixed bare except: clauses in ~500 locations (production code, tests, and import guards).
- Fixed TypeError when quantity_names=None in timefile2netcdf.
- Fixed meshpy RuntimeError when point/element attributes are empty.
- Fixed GUI mesh generation (anuga_pmesh_gui): snake_case method names, correct _generateMesh_impl call.
- Fixed mesh_filename kwarg being clobbered in Generic_Domain.init.
- Added named constants for multiprocessor_mode and low_froude flags.
- sww_merge updated to preserve metadata correctly.
- --run-fast pytest option to skip slow (MPI/parallel) tests for quick feedback.
- CI: replaced osgeo in all test import guards; fixed sys.path ordering so installed package takes precedence over
source tree.
CI / packaging
- GitHub Actions updated to use conda-forge compilers with OpenMP on all platforms.
- Windows CI uses standard compilers package (covers OpenMP).
- Python 3.14 added to CI matrix and classifiers.
- actions/checkout bumped to v6, fetch-depth: 0 for correct git-tag versioning.
Version 3.2.0
Release which uses openmp (in addition to MPI) to obtain speedup on multi core processors.
Also new additions to the Rate_operator which now takes an xarray as a rate.
What's Changed
- Main relative time by @stoiver in anuga-community#29
- Main rate operator numpy input by @stoiver in anuga-community#30
- Removed the old_div function calls by @stoiver in anuga-community#31
- Develop hackathon by @rutvikgulhane in anuga-community#43
- Added protect against infinities kernal by @rutvikgulhane in anuga-community#49
- replacing deprecated unittest functionality for future python version by @JorgeG94 in anuga-community#59
- anuga_int and anuga_uint datatype for simpler coding: PROPOSAL by @JorgeG94 in anuga-community#66
- install_anuga.rst: Fix typo discovered by codespell by @cclauss in anuga-community#69
- GitHub Actions: Upgrade to actions/setup-python@v5 by @cclauss in anuga-community#68
- Keep GitHub Actions up to date with GitHub's Dependabot by @cclauss in anuga-community#70
- Stop using removed alias
numpy.floatby @cclauss in anuga-community#71 print()is a function in Python 3 by @cclauss in anuga-community#72- Rename dependabot.yml to .github/dependabot.yml by @cclauss in anuga-community#76
- port eval segment to C by @JorgeG94 in anuga-community#78
- synch with main by @JorgeG94 in anuga-community#79
- Update dependabot.yml by @stoiver in anuga-community#83
New Contributors
- @rutvikgulhane made their first contribution in anuga-community#43
- @JorgeG94 made their first contribution in anuga-community#59
- @cclauss made their first contribution in anuga-community#69
Full Changelog: anuga-community/anuga_core@3.1.9...3.2.0
Version 3.1.9
Small update needed to allow the creation of an anuga conda-forge package.
Version 3.1.3
Version 3.1.1
Version 3.1
We have move over to using meshpy as a wrapper for the triangle mesh generator. This wrapper is available on conda-forge and so we should be able to create a conda-forge package for anuga.
Version 3.0
The release of the python 3.X version of ANUGA.
If you need the latest version of the python 2.7 version of ANUGA, download the anuga_py2 branch from the GA anuga_core github repository