Skip to content
Snippets Groups Projects
Commit 30d2f611 authored by Alexandru Fikl's avatar Alexandru Fikl
Browse files

add a dim to PointsDiscretization

parent a3a23a9e
No related branches found
No related tags found
1 merge request!69DG on Surfaces
Pipeline #30999 passed
...@@ -388,9 +388,14 @@ class PointsDiscretization(DiscretizationBase): ...@@ -388,9 +388,14 @@ class PointsDiscretization(DiscretizationBase):
self.mpi_communicator = None self.mpi_communicator = None
@property
def ambient_dim(self): def ambient_dim(self):
return self._nodes.shape[0] return self._nodes.shape[0]
@property
def dim(self):
return self.ambient_dim
@property @property
def mesh(self): def mesh(self):
return self return self
......
...@@ -102,7 +102,8 @@ class SpheroidMeshBuilder(MeshBuilder): ...@@ -102,7 +102,8 @@ class SpheroidMeshBuilder(MeshBuilder):
mesh = generate_gmsh(source, 2, order=mesh_order, mesh = generate_gmsh(source, 2, order=mesh_order,
other_options=[ other_options=[
"-string", "-string",
"Mesh.CharacteristicLengthMax = %g;" % resolution]) "Mesh.CharacteristicLengthMax = %g;" % resolution],
target_unit="MM")
from meshmode.mesh.processing import perform_flips from meshmode.mesh.processing import perform_flips
return perform_flips(mesh, np.ones(mesh.nelements)) return perform_flips(mesh, np.ones(mesh.nelements))
......
...@@ -455,7 +455,7 @@ def test_tri_diff_mat(ctx_factory, dim, order=4): ...@@ -455,7 +455,7 @@ def test_tri_diff_mat(ctx_factory, dim, order=4):
from pytools.convergence import EOCRecorder from pytools.convergence import EOCRecorder
axis_eoc_recs = [EOCRecorder() for axis in range(dim)] axis_eoc_recs = [EOCRecorder() for axis in range(dim)]
for n in [10, 20]: for n in [4, 8, 16]:
mesh = generate_regular_rect_mesh(a=(-0.5,)*dim, b=(0.5,)*dim, mesh = generate_regular_rect_mesh(a=(-0.5,)*dim, b=(0.5,)*dim,
n=(n,)*dim, order=4) n=(n,)*dim, order=4)
...@@ -692,7 +692,6 @@ def test_surface_divergence_theorem(ctx_factory, mesh_name, visualize=False): ...@@ -692,7 +692,6 @@ def test_surface_divergence_theorem(ctx_factory, mesh_name, visualize=False):
("disk", [0.1, 0.05]), ("disk", [0.1, 0.05]),
("rect2", [4, 8]), ("rect2", [4, 8]),
("rect3", [4, 6]), ("rect3", [4, 6]),
("warped", [4, 6, 8])
]) ])
@pytest.mark.parametrize("op_type", ["strong", "weak"]) @pytest.mark.parametrize("op_type", ["strong", "weak"])
@pytest.mark.parametrize("flux_type", ["central"]) @pytest.mark.parametrize("flux_type", ["central"])
...@@ -705,9 +704,6 @@ def test_convergence_advec(ctx_factory, mesh_name, mesh_pars, op_type, flux_type ...@@ -705,9 +704,6 @@ def test_convergence_advec(ctx_factory, mesh_name, mesh_pars, op_type, flux_type
cl_ctx = ctx_factory() cl_ctx = ctx_factory()
queue = cl.CommandQueue(cl_ctx) queue = cl.CommandQueue(cl_ctx)
if mesh_name == "warped" and op_type == "strong":
pytest.skip("expected failure for strong form on curvilinear grids")
from pytools.convergence import EOCRecorder from pytools.convergence import EOCRecorder
eoc_rec = EOCRecorder() eoc_rec = EOCRecorder()
...@@ -749,12 +745,6 @@ def test_convergence_advec(ctx_factory, mesh_name, mesh_pars, op_type, flux_type ...@@ -749,12 +745,6 @@ def test_convergence_advec(ctx_factory, mesh_name, mesh_pars, op_type, flux_type
dt_factor = 2 dt_factor = 2
else: else:
raise ValueError("dt_factor not known for %dd" % dim) raise ValueError("dt_factor not known for %dd" % dim)
elif mesh_name == "warped":
dim = 2
from meshmode.mesh.generation import generate_warped_rect_mesh
mesh = generate_warped_rect_mesh(dim, order, mesh_par)
dt_factor = 1 if dim == 2 else 2
else: else:
raise ValueError("invalid mesh name: " + mesh_name) raise ValueError("invalid mesh name: " + mesh_name)
...@@ -829,11 +819,7 @@ def test_convergence_advec(ctx_factory, mesh_name, mesh_pars, op_type, flux_type ...@@ -829,11 +819,7 @@ def test_convergence_advec(ctx_factory, mesh_name, mesh_pars, op_type, flux_type
abscissa_label="h", abscissa_label="h",
error_label="L2 Error")) error_label="L2 Error"))
if mesh_name == "warped": assert eoc_rec.order_estimate() > order
# NOTE: warped grids are hard.. be more forgiving
assert eoc_rec.order_estimate() > order - 0.25
else:
assert eoc_rec.order_estimate() > order
# }}} # }}}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment