Skip to content

Releases: JuliaRCM/ReducedBasisMethods.jl

v0.2.3

Choose a tag to compare

@github-actions github-actions released this 24 Oct 16:10

ReducedBasisMethods v0.2.3

Diff since v0.2.2

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 HDF5 lower bound rises from 0.16.0 to 0.16.15. HDF5 is "0.16.15, 0.17" now.
    The Downgrade job resolves every lower bound at once and reported HDF5 as unreachable at
    0.16.0; it failed the same way on main before the raise, so the old bound was already false.

Merged pull requests:

v0.2.2

Choose a tag to compare

@github-actions github-actions released this 17 Oct 21:07

ReducedBasisMethods v0.2.2

Diff since v0.2.1

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

  • spectrumplot draws a reduced basis's spectrum, and Makie joins [weakdeps], at "0.24".
    spectrumplot(σ::AbstractVector{<:Real}; title = "", ylabel = "", size = (620, 380)) draws σ
    against its index on a log10 axis and returns a Makie.FigureAxisPlot. It lives in the extension
    ReducedBasisMethodsMakieExt, which loads with Makie, so without Makie the call is a
    MethodError; save needs a backend such as CairoMakie.

Changed

  • The docs environment drops Weave and Plots, and get_DEIM_interpolation_matrix carries a
    jldoctest.
    No page used either package. This is the only jldoctest in the package;
    test/quality/doctests.jl runs it in the doctests group.

Merged pull requests:

  • P33: the CairoMakie extension, Aqua, docs and CHANGELOG of ReducedBasisMethods (#56) (@michakraus)

v0.2.1

Choose a tag to compare

@github-actions github-actions released this 14 Oct 18:06

ReducedBasisMethods v0.2.1

Diff since v0.2.0

New Features

  • reduced_ode and reduced_pode emit the reduced equation forms as GeometricEquations
    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, CotangentLiftEVD and ComplexSVD, where A = Matrix(b), and the Galerkin
    form ż = Uᵀ J_N ∇H(Uz) for the POD bases PODSVD and PODEVD, where U = Φ. A POD basis
    forms no canonical symplectic matrix in its reduced coordinates, so its reduced dimension k
    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 last k rows of the same form; a POD
    basis has no q and p halves to split, and no method. A SymplecticDEIM emits ż = J_2k ∇H̃(z)
    through hamiltonian_gradient! by the same two functions. ∇H!(g, t, x, params) writes
    ∇H(x) into g, in the argument order of a vector field, and parameters reaches 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 the ForwardDiff.Dual
    states Newton's JacobianAutodiff passes after the first call for that element type, which fills
    a per-type pair of work buffers; whatever ∇H! allocates is the caller's.

  • GeometricEquations joins [deps], at "0.21". The two emitters above build
    ODEProblem and PODEProblem, and import ODEProblem, PODEProblem and NullParameters by
    name rather than through the package's whole export list. GeometricIntegrators and
    GeometricIntegratorsBase do not join [deps]: an integrator is the caller's, and the test
    dependencies supply one.

  • get_DEIM_indices(Ψ) is exported. It returns the k rows that the greedy DEIM algorithm
    selects on the basis Ψ, and is the index form of get_DEIM_interpolation_matrix:
    Π' * A == A[p, :] for p = get_DEIM_indices(Ψ), so a caller samples the rows without forming
    the N × k matrix Π. 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

Choose a tag to compare

@github-actions github-actions released this 12 Oct 15:40

ReducedBasisMethods v0.2.0

Diff since v0.1.0

Breaking Changes

  • ReducedTensor is built on GridTensor, not on PoissonTensor. A caller passes any rank-3
    MultiIndexArrays.GridTensor; a PoissonTensor, a dense array, or a GridTensor of another rank
    is a MethodError. GeometricBrackets leaves [deps] and [compat], and MultiIndexArrays
    takes the bound 0.1.2.
  • The grid-based and particle-based code left this package. src/gridbased/ and
    src/particles/ are gone, with every name they exported. ReducedTensor stays, now in
    src/reduced_tensor.jl and re-parameterised on GridTensor.
  • Vlasov and training code left this package. TrainingSet and src/trainingset.jl are
    removed, together with the exports of read_sampling_parameters, IntegratorCache and
    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

  • ReducedBasis is built from a snapshot by one constructor, with five algorithms: PODSVD,
    PODEVD, CotangentLiftSVD, CotangentLiftEVD and ComplexSVD.
  • Matrix assembles the basis, and lift and two error measures are exported.
  • scripts/reference_spectra.jl regenerates the paper's reference spectra.
  • SymplecticDEIM and hamiltonian_gradient!. Structure-preserving DEIM for a Hamiltonian.
  • ReducedTensor wraps any rank-3 GridTensor, 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.
  • ReducedTensor now follows the AbstractArray convention for out-of-bounds dimensions.

Changed

  • get_DEIM_interpolation_matrix rejects 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.
  • LazyArrays is no longer a dependency.
  • ReducedComplexityModeling is required at 0.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

Choose a tag to compare

@github-actions github-actions released this 04 Nov 16:31

ReducedBasisMethods v0.1.0

Diff since v0.0.1

Merged pull requests:

v0.0.1

Choose a tag to compare

@github-actions github-actions released this 14 Jul 13:43

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)