Skip to content

[BUGFIX] Assumption that Ttop of Lineartemp and HalfspaceCoolingTemp is at z=0km#206

Open
ajvanamerongen wants to merge 4 commits into
JuliaGeodynamics:mainfrom
ajvanamerongen:bugfix/assumed_zero_height_tempsetup
Open

[BUGFIX] Assumption that Ttop of Lineartemp and HalfspaceCoolingTemp is at z=0km#206
ajvanamerongen wants to merge 4 commits into
JuliaGeodynamics:mainfrom
ajvanamerongen:bugfix/assumed_zero_height_tempsetup

Conversation

@ajvanamerongen
Copy link
Copy Markdown

Whats the purpose of this PR?

  • Bug fix
  • New feature
  • Documentation update
  • Other, please explain

Describe it in more detail below:
The temperature of LinearTemp and HalfspaceCoolingTemp are bugged as they assume that Ttop coincides with z=0, rather than z=z_top_polygon. This results in a shift of temperatures.

Now: T=gradT * z + T0 whereas it should be T=gradT(z - z0) + T0.

A polygon starting at 10 km depth with a thermal gradient of 10C/km and 0C top temperature will have 100C as top temperature rather than 0C.
A representative example of the issue and fix are shown in the two figures below.

Checklist

  • The PR title is descriptive and starts with the appropriate tag: [BUGFIX], [ADDITION], [DOC], etc.
  • New tests (either assessing the correct behaviour of new internal functions or the correctness of a tutorial) were added, or old tests were updated
  • Affected tutorials have also been updated
  • [?] The new feature was added in a way that does not break public API
  • New documentation related to the new feature was added
  • The new code follows the contributor guidelines, in particular the Runic Style
Screenshot 2026-06-02 at 16 12 11

Figure 1.
A subducting slab (left) described as a polygon from z=-12.5 km, with a halfspace cooling thermal profile with Tsurface=0 and thermal age of 80Myr.
A continental plate (right) described as a polygon from z=-12.5 / -8 km (the tapering sedimentary wedge in yellow is part of the plate). It has a linear geotherm from the top at -8 km to -112.5 km of ~ 10C/km.
The white isotherms are 100C, 150C, 350C, 450C and 900C. The 100C and 150C isotherms are practically at the surface although they should be at least several km's lower.

image

Figure 2.
The improved thermal model using the bugfix. All isotherms are deeper and the 900C isotherm is below the model domain of 80 km (appropriate for a realistic gradient above 10C/km).

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