Skip to content

global_miscibility with the spider structure passes zero solvus values to the atmosphere #900

Description

@timlichtenberg

interior_struct.zalmoxis.global_miscibility = true is rejected by valid_zalmoxis for the zalmoxis structure, but valid_zalmoxis returns early for interior_struct.module = "spider", so the same setting is accepted there (test_spider_module_skips_the_gate asserts that). That makes the spider structure the only accepted config in which the solvus override in the main loop runs, and it is also the config in which nothing sets the solvus values.

The override in proteus.py (around line 1204) checks only that R_solvus is in hf_row and that R_solvus < R_int. ZeroHelpfileRow initialises R_solvus, T_solvus and P_solvus to 0, and only the Zalmoxis structure writes R_solvus. With the spider structure, 0 passes the check, and the atmosphere is called with T_surf = T_magma = T_solvus = 0, P_surf = 0 and R_int = 0. I have seen this with a stub interior that never sets R_solvus; I have not run a full proteus start with this config.

Two changes, I think:

  • Reject global_miscibility = true for every structure module until the Zalmoxis side is usable, or at least require the zalmoxis structure.
  • In the override, require R_solvus > 0 as well.

A related question for when miscibility is usable: after the atmosphere step, the finally block restores T_surf together with T_magma, P_surf and R_int. So the T_surf that the atmosphere solves in the solvus frame is never committed, and the helpfile T_surf stays at its value from before the solvus appeared. Is that what we want, or should T_surf stay out of the restored set?

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

InterraIssue has been imported to the Interra Board projectimport

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions