@@ -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