file:/local_home/local_home/hugo/neurospaces_project/heccer/source/c/snapshots/0/tests/code/check-compartment.c        (Mon Jun 16 00:04:14 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: struct Compartment comp[] =
  24: {
  25:     {
  26:         //m administrative overhead
  27: 
  28:         {
  29:             //m type of structure
  30: 
  31:             MATH_TYPE_Compartment,
  32:         },
  33: 
  34:         //m index of parent compartment, -1 for none
  35: 
  36:         -1,
  37: 
  38: /*      //m first mechanism */
  39: 
  40: /*      NULL, */
  41: 
  42: /*      //m number of mechanisms */
  43: 
  44: /*      0, */
  45: 
  46:         //m descriptive values, alphabetical order
  47: 
  48: /*     double dCm; */
  49: 
  50:         0,
  51: 
  52: /*     double dEm; */
  53: 
  54:         -0.08,
  55: 
  56: /*     double dInitVm; */
  57: 
  58:         -0.068,
  59: 
  60: /*     double dInject;           */
  61: 
  62:         1e-8,
  63: 
  64: /*     double dRa; */
  65: 
  66:         360501.9688, // unscaled 2.5,
  67: 
  68: /*     double dRm; */
  69: 
  70:         358440928, // unscaled 3
  71:     },
  72: /* [ /Purkinje/soma ]  */
  73: /* activation           = 0  */
  74: /* Vm                   = -0.0680000037  */
  75: /* previous_state       = 0  */
  76: /* Im                   = 0.00378972129  */
  77: /* Em                   = -0.07999999821  */
  78: /* Rm                   = 358440928  */
  79: /* Cm                   = 4.575370291e-11  */
  80: /* Ra                   = 360501.9688  */
  81: /* inject               = 0  */
  82: /* dia                  = 2.979999954e-05  */
  83: /* len                  = 0  */
  84: /* initVm               = -0.0680000037  */
  85: /* somatopetal          = none  */
  86: /* somatopetaltag       = 1  */
  87: /* somatofugal          =  /Purkinje/main  */
  88: /* somatofugaltag       = 0  */
  89: 
  90:     {
  91:         //m administrative overhead
  92: 
  93:         {
  94:             //m type of structure
  95: 
  96:             MATH_TYPE_Compartment,
  97:         },
  98: 
  99:         //m index of parent compartment, -1 for none
 100: 
 101:         0,
 102: 
 103: /*      //m first mechanism */
 104: 
 105: /*      NULL, */
 106: 
 107: /*      //m number of mechanisms */
 108: 
 109: /*      0, */
 110: 
 111:         //m descriptive values, alphabetical order
 112: 
 113: /*     double dCm; */
 114: 
 115:         5.755329373e-12, // unscaled 0.0164,
 116: 
 117: /*     double dEm; */
 118: 
 119:         1000,
 120: 
 121: /*     double dInitVm; */
 122: 
 123:         -0.068,
 124: 
 125: /*     double dInject;           */
 126: 
 127:         0,
 128: 
 129: /*     double dRa; */
 130: 
 131:         772813.4375, // unscaled 2.5,
 132: 
 133: /*     double dRm; */
 134: 
 135:         8548598272.0, // unscaled 3
 136:     },
 137: /* [ /Purkinje/main ]  */
 138: /* activation           = 0  */
 139: /* Vm                   = -0.0680000037  */
 140: /* previous_state       = 0  */
 141: /* Im                   = 0.03594784066  */
 142: /* Em                   = -0.07999999821  */
 143: /* Rm                   = 8548598272  */
 144: /* Cm                   = 5.755329373e-12  */
 145: /* Ra                   = 772813.4375  */
 146: /* inject               = 0  */
 147: /* dia                  = 7.720000212e-06  */
 148: /* len                  = 1.446968781e-05  */
 149: /* initVm               = -0.0680000037  */
 150: /* somatopetal          = /Purkinje/soma  */
 151: /* somatopetaltag       = 0  */
 152: /* somatofugal          =  /Purkinje/main[1]  */
 153: /* somatofugaltag       = 0  */
 154: 
 155:     {
 156:         //m administrative overhead
 157: 
 158:         {
 159:             //m type of structure
 160: 
 161:             MATH_TYPE_Compartment,
 162:         },
 163: 
 164:         //m index of parent compartment, -1 for none
 165: 
 166:         1,
 167: 
 168: /*      //m first mechanism */
 169: 
 170: /*      NULL, */
 171: 
 172: /*      //m number of mechanisms */
 173: 
 174: /*      0, */
 175: 
 176:         //m descriptive values, alphabetical order
 177: 
 178: /*     double dCm; */
 179: 
 180:         9.952665428e-12, // unscaled 0.0164,
 181: 
 182: /*     double dEm; */
 183: 
 184:         -0.08,
 185: 
 186: /*     double dInitVm; */
 187: 
 188:         -0.068,
 189: 
 190: /*     double dInject;           */
 191: 
 192:         0,
 193: 
 194: /*     double dRa; */
 195: 
 196:         0,
 197: 
 198: /*     double dRm; */
 199: 
 200:         4943399424.0, // unscaled 3
 201:     },
 202: /* [ /Purkinje/main[1] ]  */
 203: /* activation           = 0  */
 204: /* Vm                   = -0.0680000037  */
 205: /* previous_state       = 0  */
 206: /* Im                   = 0.03594784066  */
 207: /* Em                   = -0.07999999821  */
 208: /* Rm                   = 4943399424  */
 209: /* Cm                   = 9.952665428e-12  */
 210: /* Ra                   = 1107083.25  */
 211: /* inject               = 0  */
 212: /* dia                  = 8.220000382e-06  */
 213: /* len                  = 2.350032264e-05  */
 214: /* initVm               = -0.0680000037  */
 215: /* somatopetal          = /Purkinje/main  */
 216: /* somatopetaltag       = 0  */
 217: /* somatofugal          =  /Purkinje/main[2] /Purkinje/b0s01  */
 218: /* somatofugaltag       = 0  */
 219: 
 220:     {
 221:         //m administrative overhead
 222: 
 223:         {
 224:             //m type of structure
 225: 
 226:             MATH_TYPE_Compartment,
 227:         },
 228: 
 229:         //m index of parent compartment, -1 for none
 230: 
 231:         2,
 232: 
 233: /*      //m first mechanism */
 234: 
 235: /*      NULL, */
 236: 
 237: /*      //m number of mechanisms */
 238: 
 239: /*      0, */
 240: 
 241:         //m descriptive values, alphabetical order
 242: 
 243: /*     double dCm; */
 244: 
 245:         3.048169139e-12, // unscaled 0.0164,
 246: 
 247: /*     double dEm; */
 248: 
 249:         -0.08,
 250: 
 251: /*     double dInitVm; */
 252: 
 253:         -0.068,
 254: 
 255: /*     double dInject;           */
 256: 
 257:         0,
 258: 
 259: /*     double dRa; */
 260: 
 261:         306646.9688, // unscaled 2.5,
 262: 
 263: /*     double dRm; */
 264: 
 265:         0,
 266:     },
 267: /* [ /Purkinje/main[2] ]  */
 268: /* activation           = 0  */
 269: /* Vm                   = -0.0680000037  */
 270: /* previous_state       = 0  */
 271: /* Im                   = 0.03594784439  */
 272: /* Em                   = -0.07999999821  */
 273: /* Rm                   = 1.614083584e+10  */
 274: /* Cm                   = 3.048169139e-12  */
 275: /* Ra                   = 306646.9688  */
 276: /* inject               = 0  */
 277: /* dia                  = 8.500000149e-06  */
 278: /* len                  = 6.960275186e-06  */
 279: /* initVm               = -0.0680000037  */
 280: /* somatopetal          = /Purkinje/main[1]  */
 281: /* somatopetaltag       = 0  */
 282: /* somatofugal          =  /Purkinje/main[3] /Purkinje/b0s02  */
 283: /* somatofugaltag       = 0  */
 284: 
 285:     {
 286:         //m administrative overhead
 287: 
 288:         {
 289:             //m type of structure
 290: 
 291:             MATH_TYPE_Compartment,
 292:         },
 293: 
 294:         //m index of parent compartment, -1 for none
 295: 
 296:         3,
 297: 
 298: /*      //m first mechanism */
 299: 
 300: /*      NULL, */
 301: 
 302: /*      //m number of mechanisms */
 303: 
 304: /*      0, */
 305: 
 306:         //m descriptive values, alphabetical order
 307: 
 308: /*     double dCm; */
 309: 
 310:         0,
 311: 
 312: /*     double dEm; */
 313: 
 314:         1000,
 315: 
 316: /*     double dInitVm; */
 317: 
 318:         -0.068,
 319: 
 320: /*     double dInject;           */
 321: 
 322:         0,
 323: 
 324: /*     double dRa; */
 325: 
 326:         0,
 327: 
 328: /*     double dRm; */
 329: 
 330:         0,
 331:     },
 332: /* [ /Purkinje/main[3] ]  */
 333: /* activation           = 0  */
 334: /* Vm                   = -0.0680000037  */
 335: /* previous_state       = 0  */
 336: /* Im                   = 0.03594784439  */
 337: /* Em                   = -0.07999999821  */
 338: /* Rm                   = 2.635531059e+10  */
 339: /* Cm                   = 1.866796431e-12  */
 340: /* Ra                   = 147150.0781  */
 341: /* inject               = 0  */
 342: /* dia                  = 9.22000072e-06  */
 343: /* len                  = 3.929816558e-06  */
 344: /* initVm               = -0.0680000037  */
 345: /* somatopetal          = /Purkinje/main[2]  */
 346: /* somatopetaltag       = 0  */
 347: /* somatofugal          =  /Purkinje/main[4]  */
 348: /* somatofugaltag       = 0  */
 349: 
 350:     {
 351:         //m administrative overhead
 352: 
 353:         {
 354:             //m type of structure
 355: 
 356:             MATH_TYPE_Compartment,
 357:         },
 358: 
 359:         //m index of parent compartment, -1 for none
 360: 
 361:         4,
 362: 
 363: /*      //m first mechanism */
 364: 
 365: /*      NULL, */
 366: 
 367: /*      //m number of mechanisms */
 368: 
 369: /*      0, */
 370: 
 371:         //m descriptive values, alphabetical order
 372: 
 373: /*     double dCm; */
 374: 
 375:         3.81543408e-12, // unscaled 0.0164,
 376: 
 377: /*     double dEm; */
 378: 
 379:         -0.08,
 380: 
 381: /*     double dInitVm; */
 382: 
 383:         -0.068,
 384: 
 385: /*     double dInject;           */
 386: 
 387:         0,
 388: 
 389: /*     double dRa; */
 390: 
 391:         335501.9375, // unscaled 2.5,
 392: 
 393: /*     double dRm; */
 394: 
 395:         1.289499341e+10, // unscaled 3
 396:     },
 397: /* [ /Purkinje/main[4] ]  */
 398: /* activation           = 0  */
 399: /* Vm                   = -0.0680000037  */
 400: /* previous_state       = 0  */
 401: /* Im                   = 0.03594784439  */
 402: /* Em                   = -0.07999999821  */
 403: /* Rm                   = 1.289499341e+10  */
 404: /* Cm                   = 3.81543408e-12  */
 405: /* Ra                   = 335501.9375  */
 406: /* inject               = 0  */
 407: /* dia                  = 8.890000572e-06  */
 408: /* len                  = 8.330066521e-06  */
 409: /* initVm               = -0.0680000037  */
 410: /* somatopetal          = /Purkinje/main[3]  */
 411: /* somatopetaltag       = 0  */
 412: /* somatofugal          =  /Purkinje/main[5]  */
 413: /* somatofugaltag       = 0  */
 414: 
 415:     {
 416:         //m administrative overhead
 417: 
 418:         {
 419:             //m type of structure
 420: 
 421:             MATH_TYPE_Compartment,
 422:         },
 423: 
 424:         //m index of parent compartment, -1 for none
 425: 
 426:         5,
 427: 
 428: /*      //m first mechanism */
 429: 
 430: /*      NULL, */
 431: 
 432: /*      //m number of mechanisms */
 433: 
 434: /*      0, */
 435: 
 436:         //m descriptive values, alphabetical order
 437: 
 438: /*     double dCm; */
 439: 
 440:         2.239454065e-12, // unscaled 0.0164,
 441: 
 442: /*     double dEm; */
 443: 
 444:         -0.08,
 445: 
 446: /*     double dInitVm; */
 447: 
 448:         -0.068,
 449: 
 450: /*     double dInject;           */
 451: 
 452:         0,
 453: 
 454: /*     double dRa; */
 455: 
 456:         230128.9531, // unscaled 2.5,
 457: 
 458: /*     double dRm; */
 459: 
 460:         2.196964147e+10, // unscaled 3
 461:     },
 462: /* [ /Purkinje/main[5] ]  */
 463: /* activation           = 0  */
 464: /* Vm                   = -0.0680000037  */
 465: /* previous_state       = 0  */
 466: /* Im                   = 0.03594784439  */
 467: /* Em                   = -0.07999999821  */
 468: /* Rm                   = 2.196964147e+10  */
 469: /* Cm                   = 2.239454065e-12  */
 470: /* Ra                   = 230128.9531  */
 471: /* inject               = 0  */
 472: /* dia                  = 8.439999874e-06  */
 473: /* len                  = 5.149985554e-06  */
 474: /* initVm               = -0.0680000037  */
 475: /* somatopetal          = /Purkinje/main[4]  */
 476: /* somatopetaltag       = 0  */
 477: /* somatofugal          =  /Purkinje/main[6] /Purkinje/b0s03  */
 478: /* somatofugaltag       = 0  */
 479: 
 480:     {
 481:         //m administrative overhead
 482: 
 483:         {
 484:             //m type of structure
 485: 
 486:             MATH_TYPE_Compartment,
 487:         },
 488: 
 489:         //m index of parent compartment, -1 for none
 490: 
 491:         6,
 492: 
 493: /*      //m first mechanism */
 494: 
 495: /*      NULL, */
 496: 
 497: /*      //m number of mechanisms */
 498: 
 499: /*      0, */
 500: 
 501:         //m descriptive values, alphabetical order
 502: 
 503: /*     double dCm; */
 504: 
 505:         1.754059463e-12, // unscaled 0.0164,
 506: 
 507: /*     double dEm; */
 508: 
 509:         -0.08,
 510: 
 511: /*     double dInitVm; */
 512: 
 513:         -0.068,
 514: 
 515: /*     double dInject;           */
 516: 
 517:         0,
 518: 
 519: /*     double dRa; */
 520: 
 521:         169781.8594, // unscaled 2.5,
 522: 
 523: /*     double dRm; */
 524: 
 525:         2.804921958e+10, // unscaled 3
 526:     },
 527: /* [ /Purkinje/main[6] ]  */
 528: /* activation           = 0  */
 529: /* Vm                   = -0.0680000037  */
 530: /* previous_state       = 0  */
 531: /* Im                   = 0.03594784439  */
 532: /* Em                   = -0.07999999821  */
 533: /* Rm                   = 2.804921958e+10  */
 534: /* Cm                   = 1.754059463e-12  */
 535: /* Ra                   = 169781.8594  */
 536: /* inject               = 0  */
 537: /* dia                  = 8.609999895e-06  */
 538: /* len                  = 3.954098247e-06  */
 539: /* initVm               = -0.0680000037  */
 540: /* somatopetal          = /Purkinje/main[5]  */
 541: /* somatopetaltag       = 0  */
 542: /* somatofugal          =  /Purkinje/main[7] /Purkinje/b0s04  */
 543: /* somatofugaltag       = 0  */
 544: 
 545:     {
 546:         //m administrative overhead
 547: 
 548:         {
 549:             //m type of structure
 550: 
 551:             MATH_TYPE_Compartment,
 552:         },
 553: 
 554:         //m index of parent compartment, -1 for none
 555: 
 556:         7,
 557: 
 558: /*      //m first mechanism */
 559: 
 560: /*      NULL, */
 561: 
 562: /*      //m number of mechanisms */
 563: 
 564: /*      0, */
 565: 
 566:         //m descriptive values, alphabetical order
 567: 
 568: /*     double dCm; */
 569: 
 570:         3.37096605e-12, // unscaled 0.0164,
 571: 
 572: /*     double dEm; */
 573: 
 574:         -0.08,
 575: 
 576: /*     double dInitVm; */
 577: 
 578:         -0.068,
 579: 
 580: /*     double dInject;           */
 581: 
 582:         0,
 583: 
 584: /*     double dRa; */
 585: 
 586:         442254.125, // unscaled 2.5,
 587: 
 588: /*     double dRm; */
 589: 
 590:         1.459522355e+10, // unscaled 3
 591:     },
 592: /* [ /Purkinje/main[7] ]  */
 593: /* activation           = 0  */
 594: /* Vm                   = -0.0680000037  */
 595: /* previous_state       = 0  */
 596: /* Im                   = 0.03594784811  */
 597: /* Em                   = -0.07999999821  */
 598: /* Rm                   = 1.459522355e+10  */
 599: /* Cm                   = 3.37096605e-12  */
 600: /* Ra                   = 442254.125  */
 601: /* inject               = 0  */
 602: /* dia                  = 7.780000487e-06  */
 603: /* len                  = 8.409710063e-06  */
 604: /* initVm               = -0.0680000037  */
 605: /* somatopetal          = /Purkinje/main[6]  */
 606: /* somatopetaltag       = 0  */
 607: /* somatofugal          =  /Purkinje/main[8]  */
 608: /* somatofugaltag       = 0  */
 609: 
 610:     {
 611:         //m administrative overhead
 612: 
 613:         {
 614:             //m type of structure
 615: 
 616:             MATH_TYPE_Compartment,
 617:         },
 618: 
 619:         //m index of parent compartment, -1 for none
 620: 
 621:         8,
 622: 
 623: /*      //m first mechanism */
 624: 
 625: /*      NULL, */
 626: 
 627: /*      //m number of mechanisms */
 628: 
 629: /*      0, */
 630: 
 631:         //m descriptive values, alphabetical order
 632: 
 633: /*     double dCm; */
 634: 
 635:         5.048512389e-12, // unscaled 0.0164,
 636: 
 637: /*     double dEm; */
 638: 
 639:         -0.08,
 640: 
 641: /*     double dInitVm; */
 642: 
 643:         -0.068,
 644: 
 645: /*     double dInject;           */
 646: 
 647:         0,
 648: 
 649: /*     double dRa; */
 650: 
 651:         518791.0938, // unscaled 2.5,
 652: 
 653: /*     double dRm; */
 654: 
 655:         9745444864.0, // unscaled 3
 656:     },
 657: /* [ /Purkinje/main[8] ]  */
 658: /* activation           = 0  */
 659: /* Vm                   = -0.0680000037  */
 660: /* previous_state       = 0  */
 661: /* Im                   = 0.03594784066  */
 662: /* Em                   = -0.07999999821  */
 663: /* Rm                   = 9745444864  */
 664: /* Cm                   = 5.048512389e-12  */
 665: /* Ra                   = 518791.0938  */
 666: /* inject               = 0  */
 667: /* dia                  = 8.439999874e-06  */
 668: /* len                  = 1.160986722e-05  */
 669: /* initVm               = -0.0680000037  */
 670: /* somatopetal          = /Purkinje/main[7]  */
 671: /* somatopetaltag       = 0  */
 672: /* somatofugal          =  /Purkinje/br1 /Purkinje/br2  */
 673: /* somatofugaltag       = 0  */
 674: 
 675: };
 676: 
 677: 
 678: int piC2m[] =
 679: {
 680:     0,
 681:     0,
 682:     0,
 683:     0,
 684:     0,
 685:     0,
 686:     0,
 687:     0,
 688:     0,
 689:     0,
 690:     -1,
 691: };
 692: 
 693: 
 694: struct Intermediary inter =
 695: {
 696:     //m compartment array
 697: 
 698:     10,
 699: 
 700:     comp,
 701: 
 702:     //m all other mathematical components
 703: 
 704:     NULL,
 705: 
 706:     //m compartment 2 first mechanism number
 707: 
 708:     piC2m,
 709: };
 710: 
 711: 
 712: #include "main.c"
 713: 
 714: 
 715: 








































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