Skip to content
Snippets Groups Projects

Fix 1D element refinement

Merged Matt Wala requested to merge 1d-refinement-fixes-try2 into master
2 files
+ 12
5
Compare changes
  • Side-by-side
  • Inline
Files
2
@@ -80,7 +80,7 @@ def check_nodal_adj_against_geometry(mesh, tol=1e-12):
nearby_origin_vertex = mesh.vertices[
:, nearby_grp.vertex_indices[nearby_iel][0]] # noqa
transformation = np.empty(
(mesh.ambient_dim, mesh.ambient_dim))
(len(mesh.vertices), nvertices_per_element-1))
vertex_transformed = vertex - nearby_origin_vertex
for inearby_vertex_index, nearby_vertex_index in enumerate(
@@ -88,10 +88,17 @@ def check_nodal_adj_against_geometry(mesh, tol=1e-12):
nearby_vertex = mesh.vertices[:, nearby_vertex_index]
transformation[:, inearby_vertex_index] = \
nearby_vertex - nearby_origin_vertex
bary_coord = np.linalg.solve(transformation, vertex_transformed)
bary_coord, residual = \
np.linalg.lstsq(transformation, vertex_transformed)[0:2]
is_in_element_span = (
residual.size == 0 or
np.linalg.norm(vertex_transformed) == 0 or
residual / np.linalg.norm(vertex_transformed) <= tol)
is_connected = (
np.sum(bary_coord) <= 1+tol
is_in_element_span
and np.sum(bary_coord) <= 1+tol
and (bary_coord >= -tol).all())
el1 = group_and_iel_to_global_iel(nearby_igrp, nearby_iel)
el2 = group_and_iel_to_global_iel(igrp, iel_grp)
Loading