Changeset 12685 in project for release/3/nemo/trunk/nemo-core.scm


Ignore:
Timestamp:
12/01/08 06:47:14 (13 years ago)
Author:
Ivan Raikov
Message:

Bug fixes.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • release/3/nemo/trunk/nemo-core.scm

    r12558 r12685  
    112112  (CONST      (name symbol?) (value number?))
    113113  (TSCOMP     (name symbol?)
    114               (initial      (lambda (x) (or (rhs? x) (and (list? x) (every lineq? x)))))
     114              (initial      (lambda (x) (or (rhs? x) (not x))))
    115115              (open         (lambda (x) (or (symbol? x) (and (list? x) (every symbol? x) ))))
    116116              (transitions  (lambda (x) (and (list? x) (every transition? x))))
     
    919919                             (cond ((and (symbol? id) (list? alst))
    920920                                    (let* ((initial      (lookup-def 'initial alst))
    921                                            (initial-eq   (alist-ref 'initial-equilibrium alst))
    922921                                           (conserve-eq  (alist-ref 'conserve alst))
    923922                                           (power        (lookup-def 'power alst))
     
    940939                                                (or (alist-ref 'transitions alst) (list)))))
    941940
    942                                       (if (not (or initial initial-eq))
     941                                      (if (not (or initial conserve-eq))
    943942                                          (nemo:error 'eval-nemo-system-decls
    944943                                                      "state complex declarations require initial value or "
    945                                                       "initial equilibrium equations"))
    946 
    947                                       (let ((initial-eq
    948                                              (and initial-eq (map (lambda (eq)
    949                                                                     (if (expr? (third eq))
    950                                                                         `(,(first eq) = ,(parse-expr (third eq)))
    951                                                                         (nemo:error 'eval-nemo-system-decls
    952                                                                                     "invalid equation " eq)))
    953                                                                   initial-eq)))
    954                                             (conserve-eq
     944                                                      "conservation equation"))
     945
     946                                      (let ((conserve-eq
    955947                                             (and conserve-eq (map (lambda (eq)
    956948                                                                     (if (expr? (third eq))
     
    960952                                                                   conserve-eq))))
    961953
    962                                         (if (and initial-eq
    963                                                  (or (not (list? initial-eq)) (not (every lineq? initial-eq))))
    964                                             (nemo:error 'eval-nemo-system-decls
    965                                                         "initial equilibrium field in state complex declarations "
    966                                                         "must be a list of linear equations"))
    967                                        
    968954                                        (if (and (list? conserve-eq) (not (every lineq? conserve-eq)))
    969955                                            (nemo:error 'env-extend!
     
    973959                                        (let ((initialv (and initial (eval-const (parse-expr initial)))))
    974960                                          (apply env-extend!
    975                                                  (cons* id '(tscomp) (or initialv initial-eq) `(power ,power)
     961                                                 (cons* id '(tscomp) initialv `(power ,power)
    976962                                                        (alist-update! 'conserve conserve-eq
    977963                                                          (alist-update! 'transitions transitions alst))
Note: See TracChangeset for help on using the changeset viewer.