fem.gmsh.assign_ownership

fem.gmsh.assign_ownership(fields, topology, *, bar)

Tag every node with the patches that own it, by residual alone.

Per Gmsh surface entity, |f_p| is evaluated on its nodes for every patch; the patches whose worst node clears bar are the candidates, and the one with the smallest typical residual owns the surface. The maximum, not the median, is what separates a mesh from a spoiled one: an entity straddling a blend’s edge has most of its nodes hugging the neighbouring plane and a few peeling away, and judged by the median it would pass as that plane — the projection would then drag the peeling nodes onto the plane’s unbounded extension. Curve and point nodes inherit their bounding surfaces’ patches and keep those that vanish at the node itself, up to the entity’s codimension.

Parameters

Name Type Description Default
fields FieldTable The patch table (:func:patch_table). required
topology dict[str, Any] A :func:gmsh_topology result (positions possibly snapped). required
bar float \|f_patch\| above which a surface is not that patch’s. required

Returns

Name Type Description
dict[str, Any] owner_patches (n, 3), owner_arity (n,), blend_mask (n,) and the counts under stats.