Skip to content

Sagduction

Dense greenstone over buoyant TTG crust → Rayleigh–Taylor drips. Starter template.

Run it with:

bash
julia -t auto --project=. main.jl cases/examples/sagduction.toml

Full case file — cases/examples/sagduction.toml:

toml
# ══════════════════════════════════════════════════════════════════════════════
# EXAMPLE TEMPLATE — Sagduction (vertical sinking, Archean-style)
#
# A dense greenstone (mafic supracrustal) layer rests on top of buoyant felsic
# TTG crust — a gravitationally unstable stratification. The dense layer founders
# downward as Rayleigh–Taylor drips ("sagduction"), while felsic crust rises in
# domes between the sinking keels. A polygon notch at the centre seeds the first
# drip.
#
# STARTER TEMPLATE on the data-driven path. Hot Archean geotherm, free-slip box,
# sticky-air surface. The instability is buoyancy-driven (gravity ON). Tune the
# density contrast, layer thickness, and viscosities before production.
# Coordinate convention: y = depth, positive DOWN.
# ══════════════════════════════════════════════════════════════════════════════

[model]
case = "sagduction"                # unknown name → data-driven layers/init_T

[mesh]
dim   = 2
xsize = 200000.0                   # 200 km wide
ysize = 200000.0                   # 200 km deep (incl. 15 km sticky air)
nx    = 101
ny    = 101
mnx   = 4
mny   = 4

[gravity]
gy = 9.81

[time]
maxxystep = 0.5
maxtmstep = 3.1556e12
ntot      = 300

[rheology]
eta_min = 1e18
eta_max = 1e24

[temperature]
T_top = 273.0
T_bot = 1573.0                     # hot Archean mantle

[physics]
do_stokes        = true
do_heat          = true
do_advect        = true
do_shear_heating = true
do_friction      = true
do_free_surface  = true
do_radiogenic    = true

[boundary_velocity]
bc_left    = "free_slip"
bc_right   = "free_slip"
bc_surface = "free_slip"
bc_deep    = "free_slip"

[free_surface]
do_ale_free_surface = false
air_rock_id = 1

[fe]
n_picard   = 3
picard_tol = 1e-3

[solver]
type = "mumps"

[output]
dir   = "output/sagduction"
every = 10

# ── Rocks: 1=air, 2=greenstone (dense), 3=felsic TTG crust (light), 4=mantle
[[rock]]                           # 1 — sticky air
nu0=1e18
ro0=1.0
alpha=0.0
cp=1000.0
kt=50.0
ht=0.0
mm=1.0
dh=0.0
dv=0.0
a0=0.0
b0=0.0
a1=0.0
b1=0.0
nu_min=1e18
nu_max=1e19
immobile=false
G=0.0

[[rock]]                           # 2 — greenstone (dense mafic supracrustals)
nu0=1e21
ro0=3050.0                         # DENSER than the felsic crust below → unstable
alpha=3e-5
cp=1000.0
kt=2.5
ht=2e-7
mm=1.0
dh=0.0
dv=0.0
a0=1e7
b0=0.2
a1=1e6
b1=0.02
e0=0.0
e1=0.5
nu_min=1e19
nu_max=1e24
immobile=false
G=3e10

[[rock]]                           # 3 — felsic TTG crust (buoyant)
nu0=5e20
ro0=2700.0
alpha=3e-5
cp=1000.0
kt=2.5
ht=1e-6
mm=1.0
dh=0.0
dv=0.0
a0=1e7
b0=0.1
a1=1e6
b1=0.01
e0=0.0
e1=0.5
nu_min=1e19
nu_max=1e23
immobile=false
G=2e10

[[rock]]                           # 4 — mantle
nu0=1.97e17
ro0=3300.0
alpha=3e-5
beta=1e-11
cp=1000.0
kt=3.0
ht=2.5e-8
mm=2.3
dh=154000.0
dv=0.3
ss=3e4
a0=1e6
b0=0.03
a1=1e5
b1=0.01
e0=0.0
e1=0.1
nu_min=1e18
nu_max=1e23
immobile=false
G=7e10

# ── Geometry (later layers override earlier) ─────────────────────────────────
[[layer]]
name    = "mantle"
rock_id = 4
shape   = "background"

[[layer]]
name    = "felsic_crust"
rock_id = 3
shape   = "rectangle"
x_min   = 0.0
x_max   = 200000.0
y_min   = 35000.0
y_max   = 70000.0

[[layer]]
name    = "greenstone"
rock_id = 2
shape   = "rectangle"
x_min   = 0.0
x_max   = 200000.0
y_min   = 15000.0                  # base of sticky air
y_max   = 35000.0                  # 20 km of dense cover

[[layer]]
name     = "drip_seed"
rock_id  = 2
shape    = "polygon"               # downward greenstone notch at the centre
vertices = [[90000.0, 35000.0], [110000.0, 35000.0], [100000.0, 50000.0]]

[[layer]]
name    = "air"
rock_id = 1
shape   = "rectangle"
x_min   = 0.0
x_max   = 200000.0
y_min   = 0.0
y_max   = 15000.0

# ── Initial temperature: cold air, hot Archean geotherm below ────────────────
[[init_T]]
name    = "geotherm"
shape   = "background"
profile = "linear"
T_top   = 273.0
T_bot   = 1573.0

[[init_T]]
name    = "air"
shape   = "rectangle"
profile = "constant"
x_min   = 0.0
x_max   = 200000.0
y_min   = 0.0
y_max   = 15000.0
T_value = 273.0