JEMRIS  2.8.2
open-source MRI simulations
List of all members | Public Member Functions | Protected Member Functions | Protected Attributes
MicrostructureSingleFiber Class Reference

Microstructure consisting of parallel cylinders. More...

#include <MicrostructureSingleFiber.h>

+ Inheritance diagram for MicrostructureSingleFiber:
+ Collaboration diagram for MicrostructureSingleFiber:

Public Member Functions

void SetFiberOrientation (double dx, double dy, double dz)
 set cylinder orientation
void SetCylinderDensity (double density)
 Set Cylinder Density;.
void SetCylinderRadius (double inner, double outer=0)
 Set Cylinder Radius;.
void SetRadiusDistribution (string filename)
 Set axon radius distribution, string: -> filename, three doubles: distribution from AxCaliber (Assaf 2008 MagResMed.); alpha, beta, cutoffradius.
void SetRadiusDistribution (double alpha, double beta, double rmax)
void SetSeed (int val)
 Set seed for random number generator.
void SetD (double D, int index)
 Set Diffusion constants.
void GenerateStructure ()
 builds Structure
virtual void IndexObject (triple pos, int &LastId, int &shellid)
virtual double GetD (int LastId, int shellid)
void SetAxonToNeuronRadiusRatio (double ratio)
 sets ratio axon/(axion + myelin sheet). Needed if radius distribution of neurons is used
void DumpStructure ()
- Public Member Functions inherited from Microstructure
void SetExternalDiffusionConstant (double d)
bool isInsideBox (triple pos)
triple PeriodicBoundary (triple trialpos)
void SetBoxSize (double size)
double GetBoxSize ()

Protected Member Functions

virtual bool CylinderCollide (const neuron &test)
double GetCylinderVolume (const neuron &test)
double GetPointDistance (const triple pos, const neuron &tmp)
 Get distance between point pos and cylinder tmp.
double GetCylinderDistance (const neuron &n1, const neuron &n2)
 Get distance between two cylinders.
virtual void SetCylOrientation (neuron &tmp)
 sets orientation of cyl in GenerateStructure.
void CalcPercentiles ()
 if radius distribution is used: calculate compartments (begin with largest radii, then fill up with smaller ones.)
void GetRadius (neuron &tmp, const double complete_vol, const double used_vol)
 Get a trial axon radius.

Protected Attributes

double m_fiber_orientation [3]
 orientation of cylinders
double m_cyl_dens
 density of cylinders
double m_cyl_radius_inner
 inner radius of cylinders
double m_cyl_radius_outer
 outer radius of cylinders
double m_D [2]
 diffusion constants per layer
vector< neuronm_axons
 container holding the neurons.
int m_seed
 random number seed
bool m_use_var_rad
 true for variable radius distribution
vector< int > m_percentiles
 compartment indices (first place axons from large compartment)
vector< double > m_radius_axis
 axis for radius distribution
vector< double > m_radius_hist
 values for radius distribution
double m_myelin_axon_ratio
 ratio axon to (axon+myelin). Between 0 and 1. Used for variable radii only; else myelin radius is set explicitly.
double m_extracellular_spacing
 minimal space between neurons
- Protected Attributes inherited from Microstructure
double m_boxsize
double m_D_external
RNG * m_rng

Detailed Description

Microstructure consisting of parallel cylinders.

Member Function Documentation

§ GetD()

double MicrostructureSingleFiber::GetD ( int  LastId,
int  shellid 

returns Diffusion constant. unit: mm^2/ms

Reimplemented from Microstructure.

+ Here is the caller graph for this function:

§ IndexObject()

void MicrostructureSingleFiber::IndexObject ( triple  pos,
int &  LastId,
int &  shellid 

return index of Microstructure object; -1 -> outside. shellid: object may have multiple layer (myelinated axon). id of layer; shellid = -1 -> object has no layers. LastId: during tracking of spin: object where last position was in.

Reimplemented from Microstructure.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

The documentation for this class was generated from the following files:

-- last change 24.05.2018 | Tony Stoecker | Imprint | Data Protection --