Implement phase-change strain in new solid mechanics
The new solid mechanics package neglects phase change strain (eq 6.6 in the Physics & Algorithms manual). Legacy solid mechanics confusingly lumped this calculation in with the thermal strain, which was incremented by a delta every time step, leaving the strain_pc
variable empty for the entire simulation, so it got missed in the refactor.
Fixing this is fairly easy, but requires a few steps:
-
Tidy up the linear CTE calculation for thermal strain. Right now it's going through some exponentiation and logarithms just to compute e_pc + dT * cte
. -
Add necessary "initial phase" data to the restart file. -
Route the phase change strain to the output file. There's already a field there, it's just 0. -
Add a new test, probably a new version of the tm-pc test.
Note: In the legacy tm-pc test, there are a couple magic values for "pcstrain", and a comment which cryptically suggests the thermal strain is "a simple explicit integration of a nonlinear equation" (but doesn't say what equation is integrated). It appears the pcstrain is just the result of P&A eq 6.6 with the tm_ref_density
s, and the thermal strain is the straightforward evaluation of (T-T0)*CTE
.