Boussinesq, TALA and ALA (2-D)
The same basally heated, isoviscous shell solved under the three formulations of the mass and energy equations that cfg.compressibilityMode offers, at three dissipation numbers. The page shows what each formulation changes in the flow and the temperature, and checks a property every steady compressible solution must have: the heat made by viscous dissipation equals the work done against the adiabatic term.
The three formulations
| mode | mass balance | density in the heat capacity | adiabatic heating | viscous dissipation |
|---|---|---|---|---|
"Boussinesq" | no | no | ||
"TALA" | no | no | ||
"ALA" | yes | yes |
Under both anelastic modes the stress is the compressible deviator and the buoyancy is cfg.useShearHeating; the driver sets it for ALA only. The full equations are in Governing equations.
The names are not King et al.'s
In King et al. (2010) the truncated anelastic liquid approximation (TALA) keeps adiabatic heating and dissipation and drops only the dynamic-pressure part of the buoyancy. MILEVA's ALA also has a buoyancy that depends on temperature alone, so MILEVA's ALA is the closer match to King et al.'s TALA. MILEVA's "TALA" is an anelastic model with the O(Di) heating switched off, a formulation that the published benchmarks do not cover. Use it to separate the effect of the reference density from that of the heat terms, as on this page, not as a physical model of a mantle.
The model
The shell of the other examples (
is set through a constant expansivity, and the viscosity follows so that the surface Rayleigh number
| parameter | value | where |
|---|---|---|
| grid | 64 × 512, uniform in radius | ht_shell! |
| Ra | eta_for_Ra | |
| 0.25, 0.5, 1 (Boussinesq uses the expansivity of | second argument | |
cfg.alpha = Di c_p/(g D) | ||
cfg.kappaDepthFactor = 0 | ||
| Grüneisen parameter | 1 | cfg.gruneisen |
| initial condition | linear ramp, 6 warm cosine peaks of 60 K at the CMB, 3 K noise | |
| run length | 0.25 thermal diffusion times, 7922 Myr, about 25 000 steps | cfg.maxTimeMyr |
| output | VTK every 2000 steps, diagnostics.csv and the log every 500 |
cfg.kappaDepthFactor = 0 matters here. The default ALA diffusivity grows toward the CMB as
Results

The seven runs side by side over their first 873 Myr, same layout and colour scale as the still below. These are short preview runs of the same driver (3000 steps, a VTK frame every 60 steps), not the long runs behind the table; each panel shows the run's frame nearest to the common model time. Script: docs/scripts/render_compressible_anim.jl.

Temperature at the last VTK frame (about 7550 Myr) of the seven runs, on one colour scale. Top: Boussinesq and TALA at

A: laterally averaged temperature, mean over the last five VTK frames (5000 to 7600 Myr). B, C: [H terms mW/m2] lines of the run log. Script: docs/scripts/fig_compressible.jl.
Means over the last third of the rows of diagnostics.csv (5300 to 7900 Myr). Over that window
| mode | Di | Nu_top | Nu_bot | V_rms (κ/D) | q_surf (mW m⁻²) | ⟨T⟩ (K) | budget_resid | Φ / adiabatic work |
|---|---|---|---|---|---|---|---|---|
| Boussinesq | (0.5) | 9.36 | 9.33 | 164 | 63.6 | 1063 | −0.0001 | |
| TALA | 0.25 | 10.28 | 10.25 | 186 | 81.0 | 1231 | −0.0010 | |
| TALA | 0.5 | 11.15 | 11.13 | 208 | 101.2 | 1421 | −0.0001 | |
| TALA | 1 | 12.28 | 12.27 | 251 | 145.9 | 1834 | −0.0003 | |
| ALA | 0.25 | 8.89 | 8.87 | 172 | 70.0 | 1259 | −0.0004 | 0.994 |
| ALA | 0.5 | 7.74 | 7.74 | 168 | 70.3 | 1425 | −0.0005 | 0.990 |
| ALA | 1 | 4.35 | 4.39 | 128 | 51.6 | 1556 | +0.0009 | 0.979 |
The numbers are also in docs/src/media/examples_compressible.csv.
The checks. In every run
ALA: compressibility slows the flow. The interior follows the adiabat. Between 300 and 700 km depth its temperature rises at 0.24, 0.68 and 1.66 K/km, which is 73, 89 and 97 % of the adiabatic gradient
TALA: the reference density alone does the opposite. Without the two heat terms the interior stays isothermal, as in Boussinesq: the gradient between 300 and 700 km is −0.05 K/km at
Nusselt numbers are measured against the conductive state of each run's own operator. Under ALA and TALA that conductive profile depends on
Compared with published work
None of the studies below uses this shell, so they are compared by the direction of each effect, not by its size.
| behaviour | published | MILEVA |
|---|---|---|
| vigour of convection with adiabatic heating and dissipation (fixed Ra, Di raised) | lower: "for the Di = 1.0 cases the vigour of convection is reduced", King et al. (2010), 2-D Cartesian box, for their TALA and ALA | lower: Nu, |
| dissipation against the work of the adiabatic term | in balance in a steady state; across the codes the imbalance grows with Di up to 1.25 and then shrinks (King et al. 2010, their TALA at Ra = 10⁵) | gap of 0.6, 1.0 and 2.1 % at Di = 0.25, 0.5 and 1 |
| does the form of the mass balance matter? | little: the anelastic, isentropic-compression and projected-density mass balances, all with adiabatic heating, change the heat flow by about a percent (Gassmöller et al. 2020) | Boussinesq and TALA differ by 10 to 30 %, but they also differ in the density of the buoyancy and the conduction terms, which the comparison above holds fixed |
| planform in a spherical geometry | fewer upwelling plumes and irregular, time-dependent patterns as compressibility grows, when the superadiabatic temperature drop is small against the adiabatic temperature (Bercovici, Schubert & Glatzmaier 1992, 3-D spherical shell) | not tested: all seven runs keep the six upwellings of the seeded planform |
| density stratification with the heat terms off (MILEVA's TALA) | no published counterpart found; the extended Boussinesq approximation of King et al. is the complementary split, heat terms on and density constant | faster: Nu, |
So MILEVA's ALA behaves as published compressible models do: adding adiabatic heating and dissipation slows the flow and lowers the heat flow. The speed-up under MILEVA's TALA has no published reference. It is consistent with the Gassmöller et al. result above: the mass balance alone changes little, so the speed-up comes from the reference density raising the buoyancy and the conductivity at depth while no adiabatic cooling acts against it.
Running it
export GKSwstype=nul
julia --project=. -t 2 examples/annulus_compressible_2d.jl ALA 0.5 1e5 64Arguments are mode Di Ra Nr; mode is Boussinesq, TALA or ALA. Output goes to output/examples/compressible_ALA_Di0.5_Ra1e+05_N64/. At the end the driver prints the window means of the table and, under ALA, the adiabatic and dissipation powers with their ratio.
Each run took 5 to 8 hours of wall time on a 10-core Mac mini with four of them sharing the machine. Shorten a run with MILEVA_MAXTIME_MYR or MILEVA_MAXSTEPS. The figures come from
julia --project=. docs/scripts/fig_compressible.jl output/examplesReferences
Bercovici, D., Schubert, G. & Glatzmaier, G. A. (1992). Three-dimensional convection of an infinite-Prandtl-number compressible fluid in a basally heated spherical shell. J. Fluid Mech. 239, 683-719. doi:10.1017/S0022112092004580
Gassmöller, R., Dannberg, J., Bangerth, W., Heister, T. & Myhill, R. (2020). On formulations of compressible mantle convection. Geophys. J. Int. 221, 1264-1280. doi:10.1093/gji/ggaa078
King, S. D., Lee, C., van Keken, P. E., Leng, W., Zhong, S., Tan, E., Tosi, N. & Kameyama, M. C. (2010). A community benchmark for 2-D Cartesian compressible convection in the Earth's mantle. Geophys. J. Int. 180, 73-87. doi:10.1111/j.1365-246X.2009.04413.x