forked from geodynamics/aspect
/
tangurnis_ba.prm
338 lines (275 loc) · 13.7 KB
/
tangurnis_ba.prm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
# TanGurnis BA benchmark
set Additional shared libraries = ./code/libtangurnis.so
# At the top, state that the program should be run for a two-dimensional
# simulation
set Dimension = 2
# In computations, the time step $k$ is chosen according to $k = c \min_K
# \frac{h_K}{\|u\|_{\infty,K} p_T}$ where $h_K$ is the diameter of cell $K$,
# and the denominator is the maximal magnitude of the velocity on cell $K$
# times the polynomial degree $p_T$ of the temperature discretization. The
# dimensionless constant $c$ is called the CFL number in this program. For
# time discretizations that have explicit components, $c$ must be less than a
# constant that depends on the details of the time discretization and that is
# no larger than one. On the other hand, for implicit discretizations such as
# the one chosen here, one can choose the time step as large as one wants (in
# particular, one can choose $c>1$) though a CFL number significantly larger
# than one will yield rather diffusive solutions. Units: None.
set CFL number = 1.0
# The end time of the simulation. Units: years if the 'Use years in output
# instead of seconds' parameter is set; seconds otherwise.
set End time = 0.0001
set Nonlinear solver scheme = Stokes only
# The name of the directory into which all output files should be placed. This
# may be an absolute or a relative path.
set Output directory = output
# A flag indicating whether the computation should be resumed from a
# previously saved state (if true) or start from scratch (if false).
set Resume computation = false
# The start time of the simulation. Units: years if the 'Use years in output
# instead of seconds' parameter is set; seconds otherwise.
set Start time = 0
# In order to make the problem in the first time step easier to solve, we need
# a reasonable guess for the temperature and pressure. To obtain it, we use an
# adiabatic pressure and temperature field. This parameter describes what the
# `adiabatic' temperature would be at the surface of the domain (i.e. at depth
# zero). Note that this value need not coincide with the boundary condition
# posed at this point. Rather, the boundary condition may differ significantly
# from the adiabatic value, and then typically induce a thermal boundary
# layer.
# For more information, see the section in the manual that discusses the
# general mathematical model.
set Adiabatic surface temperature = 0
subsection Adiabatic conditions model
#set Model name = initial profile
set Model name = function
subsection Function
set Function constants = Di=0.0, gamma=1.0
set Function expression = 0;0;exp(Di/gamma*depth) # T,p,rho
set Variable names = depth
end
end
subsection Formulation
set Formulation = Boussinesq approximation
#set Mass conservation = incompressible
#set Temperature equation = reference density profile
end
# The mathematical equations that describe thermal convection only determine
# the pressure up to an arbitrary constant. On the other hand, for comparison
# and for looking up material parameters it is important that the pressure be
# normalized somehow. We do this by enforcing a particular average pressure
# value at the surface of the domain, where the geometry model determines
# where the surface is. This parameter describes what this average surface
# pressure value is supposed to be. By default, it is set to zero, but one may
# want to choose a different value for example for simulating only the volume
# of the mantle below the lithosphere, in which case the surface pressure
# should be the lithostatic pressure at the bottom of the lithosphere.
# For more information, see the section in the manual that discusses the
# general mathematical model.
set Surface pressure = 0
# When computing results for mantle convection simulations, it is often
# difficult to judge the order of magnitude of results when they are stated in
# MKS units involving seconds. Rather, some kinds of results such as
# velocities are often stated in terms of meters per year (or, sometimes,
# centimeters per year). On the other hand, for non-dimensional computations,
# one wants results in their natural unit system as used inside the code. If
# this flag is set to 'true' conversion to years happens; if it is 'false', no
# such conversion happens.
set Use years in output instead of seconds = false # default: true
subsection Boundary temperature model
# Select one of the following models:
#
# `box': A model in which the temperature is chosen constant on the left and
# right sides of a box.
#
# `spherical constant': A model in which the temperature is chosen constant
# on the inner and outer boundaries of a spherical shell. Parameters are
# read from subsection 'Sherical constant'.
set Model name = Tan Gurnis
end
subsection Discretization
# The polynomial degree to use for the velocity variables in the Stokes
# system. Units: None.
set Stokes velocity polynomial degree = 2
# The polynomial degree to use for the temperature variable. Units: None.
set Temperature polynomial degree = 2
# Whether to use a Stokes discretization that is locally conservative at the
# expense of a larger number of degrees of freedom (true), or to go with a
# cheaper discretization that does not locally conserve mass, although it is
# globally conservative (false).
set Use locally conservative discretization = false
subsection Stabilization parameters
# The exponent $\alpha$ in the entropy viscosity stabilization. Units:
# None.
set alpha = 2
# The $\beta$ factor in the artificial viscosity stabilization. An
# appropriate value for 2d is 0.052 and 0.078 for 3d. Units: None.
set beta = 0.078
# The $c_R$ factor in the entropy viscosity stabilization. Units: None.
set cR = 0.5 # default: 0.11
end
end
subsection Geometry model
# Select one of the following models:
#
# `box': A box geometry parallel to the coordinate directions. The extent of
# the box in each coordinate direction is set in the parameter file.
#
# `spherical shell': A geometry representing a spherical shell or a pice of
# it. Inner and outer radii are read from the parameter file in subsection
# 'Spherical shell'.
set Model name = box
subsection Box
# Extent of the box in x-direction. Units: m.
set X extent = 1
# Extent of the box in y-direction. Units: m.
set Y extent = 1
# Extent of the box in z-direction. This value is ignored if the
# simulation is in 2d Units: m.
set Z extent = 1
end
end
subsection Gravity model
# Select one of the following models:
#
# `radial constant': A gravity model in which the gravity direction is
# radially inward and at constant magnitude. The magnitude is read from the
# parameter file in subsection 'Radial constant'.
#
# `radial earth-like': A gravity model in which the gravity direction is
# radially inward and with a magnitude that matches that of the earth at the
# core-mantle boundary as well as at the surface and in between is
# physically correct under the assumption of a constant density.
#
# `vertical': A gravity model in which the gravity direction is vertically
# downward and at constant magnitude.
set Model name = vertical
end
subsection Initial temperature model
# Select one of the following models:
#
# `perturbed box': An initial temperature field in which the temperature is
# perturbed slightly from an otherwise constant value equal to one. The
# perturbation is chosen in such a way that the initial temperature is
# constant to one along the entire boundary.
#
# `spherical hexagonal perturbation': An initial temperature field in which
# the temperature is perturbed following a six-fold pattern in angular
# direction from an otherwise spherically symmetric state.
#
# `spherical gaussian perturbation': An initial temperature field in which
# the temperature is perturbed by a single Gaussian added to an otherwise
# spherically symmetric state. Additional parameters are read from the
# parameter file in subsection 'Spherical gaussian perturbation'.
set Model name = function
subsection Function
set Function expression = sin(pi*y)*cos(pi*1*x)
end
end
subsection Material model
# Select one of the following models:
#
# `simple': A simple material model that has constant values for all
# coefficients but the density. This model uses the formulation that assumes
# an incompressible medium despite the fact that the density follows the law
# $\rho(T)=\rho_0(1-\beta(T-T_{\text{ref}})$. The value for the components
# of this formula and additional parameters are read from the parameter file
# in subsection 'Simple model'.
#
# `Steinberger': lookup from the paper of Steinberger/Calderwood
#
# `table': A material model that reads tables of pressure and temperature
# dependent material coefficients from files.
set Model name = Tan Gurnis
subsection Tan Gurnis model
set Di = 0
set gamma = 1 # infinity really, but does not matter
set a = 0
set wavenumber = 1
end
end
subsection Mesh refinement
set Initial adaptive refinement = 0 # default: 2
set Initial global refinement = 4 # default: 2
# The method used to determine which cells to refine and which to coarsen.
set Strategy = thermal energy density
set Time steps between mesh refinement = 100
end
subsection Model settings
set Include adiabatic heating = false
set Include shear heating = false # default: true
# A comma separated list of integers denoting those boundaries on which the
# temperature is fixed and described by the boundary temperature object
# selected in its own section of this input file. All boundary indicators
# used by the geometry but not explicitly listed here will end up with
# no-flux (insulating) boundary conditions.
set Fixed temperature boundary indicators = left, right, bottom, top
# A comma separated list of integers denoting those boundaries on which the
# velocity is tangential but prescribed, i.e., where external forces act to
# prescribe a particular velocity. This is often used to prescribe a
# velocity that equals that of overlying plates.
set Prescribed velocity boundary indicators =
# A comma separated list of integers denoting those boundaries on which the
# velocity is tangential and unrestrained, i.e., where no external forces
# act to prescribe a particular tangential velocity (although there is a
# force that requires the flow to be tangential).
set Tangential velocity boundary indicators = left, right, bottom, top
# A comma separated list of integers denoting those boundaries on which the
# velocity is zero.
set Zero velocity boundary indicators =
end
subsection Postprocess
# A comma separated list of postprocessor objects that should be run at the
# end of each time step. Some of these postprocessors will declare their own
# parameters which may, for example, include that they will actually do
# something only every so many time steps or years. Alternatively, the text
# 'all' indicates that all available postprocessors should be run after each
# time step.
#
# The following postprocessors are available:
#
# `depth average': A postprocessor that computes depth averaged quantities
# and writes them out.
#
# `heat flux statistics': A postprocessor that computes some statistics
# about the heat flux across boundaries.
#
# `heat flux statistics for the table model': A postprocessor that computes
# some statistics about the heat flux across boundaries.
#
# `velocity statistics for the table model': A postprocessor that computes
# some statistics about the velocity field.
#
# `temperature statistics': A postprocessor that computes some statistics
# about the temperature field.
#
# `velocity statistics': A postprocessor that computes some statistics about
# the velocity field.
#
# `visualization': A postprocessor that takes the solution and writes it
# into files that can be read by a graphical visualization program.
# Additional run time parameters are read from the parameter subsection
# 'Visualization'.
set List of postprocessors = Tan Gurnis error, visualization
subsection Depth average
# The time interval between each generation of graphical output files. A
# value of zero indicates that output should be generated in each time
# step. Units: years if the 'Use years in output instead of seconds'
# parameter is set; seconds otherwise.
set Time between graphical output = 1e8
end
subsection Visualization
# VTU file output supports grouping files from several CPUs into one file
# using MPI I/O when writing on a parallel filesystem. Select 0 for no
# grouping. This will disable parallel file output and instead write one
# file per processor in a background thread. A value of 1 will generate
# one big file containing the whole solution.
set Number of grouped files = 0
# The file format to be used for graphical output.
set Output format = vtu
# The time interval between each generation of graphical output files. A
# value of zero indicates that output should be generated in each time
# step. Units: years if the 'Use years in output instead of seconds'
# parameter is set; seconds otherwise.
set Time between graphical output = 0 # default: 1e8
end
end