Commit b6c37eb
committed
SurfaceCollection methods; parabolic dip in Surface.from_trace()
Add collection-level refinement_metric() and compute_nearest_fields()
to SurfaceCollection, reducing MeshVariable count from ~2N to ~4 for
N fault surfaces. This eliminates O(N²) DM rebuild costs and PETSc
field errors during mesh.adapt().
Add dip and dip_direction parameters to Surface.from_trace() for
parabolic fault geometry: vertical at surface, curving to specified
dip angle at maximum depth. Perpendicular direction accounts for
geographic coordinate scaling (latitude-dependent metric).
Extract helper functions (_profile_to_edge_lengths, _order_polyline,
_interpolate_trace, _depth_to_km, _compute_trace_perpendicular) for
reuse between Surface and SurfaceCollection methods.
Fix deprecated with mesh.access() pattern in Surface.refinement_metric().
Cherry-picked from feature/fault-system-workflow (surfaces.py only).
Underworld development team with AI support from Claude Code1 parent fd23f07 commit b6c37eb
1 file changed
+682
-21
lines changed
0 commit comments