Skip to content

Commit

Permalink
Add a changelog (#158)
Browse files Browse the repository at this point in the history
* Add a changelog

* Add notes for v0.15 releases

* Add notes for v0.14 releases

* Add links to packages

* Add symlink to CHANGELOG in docs site

* Add notes on recent merged PR
  • Loading branch information
mikeingold authored Dec 27, 2024
1 parent 8de05a1 commit 67fc779
Show file tree
Hide file tree
Showing 3 changed files with 107 additions and 0 deletions.
105 changes: 105 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,105 @@
# Changelog

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.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).


## [Unreleased]

### Changed

- Implemented a more efficient internal parametric transformation for `Meshes.Tetrahedron`, resulting in about an 80% integral performance improvement.


## [0.16.0] - 2024-12-14

### Added

- Added a `diff_method` keyword argument to the `integral` API, allowing the user to specify which differentiation method should be used when calculating differential element magnitudes throughout the integration domain.
- Implemented `DifferentiationMethod` types:
- `FiniteDifference` for finite-difference approximation.
- `AutoEnzyme` for using [Enzyme.jl](https://github.com/EnzymeAD/Enzyme.jl) automatic differentiation (AD) via a package extension.
- Added `diff_method` as an optional third argument to the `jacobian` and `differential` API.
- Adds standardized support for integrating over `Tetrahedron` volumes.
- Generalizes integrand functions to support any `f::Any` with a method defined for `f(::Point)`.
- Refactored specialization methods by implementing an internal `_ParametricGeometry <: Meshes.Geometry` to define geometries with custom parametric functions, standardizing support for `BezierCurve`, `Line`, `Plane`, `Ray`, `Tetrahedron`, and `Triangle`.
- Significant performance improvements:
- Achieved an 80x improvement when integrating over `BezierCurve`.
- Achieved an up-to-4x improvement when integrating using `HAdaptiveCubature`.

### Deprecated

- Deprecated manual specification of `GaussKronrod` rules for surfaces, i.e. geometries where `Meshes.paramdim(geometry) == 2`. A warning is now generated recommending users switch to `HAdaptiveCubature`.

### Fixed

- Refactored the unit test system.
- Standardized `combinations.jl` tests by constructing a `TestableGeometry` package and passing it to a `@test` generation function to provide more thorough and standardized test coverage.
- Reorganized `@testsnippet`s to exist in same source file as relevant tests.
- Removed `:extended` tag from `Tetrahedron` now that performance is significantly improved.


## [0.15.2] - 2024-10-25

MeshIntegrals.jl is now owned by the JuliaGeometry organization!

### Added

- Added a benchmarking suite using [AirspeedVelocity.jl](https://github.com/MilesCranmer/AirspeedVelocity.jl).
- Implemented more unit tests with analytical solutions.

### Changed

- Tagged unit tests for `Meshes.Box` (4D) and `Tetrahedron` as `:extended`, removing them from automatic CI testing due to lengthy compute times.


## [0.15.1] - 2024-10-11

### Added

- Adds official support and unit testing for integrating new `Meshes.ParametrizedCurve` geometries.


## [0.15.0] - 2024-10-10

### Added

- Adds support for integrating geometries with any number of parametric dimensions by generalizing `differential` to n-dimensions via geometric algebra.
- Adds official support and unit testing for integrating `Meshes.Ellipsoid` and `Meshes.Hexahedron` geometries.

### Changed

- Refactored the unit test system.
- Completed transition away from previous `@test` generation system which only tested unit integrands (i.e. `f(point) = 1.0`) using `Meshes.measure` as a benchmark.
- Used [TestItems.jl](https://github.com/julia-vscode/TestItems.jl) to define independent `@testitem` packages, many with analytically-derived solutions.


## [0.14.1] - 2024-10-04

### Added

- Adds official support and unit testing for integrating `Meshes.Quadrangle` geometries.

### Changed

- Continued work transitioning away from previous `@test` generation system.

### Fixed

- Fixed a bug in `differential` finite-difference approximation that may have reduced accuracy of some integral calculations.
- Made improvements to type stability with floating point type keyword argument `FP`.


## [0.14.0] - 2024-09-28

### Changed

- Rename `IntegrationAlgorithm` to `IntegrationRule` and consolidate terminology around integration rules (versus "algorithms", "settings", etc).
- Convert floating point precision option `FP` from an optional argument to a keyword argument.
- Continued work transitioning away from previous `@test` generation system.

### Removed

- Remove `derivative` and `unitdirection` functions. All `derivative` functionality was merged into `jacobian`.
1 change: 1 addition & 0 deletions docs/make.jl
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ makedocs(
"Example Usage" => "usage.md"
],
"Developer Notes" => [
"Changelog" => "CHANGELOG.md",
"How it Works" => "how_it_works.md",
"Specializations" => "specializations.md"
],
Expand Down
1 change: 1 addition & 0 deletions docs/src/CHANGELOG.md

0 comments on commit 67fc779

Please sign in to comment.