Core evolution¶
By default Aragog treats the core as a heat reservoir of fixed heat capacity
below the mantle (core_bc = "energy_balance"). The core_module boundary
condition replaces that reservoir with an energy budget of the core: secular
cooling along the core adiabat, the latent heat of a growing inner core, the
gravitational energy of the light elements it rejects, and radiogenic heat.
This page explains how to switch it on, what it needs, and which output
columns to read.
The parameters are listed with their types and defaults in the interior reference, and the output columns in the output reference. The model, its closure choices and its verification are part of the Aragog documentation: core boundary condition modes and core module verification.
How to switch it on¶
[interior_struct]
module = "zalmoxis"
[interior_energetics]
module = "aragog"
[interior_energetics.aragog]
core_bc = "core_module"
Nothing else is needed. Every key of [interior_energetics.aragog.core_module]
has a default, and the defaults describe a core of pure iron. The melting
curve is depressed by the product depression * light_element_fraction, and
both factors are 0 by default, so light_element_fraction alone changes
nothing. The inner core releases no gravitational energy (alpha_c = 0,
c_light = 0). Set these keys for a core with light elements.
A config without core_bc and without the core_module table runs the
default energy_balance mode.
What it needs¶
- The Zalmoxis structure. The density profile of the core is fitted to the core mass and the central pressure of the structure solution, which only Zalmoxis provides. A config with another structure module is rejected when it is read.
- The entropy equation of state. The CMB flux of the core model is
computed with the entropy tables, which
interior_energetics.const_properties = truedoes not load. A config with both is rejected when it is read. - A resolved stable layer needs a structure that is solved once.
stratification = trueresolves the outer part of the core as a shell in which a stable layer can form. It is experimental. A config that combines it with an accretion module, withsolver_method = "radau", with structure updates (interior_struct.zalmoxis.update_interval > 0) or with an initial condition other thanplanet.temperature_mode = "liquidus_super"is rejected when it is read: a structure update carries the core with its heat content, which is not available for a stratified core. The defaultupdate_interval = 1e9keeps the update triggers active, so a stratified core needsupdate_interval = 0written in the config.
What happens in a run¶
The core temperature is a state of the Aragog solver. It starts at the temperature of the base of the mantle, so the heat flux through the core-mantle boundary (CMB) is zero at the start and follows the temperature contrast between the core and the mantle from then on, positive when the core is the hotter side. The inner core starts to grow when the core adiabat meets the melting curve.
With stratification = true the flux follows the contrast between the top of
the shell (core_T_top) and the base of the mantle, and it is not zero at the
start.
A resumed run reads the core temperature, the entropy gradient at the CMB, the
fitted core profile and, with stratification = true, the shell temperatures
from the interior snapshot. A snapshot without a core temperature restarts the
core from T_cmb of the resumed row.
A structure update moves the CMB radius and pressure. The structure is updated
during the run when interior_struct.zalmoxis.update_interval > 0 (the
default), and once after the start for every initial condition except
planet.temperature_mode = "liquidus_super". The core keeps its mass and its
entropy through an update: the density profile is fitted again to the same
core mass on the new structure, and the core temperature takes the value that
keeps the total entropy of the core, so a core under a rising pressure heats
as an adiabatic body does. With an inner core the pressure change also moves
the melting curve; the entropy of fusion of the mass that freezes or melts at
the update is part of that balance. The gravitational energy of the light
elements that such freezing releases is not put into the core. The change of
the heat content is written to step_dE_struct_core_J, on the row of the next
interior solve that is kept. The rule keeps the entropy of the core, while the
evolution in time keeps its energy. With an inner core the two differ: the
column then also holds latent and gravitational energy of the mass that
freezes or melts at the update, which the rule does not put into the core, and
the change of the reference from which each budget counts that energy.
The log gives, for each update, the temperature ratio of the rule and of the single mass parcels; a warning marks an update where the parcels differ by more than 1 percent, which means that the fitted profile is far from the old one compressed. The profile is fitted to the central pressure of the structure, whose own core mass can differ from the mass the core keeps; the log prints both ratios.
With an accretion module, a giant impact that re-melts the mantle raises the
core temperature to at least the temperature of the re-melted base, and the
core profile is fitted again to the grown core at the next interior solve. The
heat of that rise is written to step_dE_impact_core_J, and the change of the
heat content by the new profile to step_dE_impact_core_refit_J, both on the
first kept row after the impact. The step of an impact follows this rule
alone, not the entropy rule of a structure update: the added iron enters at
the core temperature before the impact, and the core is heated neither by the
compression under the grown planet nor by the energy of the iron that sinks
to it.
When a run stops¶
Aragog models a core that freezes from the centre outwards. It refuses a state
outside that model with an error that names the state and the core
temperature, and the run ends with the status Error (Interior model):
- the core starts to freeze from the top, or as a solid layer between liquid ones (snow), or is frozen in full before growth from the centre has started;
- the inner core holds more than 10 percent of the core mass in a core with
light elements (a depressed melting curve, or
alpha_c * c_light > 0): the light-element content of the outer core is fixed, it is not enriched as the inner core grows; - with
stratification = true, the inner core reaches the base of the resolved shell.
With the default iron melting curve and the default core fraction, the core of a planet of 1 Earth mass freezes from the centre, while the cores of planets of 2, 3 and 5 Earth masses meet the melting curve first away from the centre, so such a run ends when its core starts to freeze. The quadratic curve with its default coefficients gives growth from the centre for 1, 2 and 3 Earth masses, and not for 5.
A run ends with the same status when the structure gives no positive core mass or central pressure, and when the density profile cannot be fitted to the core mass and the central pressure, at the start, after a structure update or after an impact.
What to read in the output¶
| Column | Use |
|---|---|
T_cmb |
Core temperature: the state of the core that the solver evolves. |
T_cmb_node |
Temperature of the base of the mantle at the CMB pressure; T_cmb - T_cmb_node is the contrast that sets F_cmb, and core_T_top - T_cmb_node with stratification = true. |
core_r_icb, core_regime |
Radius of the inner core and the way the core freezes: 0 fully liquid, 1 from the centre outwards, 4 fully frozen. The codes 2 (from the top) and 3 (snow) do not appear: Aragog ends the run at such a state. |
core_dynamo_margin, core_B_rms |
Entropy available for a dynamo and an estimate of the field strength. |
E_core_residual_frac |
Closure of the core energy ledger: its residual against the summed magnitudes of the CMB heat and of the 3 booked terms. |
Check E_core_residual_frac first. The Aragog verification page gives the
values measured in coupled runs and how they depend on
interior_energetics.rtol.
The ledger compares the change of the heat content of the core with the heat
that crosses the CMB and with 3 booked terms: the lift and the refit of a
giant impact (step_dE_impact_core_J, step_dE_impact_core_refit_J) and the
structure updates (step_dE_struct_core_J). A booked term is equal to the
jump of the heat content that it explains by construction. The fraction
therefore checks the bookkeeping of those terms and the core heat of the
solver against its CMB flux; it does not check the size of a booked term.
Every column of this table except T_cmb and T_cmb_node is zero in every
other core_bc mode, and so are the other columns that the
output reference marks as computed only with
core_bc = core_module. Zero is also a valid value in a core_module run (no inner core yet, no field estimate under a
subadiabatic CMB flux), so select runs by their configured core_bc, not by
the column values.