46 lines
1.6 KiB
Python
Executable File
46 lines
1.6 KiB
Python
Executable File
#!/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)
|