Releases: oscarvanderheide/BlochSimulators.jl
Releases · oscarvanderheide/BlochSimulators.jl
v0.6.4
BlochSimulators v0.6.4
- 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 tofieldnames
for extracting properties for which derivatives need to be calculated.
v0.6.3
BlochSimulators v0.6.3
- Add method to simulation magnetization for a single voxel by providing an
<:AbstractTissueParameters
.
v0.6.2
BlochSimulators v0.6.2
Merged pull requests:
- CompatHelper: bump compat for Adapt to 4, (keep existing compat) (#3) (@github-actions[bot])
v0.6.1
BlochSimulators v0.6.1
v0.6.0
BlochSimulators v0.6.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
BlochSimulators v0.5.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
BlochSimulators v0.4.0
Breaking changes
AbstractTissueParameters
has been renamed toAbstractTissueProperties
. 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
. Ifparameters
is such aStructArray{<:AbstractTissueProperties}
, theT₁
values in all voxels can be accessed asparameters.T₁
. We useSimulationParameters
as an alias forStructArray{<: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 theresource
.
Minor
- The contents of
examples/sequences
andexamples/trajectories
have been moved tosequences
andtrajectories
, respectively. - Source code formatting with
JuliaFormatter
has been applied to all source files. - Cleanup of some docstrings.
v0.3.0
Release notes:
Breaking changes
- The simulated signal is no longer a
Vector{<:SVector}
but anAbstractArray
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 aAbstractVector{<: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.