Changeset 30851 in project


Ignore:
Timestamp:
05/12/14 08:22:13 (6 years ago)
Author:
Ivan Raikov
Message:

picnic: support for variable fiber lengths in GL model

Location:
release/4/picnic/trunk
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • release/4/picnic/trunk/examples/GLHP.picnic

    r30782 r30851  
    2222  GL
    2323       config PFlength
    24        
     24       config PFlengthSlope ;; how much the PF length decreases with depth
     25                            ;; PFs deeper in the molecular layer tend to be shorter
     26                            ;; (Pichitpornchai et al, 1994)
     27       
     28       config MLdepth
    2529       config PCLdepth
    2630       
     
    117121                               output s n
    118122                   
     123                    component (type perturbation)
     124                               
     125                               fun pf (gid origin init)
     126                                 let ((period (randomUniform ((PFlength / 4.0) ~ (PFlength / 10.0) ~ init)))
     127                                      (phase  (randomUniform (0.0 ~ 10.0 ~ init))))
     128                                   ;; Harmonic (amplitude period phase npts)
     129                                   Harmonic (1 0.5 period phase 50)
     130                               
     131                               const n = 2
     132                               
     133                               p (s) = (generator pf) (initial (randomInit (43)))
     134                               
     135                               output s n
     136                   
    119137                    fun f (gid origin)
    120                       let ((dX (PFlength / 2)) (dY 0) (dZ 0))
     138                      let ((z (pointCoord (2 origin))) ;; depth of this PF
     139                           (dX (PFlengthSlope * (z - MLdepth) + (PFlength / 2))) (dY 0) (dZ 0))
    121140                        LineSegment (origin dX dY dZ)
    122141                   
    123142                    fun g (gid origin)
    124                       let ((dX (PFlength / 2)) (dY 0) (dZ 0))
     143                      let ((z (pointCoord (2 origin))) ;; depth of this PF
     144                           (dX (PFlengthSlope * (z - MLdepth) + (PFlength / 2))) (dY 0) (dZ 0))
    125145                        LineSegment (origin ~ (neg (dX)) ~ dY ~ dZ)
    126146                   
  • release/4/picnic/trunk/picnic-core.scm

    r30782 r30851  
    300300                )
    301301
     302          (define builtin-point-ops
     303                `(pointCoord)
     304                )
     305
    302306          (define builtin-path-ops
    303307                `(LineSegment Harmonic)
     
    315319                                      builtin-bounds-ops
    316320                                      builtin-path-ops
     321                                      builtin-point-ops
    317322                                      builtin-pointset-ops
    318323                                      builtin-arith-ops
     
    327332                  (pointset-exprs
    328333                   '(load-points-from-file UniformRandomPointProcess)
     334                   )
     335
     336                  (point-procs
     337                   (list pointCoord)
     338                   )
     339
     340                  (point-exprs
     341                   '(pointCoord)
    329342                   )
    330343
     
    388401                          (,inttype ,fptype ,fptype ,fptype ,inttype))
    389402                        `(,pathtype ,pathtype)
     403                        )
     404
     405              (for-each (lambda (n v qb fms rt)
     406                          (let ((fb (extend-procedure
     407                                     v `((name ,n) (eval-body ,qb)
     408                                         (rt ,rt) (formals ,fms)))))
     409                            (hash-table-set! env n fb)))
     410                        builtin-point-ops
     411                        point-procs
     412                        point-exprs
     413                        `(( ,inttype ,pointtype))
     414                        `(,fptype)
    390415                        )
    391416
  • release/4/picnic/trunk/picnic-utils.scm

    r30846 r30851  
    262262            t))
    263263
     264        (define (pointCoord axis p)
     265          (coord (inexact->exact axis) p))
     266
    264267        ;; Samples a parametric curve at regular intervals in the range xmin..xmax inclusive.
    265268        (define (uniform-sample n)
     
    338341        ;;
    339342        (define (make-segmented-process c f ns np)
    340           (let ((xyz (pcurve:sample-curve* c (f (* ns np)))))
     343          (let ((xyz ((pcurve:sample-curve* c) (f (* ns np)))))
    341344            (let recur ((si ns) (ax '()))
    342345              (if (positive? si)
     
    351354        ;;
    352355        (define (make-process c f np)
    353           (let ((xyz (pcurve:sample-curve* c (f np))))
     356          (let ((xyz ((pcurve:sample-curve* c) (f np))))
    354357            (list-tabulate
    355358             np
  • release/4/picnic/trunk/picnic.scm

    r30846 r30851  
    711711                                          `(,gfun gid ,origin ,init-var)
    712712                                          `(,gfun gid ,origin) ))
    713                                     ,uniform-sample
     713                                    uniform-sample
    714714                                    (inexact->exact ,npts))
    715715                                  init
     
    725725                                             `(,gfun gid ,origin ,init-var)
    726726                                             `(,gfun gid ,origin) ))
    727                                        ,uniform-sample
     727                                       uniform-sample
    728728                                       (inexact->exact ,nsegs)
    729729                                       (inexact->exact ,nsegpts))
  • release/4/picnic/trunk/scripts/plotGCs.m

    r30683 r30851  
    11graphics_toolkit("fltk");
    22
    3 nGC = 10;
     3nGC = 30;
    44GCs = load ("GC.pointset.dat" );
    55PFs = load ("GC.ParallelFibers.0.section.dat" );
Note: See TracChangeset for help on using the changeset viewer.