geoprior.models.subsidence.stability#

Numerical stability helpers for subsidence physics workflows.

Functions

clamp_physics_logits(K_logits, Ss_logits, ...)

(Fix A) Clamps raw logits to prevent exponential explosion/underflow in the physics layer.

compute_physics_warmup_gate(step_tensor[, ...])

(Fix C) Returns a scalar 0.0 -> 1.0 multiplier based on global step.

filter_nan_gradients(grads)

sanitize_scales(scales[, min_scale, max_scale])

(Fix B) Replaces NaN/Inf values in dynamic scaling factors with 1.0 and clamps extreme values.

geoprior.models.subsidence.stability.clamp_physics_logits(K_logits, Ss_logits, dlogtau_logits, Q_logits=None, clip_min=-15.0, clip_max=15.0)[source]#

(Fix A) Clamps raw logits to prevent exponential explosion/underflow in the physics layer.

Range [-15, 15] corresponds to exp(-15) ~ 3e-7 and exp(15) ~ 3e6.

geoprior.models.subsidence.stability.sanitize_scales(scales, min_scale=1e-06, max_scale=1000000.0)[source]#

(Fix B) Replaces NaN/Inf values in dynamic scaling factors with 1.0 and clamps extreme values.

geoprior.models.subsidence.stability.compute_physics_warmup_gate(step_tensor, warmup_steps=500, ramp_steps=500)[source]#

(Fix C) Returns a scalar 0.0 -> 1.0 multiplier based on global step.

Logic:
  • step < warmup: 0.0

  • warmup < step < warmup+ramp: linear ramp 0->1

  • step > warmup+ramp: 1.0

geoprior.models.subsidence.stability.filter_nan_gradients(grads)[source]#