Symptom: with hypoelasticity + cont_damage (HLL — the only legal hypoelastic solver), the right interface state's shear modulus is scaled by the LEFT cell's damage value.
Mechanism: every right-state load in the Riemann solvers uses the +1-offset cell — except this one: the damage scaling reads qR_prim_rsx_vf(SF(''), eqn_idx%damage) with no offset (post-split: src/simulation/m_riemann_solver_hll.fpp damage load; on master inside s_hll_riemann_solver's elastic-energy block). damage_L and damage_R therefore read the same cell.
Introduced: with the continuum damage model, #816 (068da2c05, 2025-04-14, @ChrisZYJ). Tagging @ChrisZYJ for context — possibly intentional (damage as cell-centered non-Riemann quantity?), but it contradicts every neighboring load.
Status: deliberately preserved bit-for-bit by the Phase-3 refactoring (behavior changes need their own ruling). Needs an author/maintainer decision; the fix is a one-character offset if unintentional.
Symptom: with
hypoelasticity+cont_damage(HLL — the only legal hypoelastic solver), the right interface state's shear modulus is scaled by the LEFT cell's damage value.Mechanism: every right-state load in the Riemann solvers uses the
+1-offset cell — except this one: the damage scaling readsqR_prim_rsx_vf(SF(''), eqn_idx%damage)with no offset (post-split:src/simulation/m_riemann_solver_hll.fppdamage load; on master insides_hll_riemann_solver's elastic-energy block).damage_Landdamage_Rtherefore read the same cell.Introduced: with the continuum damage model, #816 (
068da2c05, 2025-04-14, @ChrisZYJ). Tagging @ChrisZYJ for context — possibly intentional (damage as cell-centered non-Riemann quantity?), but it contradicts every neighboring load.Status: deliberately preserved bit-for-bit by the Phase-3 refactoring (behavior changes need their own ruling). Needs an author/maintainer decision; the fix is a one-character offset if unintentional.