HYPRE.jl 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.
v1.6.0 - 2024-09-29
Changed
- PartitionedArrays.jl dependency upgraded from release series 0.3.x to release series 0.5.x. (#17, #18)
- CEnum.jl dependency upgraded to release series 0.5.x (release series 0.4.x still allowed). (#17, #18)
- PartitionedArrays.jl support (
PSparseMatrix,PVector) is now provided by a package extension. (#23) - SparseMatricesCSR.jl support (
SparseMatrixCSR) is now provided by a package extension. (#24) - SparseArrays.jl support (
SparseMatrixCSC) is now provided by a package extension. (#25)
v1.5.0 - 2023-05-26
Changed
- PartitionedArrays.jl dependency upgraded from version 0.2.x to version 0.3.x. (#16)
v1.4.0 - 2023-01-20
Added
- New function
HYPRE.GetFinalRelativeResidualNorm(s::HYPRESolver)for getting the final residual norm from a solver. This function dispatches on the solver to the corresponding C API wrapperLibHYPRE.HYPRE_${Solver}GetFinalRelativeResidualNorm. (#14) - New function
HYPRE.GetNumIterations(s::HYPRESolver)for getting the number of iterations from a solver. This function dispatches on the solver to the corresponding C API wrapperLibHYPRE.HYPRE_${Solver}GetNumIterations. (#14)
v1.3.1 - 2023-01-14
Fixed
- Solvers now keep an reference to the added preconditioner to make sure the preconditioner is not finalized before the solver. This fixes crashes (segfaults) that could happen in case no other reference to the preconditioner existed in the program. (#12)
- The proper conversion methods for
ccallare now defined forHYPREMatrix,HYPREVector, andHYPRESolversuch that they can be passed direcly toHYPRE_*functions and letccallguarantee the GC preservation of these objects. Although not observed in practice, this fixes a possible race condition where the matrix/vector/solver could be finalized too early. (#13)
v1.3.0 - 2022-12-30
Added
- Rectangular matrices can now be assembled by the new method
HYPRE.assemble!(::HYPREMatrixAssembler, i::Vector, j::Vector, a::Matrix)whereiare the rows andjthe columns. (#7)
Fixed
- All created HYPRE objects (
HYPREMatrix,HYPREVector, andHYPRESolvers) are now kept track of internally and explicitlyfinalized (if they haven't been GC'd) before finalizing HYPRE. This fixes a "race condition" where MPI and/or HYPRE would finalize before these Julia objects are garbage collected and finalized. (#8)
Deprecated
- The method
HYPRE.assemble!(A::HYPREMatrixAssembler, ij::Vector, a::Matrix)have been deprecated in favor ofHYPRE.assemble!(A::HYPREMatrixAssembler, i::Vector, j::Vector, a::Matrix), i.e. it is now required to explicitly pass rows and column indices individually. The motivation behind this is to support assembling of rectangular matrices. Note thatHYPRE.assemble!(A::HYPREAssembler, ij::Vector, a::Matrix, b::Vector)is still supported, whereijare used as row and column indices fora, as well as row indices forb. (#6)
v1.2.0 - 2022-10-12
Added
- Added assembler interface to assemble
HYPREMatrixand/orHYPREVectordirectly without an intermediate sparse structure in Julia. (#5)
v1.1.0 - 2022-10-05
Added
- Added support for MPI.jl version 0.20.x (in addition to the existing version 0.19.x support). (#2)
v1.0.0 - 2022-07-28
Initial release of HYPRE.jl.