We should add shear heating term into the energy equation in update_temperature(). However, we need to decide how to deal with elastic strain.
The elastic strain is reversible and would not generate shear heating. However, the code doesn't differentiate elastic vs. non-elastic strain. It only has total strain and strain rate. We have two options:
- Ignore the distinction. Assuming elastic strain is small and doesn't contribute much to shear heating. Use the total strain rate to compute shear heating. This is also the approach taken by
geoflac.
- Compute the elastic strain rate and remove its contribution from shear heating. The computation is like the followings:
ds is the incremental stress tensor of this time step, and edot is the strain rate tensor
- Compute
de_elastic from ds, based on linear elasticity
edot_elastic = de_elastic / dt
edot_nonelastic = edot - edot_elastic
- Shear heating is the total stress tensor contracted with
edot_nonelastic
I am not sure which option to take. Any opinions?
We should add shear heating term into the energy equation in
update_temperature(). However, we need to decide how to deal with elastic strain.The elastic strain is reversible and would not generate shear heating. However, the code doesn't differentiate elastic vs. non-elastic strain. It only has total strain and strain rate. We have two options:
geoflac.dsis the incremental stress tensor of this time step, andedotis the strain rate tensorde_elasticfromds, based on linear elasticityedot_elastic = de_elastic / dtedot_nonelastic = edot - edot_elasticedot_nonelasticI am not sure which option to take. Any opinions?