CONICAL Demo 5:

Propagation Delay

Introduction

This program is similar to the Hodgkin-Huxley demo. But here, we create two compartments, and connect them with a delay link.

At t=0.01 s, a 5 ms current pulse is injected into the first compartment. This triggers an action potential, which propagates through a 15 ms delay to the second compartment, triggering an action potential there.

Code Overview

The complete code for the program is contained in main.cpp. In summary:
  1. Define global parameters.
  2. Define procedures to set up sodium and potassium channels.
  3. Define a procedure to set up a compartment.
  4. Create the compartments, setting appropriate parameters.
  5. Join the compartments with a Delay.
  6. Loop through time. At each time step,
    1. Output membrane voltages
    2. Call gStepmaster.Step(DT)
    3. Update the injector to give a current pulse

To avoid messy initial conditions, the simulation is run for 50 ms before output is begun. This gives all the channels and compartments a chance to reach a stable equilibrium state.

Program Output

The actual output of this program is a table of numbers, which has been graphed (by importing the data to ClarisWorks) below.

Building the Program

If you have the full set of CONICAL source code, you should be able to simply copy main.cpp into your project and build it. Of course, this will contain a few files you don't need. A minimal project would contain just the following files:

Source FilesHeader Files
ChanAB.cpp
ChanHH.cpp
Cmprtmnt.cpp
CONICAL.cpp
Cylinder.cpp
main.cpp
Stepmstr.cpp
VSink.cpp
ChanAB.h
ChanHH.h
Channel.h
ChanStd.h
Cmprtmnt.h
Current.h
Cylinder.h
Delay.h
StdForms.h
Stepmstr.h
VSink.h
VSource.h

NOTE: Since this demo uses ChanStd, it is susceptible to a bug in some versions of the Symantec C++ compiler which will prevent it from compiling. See Note About Symantec C++ for more details.