CylinderCompartment {midi} | R Documentation |
Cylinder compartment class
Description
A class to model restricted diffusion in a cylinder.
Methods
Public methods
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.
Examples
## ------------------------------------------------
## Method `CylinderCompartment$get_signal`
## ------------------------------------------------
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)
)