Changeset 13052 in project


Ignore:
Timestamp:
01/21/09 07:45:56 (11 years ago)
Author:
Ivan Raikov
Message:

Save.

Location:
release/3/nemo/trunk
Files:
1 added
5 edited

Legend:

Unmodified
Added
Removed
  • release/3/nemo/trunk/examples/AKP06/AKP06.nemo

    r13040 r13052  
    340340
    341341
    342    (component (type decaying-pool) (name ca)
    343               (const  F = 96485.0)
    344               (const  ca_initial = 1e-4)
    345               (const  ca_depth   = 0.1)
    346               (const  ca_beta    = 1.0)
    347              
    348               (d (ca) = ((neg (ica) / (2 * F * ca_initial * ca_depth)) -
    349                          (ca * ca_beta * temp_adj))
    350                         (initial ca_initial))
    351              
    352               (output ca)
    353               )
     342    (component (type decaying-pool) (name ca)
     343              (const  F = 96485.0)
     344              (const  ca_initial = 1e-4)
     345              (const  ca_depth   = 0.1)
     346              (const  ca_beta    = 1.0)
     347             
     348              (d (ca) = ((neg (ica) / (2 * F * ca_initial * ca_depth)) -
     349                         (ca * ca_beta * temp_adj))
     350                        (initial ca_initial))
     351             
     352              (output ca)
     353              )
     354           
    354355
    355356   (functor (name Nafun) (type ion-channel)
  • release/3/nemo/trunk/examples/carelli05.nemo

    r13050 r13052  
    119119                           (m-power 4)
    120120                           (h-power 0)
    121                            (initial-m ((Ca / (3 + Ca)) * (1 / (1 + (exp ((Vrest + 28.3) / -12.6))))))
    122                            (m-inf  ((Ca / (3 + Ca)) * (1 / (1 + (exp ((v + 28.3) / -12.6))))))
    123                            (m-tau  (180.6 - (150.2 / (1 + (exp ((v + 46) / -22.7))))))))
     121                           (initial-m  ((Ca / (3 + Ca)) * (1 / (1 + (exp ((Vrest + 28.3) / -12.6))))))
     122                           (m-inf      ((Ca / (3 + Ca)) * (1 / (1 + (exp ((v + 28.3) / -12.6))))))
     123                           (m-tau      (180.6 - (150.2 / (1 + (exp ((v + 46) / -22.7))))))))
    124124                         )
    125125     
  • release/3/nemo/trunk/examples/hh-driver.m

    r13040 r13052  
    11#!/usr/bin/env octave
     2
     3
     4function ys = euler(f,t,y,h)
     5  t0=t(1); tn=t(2);
     6  tx=t0; ys=zeros(ceil((tn-t0)/h),length(y));
     7  ys(1,:)=y; i=1;
     8  while (tx<tn)
     9    i = i+1; tx=tx+h;
     10    ys(i,:) = ys(i-1,:)' + (h * feval(f,tx,ys(i-1,:)));
     11  endwhile
     12endfunction
    213
    314## Hodgkin-Huxley model driver for Octave
     
    920autoload ("hodgkin_huxley_init", hh_defs );
    1021
    11 t = [0,100];
    12 
    1322y0 = hodgkin_huxley_init(-65)
    1423
    15 P = odeset ('InitialStep', 0.0001 );
    16 [t, y] = odesx (@hodgkin_huxley, t, y0, P);
    17 
     24#t = linspace(0,100,1000);
    1825#lsode_options("initial step size",0.001);
    1926#y = lsode ("hodgkin_huxley", y0, t);
    2027
     28#t = [0,100];
     29#P = odeset ('InitialStep', 0.0001 );
     30#[t, y] = odesx (@hodgkin_huxley, t, y0, P);
     31
     32t = [0,10];
     33y = euler (@hodgkin_huxley, t, y0, 0.001)
     34
    2135save "-ascii" "hodgkin_huxley.dat" y;
  • release/3/nemo/trunk/nemo-core.scm

    r13040 r13052  
    10451045                                    (qexpr   (subst-expr (parse-expr expr `(rate ,id)) scope-subst))
    10461046                                    (initial (lookup-def 'initial rest)))
    1047                                (env-extend! qid '(rate) (and initial (parse-expr initial)) `(rhs ,qexpr))
     1047                               (env-extend! qid '(rate) (and initial (eval-const initial)) `(rhs ,qexpr))
    10481048                               (list (cons qid qs) (update-subst id qid scope-subst))))
    10491049                           
  • release/3/nemo/trunk/nemo-matlab.scm

    r13050 r13052  
    172172
    173173       ((op . rest) 
    174        (let ((op (case op ((pow)  '^)  (else op))))
     174       (let ((op (case op ((pow)  '^)  ((ln) 'log) (else op))))
    175175         (let ((fe
    176176                (if (member op matlab-ops)
     
    204204                                                 (let ((fx (format-expr/MATLAB indent+ x))) fx)) rest)))))
    205205                   
    206                     (let ((op (case op ((neg) '-) ((ln) 'log) (else op))))
     206                    (let ((op (case op ((neg) '-) (else op))))
    207207                      (format-fncall/MATLAB indent op (map (lambda (x) (format-expr/MATLAB indent+ x)) rest))))))
    208208           (if rv
     
    380380
    381381
    382 (define (poset->state-init-defs poset sys)
     382(define (poset->init-defs poset sys)
    383383  (fold-right
    384384   (lambda (lst ax)
    385      (fold  (lambda (x ax)
     385     (fold-right
     386      (lambda (x ax)
    386387              (match-let (((i . n)  x))
    387388                         (let ((en (environment-ref sys n)))
     
    398399                                                 (cons (state-init name initial) ax)
    399400                                                 ax))
    400                                      
     401
    401402                                      (else  ax))
    402403                               ax))))
     
    567568             (reaction-eq-defs   (poset->reaction-eq-defs poset sys))
    568569             
    569              (init-eq-defs       (poset->state-init-defs poset sys))
     570             (init-eq-defs       (poset->init-defs poset sys))
    570571             
    571572             (conserve-eq-defs   (map (lambda (eq) (list 0 `(- ,(second eq) ,(first eq))))
     
    743744                   const-defs)
    744745         
    745          (if (not (null? init-eq-defs))
    746              (for-each (lambda (def)
    747                          (let ((n (matlab-name (first def)) )
    748                                (b (second def)))
    749                            (pp indent+ ,(expr->string/MATLAB b n))))
    750                        asgn-eq-defs))
    751          
    752746         (for-each (lambda (def)
    753747                     (let* ((n  (first def))
    754748                            (ni (lookup-def n state-index-map))
    755749                            (b (second def)))
    756                        (pp indent+ ,(expr->string/MATLAB b (if ni (s+ "y0(" ni ")") n)))))
     750                       (pp indent+ ,(expr->string/MATLAB b n))
     751                       (if ni (pp indent+ ,(expr->string/MATLAB n  (s+ "y0(" ni ")"))))))
    757752                   init-eq-defs)
    758753         
Note: See TracChangeset for help on using the changeset viewer.