First of the biweekly status updates. This period went into hardening DynEarthSol’s remeshing pipeline, collected in PR #74 — eighteen self-contained commits extracted from a long-running research branch, benchmarked on the examples/rifting-2d setup.

DynEarthSol development

Stress remap at remeshing:

  • Preserve free-surface element stress through remeshing: pin the free-surface condition (σzz = 0, zero shear) at top nodes before the SPR average, with a nearest-neighbor fallback for surface elements left in spurious tension.
  • Topography-corrected reference pressure in SPR remeshing: center the pressure at the depth below the current surface instead of a fixed datum — rebuilt each remesh, works in 2-D and 3-D, unchanged on a flat surface.
  • Include out-of-plane σyy in the surface-stress fallback so a surface element reverts atomically instead of mixing reverted in-plane stress with raw-SPR σyy.
  • New Deborah-number-weighted blend of NN and SPR stress remap (mesh.remesh_deborah_blend, on by default): per element σ = w·σNN + (1−w)·σSPR with w a smoothstep in the local Deborah number.

Remeshing robustness and mesh quality:

  • max_steiner_factor parameter to control Steiner point insertion during remeshing.
  • Boundary point deletion now merges segments to prevent mesh corruption.
  • True breadth-first search for the enclosing element in barycentric interpolation, with the BFS capped at three layers.

GPU and restart correctness:

  • Fixed 2-D regular mesh creation on GPU and device data management for zmin in apply_vbcs.
  • Restart now reads plastic strain-rate, and BinaryOutput/BinaryInput gained scalar read/write functions for state consistency.

Up next

  • Get PR #74 through review and merged.
  • Back to the research branch the remeshing work was extracted from.