file:/local_home/local_home/hugo/neurospaces_project/heccer/source/c/snapshots/0/tests/code/table-naf.c        (Mon Jun 16 00:03:52 2008 )        HOME


   1: //
   2: // Heccer : a compartmental solver that implements efficient Crank-Nicolson
   3: // integration for neuronal models.
   4: //
   5: 
   6: //////////////////////////////////////////////////////////////////////////////
   7: //'
   8: //' Heccer : testbed C implementation
   9: //'
  10: //' Copyright (C) 2006-2008 Hugo Cornelis
  11: //'
  12: //' functional ideas .. Hugo Cornelis, hugo.cornelis@gmail.com
  13: //'
  14: //' coding ............ Hugo Cornelis, hugo.cornelis@gmail.com
  15: //'
  16: //////////////////////////////////////////////////////////////////////////////
  17: 
  18: 
  19: #include "../../heccer/compartment.h"
  20: #include "../../heccer/heccer.h"
  21: 
  22: 
  23: #define HECCER_TEST_INTERVAL_DEFAULT_START                      (-0.1)
  24: #define HECCER_TEST_INTERVAL_DEFAULT_END                        (0.05)
  25: #define HECCER_TEST_INTERVAL_DEFAULT_ENTRIES                    50
  26: #define HECCER_TEST_STEPS 1
  27: 
  28: 
  29: struct Compartment compSoma =
  30: {
  31:     //m administrative overhead
  32: 
  33:     {
  34:         //m type of structure
  35: 
  36:         MATH_TYPE_Compartment,
  37:     },
  38: 
  39:     //m index of parent compartment, -1 for none
  40: 
  41:     -1,
  42: 
  43: /*     //m first mechanism */
  44: 
  45: /*     NULL, */
  46: 
  47: /*     //m number of mechanisms */
  48: 
  49: /*     0, */
  50: 
  51:     //m descriptive values, alphabetical order
  52: 
  53: /*     double dCm; */
  54: 
  55:     4.57537e-11, // unscaled 0.0164,
  56: 
  57: /*     double dEm; */
  58: 
  59:     -0.08,
  60: 
  61: /*     double dInitVm; */
  62: 
  63:     -0.068,
  64: 
  65: /*     double dInject;           */
  66: 
  67:     0,
  68: 
  69: /*     double dRa; */
  70: 
  71:     360502, // unscaled 2.5,
  72: 
  73: /*     double dRm; */
  74: 
  75:     3.58441e+08, // unscaled 1
  76: };
  77: 
  78: 
  79: //v a simple fast sodium channel
  80: 
  81: struct ChannelActInact caiNaF =
  82: {
  83:     //m administrative overhead
  84: 
  85:     {
  86:         //m type of structure
  87: 
  88:         MATH_TYPE_ChannelActInact,
  89:     },
  90: 
  91:     //m first set of descriptive values, alphabetical order
  92: 
  93:     //m initial reversal potential
  94: 
  95:     0.045,
  96: 
  97:     //m get reversal potential from this intermediary, -1 for none
  98: 
  99:     -1,
 100: 
 101:     //m maximal conductance when all channels are permissive
 102: 
 103:     0.0002092393115,
 104: 
 105:     //m contributes to this concentration pool, -1 for none, boolean indicator only.
 106: 
 107:     -1,
 108: 
 109:     //m activation description
 110: 
 111:     {
 112:         //m power, for a standard heccer, something between 1 and 4 or so.
 113: 
 114:         3,
 115: 
 116:         //m gate definition
 117: 
 118:         {
 119:             //m initial value, commonly forward over backward steady states
 120: 
 121:             0.0078406449371415214,
 122: 
 123:             //m corresponding index in tables, set to -1 for initialization.
 124: 
 125:             -1,
 126: 
 127:             {
 128:                 //m forward kinetiks, commonly denoted with alpha or non-perm to perm rate
 129: 
 130:                 {
 131:                     //m multiplier
 132: 
 133:                     35.0e3,
 134: 
 135:                     //m multiplier membrane dependence, 0.0 for no dependence
 136: 
 137:                     0.0,
 138: 
 139:                     //m 2b: multiplier membrane dependence offset, 0.0 for no dependence
 140: 
 141:                     0.0,
 142: 
 143:                     //m choose between nominator or denominator, 1 means nominator, -1
 144:                     //m means denominator
 145: 
 146:                     -1.0,
 147: 
 148:                     //m nominator or denominator offset
 149: 
 150:                     0.0,
 151: 
 152:                     //m membrane offset
 153: 
 154:                     5.0e-3,
 155: 
 156:                     //m denormalized time constant
 157: 
 158:                     -10.0e-3,
 159:                 },
 160: 
 161:                 //m backward kinetiks, commonly denoted with beta or perm to non-perm rate
 162: 
 163:                 {
 164:                     //m multiplier
 165: 
 166:                     7.0e3,
 167: 
 168:                     //m multiplier membrane dependence, 0.0 for no dependence
 169: 
 170:                     0.0,
 171: 
 172:                     //m 2b: multiplier membrane dependence offset, 0.0 for no dependence
 173: 
 174:                     0.0,
 175: 
 176:                     //m choose between nominator or denominator, 1 means nominator, -1
 177:                     //m means denominator
 178: 
 179:                     -1.0,
 180: 
 181:                     //m nominator or denominator offset
 182: 
 183:                     0.0,
 184: 
 185:                     //m membrane offset
 186: 
 187:                     65.0e-3,
 188: 
 189:                     //m denormalized time constant
 190: 
 191:                     20.0e-3,
 192:                 },
 193:             },
 194:         },
 195:     },
 196: 
 197:     //m inactivation description
 198: 
 199:     {
 200:         //m power, for a standard heccer, something between 1 and 4 or so.
 201: 
 202:         1,
 203: 
 204:         //m gate definition
 205: 
 206:         {
 207:             //m initial value, commonly forward over backward steady states
 208: 
 209:             0.26397776926502026,
 210: 
 211:             //m corresponding index in tables, set to -1 for initialization.
 212: 
 213:             -1,
 214: 
 215:             {
 216:                 //m forward kinetiks, commonly denoted with alpha or non-perm to perm rate
 217: 
 218:                 {
 219:                     //m multiplier
 220: 
 221:                     0.225e3,
 222: 
 223:                     //m multiplier membrane dependence, 0.0 for no dependence
 224: 
 225:                     0.0,
 226: 
 227:                     //m 2b: multiplier membrane dependence offset, 0.0 for no dependence
 228: 
 229:                     0.0,
 230: 
 231:                     //m choose between nominator or denominator, 1 means nominator, -1
 232:                     //m means denominator
 233: 
 234:                     -1.0,
 235: 
 236:                     //m nominator or denominator offset
 237: 
 238:                     1.0,
 239: 
 240:                     //m membrane offset
 241: 
 242:                     80.0e-3,
 243: 
 244:                     //m denormalized time constant
 245: 
 246:                     10.0e-3,
 247:                 },
 248: 
 249:                 //m backward kinetiks, commonly denoted with beta or perm to non-perm rate
 250: 
 251:                 {
 252:                     //m multiplier
 253: 
 254:                     7.5e3,
 255: 
 256:                     //m multiplier membrane dependence, 0.0 for no dependence
 257: 
 258:                     0.0,
 259: 
 260:                     //m 2b: multiplier membrane dependence offset, 0.0 for no dependence
 261: 
 262:                     0.0,
 263: 
 264:                     //m choose between nominator or denominator, 1 means nominator, -1
 265:                     //m means denominator
 266: 
 267:                     -1.0,
 268: 
 269:                     //m nominator or denominator offset
 270: 
 271:                     0.0,
 272: 
 273:                     //m membrane offset
 274: 
 275:                     -3.0e-3,
 276: 
 277:                     //m denormalized time constant
 278: 
 279:                     -18.0e-3,
 280:                 },
 281:             },
 282:         },
 283:     },
 284: };
 285: 
 286: 
 287: int piC2m[] =
 288: {
 289:     1,
 290:     -1,
 291: };
 292: 
 293: 
 294: struct MathComponentArray mca =
 295: {
 296:     //m number of math components
 297: 
 298:     1,
 299: 
 300:     //m math component data
 301: 
 302:     &caiNaF.mc,
 303: 
 304:     //m math component index, initialize to NULL
 305: 
 306:     NULL,
 307: 
 308: };
 309: 
 310: 
 311: struct Intermediary inter =
 312: {
 313:     //m compartment array
 314: 
 315:     1,
 316: 
 317:     &compSoma,
 318: 
 319:     //m all other mathematical components
 320: 
 321:     &mca,
 322: 
 323:     //m compartment 2 first mechanism number
 324: 
 325:     piC2m,
 326: };
 327: 
 328: 
 329: #include "main.c"
 330: 
 331: 
 332: 








































Generated by Xrefactory version 2.0.14 on Thu Jul 24 22:41:20 2008