Changeset 31587 in project


Ignore:
Timestamp:
10/05/14 05:49:16 (5 years ago)
Author:
Ivan Raikov
Message:

nemo: bug fixes in NEST templates

Location:
release/4/nemo/trunk
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • release/4/nemo/trunk/nemo-nest.scm

    r31562 r31587  
    307307
    308308
    309   (let-optionals rest ((dirname ".")  (method #f) (ss-method #f) (abstol #f) (reltol #f) (maxstep #f))
     309  (let-optionals rest ((dirname ".") 
     310                       (method #f) (ss-method #f)
     311                       (abstol #f) (reltol #f) (maxstep #f)
     312                       (dump-template-env #f))
    310313
    311314    (let ((method (or method 'gsl)))
     
    705708                      (stateIndexMap     . ,(map (lambda (x) (cons (first x) (second x))) state-index-map))
    706709                      (steadyStateIndexMap . ,(map (lambda (x) (cons (first x) (second x))) steady-state-index-map))
    707                       (stateDefs           . ,(map first state-index-map))
     710                      (stateDefs           . ,(map (lambda (def)
     711                                                     (let* ((n      (first def))
     712                                                            (nu     (lookup-def n c-units))
     713                                                            (nscale (and nu (nemo:unit-scale nu))))
     714                                                       `(
     715                                                         (name  . ,(nest-name n))
     716                                                         (scale . ,nscale)
     717                                                         )
     718                                                       ))
     719                                                   state-index-map))
    708720                      (defaultDefs         . ,(map first defaults))
    709721
     
    972984                   event-external-eq-defs pscs))
    973985
     986        (if dump-template-env
     987            (for-each (lambda (entry)
     988                        (fprintf (current-error-port)
     989                                 "~A = ~A~%" (car entry)
     990                                 (ersatz:tvalue->pystr (cdr entry))))
     991                      tmpl-env
     992                      ))
     993       
    974994        (let ((cpp-output  (open-output-file (make-output-fname dirname prefix ".cpp")))
    975995              (hpp-output  (open-output-file (make-output-fname dirname prefix ".h"))))
  • release/4/nemo/trunk/nemo.scm

    r31480 r31587  
    421421                              (lookup-def 'abstol options)
    422422                              (lookup-def 'reltol options)
    423                               (lookup-def 'maxstep options) ))
     423                              (lookup-def 'maxstep options)
     424                              (lookup-def 'dump-template-env options) ))
    424425      (lambda (options model)
    425426        (void))))
     
    25662567                          (reltol    . ,nest-reltol)
    25672568                          (maxstep   . ,nest-maxstep)
     2569                          (dump-template-env . ,(opt 'dump-template-env))
    25682570                          )
    25692571                        sys))
  • release/4/nemo/trunk/templates/NEST-accessors_modifiers.tmpl

    r31562 r31587  
    1212   
    1313}
    14 
    1514
    1615void {{modelName}}::Parameters_::set (const DictionaryDatum &d)
     
    5453   
    5554{% if hasattr(stateIndexMap,"v") %}
    56    def<double_t>(d, names::V_m, y_[{{attr(stateIndexMap,name)}}]);
     55   def<double_t>(d, names::V_m, y_[{{attr(stateIndexMap,"v")}}]);
    5756
    5857{% endif %}   
    5958   
    6059}
    61 
    6260   
    6361void {{modelName}}::State_::set (const DictionaryDatum &d, const Parameters_&)
     
    7977   
    8078}
    81 
  • release/4/nemo/trunk/templates/NEST-cvode-event.tmpl

    r31482 r31587  
    1919  state = &(node.S_);
    2020
    21 {% if (haskey(stateIndexMap,"v") and haskey(defaults,"V_t") %}     
     21{% if ((haskey(stateIndexMap,"v") and ("V_t" in defaultDefs)) %}     
    2222  v = Ith (y, {{attr(stateIndexMap,"v")}});
    23   vt = params->{{attr(defaults,"V_t")}};
     23  vt = params->V_t;
    2424  g[0] = v - vt;
    2525{% else %}
  • release/4/nemo/trunk/templates/NEST-emit-spike.tmpl

    r31482 r31587  
    1313   }
    1414
    15 {% elif ((ODEmethod == "gsl") and haskey(defaults,"V_t")) %}
     15{% elif ((ODEmethod == "gsl") and ("V_t" in defaultDefs)) %}
    1616
    1717         if ( S_.r_ > 0 )
  • release/4/nemo/trunk/templates/NEST-function.tmpl

    r31508 r31587  
    2020  double {{functionDef.localVars | join(", ")}};
    2121{% endif %}
    22 
    2322{% if (!(functionDef.consts == [])) %}
    2423  double {{functionDef.consts | join(", ")}};
     
    2928{% endfor %}
    3029{% endif %}
    31 
    3230  {{functionDef.exprString}}
    33 
    3431  return {{functionDef.returnVar}};
    3532}
  • release/4/nemo/trunk/templates/NEST-ida-event.tmpl

    r31482 r31587  
    1919  state = &(node.S_);
    2020
    21 {% if (haskey(stateIndexMap,"v") and haskey(defaults,"V_t") %}     
     21{% if (haskey(stateIndexMap,"v") and ("V_t" in defaultDefs)) %}     
    2222  v = Ith (y, {{attr(stateIndexMap,"v")}});
    23   vt = params->{{attr(defaults,"V_t")}};
     23  vt = params->V_t;
    2424  g[0] = v - vt;
    2525{% else %}
  • release/4/nemo/trunk/templates/NEST-nodes.tmpl

    r31508 r31587  
    9898   if (check_flag(&status, "CVodeInit", 1)) throw CVodeSolverFailure (get_name(), status);
    9999
    100 {% if haskey(defaults,"V_t") %}
     100{% if haskey("V_t" in defaultDefs) %}
    101101
    102102   /* Spike event handler (detects zero-crossing of V-V_t) */
     
    248248   if (check_flag(&status, "IDAInit", 1)) throw IDASolverFailure (get_name(), status);
    249249
    250 {% if haskey(defaults,"V_t") %}
     250{% if ("V_t" in defaultDefs) %}
    251251
    252252   /* Spike event handler (detects zero-crossing of V-V_t) */
     
    391391{
    392392    B_.logger_.init(); 
    393     #{(if iv (sprintf "V_.U_old_ = S_.y_[~A];" iv) "")}
    394     #{(if (lookup-def 't_ref defaults)
    395           "V_.RefractoryCounts_ = Time(Time::ms(P_.t_ref)).get_steps();"
    396           "V_.RefractoryCounts_ = 0;")}
    397 }
    398 
    399 
     393    {% if haskey(stateIndexMap,"v") %}V_.U_old_ = S_.y_[{{attr(stateIndexMap,"v")}}];{% endif %}
     394{% if ("t_ref" in defaultDefs) %}
     395    V_.RefractoryCounts_ = Time(Time::ms(P_.t_ref)).get_steps();
     396{% else %}
     397    V_.RefractoryCounts_ = 0;
    400398{% endif %}
     399}
     400
     401
     402{% endif %}
  • release/4/nemo/trunk/templates/NEST-parameters.tmpl

    r31508 r31587  
    66{% endif %}
    77
    8 {% for eq in paramters.parameterEqDefs %}
     8{% for eq in parameters.parameterEqDefs %}
    99{% if (loop.last) %}
    1010  {{eq}}
Note: See TracChangeset for help on using the changeset viewer.