smbinterp/bin/parse_gmsh.py

85 lines
1.7 KiB
Python
Raw Normal View History

#!/usr/bin/env python
import sys
2010-10-22 08:20:59 -07:00
import numpy as np
2010-10-23 15:57:44 -07:00
from interp.grid.gmsh import gmsh_grid
from interp.tools import exact_func, improved_answer
2010-11-01 19:19:09 -07:00
from interp import bootstrap
if __name__ == '__main__':
if len(sys.argv) != 2:
print >> sys.stderr, "usage: %s <gmsh file>" % sys.argv[0]
sys.exit(1)
2010-10-23 15:57:44 -07:00
g = gmsh_grid(sys.argv[1])
g.q = np.array([exact_func(x) for x in g.verts])
2010-11-01 19:19:09 -07:00
# g.dump_to_blender_files()
X = np.array([0.2, 0.5]) #TODO:, 0.0])
2010-10-23 15:57:44 -07:00
R = g.get_containing_simplex(X)
print R
R, S = g.get_simplex_and_nearest_points(X, 10)
print "r", R
print "s", S
a = g.run_baker(X)
print a
e = exact_func(X)
print e
print improved_answer(a, e)
a = g.run_baker(X, extra_points = 5)
print a
e = exact_func(X)
print e
print improved_answer(a, e)
a = g.run_baker(X, extra_points = 7)
print a
e = exact_func(X)
print e
print improved_answer(a, e)
a = g.run_baker(X, order=3)
print a
e = exact_func(X)
print e
print improved_answer(a, e)
a = g.run_baker(X, order=3, extra_points = 5)
print a
e = exact_func(X)
print e
print improved_answer(a, e)
a = g.run_baker(X, order=3, extra_points = 7)
print a
e = exact_func(X)
print e
print improved_answer(a, e)
2010-11-01 14:52:45 -07:00
a = g.run_baker(X, order=3, extra_points = 10)
print a
e = exact_func(X)
print e
print improved_answer(a, e)
2010-11-01 19:19:09 -07:00
results = {True:0, False:0}
for i in xrange(1000):
X = np.random.random((1,2))[0]
2010-11-01 19:19:09 -07:00
try:
a = g.run_baker(X, order=2, extra_points = 3)
2010-11-01 19:19:09 -07:00
e = exact_func(X)
ia = improved_answer(a, e)
# if not ia:
# print a['final'] - e, a, e
2010-11-01 19:19:09 -07:00
results[ia] += 1
except Exception,e:
print >>sys.stderr, e
print >>sys.stderr, X
print results