This commit is contained in:
Stephen Mardson McQuay
2009-12-27 10:48:27 -07:00
commit 961b3b7b26
19 changed files with 560 additions and 0 deletions
+43
View File
@@ -0,0 +1,43 @@
#!/usr/bin/python
import sys
from optparse import OptionParser
import numpy as np
import scipy.spatial
from grid import simple_random_grid, exact_func
import baker
def rms(errors):
r = 0.0
for i in errors:
r += np.power(i, 2)
r = np.sqrt(r / len(errors))
return r
if __name__ == '__main__':
parser = OptionParser()
parser.add_option("-o", "--output-file", dest="output", type='str', default = '/tmp/for_qhull.txt', help = "qhull output file")
parser.add_option("-e", "--extra-points", dest="extra", type='int', default = 3, help = "how many extra points")
parser.add_option("-s", "--source-total", dest="source_total", type='int', default = 100, help = "total number of source points")
parser.add_option("-d", "--destination-total",dest="destination_total",type='int', default = 100, help = "total number of destination points")
parser.add_option("-v", "--verbose", action = 'store_true', default = False, help = "verbosity")
(options, args) = parser.parse_args()
print >> sys.stderr, options
mesh_source = simple_random_grid(options.source_total)
tree = scipy.spatial.KDTree(mesh_source.points)
mesh_dest = simple_random_grid(options.destination_total)
open(options.output, 'w').write(mesh_source.for_qhull())
print >> sys.stderr, "wrote output to %s" % options.output
errors = []
for x in mesh_dest.points:
(final, exact) = baker.run_baker(x, mesh_source, tree, options.extra, options.verbose)
cur_error = np.abs(final - exact)
errors.append(cur_error)
print rms(errors)
+45
View File
@@ -0,0 +1,45 @@
#!/usr/bin/python
import sys
from optparse import OptionParser
import numpy as np
import scipy.spatial
from grid import simple_rect_grid, exact_func
import baker
from tools import rms
if __name__ == '__main__':
parser = OptionParser()
parser.add_option("-e", "--extra-points", dest="extra", type='int', default = 3, help = "how many extra points")
parser.add_option("-s", "--source-density", dest="source", type='int', default = 11, help = "resolution of source mesh")
parser.add_option("-d", "--dest-density", dest="dest", type='int', default = 11, help = "resolution of dest mesh")
parser.add_option("-t", "--random-total", dest="random_total", type='int', default = 100, help = "total number of random points")
parser.add_option("-r", "--random-dest", action = 'store_true', default = False, help = "verbosity")
parser.add_option("-v", "--verbose", action = 'store_true', default = False, help = "verbosity")
(options, args) = parser.parse_args()
print >> sys.stderr, options
mesh_source = simple_rect_grid(options.source, options.source)
tree = scipy.spatial.KDTree(mesh_source.points)
mesh_dest = simple_rect_grid(options.dest, options.dest)
if options.random_dest:
x = []
for i in xrange(options.random_total):
rx = np.random.rand() * 2 - 1
ry = np.random.rand() * 2 - 1
x.append([rx, ry])
mesh_dest.points = np.array(x)
errors = []
for x in mesh_dest.points:
(final, exact) = baker.run_baker(x, mesh_source, tree, options.extra, options.verbose)
cur_error = np.abs(final - exact)
errors.append(cur_error)
print rms(errors)
+16
View File
@@ -0,0 +1,16 @@
#!/usr/bin/perl
use strict;
use warnings;
my $output_filename = $ARGV[0] or die "no args";
my $tmp_grid_file = "$output_filename.grid.txt";
system("grid.py > $tmp_grid_file");
system("cat $tmp_grid_file | qdelaunay GD2 s > $output_filename.txt\n" );
system("cat $tmp_grid_file | qdelaunay GD2 s Qt > ${output_filename}_qt.txt\n");
system("cat $tmp_grid_file | qdelaunay GD2 s QJ > ${output_filename}_qj.txt\n");
unlink($tmp_grid_file);