Skip to content

Commit a69b574

Browse files
authored
Merge pull request #6439 from alarshi/cookbook_shell_with_initial_topo
Tomography based mantle convection model cookbook
2 parents f1fa787 + 294ec31 commit a69b574

20 files changed

+4529
-1805
lines changed
Lines changed: 191 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,191 @@
1+
# This cookbook demonstrates how to set up instantaneous mantle flow models
2+
# using available geophysical constraints. To avoid a large computational cost,
3+
# this model is a 2D spherical shell with imposed zones of weakness at plate boundaries
4+
# and internal buoyancy forces arising from observed mantle heterogeneity that drive flow.
5+
# The generated mantle flow field at the surface can be compared with the observed
6+
# surface deformation and the fit can be used to constrain the physical state
7+
# of the mantle. However, a self-consistent comparison with observe plate velocities requires
8+
# transitioning from a 2D shell to a 3D sphere, following the approach in Saxena et al. (2023).
9+
# We define the location of plate boundaries and Cratons using the Geodynamic World Builder.
10+
# This .prm file is based on the existing .prm file, '2D_slice_with_faults_and_cratons.prm',
11+
# that describes the initial and boundary conditions, along with additional details on
12+
# the material model. In particular, this .prm file adds the detailed slab structures
13+
# and the initial topography in the models.
14+
include $ASPECT_SOURCE_DIR/cookbooks/tomography_based_plate_motions/2D_slice_with_faults_and_cratons.prm
15+
16+
set Additional shared libraries = ./plugins/libtomography_based_plate_motions.so
17+
set Dimension = 2
18+
set Use years in output instead of seconds = true
19+
set Output directory = 2D-slice-with-faults-slabs-topo
20+
set World builder file = $ASPECT_SOURCE_DIR/cookbooks/tomography_based_plate_motions/input_data/world_builder_smac_cratons_faults_2D.json
21+
set Nonlinear solver scheme = iterated Advection and Stokes
22+
23+
# We increase the maximum nonlinear iterations from the default value of 10 to 20
24+
# because our viscosity depends on several compositions, strain rate, and temperature.
25+
# Further increasing the complexity may require more nonlinear iterations.
26+
set Max nonlinear iterations = 20
27+
set Start time = 0
28+
set End time = 0
29+
set Adiabatic surface temperature = 1573.0
30+
31+
32+
# We use the matrix-free solver and geometric multigrid preconditioner
33+
# to reduce memory consumption.
34+
# We use a reduced value of 1e-4 in the Linear solver tolerance from the default
35+
# value of 1e-7. The low value is chosen after initial tests done on an equally
36+
# complex 3d spherical shell model. A higher linear solver tolerance would still
37+
# work for this cookbook.
38+
# We also use the full A block preconditioner to reduce the number of linear iterations since
39+
# the current setup already requires close to 2,000 linear iterations.
40+
subsection Solver parameters
41+
subsection Stokes solver parameters
42+
set Linear solver tolerance = 1e-4
43+
set Stokes solver type = block GMG
44+
set Number of cheap Stokes solver steps = 5000
45+
set GMRES solver restart length = 500
46+
set Maximum number of expensive Stokes solver steps = 0
47+
set Use full A block as preconditioner = true
48+
set Linear solver A block tolerance = 1e-2
49+
end
50+
51+
# The following diffusion parameters describes the length scale of diffusion
52+
# for the compositional value of slabs.
53+
subsection Diffusion solver parameters
54+
set Diffusion length scale = 30000
55+
end
56+
57+
end
58+
59+
# The reference profile uses hydrostatic equations to define adiabatic pressure
60+
# and temperatures. The difference with existing compute profile plugin is that this
61+
# plugin uses reference densities from PREM below a certain depth defined by the
62+
# uppermost mantle thickness parameter to compute the adiabatic conditions.
63+
subsection Adiabatic conditions model
64+
set Model name = reference profile
65+
66+
subsection Reference profile
67+
subsection Ascii data model
68+
set Data directory = $ASPECT_SOURCE_DIR/data/1D_reference_profiles/
69+
set Data file name = prem.txt
70+
end
71+
end
72+
end
73+
74+
# We use the spherical shell geometry using the real Earth radius values.
75+
subsection Geometry model
76+
set Model name = spherical shell
77+
78+
subsection Spherical shell
79+
set Inner radius = 3481000
80+
set Outer radius = 6371000
81+
end
82+
83+
subsection Initial topography model
84+
set Model name = ascii data
85+
86+
subsection Ascii data model
87+
set Data directory = $ASPECT_SOURCE_DIR/cookbooks/tomography_based_plate_motions/input_data/
88+
set Data file name = input_topography_smooth_gauss.txt
89+
end
90+
end
91+
end
92+
93+
# We use adaptive refinement to better resolve the upper-mantle
94+
# and the slab structure.
95+
# Increase the adaptive mesh refinement to 4 to reproduce the figure in
96+
# the documentation of the cookbook.
97+
subsection Mesh refinement
98+
set Initial adaptive refinement = 1
99+
set Initial global refinement = 4
100+
set Strategy = minimum refinement function, composition threshold
101+
102+
subsection Minimum refinement function
103+
set Variable names = depth, y
104+
set Function expression = if (depth > 350000, 5, 7 )
105+
end
106+
107+
subsection Composition threshold
108+
set Compositional field thresholds = 1e6, 1e6, 1e6, 1e6, 1e6, 0.2
109+
end
110+
end
111+
112+
subsection Compositional fields
113+
set Number of fields = 6
114+
set Names of fields = grain_size, Vp, Vs, vs_anomaly, faults, slabs
115+
set Compositional field methods = prescribed field, static, static, static, static, prescribed field with diffusion
116+
end
117+
118+
119+
# We use world builder to define the complex geometry of plate boundaries ("faults")
120+
# and cratons ("continents") in our model.
121+
subsection Initial composition model
122+
set List of model names = ascii data, world builder, slab model
123+
124+
subsection Ascii data model
125+
set Data directory = $ASPECT_SOURCE_DIR/cookbooks/tomography_based_plate_motions/input_data/
126+
set Data file name = LLNL_model_cropped_cratons_faults.txt.gz
127+
set Slice dataset in 2D plane = true
128+
end
129+
130+
subsection World builder
131+
set List of relevant compositions = faults
132+
end
133+
134+
subsection Slab model
135+
set Data directory = $ASPECT_SOURCE_DIR/cookbooks/tomography_based_plate_motions/input_data/
136+
set Data file name = slab2_depth_thickness_2D.txt.gz
137+
end
138+
end
139+
140+
subsection Boundary velocity model
141+
set Tangential velocity boundary indicators = bottom, top
142+
end
143+
144+
145+
# The material model uses diffusion/dislocation creep with prefactors, activation
146+
# energies and volumes for each major mantle phase chosen to facilitate combined
147+
# diffusion/dislocation creep in the upper mantle and transition zone, and diffusion
148+
# creep as the dominant deformation mechanism in the lower mantle.
149+
# Additionally, all the viscosity variations are laterally averaged to a 1D viscosity
150+
# profile with an additional layer between 660 and 800 km depth, referred to as
151+
# the mid-mantle viscosity. We do not scale viscosity within the slabs to avoid
152+
# weak slabs in the asthenosphere using the parameter :
153+
# 'Use asthenosphere viscosity scaling in cold regions'. The trench zone weakness
154+
# defines the low-viscosity layer above the slabs.
155+
# More details on the chosen material model parameters are in
156+
# the accompanying file, '2D_slice_with_faults_and_cratons.prm'.
157+
# We do not use neutrally buoyant cratons in this model, but this can be
158+
# included by adding another compositional field named 'continents' and
159+
# setting 'set Use cratons = true'.
160+
# We add a weak mid-mantle viscosity layer that modifies the reference viscosity
161+
# profile to allow the slabs to subduct into the lower mantle
162+
subsection Material model
163+
set Model name = tomography based plate motions
164+
set Material averaging = harmonic average only viscosity
165+
166+
subsection Tomography based plate motions model
167+
set Use cratons = false
168+
set Use slab2 database = true
169+
set Slab viscosity = 1e26
170+
set Depth to the top of the mid-mantle viscosity layer = 660e3
171+
set Depth to the base of the mid-mantle viscosity layer = 800e3
172+
set Mid-mantle layer viscosity = 1e20
173+
set Use asthenosphere viscosity scaling in cold regions = false
174+
set Uppermost mantle thickness = 200e3
175+
set Trench weak zone thickness = 50e3
176+
end
177+
end
178+
179+
subsection Formulation
180+
set Mass conservation = reference density profile
181+
end
182+
183+
subsection Postprocess
184+
set List of postprocessors = boundary velocity residual statistics, velocity boundary statistics, visualization, heat flux statistics, depth average
185+
186+
subsection Visualization
187+
set List of output variables = adiabat, material properties, gravity, nonadiabatic temperature, heat flux map, strain rate, boundary velocity residual, named additional outputs, surface elevation
188+
set Output format = vtu
189+
set Interpolate output = false
190+
end
191+
end
644 KB
Loading
204 KB
Loading
366 KB
Loading
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
subsection Solver parameters
2+
subsection Diffusion solver parameters
3+
set Diffusion length scale = 30000
4+
end
5+
end
6+
7+
subsection Geometry model
8+
subsection Initial topography model
9+
set Model name = ascii data
10+
11+
subsection Ascii data model
12+
set Data directory = $ASPECT_SOURCE_DIR/cookbooks/tomography_based_plate_motions/input_data/
13+
set Data file name = input_topography_smooth_gauss.txt
14+
end
15+
end
16+
end
17+
18+
subsection Initial composition model
19+
set List of model names = ascii data, world builder, slab model
20+
21+
subsection Slab model
22+
set Data directory = $ASPECT_SOURCE_DIR/cookbooks/tomography_based_plate_motions/input_data/
23+
set Data file name = slab2_depth_thickness_2D.txt.gz
24+
end
25+
end
26+
27+
subsection Material model
28+
set Model name = tomography based plate motions
29+
set Material averaging = harmonic average only viscosity
30+
31+
subsection Tomography based plate motions model
32+
set Use cratons = false
33+
set Use slab2 database = true
34+
set Slab viscosity = 1e26
35+
set Depth to the top of the mid-mantle viscosity layer = 660e3
36+
set Depth to the base of the mid-mantle viscosity layer = 800e3
37+
set Mid-mantle layer viscosity = 1e20
38+
set Use asthenosphere viscosity scaling in cold regions = false
39+
set Uppermost mantle thickness = 200e3
40+
set Trench weak zone thickness = 50e3
41+
end
42+
end

0 commit comments

Comments
 (0)