Skip to content

Commit 287f4c1

Browse files
alexfiklinducer
authored andcommitted
mesh.generation: port away from simplex_onb
1 parent 39fc1a4 commit 287f4c1

1 file changed

Lines changed: 9 additions & 4 deletions

File tree

meshmode/mesh/generation.py

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1622,10 +1622,10 @@ def warp_and_refine_until_resolved(
16221622
16231623
.. versionadded:: 2018.1
16241624
"""
1625-
from modepy.matrices import vandermonde
1625+
import modepy as mp
16261626
from modepy.modal_decay import simplex_interp_error_coefficient_estimator_matrix
1627-
from modepy.modes import simplex_onb
16281627

1628+
from meshmode.mesh import SimplexElementGroup
16291629
from meshmode.mesh.refinement import RefinerWithoutAdjacency
16301630

16311631
if isinstance(unwarped_mesh_or_refiner, RefinerWithoutAdjacency):
@@ -1657,14 +1657,19 @@ def warp_and_refine_until_resolved(
16571657

16581658
for base_element_nr, egrp in zip(
16591659
warped_mesh.base_element_nrs, warped_mesh.groups):
1660+
if not isinstance(egrp, SimplexElementGroup):
1661+
raise TypeError(
1662+
f"Unsupported element group type: '{type(egrp).__name__}'")
1663+
16601664
dim, _ = egrp.unit_nodes.shape
16611665

16621666
interp_err_est_mat = simplex_interp_error_coefficient_estimator_matrix(
16631667
egrp.unit_nodes, egrp.order,
16641668
n_tail_orders=1 if warped_mesh.dim > 1 else 2)
16651669

1666-
vdm_inv = la.inv(
1667-
vandermonde(simplex_onb(dim, egrp.order), egrp.unit_nodes))
1670+
basis = mp.orthonormal_basis_for_space(
1671+
egrp._modepy_space, egrp._modepy_shape)
1672+
vdm_inv = la.inv(mp.vandermonde(basis.functions, egrp.unit_nodes))
16681673

16691674
mapping_coeffs = np.einsum("ij,dej->dei", vdm_inv, egrp.nodes)
16701675
mapping_norm_2 = np.sqrt(np.sum(mapping_coeffs**2, axis=-1))

0 commit comments

Comments
 (0)