| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| ANUGA 3.3.0 source code.tar.gz | 2026-03-30 | 36.6 MB | |
| ANUGA 3.3.0 source code.zip | 2026-03-30 | 37.3 MB | |
| README.md | 2026-03-30 | 3.9 kB | |
| Totals: 3 Items | 73.9 MB | 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.