2009-12-27 09:48:27 -08:00
|
|
|
import numpy as np
|
2010-01-30 11:15:00 -08:00
|
|
|
import grid
|
2009-12-27 09:48:27 -08:00
|
|
|
|
|
|
|
|
2010-01-30 11:15:00 -08:00
|
|
|
class smberror(Exception):
|
|
|
|
def __init__(self, val):
|
|
|
|
self.value = val
|
|
|
|
def __str__(self):
|
|
|
|
return repr(self.value)
|
|
|
|
|
2009-12-27 09:48:27 -08:00
|
|
|
def rms(errors):
|
|
|
|
"""
|
|
|
|
root mean square calculation
|
|
|
|
"""
|
|
|
|
r = 0.0
|
|
|
|
for i in errors:
|
|
|
|
r += np.power(i, 2)
|
|
|
|
r = np.sqrt(r / len(errors))
|
|
|
|
return r
|
2010-01-30 11:15:00 -08:00
|
|
|
|
|
|
|
def exact_func(x, y):
|
|
|
|
return np.power((np.sin(x * np.pi) * np.cos(y * np.pi)), 2)
|
|
|
|
return np.sin(x * np.pi) * np.cos(y * np.pi)
|
|
|
|
|
|
|
|
|
|
|
|
def get_mesh(source, destination, use_structured_grid = False):
|
|
|
|
mesh_source = None
|
|
|
|
mesh_dest = None
|
|
|
|
if use_structured_grid:
|
|
|
|
mesh_source = grid.simple_rect_grid(source, source)
|
|
|
|
mesh_dest = grid.simple_rect_grid(destination, destination)
|
|
|
|
else:
|
|
|
|
mesh_source = grid.simple_random_grid(source)
|
|
|
|
mesh_dest = grid.simple_random_grid(destination)
|
|
|
|
|
|
|
|
if not (mesh_dest and mesh_source):
|
|
|
|
raise smberror('problem creating mesh objects')
|
|
|
|
else:
|
|
|
|
return mesh_source, mesh_dest
|