Method new()
Instantiates a new cylinder compartment.
Usage
CylinderCompartment$new(
axis,
radius,
diffusivity,
radial_model = c("soderman", "callaghan", "stanisz", "neuman", "vangelderen")
)
Arguments
axis
A length-3 numeric vector specifying the axis of the
cylinder.
radius
A numeric value specifying the radius of the cylinder in
meters.
diffusivity
A numeric value specifying the diffusivity within the
cylinder in m\(^2\).s\(^{-1}\).
radial_model
A character string specifying the radial model to
use. Choices are "soderman", "callaghan", "stanisz", "neuman",
and "vangelderen". Defaults to "soderman".
Returns
An instance of the CylinderCompartment class.
Method get_signal()
Computes the signal attenuation predicted by the model.
Usage
CylinderCompartment$get_signal(
small_delta,
big_delta,
G,
direction,
echo_time = NULL,
n_max = 20L,
m_max = 50L
)
Arguments
small_delta
A numeric value specifying the duration of the
gradient pulse in seconds.
big_delta
A numeric value specifying the duration between the
gradient pulses in seconds.
G
A numeric value specifying the strength of the gradient in
T.m\(^{-1}\).
direction
A length-3 numeric vector specifying the direction of
the gradient.
echo_time
A numeric value specifying the echo time in seconds.
n_max
An integer value specifying the maximum order of the Bessel
function. Defaults to 20L.
m_max
An integer value specifying the maximum number of extrema
for the Bessel function. Defaults to 50L.
Returns
A numeric value storing the predicted signal attenuation.
Examples
cylinderComp <- CylinderCompartment$new(
axis = c(0, 0, 1),
radius = 1e-6,
diffusivity = 2.0e-9,
radial_model = "soderman"
)
cylinderComp$get_signal(
small_delta = 0.03,
big_delta = 0.03,
G = 0.040,
direction = c(0, 0, 1)
)
Method clone()
The objects of this class are cloneable with this method.
Usage
CylinderCompartment$clone(deep = FALSE)
Arguments
deep
Whether to make a deep clone.