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;
/
Neurite_Public
applications
bin
build
doc
inc
others
src
README.txt
license.txt
Makefile
                            
CC=g++ # GNU Compiler
NVCC=nvcc # CUDA Compiler
MKLFLAG=-lmkl_intel_lp64 -lmkl_sequential -lmkl_core # Intel MKL libraries flags
NFLAGS= -Xcompiler -Wall -O3 -arch=sm_21 -x cu -lineinfo # General flags 
CFLAGS=-Wall -Wno-write-strings -O3 -g -DDEBUG=0  # -DDEBUG=X. This variable sets the printing level (0 or 1) of the simulation
LDFLAGS=-lGL -lGLU -lglut -lpthread # OpenGL flags
NLDFLAGS=-lcublas -lcusparse # CUDA flags

# Folder paths
INCLUDE_DIR=$(shell pwd)/inc
SOURCE_DIR=$(shell pwd)/src
BUILD_DIR=$(shell pwd)/build
BIN_DIR=$(shell pwd)/bin
DOC_DIR=$(shell pwd)/doc

# Files type
vpath %.h $(INCLUDE_DIR)
vpath %.cpp $(SOURCE_DIR)
vpath %.o $(BUILD_DIR)

# Common objects for both implementations
OBJECTS=graphics.o RgbImage.o input.o init.o coupling.o mechanical_model.o space.o discretization.o configuration.o
# Specific objects for the parallel implementations
OBJECTS_GPU=neurite-gpu.o solverEx-gpu.o solverIm-gpu.o cudaException.o
# Specific objects for the sequential implementations 
OBJECTS_CPU=neurite-cpu.o solverEx-cpu.o solverIm-cpu.o

# Name of the executable file
EXECUTABLE=Neurite

# Default objectives 
OBJECTIVES= cpu gpu

# General construction rules
# Default
def: $(OBJECTIVES)
# Parallel
gpu: $(OBJECTS) $(OBJECTS_GPU)
	cd $(BUILD_DIR); $(NVCC) $^ $(LDFLAGS) $(NLDFLAGS) -o $(BIN_DIR)/$(EXECUTABLE)_solver-gpu
# Sequential
cpu: $(OBJECTS) $(OBJECTS_CPU)
	cd $(BUILD_DIR); $(CC) $^ $(LDFLAGS) $(MKLFLAG) -o $(BIN_DIR)/$(EXECUTABLE)_solver-cpu
# Previous objects. Parallel
cudaException.o: cudaException.cpp cudaException.h 
	$(NVCC) $(NFLAGS) -I$(INCLUDE_DIR) -c $< -o $(BUILD_DIR)/$@
solverEx-gpu.o: solverEx-gpu.cpp solver.h solverEx-gpu.h
	$(NVCC) $(NFLAGS) -I$(INCLUDE_DIR) -c $< -o $(BUILD_DIR)/$@
solverIm-gpu.o: solverIm-gpu.cpp solver.h solverIm-gpu.h
	$(NVCC) $(NFLAGS) -I$(INCLUDE_DIR) -c $< -o $(BUILD_DIR)/$@
neurite-gpu.o: neurite.cpp neurite.h
	$(NVCC) $(NFLAGS) -DGPU -I$(INCLUDE_DIR) -c $< -o $(BUILD_DIR)/$@
# Previous objects. Sequential
solverEx-cpu.o: solverEx-cpu.cpp solver.h solverEx-cpu.h
	$(CC) $(CFLAGS) -I$(INCLUDE_DIR) -c $< -o $(BUILD_DIR)/$@
solverIm-cpu.o: solverIm-cpu.cpp solver.h solverIm-cpu.h
	$(CC) $(CFLAGS) -I$(INCLUDE_DIR) -c $< -o $(BUILD_DIR)/$@
neurite-cpu.o: neurite.cpp neurite.h
	$(CC) $(CFLAGS) -DCPU -I$(INCLUDE_DIR) -c $< -o $(BUILD_DIR)/$@
# Prevous objects. Common
%.o: %.cpp %.h	
	$(CC) $(CFLAGS) -I$(INCLUDE_DIR) -c $< -o $(BUILD_DIR)/$@

# Cleaning rules
.PHONY: clean clean-all 
clean-all: clean-doc clean
# Cleanning rules for the documentation
clean-doc: 
	-cd $(DOC_DIR); rm -rf html latex
# General cleaning rules
clean:
	-cd $(BUILD_DIR); rm -f $(OBJECTS) $(OBJECTS_OLD) $(OBJECTS_GPU2) $(OBJECTS_GPU) $(OBJECTS_CPU) $(OBJECTS_BASE)
	-cd $(BIN_DIR); rm -f  $(EXECUTABLE)_solver-cpu  $(EXECUTABLE)_solver-gpu

# Documentation rules
documentation:
	cd $(DOC_DIR); doxygen 

Loading data, please wait...