Skip to content

Releases: oscarvanderheide/BlochSimulators.jl

v0.6.4

21 Aug 09:57
Compare
Choose a tag to compare

BlochSimulators v0.6.4

Diff since v0.6.3

  • Add method to simulate derivatives for a single voxel by providing an <:AbstractTissueParameters.
  • Add tests for the single voxel simulations
  • Fix bug with DEFAULT_STEPSIZES_FINITE_DIFFERENCE in derivative calculations
  • Fix bug with propertynames that had to be changed to fieldnames for extracting properties for which derivatives need to be calculated.

v0.6.3

21 Aug 09:13
Compare
Choose a tag to compare

BlochSimulators v0.6.3

Diff since v0.6.2

  • Add method to simulation magnetization for a single voxel by providing an <:AbstractTissueParameters.

v0.6.2

12 Aug 12:40
Compare
Choose a tag to compare

BlochSimulators v0.6.2

Diff since v0.6.1

Merged pull requests:

  • CompatHelper: bump compat for Adapt to 4, (keep existing compat) (#3) (@github-actions[bot])

v0.6.1

12 Aug 11:48
Compare
Choose a tag to compare

BlochSimulators v0.6.1

Diff since v0.6.0

v0.6.0

07 Aug 19:24
Compare
Choose a tag to compare

BlochSimulators v0.6.0

Diff since v0.5.0

Breaking changes

  • CartesianTrajectory is now named CartesianTrajectory2D. CartesianTrajectory itself is now an abstract type. Why? To make place for a CartesianTrajectory3D in the future.
  • Similarly, RadialTrajectory is now named RadialTrajectory2D and RadialTrajectory itself is now an abstract type.

New features

  • The Omega matrix in the EPG model on GPU is distributed over threads within a warp. This improves performance over the previous implementation in which each thread was assigned to a single voxel and the Omega matrix was stored in shared memory. Inspired by the COMPAS Toolkit. Note that it requires max_state to be a multiple of the warp size (typically 32).

v0.5.0

05 Aug 12:38
Compare
Choose a tag to compare

BlochSimulators v0.5.0

Diff since v0.4.0

New features

  • Add code to calculate partial derivatives of magnetization using finite differences
  • Add B0 effects during Cartesian signal calculation
  • Add batched signal calculation (useful in case magnetization array does not fit into (GPU) memory at once)
  • Use custom ConfigurationStates type rather than the (EPGStates) type alias

v0.4.0

18 Jun 07:05
Compare
Choose a tag to compare

BlochSimulators v0.4.0

Diff since v0.3.0

Breaking changes

  • AbstractTissueParameters has been renamed to AbstractTissueProperties. In the comments/docstrings, the collection of values within a voxel that are used as simulation input (e.g. T₁, T₂) are referred to as tissue properties.
  • When performing simulations for multiple voxels (e.g. for MR-STAT forward simulations or for generating an MRF dictionary), the tissue properties of all voxels are now stored in a StructArray. If parameters is such a StructArray{<:AbstractTissueProperties}, the T₁ values in all voxels can be accessed as parameters.T₁. We use SimulationParameters as an alias for StructArray{<:AbstractTissueProperties}.

Features

  • Generate SimulationParameters with the syntax like @parameters T₁ T₂ B₀ or @parameters T1 T2 B1
  • Convenience methods for simulate_magnetization have been added to perform simulations without manually specifying the resource.

Minor

  • The contents of examples/sequences and examples/trajectories have been moved to sequences and trajectories, respectively.
  • Source code formatting with JuliaFormatter has been applied to all source files.
  • Cleanup of some docstrings.

v0.3.0

16 May 09:38
Compare
Choose a tag to compare

Release notes:

Breaking changes

  • The simulated signal is no longer a Vector{<:SVector} but an AbstractArray instead with the last dimension being the coil dimension.
  • Provide Coordinates (e.g. x,y,z values per voxel) separate from the other parameters.
  • Coil sensitivities must be provided as an AbstractMatrix{<:Complex} rather than a AbstractVector{<:SVector}.

Features

  • Efficient signal computation based on matrix-matrix multiplications for Cartesian trajectory implemented.
  • Refactored and improved readability of code that handles the simulation of magnetization/signal on different resources.

Full Changelog

v0.2.7...v0.3.0