Neurite: electrophysiological-mechanical coupling simulation framework (Garcia-Grajales et al 2015)

 Download zip file 
Help downloading and running models
Accession:168861
Neurite simulates the electrical signal propagation in myelinated and unmyelinated axons, and in dendritic trees under mechanical loading. Two different solvers are available (explicit and implicit) with sequential (CPU) and parallel (GPUs) versions
Reference:
1 . García-Grajales JA, Rucabado G, García-Dopico A, Peña JM, Jérusalem A (2015) Neurite, a finite difference large scale parallel program for the simulation of electrical signal propagation in neurites under mechanical loading. PLoS One 10:e0116532 [PubMed]
Model Information (Click on a link to find other models with that property)
Model Type: Axon; Dendrite;
Brain Region(s)/Organism:
Cell Type(s): Myelinated neuron;
Channel(s): I Sodium; I Potassium;
Gap Junctions:
Receptor(s):
Gene(s):
Transmitter(s):
Simulation Environment: C or C++ program;
Model Concept(s): Action Potential Initiation; Axonal Action Potentials; Action Potentials;
Implementer(s): Garcia-Grajales, Julian Andres ;
Search NeuronDB for information about:  I Sodium; I Potassium;
//
//
// File author(s):  <Julian Andres Garcia Grajales>, (C) 2014
//
// Copyright: this software is licenced under the terms stipulated in the license.txt file located in its root directory
//
//

/*!\file discretization.cpp
  \brief In this file the functions related to the space discretization are defined
*/

#include "discretization.h"
#include "configuration.h"
#include "neurite.h"

/*!Default constructor for discretization class
*/
discretization::discretization(){
  // Default value
  element=0;
  epsilon=0;
  epsilon_surface =0;
  DL = 0; 
  DR = 0;
  mother = 0;
  HH = false;
  branching = false;
  diameter = 3*pow(10,-6); 
  thickness = 4*pow(10,-9);
  W = 0;
  K = 0;
  input_current = 0;
  ro_a = 1.87;
  ro_m = 2.5E9; 
  per_m = 4E-11;
  rest_pot = -0.0655;
  critical_dT=0;
}

/*! Constructor for Cable class.

  @param ele Number of element
  @param dr Daughter right of the element
  @param mom Mother of the element
  @param deltaX Element size

*/
Cable::Cable(int ele,int dr, int mom, TYPE deltaX){

  diameter_my = 5.56*pow(10,-6);  
  thickness_my = 18E-9;
  per_my = 1.08E-10;
  ro_my = 4.44E6; 
  layers_my = 45; 
  element = ele;
  DR = dr;
  mother = mom;
  dX = deltaX;

}

void Cable::set_W(){
  W = - 1/r_m;
}
void Cable::set_K(){
  K = rest_pot/r_m;
}

/*! Constructor for Hodgkin and Huxley class.

  @param ele Number of element
  @param dr Daughter right of the element
  @param mom Mother of the element
  @param deltaX Element size

*/
Hodgkin_Huxley::Hodgkin_Huxley(int ele,int dr, int mom, TYPE deltaX){
  HH = true;
  E_Na = 0.115 + rest_pot;
  E_Na0 = E_Na;
  EMAX = 0;
  E_K = -0.012 + rest_pot;
  E_K0=E_K;
  E_L=0;
  E_L0= E_L;
  sigma_Na = 4.8E-6;
  sigma_K = 1.44E-6;
  sigma_L= 1.2E-8; 
  n_damage = 2;
  element = ele;
  DR = dr;
  mother = mom;
  dX = deltaX;
  Left_Shift_Na=0;
  Left_Shift_K=0;
}

void Hodgkin_Huxley::set_W(){
  W = -(G_Na + G_K + G_L);
}
void Hodgkin_Huxley::set_K(){
  K = G_Na*E_Na + G_K*E_K + G_L*E_L;
}

Loading data, please wait...