wrapping up a night. there isn't enough consistent improvement to merit using this method. i must have a bug somewhere.
This commit is contained in:
+15
-15
@@ -1,45 +1,45 @@
|
||||
#!/usr/bin/python2.6
|
||||
#!/usr/bin/env python
|
||||
|
||||
import sys
|
||||
from grid.DDD import random_grid
|
||||
from baker import get_phis_3D, run_baker_3D
|
||||
from baker.tools import logging as log
|
||||
from baker.tools import exact_func_3D, smberror, improved_answer
|
||||
from baker.tools import smblog
|
||||
from baker.tools import exact_func_3D, smberror, improved_answer
|
||||
from grid.simplex import contains
|
||||
|
||||
try:
|
||||
total_points = int(sys.argv[1])
|
||||
except:
|
||||
total_points = 20
|
||||
|
||||
|
||||
log.info(total_points)
|
||||
smblog.info(total_points)
|
||||
g = random_grid(total_points)
|
||||
|
||||
open('/tmp/for_qhull.txt', 'w').write(g.for_qhull())
|
||||
|
||||
X = [0.3, 0.3, 0.4]
|
||||
X = [0.5, 0.3, 0.4]
|
||||
|
||||
R, S = g.get_simplex_and_nearest_points(X, extra_points = 6, simplex_size=4)
|
||||
|
||||
print "R\n", R
|
||||
print "S\n", S
|
||||
smblog.info("Containing Simplex: %s" % contains(X, R.points))
|
||||
|
||||
exact = exact_func_3D(X)
|
||||
print "exact solution: %0.6f" % exact
|
||||
smblog.info("exact solution: %0.6f" % exact)
|
||||
|
||||
phis = get_phis_3D(X, R.points)
|
||||
print "phi values (should all be positive): ", phis, sum(phis)
|
||||
smblog.info("phi values (should all be positive): %s %s" % (phis, sum(phis)))
|
||||
if [i for i in phis if i < 0.0]:
|
||||
print "problems"
|
||||
smblog.error("problems")
|
||||
|
||||
try:
|
||||
r = run_baker_3D(X, R, S)
|
||||
improved_answer(r, exact)
|
||||
smblog.info("run_baker manual: %s" % improved_answer(r, exact))
|
||||
except smberror as e:
|
||||
print e
|
||||
smblog.error(e)
|
||||
|
||||
|
||||
try:
|
||||
answer = g.run_baker(X)
|
||||
improved_answer(answer, exact)
|
||||
smblog.info("run_baker from grid: %s" % improved_answer(answer, exact))
|
||||
except smberror as e:
|
||||
print e
|
||||
smblog.error(e)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#!/usr/bin/python2.6
|
||||
#!/usr/bin/env python
|
||||
|
||||
import sys
|
||||
from grid.DD import random_grid
|
||||
|
||||
+14
-13
@@ -1,7 +1,10 @@
|
||||
#!/usr/bin/python
|
||||
#!/usr/bin/env python
|
||||
|
||||
import math
|
||||
from baker import run_baker
|
||||
from baker.tools import improved_answer
|
||||
|
||||
from baker.tools import smblog
|
||||
|
||||
from grid.DD import grid
|
||||
from grid.simplex import contains
|
||||
@@ -32,18 +35,16 @@ if __name__ == '__main__':
|
||||
|
||||
print contains(X, R.points)
|
||||
|
||||
extra = 3
|
||||
try:
|
||||
extra = int(sys.argv[1])
|
||||
except:
|
||||
extra = 3
|
||||
|
||||
S = g.create_mesh(range(3, 3 + extra))
|
||||
|
||||
answer = run_baker(X, R, S, 3)
|
||||
answer['exact'] = exact_func(X)
|
||||
t = ('qlin', 'error', 'exact')
|
||||
for i in xrange(1,4):
|
||||
answer = run_baker(X, R, S, i)
|
||||
exact = exact_func(X)
|
||||
smblog.debug(improved_answer(answer, exact))
|
||||
|
||||
for i in t:
|
||||
print "%s %s" % (
|
||||
i.ljust(10),
|
||||
("%0.4f" % answer[i]),
|
||||
)
|
||||
lin_err = abs(answer['exact'] - answer['qlin'])
|
||||
final_err = abs(answer['exact'] - answer['final'])
|
||||
print lin_err >= final_err
|
||||
smblog.debug(improved_answer(g.run_baker(X), exact))
|
||||
|
||||
Reference in New Issue
Block a user