diff --git a/examples/advection/surface.py b/examples/advection/surface.py index ef378cf541f8400b0537576f93e0bcb9aab26e3e..d528f5f3eee29366d9c963c3dbd5fe410e1819fa 100644 --- a/examples/advection/surface.py +++ b/examples/advection/surface.py @@ -136,7 +136,7 @@ def main(ctx_factory, dim=2, order=4, product_tag=None, visualize=False): else: raise ValueError("unsupported dimension") - quad_tag_to_group_factory = {} + discr_tag_to_group_factory = {} if product_tag == "none": product_tag = None else: @@ -146,16 +146,18 @@ def main(ctx_factory, dim=2, order=4, product_tag=None, visualize=False): PolynomialWarpAndBlendGroupFactory, \ QuadratureSimplexGroupFactory - quad_tag_to_group_factory[dof_desc.DISCR_TAG_BASE] = \ - PolynomialWarpAndBlendGroupFactory(order) + discr_tag_to_group_factory[dof_desc.DISCR_TAG_BASE] = \ + PolynomialWarpAndBlendGroupFactory(order) if product_tag: - quad_tag_to_group_factory[product_tag] = \ - QuadratureSimplexGroupFactory(order=4*order) + discr_tag_to_group_factory[product_tag] = \ + QuadratureSimplexGroupFactory(order=4*order) from grudge import DiscretizationCollection - discr = DiscretizationCollection(actx, mesh, - quad_tag_to_group_factory=quad_tag_to_group_factory) + discr = DiscretizationCollection( + actx, mesh, + discr_tag_to_group_factory=discr_tag_to_group_factory + ) volume_discr = discr.discr_from_dd(dof_desc.DD_VOLUME) logger.info("ndofs: %d", volume_discr.ndofs) diff --git a/examples/advection/var-velocity.py b/examples/advection/var-velocity.py index b99e21ad5056ed466524f9c9eafeb4f5ab0c756e..5843b99318cb65de77e53e9a78669a2c001dee2c 100644 --- a/examples/advection/var-velocity.py +++ b/examples/advection/var-velocity.py @@ -141,15 +141,17 @@ def main(ctx_factory, dim=2, order=4, product_tag=None, visualize=False): QuadratureSimplexGroupFactory if product_tag: - quad_tag_to_group_factory = { - product_tag: QuadratureSimplexGroupFactory(order=4*order) - } + discr_tag_to_group_factory = { + product_tag: QuadratureSimplexGroupFactory(order=4*order) + } else: - quad_tag_to_group_factory = {} + discr_tag_to_group_factory = {} from grudge import DiscretizationCollection - discr = DiscretizationCollection(actx, mesh, order=order, - quad_tag_to_group_factory=quad_tag_to_group_factory) + discr = DiscretizationCollection( + actx, mesh, order=order, + discr_tag_to_group_factory=discr_tag_to_group_factory + ) # }}} diff --git a/examples/wave/wave-op-var-velocity.py b/examples/wave/wave-op-var-velocity.py index 3ba8d96c7223660c5ab2155141d5d04ae377fec7..5ac1233d34e59f6fc7073307c4adb2ff3bb2c494 100644 --- a/examples/wave/wave-op-var-velocity.py +++ b/examples/wave/wave-op-var-velocity.py @@ -161,11 +161,13 @@ def main(): from meshmode.discretization.poly_element import \ QuadratureSimplexGroupFactory, \ PolynomialWarpAndBlendGroupFactory - dcoll = DiscretizationCollection(actx, mesh, - quad_tag_to_group_factory={ - DISCR_TAG_BASE: PolynomialWarpAndBlendGroupFactory(order), - DISCR_TAG_QUAD: QuadratureSimplexGroupFactory(3*order), - }) + dcoll = DiscretizationCollection( + actx, mesh, + discr_tag_to_group_factory={ + DISCR_TAG_BASE: PolynomialWarpAndBlendGroupFactory(order), + DISCR_TAG_QUAD: QuadratureSimplexGroupFactory(3*order), + } + ) # bounded above by 1 c = 0.2 + 0.8*bump(actx, dcoll, center=np.zeros(3), width=0.5) diff --git a/grudge/discretization.py b/grudge/discretization.py index 445d8abba4f71e313627694b62ff5b6376dafc03..2b86c994ec8fa58728f1bb0ef4df255f62549e20 100644 --- a/grudge/discretization.py +++ b/grudge/discretization.py @@ -142,6 +142,16 @@ class DiscretizationCollection: self.mpi_communicator = mpi_communicator + @property + def quad_tag_to_group_factory(self): + warn("`DiscretizationCollection.quad_tag_to_group_factory` " + "is deprecated and will go away in 2022. Use " + "`DiscretizationCollection.discr_tag_to_group_factory` " + "instead.", + DeprecationWarning, stacklevel=2) + + return self.discr_tag_to_group_factory + def get_management_rank_index(self): return 0 diff --git a/grudge/execution.py b/grudge/execution.py index a0624479210f84b72ccbec58b9372e6282025211..44721932737712758606ee455649c42e7c800f35 100644 --- a/grudge/execution.py +++ b/grudge/execution.py @@ -719,7 +719,7 @@ def process_sym_operator(dcoll, sym_operator, post_bind_mapper=None, dumper=None dumper("before-qcheck", sym_operator) sym_operator = mappers.QuadratureCheckerAndRemover( - dcoll.quad_tag_to_group_factory)(sym_operator) + dcoll.discr_tag_to_group_factory)(sym_operator) # Work around https://github.com/numpy/numpy/issues/9438 # diff --git a/grudge/symbolic/mappers/__init__.py b/grudge/symbolic/mappers/__init__.py index 3ccbaea7c65f82e9057b1f362cc0c7e541ee8c22..84c11feb883db70b63bcac293c6b672c6e1af605 100644 --- a/grudge/symbolic/mappers/__init__.py +++ b/grudge/symbolic/mappers/__init__.py @@ -868,10 +868,10 @@ class QuadratureCheckerAndRemover(CSECachingMapperMixin, IdentityMapper): """Checks whether all quadratu """ - def __init__(self, quad_tag_to_group_factory): + def __init__(self, discr_tag_to_group_factory): IdentityMapper.__init__(self) CSECachingMapperMixin.__init__(self) - self.quad_tag_to_group_factory = quad_tag_to_group_factory + self.discr_tag_to_group_factory = discr_tag_to_group_factory map_common_subexpression_uncached = \ IdentityMapper.map_common_subexpression @@ -879,11 +879,11 @@ class QuadratureCheckerAndRemover(CSECachingMapperMixin, IdentityMapper): def _process_dd(self, dd, location_descr): if dd.discretization_tag is not dof_desc.DISCR_TAG_BASE: - if dd.discretization_tag not in self.quad_tag_to_group_factory: + if dd.discretization_tag not in self.discr_tag_to_group_factory: raise ValueError("found unknown quadrature tag '%s' in '%s'" % (dd.discretization_tag, location_descr)) - grp_factory = self.quad_tag_to_group_factory[dd.discretization_tag] + grp_factory = self.discr_tag_to_group_factory[dd.discretization_tag] if grp_factory is None: dd = dof_desc.DOFDesc(dd.domain_tag, dof_desc.DISCR_TAG_BASE) diff --git a/test/test_grudge.py b/test/test_grudge.py index 8aa02be6cba2fafdffc19ccb03285b756a90be9d..f246a895c2bf2b1229986c52c152d405aebf68b4 100644 --- a/test/test_grudge.py +++ b/test/test_grudge.py @@ -93,9 +93,9 @@ def test_inverse_metric(actx_factory, dim): # {{{ mass operator trig integration @pytest.mark.parametrize("ambient_dim", [1, 2, 3]) -@pytest.mark.parametrize("quad_tag", [dof_desc.DISCR_TAG_BASE, - dof_desc.DISCR_TAG_QUAD]) -def test_mass_mat_trig(actx_factory, ambient_dim, quad_tag): +@pytest.mark.parametrize("discr_tag", [dof_desc.DISCR_TAG_BASE, + dof_desc.DISCR_TAG_QUAD]) +def test_mass_mat_trig(actx_factory, ambient_dim, discr_tag): """Check the integral of some trig functions on an interval using the mass matrix. """ @@ -109,19 +109,21 @@ def test_mass_mat_trig(actx_factory, ambient_dim, quad_tag): true_integral = 13*np.pi/2 * (b - a)**(ambient_dim - 1) from meshmode.discretization.poly_element import QuadratureSimplexGroupFactory - dd_quad = dof_desc.DOFDesc(dof_desc.DTAG_VOLUME_ALL, quad_tag) - if quad_tag is dof_desc.DISCR_TAG_BASE: - quad_tag_to_group_factory = {} + dd_quad = dof_desc.DOFDesc(dof_desc.DTAG_VOLUME_ALL, discr_tag) + if discr_tag is dof_desc.DISCR_TAG_BASE: + discr_tag_to_group_factory = {} else: - quad_tag_to_group_factory = { - quad_tag: QuadratureSimplexGroupFactory(order=2*order) - } + discr_tag_to_group_factory = { + discr_tag: QuadratureSimplexGroupFactory(order=2*order) + } mesh = mgen.generate_regular_rect_mesh( a=(a,)*ambient_dim, b=(b,)*ambient_dim, nelements_per_axis=(nel_1d,)*ambient_dim, order=1) - discr = DiscretizationCollection(actx, mesh, order=order, - quad_tag_to_group_factory=quad_tag_to_group_factory) + discr = DiscretizationCollection( + actx, mesh, order=order, + discr_tag_to_group_factory=discr_tag_to_group_factory + ) def _get_variables_on(dd): sym_f = sym.var("f", dd=dd) @@ -148,7 +150,7 @@ def test_mass_mat_trig(actx_factory, ambient_dim, quad_tag): err_2 = abs(num_integral_2 - true_integral) assert err_2 < 1.0e-9, err_2 - if quad_tag is dof_desc.DISCR_TAG_BASE: + if discr_tag is dof_desc.DISCR_TAG_BASE: # NOTE: `integral` always makes a square mass matrix and # `QuadratureSimplexGroupFactory` does not have a `mass_matrix` method. num_integral_3 = bind(discr, @@ -569,10 +571,12 @@ def test_surface_divergence_theorem(actx_factory, mesh_name, visualize=False): from meshmode.discretization.poly_element import \ QuadratureSimplexGroupFactory - discr = DiscretizationCollection(actx, mesh, order=builder.order, - quad_tag_to_group_factory={ + discr = DiscretizationCollection( + actx, mesh, order=builder.order, + discr_tag_to_group_factory={ "product": QuadratureSimplexGroupFactory(2 * builder.order) - }) + } + ) volume = discr.discr_from_dd(dof_desc.DD_VOLUME) logger.info("ndofs: %d", volume.ndofs) @@ -911,14 +915,16 @@ def test_improvement_quadrature(actx_factory, order): order=order) if use_quad: - quad_tag_to_group_factory = { + discr_tag_to_group_factory = { "product": QuadratureSimplexGroupFactory(order=4*order) - } + } else: - quad_tag_to_group_factory = {"product": None} + discr_tag_to_group_factory = {"product": None} - discr = DiscretizationCollection(actx, mesh, order=order, - quad_tag_to_group_factory=quad_tag_to_group_factory) + discr = DiscretizationCollection( + actx, mesh, order=order, + discr_tag_to_group_factory=discr_tag_to_group_factory + ) bound_op = bind(discr, op.sym_operator()) fields = bind(discr, gaussian_mode())(actx, t=0) diff --git a/test/test_modal_connections.py b/test/test_modal_connections.py index 9d6b7fbd6780208fc8a0744121ec3dd9a596f429..eeb9a9782f71ffc99cc41093ed84296a3155f599 100644 --- a/test/test_modal_connections.py +++ b/test/test_modal_connections.py @@ -66,7 +66,7 @@ def test_inverse_modal_connections(actx_factory, nodal_group_factory): dcoll = DiscretizationCollection( actx, mesh, - quad_tag_to_group_factory={ + discr_tag_to_group_factory={ dof_desc.DISCR_TAG_BASE: nodal_group_factory(order) } ) @@ -106,7 +106,7 @@ def test_inverse_modal_connections_quadgrid(actx_factory): dcoll = DiscretizationCollection( actx, mesh, - quad_tag_to_group_factory={ + discr_tag_to_group_factory={ dof_desc.DISCR_TAG_BASE: PolynomialWarpAndBlendGroupFactory(order), dof_desc.DISCR_TAG_QUAD: QuadratureSimplexGroupFactory(2*order) }