Skip to content

Commit b6c37eb

Browse files
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 Code
1 parent fd23f07 commit b6c37eb

File tree

1 file changed

+682
-21
lines changed

1 file changed

+682
-21
lines changed

0 commit comments

Comments
 (0)