Home My Page Projects Code Snippets Project Openings diderot
Summary Activity Tracker Tasks SCM

SCM Repository

[diderot] View of /branches/charisee/ertest/vispaper/gmiso2d/fsamp.diderot
ViewVC logotype

View of /branches/charisee/ertest/vispaper/gmiso2d/fsamp.diderot

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2884 - (download) (annotate)
Fri Feb 27 04:23:44 2015 UTC (4 years, 5 months ago) by glk
File size: 1724 byte(s)
new data and test
input int size0 = 30;
input int size1 = 30;
input real width = 5;
input real shear = 0;
vec2 spacing = [width/(size0-1), width/(size1-1)];

input real theta = 0.0;
tensor[2,2] rot = [[cos(theta),sin(theta)],[-sin(theta),cos(theta)]];
vec2 dir0 = rot•[spacing[0], 0.0];
vec2 dir1 = rot•[0.0, spacing[1]] + shear*dir0;
vec2 orig = -(dir0*(size0-1) + dir1*(size1-1))/2.0;

/*
** This program generates nrrd files that sample (on some oriented
** grid) the following function: f(x,y) = (x^2 + y^2)/2
** ==>  gradient(f)    = [x, y]
** ==> |gradient(f)|   = sqrt(x^2 + y^2)
** ==> |gradient(f)|^2 = x^2 + y^2
** So the isocontour at 1 of gradient magnitude
** (or of gradient magnitude squared)
** should be a circle of radius 1
*/
function real func(vec2 pos) {
  real x = pos[0];
  real y = pos[1];
  return (x^2 + y^2)/2;
}

strand sample(int xi, int yi) {
  output real vv = 0.0;
  update {
    if (0 == xi && 0 == yi) {
      print("NRRD0004\n");
      print("# Complete NRRD file format specification at:\n");
      print("# http://teem.sourceforge.net/nrrd/format.html\n");
      print("type: float\n");
      print("dimension: 2\n");
      print("sizes: ", size0, " ", size1, "\n");
      print("kinds: space space\n");
      print("endian: little\n");
      print("encoding: raw\n");
      print("space dimension: 2\n");
      print("space directions: (", dir0[0], ",", dir0[1],
                            ") (", dir1[0], ",", dir1[1], ")\n");
      print("space origin: (", orig[0], ",", orig[1], ")\n");
      print("data file: vv.nrrd\n");
      print("byte skip: -1\n");
    }
    vv = func(orig + xi*dir0 + yi*dir1);
    stabilize;
  }
}
initially [ sample(xi, yi) | yi in 0..(size1-1), xi in 0..(size0-1) ];

root@smlnj-gforge.cs.uchicago.edu
ViewVC Help
Powered by ViewVC 1.0.0