geodynamics / aspect

A parallel, extensible finite element code to simulate convection in both 2D and 3D models.
https://aspect.geodynamics.org/
Other
217 stars 232 forks source link

Correctly compute stress for grain size reduction #5870

Closed jdannberg closed 3 weeks ago

jdannberg commented 3 weeks ago

The grain size material model now computes the stress that is used to calculate the grain size reduction rate with the viscosity that has been limited between its minimum and maximum given in the input file, rather than with the unlimited viscosity. This is more consistent, because the limited viscosity is the one we use to compute the strain rate (and stress is 2*viscosity_strain_rate). This updated implementation prevents artificial grain size reduction in regions with large viscosity.

To demonstrate, below is the output of the test case I added (in higher resolution). Top is the new version, bottom is current main. I used traction boundary conditions to make sure all grain size reduction comes from actual forces in the model (the issue gets worse when we prescribe the boundary velocity, because that means we might prescribe a strain rate even in regions with very high viscosity). The streak of low grain size within the lithosphere, where the strain rate is low and the viscosity is above the upper limit of 1e23 Pa s is gone in the new version.

limit_stress limit_stress_strain_rate limit_stress_viscosity

For new features/models or changes of existing features:

jdannberg commented 3 weeks ago

I have updated the grain size ridge test, which has exactly the same problem. Below are the results if I run that test for 10,000 years (rather than the 500 in the actual test). Top is this PR, bottom is the original. Note that since this is a test case, it is underresolved, and that causes the strange patches of low grain size at the base of the lithosphere that are visible in both images. ridge

gassmoeller commented 3 weeks ago

Could you reduce the test output size a bit? Otherwise this is ready.

jdannberg commented 3 weeks ago

I made the test case smaller.