Modigliani
2.0
A stochastic simulator for axons, neurons, and networks

Sequence of cylindrical membrane compartments, basically an axon/dendrite. More...
Public Member Functions  
Membrane_compartment_sequence (bool use_gillespie=false)  
Constructor. More...  
modigliani_base::ReturnEnum  PushBack (Cylindrical_compartment *compartPtr) 
Adds a compartment to the axon. More...  
modigliani_base::ReturnEnum  Init () 
Initialises the propagation compartment sequence. More...  
modigliani_base::ReturnEnum  InitialStep () 
Setup staggering PDE integration of compartments. More...  
modigliani_base::ReturnEnum  Step () 
Execute one time step on the compartments. More...  
modigliani_base::ReturnEnum  InjectCurrent (modigliani_base::Real current, modigliani_base::Size compartmentId) 
Inject current into a compartment. More...  
modigliani_base::Size  num_compartments () const 
Return the number of compartments. More...  
modigliani_base::Real  CompartmentSequenceChannelStateTimeConstant () const 
Compute sum of escape rates over current state. More...  
modigliani_base::Real  AttachedCurrent (modigliani_base::Size compIndex, modigliani_base::Size currIndex) 
Returns the amount of current for the given index in the compartment. More...  
Cylindrical_compartment *  ReturnCompartment (modigliani_base::Size index) 
Returns the requested compartment. More...  
Public Member Functions inherited from modigliani_core::Object  
modigliani_base::Real  timestep () const 
Returns simulation timestep. More...  
void  set_timestep (modigliani_base::Real newTimeStep) 
Sets simulation timestep. More...  
Public Attributes  
std::vector < Cylindrical_compartment * >  compartment_vec_ 
Holds pointers to member compartments.  
Protected Member Functions  
std::vector < modigliani_base::Real >  NumericalRecipesSolveTriDiag (const std::vector< modigliani_base::Real > &l, const std::vector< modigliani_base::Real > &d, const std::vector< modigliani_base::Real > &u, const std::vector< modigliani_base::Real > &r) const 
Solves a tridiagonal matrix system. More...  
Sequence of cylindrical membrane compartments, basically an axon/dendrite.
This class provides an easy way to arrange compartments linearly, i.e. to simulate axons or dendrites. The class takes care of propagating the membrane potential along its member compartments. It also implements some logic to deal with Gillespie simulations.
modigliani_core::Membrane_compartment_sequence::Membrane_compartment_sequence  (  bool  use_gillespie = false  ) 
Constructor.
Initialises variables, and sets the seed according to the current time.
use_gillespie  Are we going to use the gillespie algortihm? 

inline 
Returns the amount of current for the given index in the compartment.
compIndex  compartment index 
currIndex  current index 
modigliani_base::Real modigliani_core::Membrane_compartment_sequence::CompartmentSequenceChannelStateTimeConstant  (  )  const 
Compute sum of escape rates over current state.
This is simply the sum of time constants of all compartments
modigliani_base::ReturnEnum modigliani_core::Membrane_compartment_sequence::Init  (  ) 
Initialises the propagation compartment sequence.
The most important operation here is to initialise the propagation matrix used at every step. This uses a technique developed in Aldo's PhD thesis. It accelerates calculations but seems to require a constant diameter.
modigliani_base::ReturnEnum modigliani_core::Membrane_compartment_sequence::InitialStep  (  ) 
Setup staggering PDE integration of compartments.
Internal  voltage related  states of compartments(i.e. currents) are ahead t+.5 baseTimeStep, while state of compartment sequence is unchanged. imposes crank nicholson staggering.
modigliani_base::ReturnEnum modigliani_core::Membrane_compartment_sequence::InjectCurrent  (  modigliani_base::Real  current, 
modigliani_base::Size  compartmentId  
) 
Inject current into a compartment.
This is very useful in all sorts of experiments. Usually the current is injected into the first compartment (1).
current  is nano amperes 
compartmentId  refers to intuitive enumeriation, i.e. [1..m] 

inline 
Return the number of compartments.

protected 
Solves a tridiagonal matrix system.
The algorithm is taken from the book numerical receipes
l  Lower diagonal 
d  Diagonal 
u  Upper diagonal 
r  Right hand side 
modigliani_base::ReturnEnum modigliani_core::Membrane_compartment_sequence::PushBack  (  Cylindrical_compartment *  compartPtr  ) 
Adds a compartment to the axon.
compartPtr  Pointer to the compartment to add 
Cylindrical_compartment* modigliani_core::Membrane_compartment_sequence::ReturnCompartment  (  modigliani_base::Size  index  ) 
Returns the requested compartment.
index  compartment index 
modigliani_base::ReturnEnum modigliani_core::Membrane_compartment_sequence::Step  (  ) 
Execute one time step on the compartments.