3333 [PytestPyOpenCLArrayContextFactory ,
3434 PytestPytatoPyOpenCLArrayContextFactory ])
3535
36- from grudge import DiscretizationCollection
36+ from grudge import make_discretization_collection
3737
3838import grudge .op as op
3939
4747
4848
4949@pytest .mark .parametrize ("name" , ["interval" , "box2d" , "box3d" ])
50- def test_geometric_factors_regular_refinement (actx_factory , name ):
50+ @pytest .mark .parametrize ("tpe" , [False , True ])
51+ def test_geometric_factors_regular_refinement (actx_factory , name , tpe ):
5152 from grudge .dt_utils import dt_geometric_factors
5253
5354 actx = actx_factory ()
5455
5556 # {{{ cases
5657
58+ from meshmode .mesh import TensorProductElementGroup
59+ group_cls = TensorProductElementGroup if tpe else None
60+
5761 if name == "interval" :
5862 from mesh_data import BoxMeshBuilder
59- builder = BoxMeshBuilder (ambient_dim = 1 )
63+ builder = BoxMeshBuilder (ambient_dim = 1 , group_cls = group_cls )
6064 elif name == "box2d" :
6165 from mesh_data import BoxMeshBuilder
62- builder = BoxMeshBuilder (ambient_dim = 2 )
66+ builder = BoxMeshBuilder (ambient_dim = 2 , group_cls = group_cls )
6367 elif name == "box3d" :
6468 from mesh_data import BoxMeshBuilder
65- builder = BoxMeshBuilder (ambient_dim = 3 )
69+ builder = BoxMeshBuilder (ambient_dim = 3 , group_cls = group_cls )
6670 else :
6771 raise ValueError ("unknown geometry name: %s" % name )
6872
@@ -71,7 +75,7 @@ def test_geometric_factors_regular_refinement(actx_factory, name):
7175 min_factors = []
7276 for resolution in builder .resolutions :
7377 mesh = builder .get_mesh (resolution , builder .mesh_order )
74- dcoll = DiscretizationCollection (actx , mesh , order = builder .order )
78+ dcoll = make_discretization_collection (actx , mesh , order = builder .order )
7579 min_factors .append (
7680 actx .to_numpy (
7781 op .nodal_min (dcoll , "vol" , actx .thaw (dt_geometric_factors (dcoll ))))
@@ -85,7 +89,7 @@ def test_geometric_factors_regular_refinement(actx_factory, name):
8589
8690 # Make sure it works with empty meshes
8791 mesh = builder .get_mesh (0 , builder .mesh_order )
88- dcoll = DiscretizationCollection (actx , mesh , order = builder .order )
92+ dcoll = make_discretization_collection (actx , mesh , order = builder .order )
8993 factors = actx .thaw (dt_geometric_factors (dcoll )) # noqa: F841
9094
9195
@@ -115,7 +119,7 @@ def test_non_geometric_factors(actx_factory, name):
115119 degrees = list (range (1 , 8 ))
116120 for degree in degrees :
117121 mesh = builder .get_mesh (1 , degree )
118- dcoll = DiscretizationCollection (actx , mesh , order = degree )
122+ dcoll = make_discretization_collection (actx , mesh , order = degree )
119123 factors .append (min (dt_non_geometric_factors (dcoll )))
120124
121125 # Crude estimate, factors should behave like 1/N**2
@@ -134,7 +138,7 @@ def test_build_jacobian(actx_factory):
134138 mesh = mgen .generate_regular_rect_mesh (a = [0 ], b = [1 ], nelements_per_axis = (3 ,))
135139 assert mesh .dim == 1
136140
137- dcoll = DiscretizationCollection (actx , mesh , order = 1 )
141+ dcoll = make_discretization_collection (actx , mesh , order = 1 )
138142
139143 def rhs (x ):
140144 return 3 * x ** 2 + 2 * x + 5
@@ -151,19 +155,27 @@ def rhs(x):
151155
152156@pytest .mark .parametrize ("dim" , [1 , 2 ])
153157@pytest .mark .parametrize ("degree" , [2 , 4 ])
154- def test_wave_dt_estimate (actx_factory , dim , degree , visualize = False ):
158+ @pytest .mark .parametrize ("tpe" , [False , True ])
159+ def test_wave_dt_estimate (actx_factory , dim , degree , tpe , visualize = False ):
155160 actx = actx_factory ()
156161
162+ # {{{ cases
163+
164+ from meshmode .mesh import TensorProductElementGroup
165+ group_cls = TensorProductElementGroup if tpe else None
166+
157167 import meshmode .mesh .generation as mgen
158168
159169 a = [0 , 0 , 0 ]
160170 b = [1 , 1 , 1 ]
161171 mesh = mgen .generate_regular_rect_mesh (
162172 a = a [:dim ], b = b [:dim ],
163- nelements_per_axis = (3 ,)* dim )
173+ nelements_per_axis = (3 ,)* dim ,
174+ group_cls = group_cls )
175+
164176 assert mesh .dim == dim
165177
166- dcoll = DiscretizationCollection (actx , mesh , order = degree )
178+ dcoll = make_discretization_collection (actx , mesh , order = degree )
167179
168180 from grudge .models .wave import WeakWaveOperator
169181 wave_op = WeakWaveOperator (dcoll , c = 1 )
0 commit comments