Skip to content

Commit 67fc779

Browse files
authored
Add a changelog (#158)
* 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
1 parent 8de05a1 commit 67fc779

File tree

3 files changed

+107
-0
lines changed

3 files changed

+107
-0
lines changed

CHANGELOG.md

Lines changed: 105 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,105 @@
1+
# Changelog
2+
3+
All notable changes to this project will be documented in this file.
4+
5+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7+
8+
9+
## [Unreleased]
10+
11+
### Changed
12+
13+
- Implemented a more efficient internal parametric transformation for `Meshes.Tetrahedron`, resulting in about an 80% integral performance improvement.
14+
15+
16+
## [0.16.0] - 2024-12-14
17+
18+
### Added
19+
20+
- 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.
21+
- Implemented `DifferentiationMethod` types:
22+
- `FiniteDifference` for finite-difference approximation.
23+
- `AutoEnzyme` for using [Enzyme.jl](https://github.com/EnzymeAD/Enzyme.jl) automatic differentiation (AD) via a package extension.
24+
- Added `diff_method` as an optional third argument to the `jacobian` and `differential` API.
25+
- Adds standardized support for integrating over `Tetrahedron` volumes.
26+
- Generalizes integrand functions to support any `f::Any` with a method defined for `f(::Point)`.
27+
- 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`.
28+
- Significant performance improvements:
29+
- Achieved an 80x improvement when integrating over `BezierCurve`.
30+
- Achieved an up-to-4x improvement when integrating using `HAdaptiveCubature`.
31+
32+
### Deprecated
33+
34+
- 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`.
35+
36+
### Fixed
37+
38+
- Refactored the unit test system.
39+
- 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.
40+
- Reorganized `@testsnippet`s to exist in same source file as relevant tests.
41+
- Removed `:extended` tag from `Tetrahedron` now that performance is significantly improved.
42+
43+
44+
## [0.15.2] - 2024-10-25
45+
46+
MeshIntegrals.jl is now owned by the JuliaGeometry organization!
47+
48+
### Added
49+
50+
- Added a benchmarking suite using [AirspeedVelocity.jl](https://github.com/MilesCranmer/AirspeedVelocity.jl).
51+
- Implemented more unit tests with analytical solutions.
52+
53+
### Changed
54+
55+
- Tagged unit tests for `Meshes.Box` (4D) and `Tetrahedron` as `:extended`, removing them from automatic CI testing due to lengthy compute times.
56+
57+
58+
## [0.15.1] - 2024-10-11
59+
60+
### Added
61+
62+
- Adds official support and unit testing for integrating new `Meshes.ParametrizedCurve` geometries.
63+
64+
65+
## [0.15.0] - 2024-10-10
66+
67+
### Added
68+
69+
- Adds support for integrating geometries with any number of parametric dimensions by generalizing `differential` to n-dimensions via geometric algebra.
70+
- Adds official support and unit testing for integrating `Meshes.Ellipsoid` and `Meshes.Hexahedron` geometries.
71+
72+
### Changed
73+
74+
- Refactored the unit test system.
75+
- 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.
76+
- Used [TestItems.jl](https://github.com/julia-vscode/TestItems.jl) to define independent `@testitem` packages, many with analytically-derived solutions.
77+
78+
79+
## [0.14.1] - 2024-10-04
80+
81+
### Added
82+
83+
- Adds official support and unit testing for integrating `Meshes.Quadrangle` geometries.
84+
85+
### Changed
86+
87+
- Continued work transitioning away from previous `@test` generation system.
88+
89+
### Fixed
90+
91+
- Fixed a bug in `differential` finite-difference approximation that may have reduced accuracy of some integral calculations.
92+
- Made improvements to type stability with floating point type keyword argument `FP`.
93+
94+
95+
## [0.14.0] - 2024-09-28
96+
97+
### Changed
98+
99+
- Rename `IntegrationAlgorithm` to `IntegrationRule` and consolidate terminology around integration rules (versus "algorithms", "settings", etc).
100+
- Convert floating point precision option `FP` from an optional argument to a keyword argument.
101+
- Continued work transitioning away from previous `@test` generation system.
102+
103+
### Removed
104+
105+
- Remove `derivative` and `unitdirection` functions. All `derivative` functionality was merged into `jacobian`.

docs/make.jl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ makedocs(
1515
"Example Usage" => "usage.md"
1616
],
1717
"Developer Notes" => [
18+
"Changelog" => "CHANGELOG.md",
1819
"How it Works" => "how_it_works.md",
1920
"Specializations" => "specializations.md"
2021
],

docs/src/CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../../CHANGELOG.md

0 commit comments

Comments
 (0)