Repository navigation
Releases: JuliaRCM/ReducedBasisMethods.jl
Release list
v0.2.3
ReducedBasisMethods v0.2.3
Changed
-
Julia 1.12 is the floor (
[compat] julia = "1.12", from 1.11). A patch release, because no
API changes: a caller on Julia 1.11 can no longer install this version.
Nothing in the package's code changes, and no workaround for the older floor existed to delete. -
The
HDF5lower bound rises from0.16.0to0.16.15.HDF5is"0.16.15, 0.17"now.
TheDowngradejob resolves every lower bound at once and reportedHDF5as unreachable at
0.16.0; it failed the same way onmainbefore the raise, so the old bound was already false.
Merged pull requests:
- Raise the Julia floor to 1.12 (#59) (@michakraus)
v0.2.2
ReducedBasisMethods v0.2.2
A new drawing function for a reduced basis's spectrum, in a Makie extension. Nothing existing
changes shape, so this is a patch release; it adds a weak dependency, so a user who already loads
Makie gains one method and everyone else is unaffected.
New Features
spectrumplotdraws a reduced basis's spectrum, andMakiejoins[weakdeps], at"0.24".
spectrumplot(σ::AbstractVector{<:Real}; title = "", ylabel = "", size = (620, 380))drawsσ
against its index on a log10 axis and returns aMakie.FigureAxisPlot. It lives in the extension
ReducedBasisMethodsMakieExt, which loads withMakie, so withoutMakiethe call is a
MethodError;saveneeds a backend such asCairoMakie.
Changed
- The docs environment drops
WeaveandPlots, andget_DEIM_interpolation_matrixcarries a
jldoctest. No page used either package. This is the onlyjldoctestin the package;
test/quality/doctests.jlruns it in thedoctestsgroup.
Merged pull requests:
- P33: the CairoMakie extension, Aqua, docs and CHANGELOG of ReducedBasisMethods (#56) (@michakraus)
v0.2.1
ReducedBasisMethods v0.2.1
New Features
-
reduced_odeandreduced_podeemit the reduced equation forms asGeometricEquations
problems.reduced_ode(b, ∇H!, timespan, timestep, z₀; parameters)is the ordinary problem of
the reduced equation the basis carries:ż = J_k Aᵀ ∇H(Az)for the symplectic bases
CotangentLiftSVD,CotangentLiftEVDandComplexSVD, whereA = Matrix(b), and the Galerkin
formż = Uᵀ J_N ∇H(Uz)for the POD basesPODSVDandPODEVD, whereU = Φ. A POD basis
forms no canonical symplectic matrix in its reduced coordinates, so its reduced dimensionk
may be odd.
reduced_pode(b, ∇H!, timespan, timestep, z₀; parameters)is the partitioned problem of the
symplectic bases, whose two fields are the first and the lastkrows of the same form; a POD
basis has noqandphalves to split, and no method. ASymplecticDEIMemitsż = J_2k ∇H̃(z)
throughhamiltonian_gradient!by the same two functions.∇H!(g, t, x, params)writes
∇H(x)intog, in the argument order of a vector field, andparametersreaches it unchanged.
The state is in reduced coordinates —project(b, x₀)gives it — and its element type must be
the basis's. Integration stays the caller's: these functions emit a problem and no integrator is
a dependency. A vector field call allocates 0 B for basis states, and for theForwardDiff.Dual
states Newton'sJacobianAutodiffpasses after the first call for that element type, which fills
a per-type pair of work buffers; whatever∇H!allocates is the caller's. -
GeometricEquationsjoins[deps], at"0.21". The two emitters above build
ODEProblemandPODEProblem, and importODEProblem,PODEProblemandNullParametersby
name rather than through the package's whole export list.GeometricIntegratorsand
GeometricIntegratorsBasedo not join[deps]: an integrator is the caller's, and the test
dependencies supply one. -
get_DEIM_indices(Ψ)is exported. It returns thekrows that the greedy DEIM algorithm
selects on the basisΨ, and is the index form ofget_DEIM_interpolation_matrix:
Π' * A == A[p, :]forp = get_DEIM_indices(Ψ), so a caller samples the rows without forming
theN × kmatrixΠ. It was internal under another name; its selection and its
ArgumentErrors are unchanged.
Merged pull requests:
- P32: the reduced equation forms, emitted as GeometricEquations problems (#55) (@michakraus)
- Export get_DEIM_indices, the index form of the DEIM interpolation matrix (#57) (@michakraus)
v0.2.0
ReducedBasisMethods v0.2.0
Breaking Changes
ReducedTensoris built onGridTensor, not onPoissonTensor. A caller passes any rank-3
MultiIndexArrays.GridTensor; aPoissonTensor, a dense array, or aGridTensorof another rank
is aMethodError.GeometricBracketsleaves[deps]and[compat], andMultiIndexArrays
takes the bound0.1.2.- The grid-based and particle-based code left this package.
src/gridbased/and
src/particles/are gone, with every name they exported.ReducedTensorstays, now in
src/reduced_tensor.jland re-parameterised onGridTensor. - Vlasov and training code left this package.
TrainingSetandsrc/trainingset.jlare
removed, together with the exports ofread_sampling_parameters,IntegratorCacheand
integrate_vp, which had no definitions. - Minimum Julia is now 1.11, raised from the declared 1.7.
- The 0.1.0 reduced-basis algorithms and their fields are removed. A basis is no longer split
into a particle part and a field part:ΛreplacesΛₚandΛₑas the full spectrum. - The 0.1.0 basis functions are deleted, with their exports.
- The HDF5 layout changed, so a file written by 0.1.0 no longer loads.
New Features
ReducedBasisis built from a snapshot by one constructor, with five algorithms:PODSVD,
PODEVD,CotangentLiftSVD,CotangentLiftEVDandComplexSVD.Matrixassembles the basis, andliftand two error measures are exported.scripts/reference_spectra.jlregenerates the paper's reference spectra.SymplecticDEIMandhamiltonian_gradient!. Structure-preserving DEIM for a Hamiltonian.ReducedTensorwraps any rank-3GridTensor, of any width its grid holds.reference/is under version control.
Bug Fixes
- The DEIM selection follows the magnitude of the residual, and its result is no longer silently
Float64. ReducedTensornow follows theAbstractArrayconvention for out-of-bounds dimensions.
Changed
get_DEIM_interpolation_matrixrejects a basis it cannot interpolate.[deps]is now generic infrastructure only.- The test suite checks the package structure, and the test dependencies are in
test/Project.toml. - The SVD routes skip the right singular vectors, and the EVD routes are rewritten.
LazyArraysis no longer a dependency.ReducedComplexityModelingis required at0.1.1.
Merged pull requests:
- Normalise the bump-on-tail script to NFC (#35) (@michakraus)
- Name the character the NFC entry actually normalised (#36) (@michakraus)
- Combine the open compat updates (#37) (@michakraus)
- Split the grid-based and particle-based code out of the package (#39) (@michakraus)
- Reduce to a generic-only module skeleton (P28, T7.2) (#41) (@michakraus)
- Migrate the test suite to the SafeTestsets convention (part M8) (#43) (@michakraus)
- Update Plots requirement to 1.41.7 in /docs (#44) (@dependabot[bot])
- Update Weave requirement to 0.10.12 in /docs (#45) (@dependabot[bot])
- Update Documenter requirement to 1.19.0 in /docs (#46) (@dependabot[bot])
- Update Aqua requirement to 0.8.18 in /test (#48) (@dependabot[bot])
- Remove the shared compat entries from test/Project.toml (#49) (@michakraus)
- CI: coverage from Julia 1 on ubuntu, save the cache only from a job that succeeds (#50) (@michakraus)
- Build a reduced basis from its snapshot: POD, both PSD routes, the complex SVD, basis size, project and lift (#52) (@michakraus)
- DEIM: select by the magnitude of the residual, and add symplectic DEIM (#53) (@michakraus)
- ReducedTensor on GridTensor's locality interface, GeometricBrackets out of [deps] (#54) (@michakraus)
v0.1.0
ReducedBasisMethods v0.1.0
Merged pull requests:
v0.0.1
ReducedBasisMethods v0.0.1
Merged pull requests:
- CompatHelper: add new compat entry for "GeometricIntegrators" at version "0.8" (#1) (@github-actions[bot])
- CompatHelper: add new compat entry for TypedTables at version 1, (keep existing compat) (#2) (@github-actions[bot])
- CompatHelper: add new compat entry for Parameters at version 0.12, (keep existing compat) (#6) (@github-actions[bot])
- CompatHelper: add new compat entry for LazyArrays at version 0.22, (keep existing compat) (#7) (@github-actions[bot])
- CompatHelper: add new compat entry for RecursiveArrayTools at version 2, (keep existing compat) (#9) (@github-actions[bot])
- CompatHelper: add new compat entry for ParticleMethods at version 0.0.1, (keep existing compat) (#11) (@github-actions[bot])
- Add MultiIndexArray implementation of the Vlasov-Poisson script. (#12) (@michakraus)