Skip to content

Use current-surface depth for adiabatic pressure in visco-plastic rheology - #2

Open
Minerallo wants to merge 2 commits into
current-surface-depth-infrastructurefrom
fix-adiabatic-plasticity-current-surface-depth
Open

Minerallo wants to merge 2 commits into
current-surface-depth-infrastructurefrom
fix-adiabatic-plasticity-current-surface-depth

Conversation

@Minerallo

@Minerallo Minerallo commented Jul 26, 2026 •

Copy link
Copy Markdown
Owner

Hi everyone,

I continue on PR#7150, which added a way to calculate depth below the deformed
mesh surface at every timestep.

The visco-plastic model can use adiabatic pressure for plastic yielding and
for viscous creep. It currently evaluates this pressure using the original
geometry surface. With a free surface, this can make a trench that moved 6 km
downward behave as if it were buried below 6 km of rock. This makes the yield
stress too high and also changes pressure-dependent creep viscosity.

This change evaluates the adiabatic pressure using depth below the current
surface when mesh deformation is enabled. It is used wherever the
visco-plastic model requests adiabatic pressure: plastic yielding, diffusion
creep, dislocation creep, Peierls creep, and Frank-Kamenetskii viscosity.

I also added a helper function
AdiabaticConditions::pressure_at_depth(), which evaluates the
adiabatic profile at the representative geometry point for a given depth so it get less repetitive.

The test moves the right half of a 2D box surface downward by 6 km. Both
the undeformed and lowered halves remain at the expected zero-pressure yield
stress of 0.985 MPa and the same diffusion-creep viscosity. The test also
verifies that the pressure used by plasticity is 0 MPa on both parts of the
current surface. Without the correction, the lowered half reaches a yield
stress of about 35.7 MPa and its pressure-dependent creep viscosity is also
incorrect.

I also tested 6 km trenches in Cartesian and spherical geometries in both 2D
and 3D (image left). In every case, the corrected yield stress remains at the expected
surface value and diffusion viscosity matches the undeformed surface.

adiabatic_pressure_free_surface

For the test :

Geometry Original trench value Corrected trench value
Cartesian 2D 35.72 MPa 0.985 MPa
Cartesian 3D 38.99 MPa 1.075 MPa
Spherical 2D 35.72 MPa 0.985 MPa
Spherical 3D 38.99 MPa 1.075 MPa

The diffusion viscosity at the current surface is 9.446440e17 Pa s in all
four models, including at the bottom of each 6 km trench.

For all pull requests:

If yes, please describe your usage of AI models in the creation of this pull request

For new features/models or changes of existing features:

  • I have tested my new feature locally to ensure it is correct.
  • 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.

Cheers,

Michael

@Minerallo
Minerallo force-pushed the fix-adiabatic-plasticity-current-surface-depth branch from 603ad82 to 14481a1 Compare July 26, 2026 22:47
@Minerallo Minerallo changed the title Use current-surface depth for adiabatic pressure in plasticity Use current-surface depth for adiabatic pressure in visco-plastic rheology Jul 26, 2026
@Minerallo Minerallo closed this Jul 26, 2026
@Minerallo Minerallo reopened this Jul 26, 2026
@Minerallo
Minerallo marked this pull request as ready for review July 26, 2026 22:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant