Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[Unreleased]
[0.17.0] - 2025-08-18
Changed
- Increased minimum dependency version for Meshes.jl to
v0.53and CoordRefSystems.jl to0.16to support some new geometry types and make use of new helper functions.
Removed
- Removed previously-deprecated support for use of
GaussKronrodrules on geometries with more than one parametric dimension.
[0.16.4] - 2025-08-10
Added
- Adds integral methods for
PolyAreaand subtypes ofDomainwith explicit tests forCartesianGrid,PolyArea,RegularGrid,SimpleMesh, andStructuredGrid. - Adds
Base.showmethods for nicer display of integration rule types.
Changed
- Generalizes the alias functions (e.g.
lineintegral) to also acceptDomains. - Updated docstrings to improve clarity and consistency.
[0.16.3] - 2025-06-26
Changed
- Updated compatibility entry for CoordRefSystems.jl to support v0.17 and v0.18 (#175, #180).
[0.16.2] - 2025-03-16
Added
- Add official support for integrating over
Frustum,Pyramid, andWedgegeometries (#168).
Changed
- Improved unit testing with analytical solutions (#162, #166).
- Made significant improvements to documentation (#165).
- Updated compatibility entry for Meshes.jl to support v0.53 (#170, #171).
- Updates several CI dependencies (#163, #167, #172).
[0.16.1] - 2024-12-29
Changed
- Implemented a more efficient internal parametric transformation for
Meshes.Tetrahedron, resulting in about an 80% integral performance improvement.
Fixed
- Fixed a bug where
integralwould default todiff_method=AutoEnzyme()even when the Enzyme extension isn't loaded.
[0.16.0] - 2024-12-14
Added
- Added a
diff_methodkeyword argument to theintegralAPI, allowing the user to specify which differentiation method should be used when calculating differential element magnitudes throughout the integration domain. - Implemented
DifferentiationMethodtypes:FiniteDifferencefor finite-difference approximation.AutoEnzymefor using Enzyme.jl automatic differentiation (AD) via a package extension.
- Added
diff_methodas an optional third argument to thejacobiananddifferentialAPI. - Adds standardized support for integrating over
Tetrahedronvolumes. - Generalizes integrand functions to support any
f::Anywith a method defined forf(::Point). - Refactored specialization methods by implementing an internal
_ParametricGeometry <: Meshes.Geometryto define geometries with custom parametric functions, standardizing support forBezierCurve,Line,Plane,Ray,Tetrahedron, andTriangle. - Significant performance improvements:
- Achieved an 80x improvement when integrating over
BezierCurve. - Achieved an up-to-4x improvement when integrating using
HAdaptiveCubature.
- Achieved an 80x improvement when integrating over
Deprecated
- Deprecated manual specification of
GaussKronrodrules for surfaces, i.e. geometries whereMeshes.paramdim(geometry) == 2. A warning is now generated recommending users switch toHAdaptiveCubature.
Fixed
- Refactored the unit test system.
- Standardized
combinations.jltests by constructing aTestableGeometrypackage and passing it to a@testgeneration function to provide more thorough and standardized test coverage. - Reorganized
@testsnippets to exist in same source file as relevant tests. - Removed
:extendedtag fromTetrahedronnow that performance is significantly improved.
- Standardized
[0.15.2] - 2024-10-25
MeshIntegrals.jl is now owned by the JuliaGeometry organization!
Added
- Added a benchmarking suite using AirspeedVelocity.jl.
- Implemented more unit tests with analytical solutions.
Changed
- Tagged unit tests for
Meshes.Box(4D) andTetrahedronas: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.ParametrizedCurvegeometries.
[0.15.0] - 2024-10-10
Added
- Adds support for integrating geometries with any number of parametric dimensions by generalizing
differentialto n-dimensions via geometric algebra. - Adds official support and unit testing for integrating
Meshes.EllipsoidandMeshes.Hexahedrongeometries.
Changed
- Refactored the unit test system.
- Completed transition away from previous
@testgeneration system which only tested unit integrands (i.e.f(point) = 1.0) usingMeshes.measureas a benchmark. - Used TestItems.jl to define independent
@testitempackages, many with analytically-derived solutions.
- Completed transition away from previous
[0.14.1] - 2024-10-04
Added
- Adds official support and unit testing for integrating
Meshes.Quadranglegeometries.
Changed
- Continued work transitioning away from previous
@testgeneration system.
Fixed
- Fixed a bug in
differentialfinite-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
IntegrationAlgorithmtoIntegrationRuleand consolidate terminology around integration rules (versus "algorithms", "settings", etc). - Convert floating point precision option
FPfrom an optional argument to a keyword argument. - Continued work transitioning away from previous
@testgeneration system.
Removed
- Remove
derivativeandunitdirectionfunctions. Allderivativefunctionality was merged intojacobian.