Changeset 8005 in project


Ignore:
Timestamp:
01/31/08 07:33:30 (12 years ago)
Author:
Ivan Raikov
Message:

Bug fixes in the ode-rate and ode-bpr.

Location:
ode/trunk
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • ode/trunk/examples/e.scm

    r7225 r8005  
    1111
    1212 (((ode 'step!) euler) ode:rkf45 0.0 1.0))
    13  (((ode 'step!) euler) ode:abm4  0.0 1.0))
     13; (((ode 'step!) euler) ode:abm4  0.0 1.0))
    1414; (((ode 'step!) euler) ode:euler 0.0 1.0 0.0001))
    1515
  • ode/trunk/examples/poirazi03.scm

    r7909 r8005  
    302302
    303303  ;; run the numerical integrator for the specified length of time
    304   (let* ((poirazi03-1 (ode:hhs-transformer poirazi03-soma ))
     304  (let* (;(poirazi03-1 (ode:hhs-transformer poirazi03-soma ))
     305         (poirazi03-1 (ode:hhsm-transformer ode:bpr-transformer poirazi03-soma ))
    305306         (poirazi03-2 (ode:waveform-transformer poirazi03-1 ))
    306307         (poirazi03-3 (ode:lambda-transformer poirazi03-2 )))
  • ode/trunk/examples/run.scm

    r7962 r8005  
    3333(define (dataname x) (string-append (symbol->string x) ".data"))
    3434
    35 (define (run-solver operand solver slen initial-h)
     35(define (run-solver operand solver slen initial-h compile debug)
    3636  (if operand
    3737      (let ((fname (string-append operand ".scm")))
     
    4141          (opipe (lambda ()
    4242                   (ode-begin system
    43                               (let ((system1 (ode:lambda-transformer system)))
     43                              (let ((system1 (if compile (ode:lambda-transformer system) system)))
    4444                                (((ode 'step!) system1)
    45                                  (alist-ref solver solvers) 0.0 slen initial-h))))
     45                                 (alist-ref solver solvers) 0.0 slen initial-h debug))))
    4646                 (tee ,(logname system-name) |\|| grep  "\"***\"" |\|| cut -d* -f4 |\||
    4747                      tee ,(dataname system-name)))))))
    4848
    49 (define opt_solver 'rkf45)
    50 (define opt_slen   100.0)
    51 (define opt_ih     1e-3)
     49(define opt_debug    #t)
     50(define opt_compile  #t)
     51(define opt_solver   'rkf45)
     52(define opt_slen     100.0)
     53(define opt_ih       1e-3)
    5254
    5355
     
    6769
    6870(define opts
    69   `(,(args:make-option (solver)     (required: "SOLVER")   
     71  `(,(args:make-option (compile)     (required: "YES or NO")   
     72                       (string-append "compile model before running (default: " (if opt_compile "yes" "no") ")")
     73                       (set! opt_compile (string=? (string-upcase arg) "YES")))
     74    ,(args:make-option (debug)     (required: "YES or NO")   
     75                       (string-append "specify debug mode (default: " (if opt_debug "yes" "no") ")")
     76                       (set! opt_debug (string=? (string-upcase arg) "YES")))
     77    ,(args:make-option (solver)     (required: "SOLVER")   
    7078                       (string-append "specify solver (euler, rkf45, abm4) (default: " (symbol->string opt_solver) ")")
    7179                       (set! opt_solver (string->symbol arg)))
     
    8391
    8492
    85 (for-each (lambda (x) (run-solver x opt_solver opt_slen opt_ih))
     93(for-each (lambda (x) (run-solver x opt_solver opt_slen opt_ih opt_compile opt_debug))
    8694          operands)
    8795
  • ode/trunk/examples/schneidman98.scm

    r7226 r8005  
    2626(define schneidman98
    2727  (with-ode-system schneidman98
     28    (ode-core ((relmax 1e-4) (relmin 1e-8) (absmax 1e-4) (absmin 1e-8))
    2829                 (;; model states
    2930                  (state v = -65)
     
    192193                         (every 10)
    193194                         )
    194                   )
    195   (let* ((schneidman98-1 (ode:waveform-transformer schneidman98))
    196          (schneidman98-2 (ode:rate-transformer schneidman98-1)))
    197     schneidman98-2)))
     195                  ))
     196    (let* ((schneidman98-1 (ode:waveform-transformer schneidman98))
     197           (schneidman98-2 (ode:rate-transformer schneidman98-1)))
     198      schneidman98-2)))
    198199
    199200(define system-name 'schneidman98)
  • ode/trunk/extensions/ode-bpr.scm

    r7954 r8005  
    156156         (let-values (((name seedv alst)
    157157                       (match en
    158                               (('rate . alst)
     158                              ((('rate) . alst)
    159159                               (values (lookup-def 'name alst) (lookup-def 'seed alst) alst))
    160160                              (else (values #f #f #f)))))
  • ode/trunk/extensions/ode-rate.scm

    r7954 r8005  
    5151       (lambda (sym en)
    5252         (match en
    53                 (('rate . alst)
     53                ((('rate) . alst)
    5454                 (let* ((name       (lookup-def 'name alst))
    5555                        (g          (make-digraph name (string-append (symbol->string name) " rate graph")))
     
    9191                                      (let ((r (rate-name s0 s1)))
    9292                                        (env-extend! r '(asgn) 'none  `(* ,s0 ,rate-expr))))
    93                                      (else (ode:error 'ode:kinetic-transformer
     93                                     (else (ode:error 'ode:rate-transformer
    9494                                                      ": rate equations require state quantities"))))
    9595                             (else (void))))
     
    110110                                          (($ ode:quantity 'STATE n in v df rhs aerr rerr d)
    111111                                           (eqdef! name rhs1))
    112                                           (else (ode:error 'ode:kinetic-transformer
     112                                          (else (ode:error 'ode:rate-transformer
    113113                                                           ": rate equations require state quantities"))))))
    114114                             ((g 'nodes)))
Note: See TracChangeset for help on using the changeset viewer.