Learn R Programming

midi (version 0.1.0)

CylinderRadialCompartment: Cylinder radial compartment class

Description

A class to model restricted diffusion in a cylinder in the plane perpendicular to the cylinder axis.

Arguments

Methods


Method new()

Instantiates a new cylinder radial compartment.

Usage

CylinderRadialCompartment$new(radius, diffusivity)

Arguments

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}\).

Returns

An instance of the CylinderRadialCompartment class.


Method get_signal()

Computes the signal attenuation predicted by the model.

Usage

CylinderRadialCompartment$get_signal(
  small_delta,
  big_delta,
  G,
  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}\).

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

sodermanComp <- SodermanCompartment$new(
  radius = 1e-6,
  diffusivity = 2.0e-9
)
sodermanComp$get_signal(0.03, 0.03, 0.040)

staniszComp <- StaniszCompartment$new( radius = 1e-6, diffusivity = 2.0e-9 ) staniszComp$get_signal(0.03, 0.03, 0.040)

neumanComp <- NeumanCompartment$new( radius = 1e-6, diffusivity = 2.0e-9 ) neumanComp$get_signal(0.03, 0.03, 0.040, echo_time = 0.040)

callaghanComp <- CallaghanCompartment$new( radius = 1e-6, diffusivity = 2.0e-9 ) callaghanComp$get_signal(0.03, 0.03, 0.040)

vanGelderenComp <- VanGelderenCompartment$new( radius = 1e-6, diffusivity = 2.0e-9 ) vanGelderenComp$get_signal(0.03, 0.03, 0.040)


Method clone()

The objects of this class are cloneable with this method.

Usage

CylinderRadialCompartment$clone(deep = FALSE)

Arguments

deep

Whether to make a deep clone.

Examples

Run this code

## ------------------------------------------------
## Method `CylinderRadialCompartment$get_signal`
## ------------------------------------------------

sodermanComp <- SodermanCompartment$new(
  radius = 1e-6,
  diffusivity = 2.0e-9
)
sodermanComp$get_signal(0.03, 0.03, 0.040)

staniszComp <- StaniszCompartment$new(
  radius = 1e-6,
  diffusivity = 2.0e-9
)
staniszComp$get_signal(0.03, 0.03, 0.040)

neumanComp <- NeumanCompartment$new(
  radius = 1e-6,
  diffusivity = 2.0e-9
)
neumanComp$get_signal(0.03, 0.03, 0.040, echo_time = 0.040)

callaghanComp <- CallaghanCompartment$new(
  radius = 1e-6,
  diffusivity = 2.0e-9
)
callaghanComp$get_signal(0.03, 0.03, 0.040)

vanGelderenComp <- VanGelderenCompartment$new(
  radius = 1e-6,
  diffusivity = 2.0e-9
)
vanGelderenComp$get_signal(0.03, 0.03, 0.040)

Run the code above in your browser using DataLab