geodynamics / aspect

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

[WIP] Add prescribed dilation to visco plastic #5803

Open naliboff opened 4 months ago

naliboff commented 4 months ago

Supersedes #3119, but is only open now for discussion and testing.

@cedrict @tjhei @bobmyhill - The PR contains a working example (it runs).

The code can be cleaned up quite a bit (see commented ToDo), and one question to consider is whether we want to calculation the dilation rate from an average friction angle across compositions (current approach) or calculate a dilation rate for each composition and then average them (would require refactoring).

For some reason the dilation values are not being written out as a visualization field (they should be when selecting named additional outputs), but I probably just forgot to enable something.

Time to start testing :)

For all pull requests:

For new features/models or changes of existing features:

naliboff commented 4 months ago

@tjhei - I've updated the PR to (1) remove the benchmark prm, (2) add a test case based off of the benchmark prm, (3) improve the code structure a bit where we calculate the dilation rate.

The convergence behavior is still poor for the cases with prescribed dilation turned on, but my recollections is that @cedrict also ran into these issues as well with his models? For ASPECT, a minimum resolution (5 refinement levels for the test case) is required to get to 1e-3 for standard picard iterations (defect correction does equally poorly).

The plot below shows the results for plastic dilation turned off (left column) versus turned on (right column) for different global refinement levels. The model with plastic dilation turned on and a refinement level of 4 has not yet converged. However, the plastic dilation is still clearly producing relatively resolution-independent shear band angles.

At this stage, it is an experimental feature that will require additional (lots?) of work for robust usage. Do we want to merge this features in a piecemeal fashion, or all at once when we are confident it works robustly?

plastic_dilation_comparison