aspect
aspect copied to clipboard
[WIP] Update strain rheology
This PR involves changes to the internal logic and structure of the strain rheology module, and also add a new test. It is directly related to the discussion and changes in PRs #4236 (open) and #4271 (closed). This was originally intended to be just an update to #4271, after discussion with @erinheilman it turns out some code restructuring was needed.
In the first commit the following changes are applied to strain_rheology
:
- Checks for the type of active deformation (yielding or not) is removed from the reaction term updates
- Specific variables for each type of strain (plastic, viscous, total) are calculated using the aforementioned checks for yielding.
- Temperature-dependent strain healing is applied independent of the deformation state, which is the correct thing to do (e.g., follows previous studies). The new code structure will allow different strain healing mechanisms, when added, to use a different approach if warranted.
The new test provides a straightforward way to check wether strain healing is working as intended, with the output compared against an analytical solution. Given the number of changes and new name, I thought it would be easier to add a new test rather than rename the current ones (they can be deleted later).
At this point a review would be helpful to see if everyone agrees with the new code and test structure. If the group approves of these changes, I will add additional tests.
- [X] I have followed the instructions for indenting my code.
- [X] I have tested my new feature locally to ensure it is correct.
- [X] I have created a testcase for the new feature/benchmark in the tests/ directory.
- [ ] I have added a changelog entry in the doc/modules/changes directory that will inform other users of my change.