From 0185d28362706b0a46e24b6d3197d7b09a8037ff Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Wed, 16 Jun 2021 18:57:16 -0500 Subject: [PATCH] Track warp-and-blend el group split in meshmode https://github.com/inducer/meshmode/pull/225 --- examples/advection/surface.py | 4 ++-- examples/wave/wave-op-var-velocity.py | 4 ++-- grudge/discretization.py | 7 ++++--- test/test_modal_connections.py | 7 ++++--- 4 files changed, 12 insertions(+), 10 deletions(-) diff --git a/examples/advection/surface.py b/examples/advection/surface.py index fd6d05c72..894c1c766 100644 --- a/examples/advection/surface.py +++ b/examples/advection/surface.py @@ -146,11 +146,11 @@ def main(ctx_factory, dim=2, order=4, use_quad=False, visualize=False): qtag = None from meshmode.discretization.poly_element import \ - PolynomialWarpAndBlendGroupFactory, \ + default_simplex_group_factory, \ QuadratureSimplexGroupFactory discr_tag_to_group_factory[dof_desc.DISCR_TAG_BASE] = \ - PolynomialWarpAndBlendGroupFactory(order) + default_simplex_group_factory(base_dim=dim-1, order=order) if use_quad: discr_tag_to_group_factory[qtag] = \ diff --git a/examples/wave/wave-op-var-velocity.py b/examples/wave/wave-op-var-velocity.py index 421d33e41..481afba48 100644 --- a/examples/wave/wave-op-var-velocity.py +++ b/examples/wave/wave-op-var-velocity.py @@ -176,11 +176,11 @@ def main(ctx_factory, dim=2, order=3, visualize=False): from meshmode.discretization.poly_element import \ QuadratureSimplexGroupFactory, \ - PolynomialWarpAndBlendGroupFactory + default_simplex_group_factory dcoll = DiscretizationCollection( actx, mesh, discr_tag_to_group_factory={ - DISCR_TAG_BASE: PolynomialWarpAndBlendGroupFactory(order), + DISCR_TAG_BASE: default_simplex_group_factory(base_dim=dim, order=order), DISCR_TAG_QUAD: QuadratureSimplexGroupFactory(3*order), } ) diff --git a/grudge/discretization.py b/grudge/discretization.py index 833cd7e9a..41205daf6 100644 --- a/grudge/discretization.py +++ b/grudge/discretization.py @@ -114,7 +114,7 @@ def __init__(self, array_context: ArrayContext, mesh: Mesh, self._setup_actx = array_context.clone() from meshmode.discretization.poly_element import \ - PolynomialWarpAndBlendGroupFactory + default_simplex_group_factory if discr_tag_to_group_factory is None: if order is None: @@ -123,7 +123,8 @@ def __init__(self, array_context: ArrayContext, mesh: Mesh, ) discr_tag_to_group_factory = { - DISCR_TAG_BASE: PolynomialWarpAndBlendGroupFactory(order=order)} + DISCR_TAG_BASE: default_simplex_group_factory( + base_dim=mesh.dim, order=order)} else: if order is not None: discr_tag_to_group_factory = discr_tag_to_group_factory.copy() @@ -134,7 +135,7 @@ def __init__(self, array_context: ArrayContext, mesh: Mesh, ) discr_tag_to_group_factory[DISCR_TAG_BASE] = \ - PolynomialWarpAndBlendGroupFactory(order=order) + default_simplex_group_factory(base_dim=mesh.dim, order=order) # Modal discr should always comes from the base discretization discr_tag_to_group_factory[DISCR_TAG_MODAL] = \ diff --git a/test/test_modal_connections.py b/test/test_modal_connections.py index 0eb0b67f4..e20764479 100644 --- a/test/test_modal_connections.py +++ b/test/test_modal_connections.py @@ -30,7 +30,7 @@ from meshmode.discretization.poly_element import ( # Simplex group factories InterpolatoryQuadratureSimplexGroupFactory, - PolynomialWarpAndBlendGroupFactory, + PolynomialWarpAndBlend2DRestrictingGroupFactory, PolynomialEquidistantSimplexGroupFactory, # Tensor product group factories LegendreGaussLobattoTensorProductGroupFactory, @@ -48,7 +48,7 @@ @pytest.mark.parametrize("nodal_group_factory", [ InterpolatoryQuadratureSimplexGroupFactory, - PolynomialWarpAndBlendGroupFactory, + PolynomialWarpAndBlend2DRestrictingGroupFactory, PolynomialEquidistantSimplexGroupFactory, LegendreGaussLobattoTensorProductGroupFactory, ] @@ -109,7 +109,8 @@ def f(x): dcoll = DiscretizationCollection( actx, mesh, discr_tag_to_group_factory={ - dof_desc.DISCR_TAG_BASE: PolynomialWarpAndBlendGroupFactory(order), + dof_desc.DISCR_TAG_BASE: + PolynomialWarpAndBlend2DRestrictingGroupFactory(order), dof_desc.DISCR_TAG_QUAD: QuadratureSimplexGroupFactory(2*order) } )