-
Notifications
You must be signed in to change notification settings - Fork 0
/
parameters.prm
11361 lines (10125 loc) · 606 KB
/
parameters.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
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
# Listing of Parameters
# ---------------------
# A list of names of additional shared libraries that should be loaded upon
# starting up the program. The names of these files can contain absolute or
# relative paths (relative to the directory in which you call ASPECT). In
# fact, file names that do not contain any directory information (i.e., only
# the name of a file such as <myplugin.so> will not be found if they are not
# located in one of the directories listed in the \texttt{LD_LIBRARY_PATH}
# environment variable. In order to load a library in the current directory,
# use <./myplugin.so> instead.
#
# The typical use of this parameter is so that you can implement additional
# plugins in your own directories, rather than in the ASPECT source
# directories. You can then simply compile these plugins into a shared library
# without having to re-compile all of ASPECT. See the section of the manual
# discussing writing extensions for more information on how to compile
# additional files into a shared library.
set Additional shared libraries = /home/staff/agrima/aspect/release_210316/prescribed_velocity_pressure_plugin/libprescribed_velocity_pressure.so # default:
# 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.
# 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 number of space dimensions you want to run this program in. ASPECT can
# run in 2 and 3 space dimensions.
set Dimension = 2
# The end time of the simulation. The default value is a number so that when
# converted from years to seconds it is approximately equal to the largest
# number representable in floating point arithmetic. For all practical
# purposes, this equals infinity. Units: Years if the 'Use years in output
# instead of seconds' parameter is set; seconds otherwise.
set End time = 2.4e8 # default: 5.69e+300
# The maximal number of nonlinear iterations to be performed.
set Max nonlinear iterations = 10
# The maximal number of nonlinear iterations to be performed in the
# pre-refinement steps. This does not include the last refinement step before
# moving to timestep 1. When this parameter has a larger value than max
# nonlinear iterations, the latter is used.
set Max nonlinear iterations in pre-refinement = 2147483647
# Set a maximum time step size for only the first timestep. Generally the time
# step based on the CFL number should be sufficient, but for complicated
# models or benchmarking it may be useful to limit the first time step to some
# value, especially when using the free surface, which needs to settle to
# prevent instabilities. This should in that case be combined with a value set
# for ``Maximum relative increase in time step''. The default value is a value
# so that when converted from years into seconds it equals the largest number
# representable by a floating point number, implying an unlimited time step.
# Units: Years or seconds, depending on the ``Use years in output instead of
# seconds'' parameter.
set Maximum first time step = 5.69e+300
# Set a percentage with which the the time step is limited to increase.
# Generally the time step based on the CFL number should be sufficient, but
# for complicated models which may suddenly drastically change behavior, it
# may be useful to limit the increase in the time step, without limiting the
# time step size of the whole simulation to a particular number. For example,
# if this parameter is set to $50$, then that means that the time step can at
# most increase by 50\% from one time step to the next, or by a factor of 1.5.
# Units: \%.
set Maximum relative increase in time step = 2147483647
# Set a maximum time step size for the solver to use. Generally the time step
# based on the CFL number should be sufficient, but for complicated models or
# benchmarking it may be useful to limit the time step to some value. The
# default value is a value so that when converted from years into seconds it
# equals the largest number representable by a floating point number, implying
# an unlimited time step.Units: Years or seconds, depending on the ``Use years
# in output instead of seconds'' parameter.
set Maximum time step = 5.69e+300
# The kind of scheme used to resolve the nonlinearity in the system. `single
# Advection, single Stokes' means that no nonlinear iterations are done, and
# the temperature, compositional fields and Stokes equations are solved
# exactly once per time step, one after the other. The `iterated Advection and
# Stokes' scheme iterates this decoupled approach by alternating the solution
# of the temperature, composition and Stokes systems. The `single Advection,
# iterated Stokes' scheme solves the temperature and composition equation once
# at the beginning of each time step and then iterates out the solution of the
# Stokes equation. The `no Advection, iterated Stokes' scheme only solves the
# Stokes system, iterating out the solution, and ignores compositions and the
# temperature equation (careful, the material model must not depend on the
# temperature or composition; this is mostly useful for Stokes benchmarks).
# The `no Advection, single Stokes' scheme only solves the Stokes system once
# per timestep. This is also mostly useful for Stokes benchmarks. The `single
# Advection, no Stokes' scheme only solves the temperature and other advection
# systems once, and instead of solving for the Stokes system, a prescribed
# velocity and pressure is used. The `iterated Advection and Newton Stokes'
# scheme iterates by alternating the solution of the temperature, composition
# and Stokes equations, using Picard iterations for the temperature and
# composition, and Newton iterations for the Stokes system. The `single
# Advection, iterated Newton Stokes' scheme solves the temperature and
# composition equations once at the beginning of each time step and then
# iterates out the solution of the Stokes equation, using Newton iterations
# for the Stokes system. The `iterated Advection and defect correction Stokes'
# scheme iterates by alternating the solution of the temperature, composition
# and Stokes equations, using Picard iterations for the temperature and
# composition, and defect correction Picard iterations for the Stokes system.
# The `single Advection, iterated defect correction Stokes' scheme solves the
# temperature and composition equations once at the beginning of each time
# step and then iterates out the solution of the Stokes equation, using defect
# correction Picard iterations for the Stokes system. The `no Advection,
# iterated defect correction Stokes' scheme solves the temperature and
# composition equations once at the beginning of each time step and then
# iterates out the solution of the Stokes equation, using defect correction
# Picard iterations for the Stokes system. The `first timestep only, single
# Stokes' scheme solves the Stokes equations exactly once, at the first time
# step. No nonlinear iterations are done, and the temperature and composition
# systems are not solved.
#
# The `IMPES' scheme is deprecated and only allowed for reasons of backwards
# compatibility. It is the same as `single Advection, single Stokes' .The
# `iterated IMPES' scheme is deprecated and only allowed for reasons of
# backwards compatibility. It is the same as `iterated Advection and Stokes'.
# The `iterated Stokes' scheme is deprecated and only allowed for reasons of
# backwards compatibility. It is the same as `single Advection, iterated
# Stokes'. The `Stokes only' scheme is deprecated and only allowed for reasons
# of backwards compatibility. It is the same as `no Advection, iterated
# Stokes'. The `Advection only' scheme is deprecated and only allowed for
# reasons of backwards compatibility. It is the same as `single Advection, no
# Stokes'. The `Newton Stokes' scheme is deprecated and only allowed for
# reasons of backwards compatibility. It is the same as `iterated Advection
# and Newton Stokes'.
set Nonlinear solver scheme = single Advection, single Stokes
# A relative tolerance up to which the nonlinear solver will iterate. This
# parameter is only relevant if the `Nonlinear solver scheme' does nonlinear
# iterations, in other words, if it is set to something other than `single
# Advection, single Stokes' or `single Advection, no Stokes'.
set Nonlinear solver tolerance = 1e-5
# 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 = outputs/MR_RG_VK_case9_AGG # default: output
# Whether or not to use any prescribed internal pressure. Locations in which
# to prescribe internal pressure are defined in section ``Prescribed
# fields/Pressure indicator function'' and the pressure is defined in section
# ``Prescribed fields/Pressure function''.
set Prescribe internal pressure = true # default: false
# Whether or not to use any prescribed internal velocities. Locations in which
# to prescribe velocities are defined in section ``Prescribed fields/Velocity
# indicator function'' and the velocities are defined in section ``Prescribed
# fields/Velocity function''. Indicators are evaluated at the center of each
# cell, and all DOFs associated with the specified velocity component at the
# indicated cells are constrained.
set Prescribe internal velocities = true # default: false
# If and how to normalize the pressure after the solution step. This is
# necessary because depending on boundary conditions, in many cases the
# pressure is only determined by the model up to a constant. On the other
# hand, we often would like to have a well-determined pressure, for example
# for table lookups of material properties in models or for comparing
# solutions. If the given value is `surface', then normalization at the end of
# each time steps adds a constant value to the pressure in such a way that the
# average pressure at the surface of the domain is what is set in the `Surface
# pressure' parameter; the surface of the domain is determined by asking the
# geometry model whether a particular face of the geometry has a zero or small
# `depth'. If the value of this parameter is `volume' then the pressure is
# normalized so that the domain average is zero. If `no' is given, the no
# pressure normalization is performed.
set Pressure normalization = no # default: surface
# A flag indicating whether the computation should be resumed from a
# previously saved state (if true) or start from scratch (if false). If auto
# is selected, models will be resumed if there is an existing checkpoint file,
# otherwise started from scratch.
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.
# The value the pressure is normalized to in each time step when `Pressure
# normalization' is set to `surface' with default value 0. This setting is
# ignored in all other cases.
#
# 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 # default: 0.
# How frequently in timesteps to output timing information. This is generally
# adjusted only for debugging and timing purposes. If the value is set to zero
# it will also output timing information at the initiation timesteps.
set Timing output frequency = 100
# Mantle convection simulations are often focused on convection dominated
# systems. However, these codes can also be used to investigate systems where
# heat conduction plays a dominant role. This parameter indicates whether the
# simulator should also use heat conduction in determining the length of each
# time step.
set Use conduction timestep = true # default: false
# If set to true, the advection and reactions of compositional fields and
# temperature are solved separately, and can use different time steps. Note
# that this will only work if the material/heating model fills the
# reaction\_rates/heating\_reaction\_rates structures. Operator splitting can
# be used with any existing solver schemes that solve the
# temperature/composition equations.
set Use operator splitting = false
# 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.
#
# Contrary to the word ``output'' in the name of this parameter, a number of
# plugins also use this parameter to determine how to interpret their
# \textit{inputs}. For example, when `true', several of the boundary velocity
# models described in Section~\ref{parameters:Boundary_20velocity_20model}
# interpret both specific times in years instead of seconds, and velocities in
# meters per year instead of meters per second.
set Use years in output instead of seconds = true
# Name of the world builder file. If empty, the world builder is not
# initialized.
set World builder file =
subsection Adiabatic conditions model
# Select one of the following models:
#
# `ascii data': A model in which the adiabatic profile is read from a file
# that describes the reference state. Note the required format of the input
# data: The first lines may contain any number of comments if they begin
# with `#', but one of these lines needs to contain the number of points in
# the reference state as for example `# POINTS: 3'. Following the comment
# lines there has to be a single line containing the names of all data
# columns, separated by arbitrarily many spaces. Column names are not
# allowed to contain spaces. The file can contain unnecessary columns, but
# for this plugin it needs to at least provide columns named `temperature',
# `pressure', and `density'. Note that the data lines in the file need to be
# sorted in order of increasing depth from 0 to the maximal depth in the
# model domain. Points in the model that are outside of the provided depth
# range will be assigned the maximum or minimum depth values, respectively.
# Points do not need to be equidistant, but the computation of properties is
# optimized in speed if they are.
#
# `compute profile': A model in which the adiabatic profile is calculated by
# solving the hydrostatic equations for pressure and temperature in depth.
# The gravity is assumed to be in depth direction and the composition is
# either given by the initial composition at reference points or computed as
# a reference depth-function. All material parameters are computed by the
# material model plugin. The surface conditions are either constant or
# changing over time as prescribed by a user-provided function.
#
# `function': A model in which the adiabatic profile is specified by a user
# defined function. The supplied function has to contain temperature,
# pressure, and density as a function of depth in this order.
set Model name = compute profile
subsection Ascii data model
# The name of a directory that contains the model data. This path may
# either be absolute (if starting with a `/') or relative to the current
# directory. The path may also include the special text
# `$ASPECT_SOURCE_DIR' which will be interpreted as the path in which the
# ASPECT source files were located when ASPECT was compiled. This
# interpretation allows, for example, to reference files located in the
# `data/' subdirectory of ASPECT.
set Data directory = $ASPECT_SOURCE_DIR/tests/adiabatic-conditions/ascii-data/test/
# The file name of the model data.
set Data file name =
# Scalar factor, which is applied to the model data. You might want to use
# this to scale the input to a reference model. Another way to use this
# factor is to convert units of the input files. For instance, if you
# provide velocities in cm/yr set this factor to 0.01.
set Scale factor = 1.
end
subsection Compute profile
# Select how the reference profile for composition is computed. This
# profile is used to evaluate the material model, when computing the
# pressure and temperature profile.
set Composition reference profile = initial composition
# Sometimes it is convenient to use symbolic constants in the expression
# that describes the function, rather than having to use its numeric value
# everywhere the constant appears. These values can be defined using this
# parameter, in the form `var1=value1, var2=value2, ...'.
#
# A typical example would be to set this runtime parameter to
# `pi=3.1415926536' and then use `pi' in the expression of the actual
# formula. (That said, for convenience this class actually defines both
# `pi' and `Pi' by default, but you get the idea.)
set Function constants =
# The formula that denotes the function you want to evaluate for
# particular values of the independent variables. This expression may
# contain any of the usual operations such as addition or multiplication,
# as well as all of the common functions such as `sin' or `cos'. In
# addition, it may contain expressions like `if(x>0, 1, -1)' where the
# expression evaluates to the second argument if the first argument is
# true, and to the third argument otherwise. For a full overview of
# possible expressions accepted see the documentation of the muparser
# library at http://muparser.beltoforion.de/.
#
# If the function you are describing represents a vector-valued function
# with multiple components, then separate the expressions for individual
# components by a semicolon.
set Function expression = 0
# The number of points we use to compute the adiabatic profile. The higher
# the number of points, the more accurate the downward integration from
# the adiabatic surface temperature will be.
set Number of points = 1000
# Whether to use the 'Surface condition function' to determine surface
# conditions, or the 'Adiabatic surface temperature' and 'Surface
# pressure' parameters. If this is set to true the reference profile is
# updated every timestep. The function expression of the function should
# be independent of space, but can depend on time 't'. The function must
# return two components, the first one being reference surface pressure,
# the second one being reference surface temperature.
set Use surface condition function = false
# The names of the variables as they will be used in the function,
# separated by commas. By default, the names of variables at which the
# function will be evaluated are `x' (in 1d), `x,y' (in 2d) or `x,y,z' (in
# 3d) for spatial coordinates and `t' for time. You can then use these
# variable names in your function expression and they will be replaced by
# the values of these variables at which the function is currently
# evaluated. However, you can also choose a different set of names for the
# independent variables at which to evaluate your function expression. For
# example, if you work in spherical coordinates, you may wish to set this
# input parameter to `r,phi,theta,t' and then use these variable names in
# your function expression.
set Variable names = x,t
subsection Surface condition function
# Sometimes it is convenient to use symbolic constants in the expression
# that describes the function, rather than having to use its numeric
# value everywhere the constant appears. These values can be defined
# using this parameter, in the form `var1=value1, var2=value2, ...'.
#
# A typical example would be to set this runtime parameter to
# `pi=3.1415926536' and then use `pi' in the expression of the actual
# formula. (That said, for convenience this class actually defines both
# `pi' and `Pi' by default, but you get the idea.)
set Function constants =
# The formula that denotes the function you want to evaluate for
# particular values of the independent variables. This expression may
# contain any of the usual operations such as addition or
# multiplication, as well as all of the common functions such as `sin'
# or `cos'. In addition, it may contain expressions like `if(x>0, 1,
# -1)' where the expression evaluates to the second argument if the
# first argument is true, and to the third argument otherwise. For a
# full overview of possible expressions accepted see the documentation
# of the muparser library at http://muparser.beltoforion.de/.
#
# If the function you are describing represents a vector-valued function
# with multiple components, then separate the expressions for individual
# components by a semicolon.
set Function expression = 0; 0
# The names of the variables as they will be used in the function,
# separated by commas. By default, the names of variables at which the
# function will be evaluated are `x' (in 1d), `x,y' (in 2d) or `x,y,z'
# (in 3d) for spatial coordinates and `t' for time. You can then use
# these variable names in your function expression and they will be
# replaced by the values of these variables at which the function is
# currently evaluated. However, you can also choose a different set of
# names for the independent variables at which to evaluate your function
# expression. For example, if you work in spherical coordinates, you may
# wish to set this input parameter to `r,phi,theta,t' and then use these
# variable names in your function expression.
set Variable names = x,t
end
end
subsection Function
# Sometimes it is convenient to use symbolic constants in the expression
# that describes the function, rather than having to use its numeric value
# everywhere the constant appears. These values can be defined using this
# parameter, in the form `var1=value1, var2=value2, ...'.
#
# A typical example would be to set this runtime parameter to
# `pi=3.1415926536' and then use `pi' in the expression of the actual
# formula. (That said, for convenience this class actually defines both
# `pi' and `Pi' by default, but you get the idea.)
set Function constants =
# Expression for the adiabatic temperature, pressure, and density
# separated by semicolons as a function of `depth'.
set Function expression = 0.0; 0.0; 1.0
set Variable names = depth
end
end
subsection Boundary composition model
# When the composition is fixed on a given boundary as determined by the
# list of 'Fixed composition boundary indicators', there might be parts of
# the boundary where material flows out and one may want to prescribe the
# composition only on those parts of the boundary where there is inflow.
# This parameter determines if compositions are only prescribed at these
# inflow parts of the boundary (if false) or everywhere on a given boundary,
# independent of the flow direction (if true). By default, this parameter is
# set to false, except in models with melt transport (see below). Note that
# in this context, `fixed' refers to the fact that these are the boundary
# indicators where Dirichlet boundary conditions are applied, and does not
# imply that the boundary composition is time-independent.
#
# Mathematically speaking, the compositional fields satisfy an advection
# equation that has no diffusion. For this equation, one can only impose
# Dirichlet boundary conditions (i.e., prescribe a fixed compositional field
# value at the boundary) at those boundaries where material flows in. This
# would correspond to the ``false'' setting of this parameter, which is
# correspondingly the default. On the other hand, on a finite dimensional
# discretization such as the one one obtains from the finite element method,
# it is possible to also prescribe values on outflow boundaries, even though
# this may make no physical sense. This would then correspond to the
# ``true'' setting of this parameter.
#
# A warning for models with melt transport: In models with fluid flow, some
# compositional fields (in particular the porosity) might be transported
# with the fluid velocity, and would need to set the constraints based on
# the fluid velocity. However, this is currently not possible, because we
# reuse the same matrix for all compositional fields, and therefore can not
# use different constraints for different fields. Consequently, we set this
# parameter to true by default in models where melt transport is enabled. Be
# aware that if you change this default setting, you will not use the melt
# velocity, but the solid velocity to determine on which parts of the
# boundaries there is outflow.
set Allow fixed composition on outflow boundaries = false for models without melt
# A comma separated list of names denoting those boundaries on which the
# composition is fixed and described by the boundary composition 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.
#
# The names of the boundaries listed here can either be numbers (in which
# case they correspond to the numerical boundary indicators assigned by the
# geometry object), or they can correspond to any of the symbolic names the
# geometry object may have provided for each part of the boundary. You may
# want to compare this with the documentation of the geometry model you use
# in your model.
#
# This parameter only describes which boundaries have a fixed composition,
# but not what composition should hold on these boundaries. The latter piece
# of information needs to be implemented in a plugin in the
# BoundaryComposition group, unless an existing implementation in this group
# already provides what you want.
set Fixed composition boundary indicators =
# A comma-separated list of boundary composition models that will be used to
# initialize the composition. These plugins are loaded in the order given,
# and modify the existing composition field via the operators listed in
# 'List of model operators'.
#
# The following boundary composition models are available:
#
# `ascii data': Implementation of a model in which the boundary composition
# is derived from files containing data in ascii format. Note the required
# format of the input data: The first lines may contain any number of
# comments if they begin with `#', but one of these lines needs to contain
# the number of grid points in each dimension as for example `# POINTS: 3
# 3'. The order of the data columns has to be `x', `composition1',
# `composition2', etc. in a 2d model and `x', `y', `composition1',
# `composition2', etc., in a 3d model, according to the number of
# compositional fields, which means that there has to be a single column for
# every composition in the model. Note that the data in the input files need
# to be sorted in a specific order: the first coordinate needs to ascend
# first, followed by the second in order to assign the correct data to the
# prescribed coordinates.If you use a spherical model, then the assumed grid
# changes. `x' will be replaced by the radial distance of the point to the
# bottom of the model, `y' by the azimuth angle and `z' by the polar angle
# measured positive from the north pole. The grid will be assumed to be a
# latitude-longitude grid. Note that the order of spherical coordinates is
# `r', `phi', `theta' and not `r', `theta', `phi', since this allows for
# dimension independent expressions.
#
# `box': A model in which the composition is chosen constant on the sides of
# a box which are selected by the parameters
# Left/Right/Top/Bottom/Front/Back composition
#
# `box with lithosphere boundary indicators': A model in which the
# composition is chosen constant on all the sides of a box. Additional
# boundary indicators are added to the lithospheric parts of the vertical
# boundaries. This model is to be used with the 'Two Merged Boxes' Geometry
# Model.
#
# `function': Implementation of a model in which the boundary composition is
# given in terms of an explicit formula that is elaborated in the parameters
# in section ``Boundary composition model|Function''.
#
# Since the symbol $t$ indicating time may appear in the formulas for the
# prescribed composition, it is interpreted as having units seconds unless
# the global input parameter ``Use years in output instead of seconds'' is
# set, in which case we interpret the formula expressions as having units
# year.
#
# The format of these functions follows the syntax understood by the
# muparser library, see Section~\ref{sec:muparser-format}.
#
# `initial composition': A model in which the composition at the boundary is
# chosen to be the same as given in the initial conditions.
#
# Because this class simply takes what the initial composition had
# described, this class can not know certain pieces of information such as
# the minimal and maximal composition on the boundary. For operations that
# require this, for example in post-processing, this boundary composition
# model must therefore be told what the minimal and maximal values on the
# boundary are. This is done using parameters set in section ``Boundary
# composition model/Initial composition''.
#
# `spherical constant': A model in which the composition is chosen constant
# on the inner and outer boundaries of a surface, spherical shell, chunk or
# ellipsoidal chunk. Parameters are read from subsection 'Spherical
# constant'.
set List of model names =
# A comma-separated list of operators that will be used to append the listed
# composition models onto the previous models. If only one operator is
# given, the same operator is applied to all models.
set List of model operators = add
# Select one of the following models:
#
# `ascii data': Implementation of a model in which the boundary composition
# is derived from files containing data in ascii format. Note the required
# format of the input data: The first lines may contain any number of
# comments if they begin with `#', but one of these lines needs to contain
# the number of grid points in each dimension as for example `# POINTS: 3
# 3'. The order of the data columns has to be `x', `composition1',
# `composition2', etc. in a 2d model and `x', `y', `composition1',
# `composition2', etc., in a 3d model, according to the number of
# compositional fields, which means that there has to be a single column for
# every composition in the model. Note that the data in the input files need
# to be sorted in a specific order: the first coordinate needs to ascend
# first, followed by the second in order to assign the correct data to the
# prescribed coordinates.If you use a spherical model, then the assumed grid
# changes. `x' will be replaced by the radial distance of the point to the
# bottom of the model, `y' by the azimuth angle and `z' by the polar angle
# measured positive from the north pole. The grid will be assumed to be a
# latitude-longitude grid. Note that the order of spherical coordinates is
# `r', `phi', `theta' and not `r', `theta', `phi', since this allows for
# dimension independent expressions.
#
# `box': A model in which the composition is chosen constant on the sides of
# a box which are selected by the parameters
# Left/Right/Top/Bottom/Front/Back composition
#
# `box with lithosphere boundary indicators': A model in which the
# composition is chosen constant on all the sides of a box. Additional
# boundary indicators are added to the lithospheric parts of the vertical
# boundaries. This model is to be used with the 'Two Merged Boxes' Geometry
# Model.
#
# `function': Implementation of a model in which the boundary composition is
# given in terms of an explicit formula that is elaborated in the parameters
# in section ``Boundary composition model|Function''.
#
# Since the symbol $t$ indicating time may appear in the formulas for the
# prescribed composition, it is interpreted as having units seconds unless
# the global input parameter ``Use years in output instead of seconds'' is
# set, in which case we interpret the formula expressions as having units
# year.
#
# The format of these functions follows the syntax understood by the
# muparser library, see Section~\ref{sec:muparser-format}.
#
# `initial composition': A model in which the composition at the boundary is
# chosen to be the same as given in the initial conditions.
#
# Because this class simply takes what the initial composition had
# described, this class can not know certain pieces of information such as
# the minimal and maximal composition on the boundary. For operations that
# require this, for example in post-processing, this boundary composition
# model must therefore be told what the minimal and maximal values on the
# boundary are. This is done using parameters set in section ``Boundary
# composition model/Initial composition''.
#
# `spherical constant': A model in which the composition is chosen constant
# on the inner and outer boundaries of a surface, spherical shell, chunk or
# ellipsoidal chunk. Parameters are read from subsection 'Spherical
# constant'.
#
# \textbf{Warning}: This parameter provides an old and deprecated way of
# specifying boundary composition models and shouldn't be used. Please use
# 'List of model names' instead.
set Model name = unspecified
subsection Ascii data model
# The name of a directory that contains the model data. This path may
# either be absolute (if starting with a `/') or relative to the current
# directory. The path may also include the special text
# `$ASPECT_SOURCE_DIR' which will be interpreted as the path in which the
# ASPECT source files were located when ASPECT was compiled. This
# interpretation allows, for example, to reference files located in the
# `data/' subdirectory of ASPECT.
set Data directory = $ASPECT_SOURCE_DIR/data/boundary-composition/ascii-data/test/
# The file name of the model data. Provide file in format: (File
# name).\%s\%d, where \%s is a string specifying the boundary of the model
# according to the names of the boundary indicators (of the chosen
# geometry model), and \%d is any sprintf integer qualifier specifying the
# format of the current file number.
set Data file name = box_2d_%s.%d.txt
# Time step between following data files. Depending on the setting of the
# global `Use years in output instead of seconds' flag in the input file,
# this number is either interpreted as seconds or as years. The default is
# one million, i.e., either one million seconds or one million years.
set Data file time step = 1e6
# In some cases the boundary files are not numbered in increasing but in
# decreasing order (e.g. `Ma BP'). If this flag is set to `True' the
# plugin will first load the file with the number `First data file number'
# and decrease the file number during the model run.
set Decreasing file order = false
# Time from which on the data file with number `First data file number' is
# used as boundary condition. Until this time, a boundary condition equal
# to zero everywhere is assumed. Depending on the setting of the global
# `Use years in output instead of seconds' flag in the input file, this
# number is either interpreted as seconds or as years.
set First data file model time = 0
# Number of the first velocity file to be loaded when the model time is
# larger than `First velocity file model time'.
set First data file number = 0
# Scalar factor, which is applied to the model data. You might want to use
# this to scale the input to a reference model. Another way to use this
# factor is to convert units of the input files. For instance, if you
# provide velocities in cm/yr set this factor to 0.01.
set Scale factor = 1.
end
subsection Box
# A comma separated list of composition boundary values at the bottom
# boundary (at minimal $y$-value in 2d, or minimal $z$-value in 3d). This
# list must have as many entries as there are compositional fields. Units:
# none.
set Bottom composition =
# A comma separated list of composition boundary values at the left
# boundary (at minimal $x$-value). This list must have as many entries as
# there are compositional fields. Units: none.
set Left composition =
# A comma separated list of composition boundary values at the right
# boundary (at maximal $x$-value). This list must have as many entries as
# there are compositional fields. Units: none.
set Right composition =
# A comma separated list of composition boundary values at the top
# boundary (at maximal $y$-value in 2d, or maximal $z$-value in 3d). This
# list must have as many entries as there are compositional fields. Units:
# none.
set Top composition =
end
subsection Box with lithosphere boundary indicators
# A comma separated list of composition boundary values at the bottom
# boundary (at minimal $y$-value in 2d, or minimal $z$-value in 3d). This
# list must have as many entries as there are compositional fields. Units:
# none.
set Bottom composition =
# A comma separated list of composition boundary values at the left
# boundary (at minimal $x$-value). This list must have as many entries as
# there are compositional fields. Units: none.
set Left composition =
# A comma separated list of composition boundary values at the left
# boundary (at minimal $x$-value). This list must have as many entries as
# there are compositional fields. Units: none.
set Left composition lithosphere =
# A comma separated list of composition boundary values at the right
# boundary (at maximal $x$-value). This list must have as many entries as
# there are compositional fields. Units: none.
set Right composition =
# A comma separated list of composition boundary values at the right
# boundary (at maximal $x$-value). This list must have as many entries as
# there are compositional fields. Units: none.
set Right composition lithosphere =
# A comma separated list of composition boundary values at the top
# boundary (at maximal $y$-value in 2d, or maximal $z$-value in 3d). This
# list must have as many entries as there are compositional fields. Units:
# none.
set Top composition =
end
subsection Function
# A selection that determines the assumed coordinate system for the
# function variables. Allowed values are 'cartesian', 'spherical', and
# 'depth'. 'spherical' coordinates are interpreted as r,phi or r,phi,theta
# in 2D/3D respectively with theta being the polar angle. 'depth' will
# create a function, in which only the first parameter is non-zero, which
# is interpreted to be the depth of the point.
set Coordinate system = cartesian
# Sometimes it is convenient to use symbolic constants in the expression
# that describes the function, rather than having to use its numeric value
# everywhere the constant appears. These values can be defined using this
# parameter, in the form `var1=value1, var2=value2, ...'.
#
# A typical example would be to set this runtime parameter to
# `pi=3.1415926536' and then use `pi' in the expression of the actual
# formula. (That said, for convenience this class actually defines both
# `pi' and `Pi' by default, but you get the idea.)
set Function constants =
# The formula that denotes the function you want to evaluate for
# particular values of the independent variables. This expression may
# contain any of the usual operations such as addition or multiplication,
# as well as all of the common functions such as `sin' or `cos'. In
# addition, it may contain expressions like `if(x>0, 1, -1)' where the
# expression evaluates to the second argument if the first argument is
# true, and to the third argument otherwise. For a full overview of
# possible expressions accepted see the documentation of the muparser
# library at http://muparser.beltoforion.de/.
#
# If the function you are describing represents a vector-valued function
# with multiple components, then separate the expressions for individual
# components by a semicolon.
set Function expression = 0
# The names of the variables as they will be used in the function,
# separated by commas. By default, the names of variables at which the
# function will be evaluated are `x' (in 1d), `x,y' (in 2d) or `x,y,z' (in
# 3d) for spatial coordinates and `t' for time. You can then use these
# variable names in your function expression and they will be replaced by
# the values of these variables at which the function is currently
# evaluated. However, you can also choose a different set of names for the
# independent variables at which to evaluate your function expression. For
# example, if you work in spherical coordinates, you may wish to set this
# input parameter to `r,phi,theta,t' and then use these variable names in
# your function expression.
set Variable names = x,y,t
end
subsection Initial composition
# Maximal composition. Units: none.
set Maximal composition = 1.
# Minimal composition. Units: none.
set Minimal composition = 0.
end
subsection Spherical constant
# Composition at the inner boundary (core mantle boundary). Units: none.
set Inner composition = 1.
# Composition at the outer boundary (lithosphere water/air). For a
# spherical geometry model, this is the only boundary. Units: none.
set Outer composition = 0.
end
end
subsection Boundary fluid pressure model
# Select one of the following plugins:
#
# `density': A plugin that prescribes the fluid pressure gradient at the
# boundary based on fluid/solid density from the material model.
set Plugin name = density
subsection Density
# The density formulation used to compute the fluid pressure gradient at
# the model boundary.
#
# `solid density' prescribes the gradient of the fluid pressure as solid
# density times gravity (which is the lithostatic pressure) and leads to
# approximately the same pressure in the melt as in the solid, so that
# fluid is only flowing in or out due to differences in dynamic pressure.
#
# `fluid density' prescribes the gradient of the fluid pressure as fluid
# density times gravity and causes melt to flow in with the same velocity
# as inflowing solid material, or no melt flowing in or out if the solid
# velocity normal to the boundary is zero.
#
# 'average density' prescribes the gradient of the fluid pressure as the
# averaged fluid and solid density times gravity (which is a better
# approximation for the lithostatic pressure than just the solid density)
# and leads to approximately the same pressure in the melt as in the
# solid, so that fluid is only flowing in or out due to differences in
# dynamic pressure.
set Density formulation = solid density
end
end
subsection Boundary heat flux model
# A comma separated list of names denoting those boundaries on which the
# heat flux is fixed and described by the boundary heat flux object selected
# in the 'Model name' parameter. All boundary indicators used by the
# geometry but not explicitly listed here or in the list of 'Fixed
# temperature boundary indicators' in the 'Boundary temperature model' will
# end up with no-flux (insulating) boundary conditions.
#
# The names of the boundaries listed here can either be numbers (in which
# case they correspond to the numerical boundary indicators assigned by the
# geometry object), or they can correspond to any of the symbolic names the
# geometry object may have provided for each part of the boundary. You may
# want to compare this with the documentation of the geometry model you use
# in your model.
#
# This parameter only describes which boundaries have a fixed heat flux, but
# not what heat flux should hold on these boundaries. The latter piece of
# information needs to be implemented in a plugin in the BoundaryHeatFlux
# group, unless an existing implementation in this group already provides
# what you want.
set Fixed heat flux boundary indicators =
# Select one of the following plugins:
#
# `function': Implementation of a model in which the boundary heat flux is
# given in terms of an explicit formula that is elaborated in the parameters
# in section ``Boundary heat flux model|Function''. The format of these
# functions follows the syntax understood by the muparser library, see
# Section~\ref{sec:muparser-format}.
#
# The formula you describe in the mentioned section is a scalar value for
# the heat flux that is assumed to be the flux normal to the boundary, and
# that has the unit W/(m$^2$) (in 3d) or W/m (in 2d). Negative fluxes are
# interpreted as the flow of heat into the domain, and positive fluxes are
# interpreted as heat flowing out of the domain.
#
# The symbol $t$ indicating time that may appear in the formulas for the
# prescribed heat flux is interpreted as having units seconds unless the
# global parameter ``Use years in output instead of seconds'' has been set.
set Model name = function
subsection Function
# A selection that determines the assumed coordinate system for the
# function variables. Allowed values are `cartesian', `spherical', and
# `depth'. `spherical' coordinates are interpreted as r,phi or r,phi,theta
# in 2D/3D respectively with theta being the polar angle. `depth' will
# create a function, in which only the first parameter is non-zero, which
# is interpreted to be the depth of the point.
set Coordinate system = cartesian
# Sometimes it is convenient to use symbolic constants in the expression
# that describes the function, rather than having to use its numeric value
# everywhere the constant appears. These values can be defined using this
# parameter, in the form `var1=value1, var2=value2, ...'.
#
# A typical example would be to set this runtime parameter to
# `pi=3.1415926536' and then use `pi' in the expression of the actual
# formula. (That said, for convenience this class actually defines both
# `pi' and `Pi' by default, but you get the idea.)
set Function constants =
# The formula that denotes the function you want to evaluate for
# particular values of the independent variables. This expression may
# contain any of the usual operations such as addition or multiplication,
# as well as all of the common functions such as `sin' or `cos'. In
# addition, it may contain expressions like `if(x>0, 1, -1)' where the
# expression evaluates to the second argument if the first argument is
# true, and to the third argument otherwise. For a full overview of
# possible expressions accepted see the documentation of the muparser
# library at http://muparser.beltoforion.de/.
#
# If the function you are describing represents a vector-valued function
# with multiple components, then separate the expressions for individual
# components by a semicolon.
set Function expression = 0
# The names of the variables as they will be used in the function,
# separated by commas. By default, the names of variables at which the
# function will be evaluated are `x' (in 1d), `x,y' (in 2d) or `x,y,z' (in
# 3d) for spatial coordinates and `t' for time. You can then use these
# variable names in your function expression and they will be replaced by
# the values of these variables at which the function is currently
# evaluated. However, you can also choose a different set of names for the
# independent variables at which to evaluate your function expression. For
# example, if you work in spherical coordinates, you may wish to set this
# input parameter to `r,phi,theta,t' and then use these variable names in
# your function expression.
set Variable names = x,y,t
end
end
subsection Boundary temperature model
# When the temperature is fixed on a given boundary as determined by the
# list of 'Fixed temperature boundary indicators', there might be parts of
# the boundary where material flows out and one may want to prescribe the
# temperature only on the parts of the boundary where there is inflow. This
# parameter determines if temperatures are only prescribed at these inflow
# parts of the boundary (if false) or everywhere on a given boundary,
# independent of the flow direction (if true).Note that in this context,
# `fixed' refers to the fact that these are the boundary indicators where
# Dirichlet boundary conditions are applied, and does not imply that the
# boundary temperature is time-independent.
#
# Mathematically speaking, the temperature satisfies an advection-diffusion
# equation. For this type of equation, one can prescribe the temperature
# even on outflow boundaries as long as the diffusion coefficient is
# nonzero. This would correspond to the ``true'' setting of this parameter,
# which is correspondingly the default. In practice, however, this would
# only make physical sense if the diffusion coefficient is actually quite
# large to prevent the creation of a boundary layer. In addition, if there
# is no diffusion, one can only impose Dirichlet boundary conditions (i.e.,
# prescribe a fixed temperature value at the boundary) at those boundaries
# where material flows in. This would correspond to the ``false'' setting of
# this parameter.
set Allow fixed temperature on outflow boundaries = true
# A comma separated list of names denoting those boundaries on which the
# temperature is fixed and described by the boundary temperature object
# selected in the 'List of model names' parameter. All boundary indicators
# used by the geometry but not explicitly listed here will end up with
# no-flux (insulating) boundary conditions, or, if they are listed in the
# 'Fixed heat flux boundary indicators', with Neumann boundary conditions.
#
# The names of the boundaries listed here can either be numbers (in which
# case they correspond to the numerical boundary indicators assigned by the
# geometry object), or they can correspond to any of the symbolic names the
# geometry object may have provided for each part of the boundary. You may
# want to compare this with the documentation of the geometry model you use
# in your model.
#
# This parameter only describes which boundaries have a fixed temperature,
# but not what temperature should hold on these boundaries. The latter piece
# of information needs to be implemented in a plugin in the
# BoundaryTemperature group, unless an existing implementation in this group
# already provides what you want.
set Fixed temperature boundary indicators = top, left, right # default:
# A comma-separated list of boundary temperature models that will be used to
# initialize the temperature. These plugins are loaded in the order given,
# and modify the existing temperature field via the operators listed in
# 'List of model operators'.
#
# The following boundary temperature models are available:
#
# `ascii data': Implementation of a model in which the boundary data is
# derived from files containing data in ascii format. Note the required
# format of the input data: The first lines may contain any number of
# comments if they begin with `#', but one of these lines needs to contain
# the number of grid points in each dimension as for example `# POINTS: 3
# 3'. The order of the data columns has to be `x', `Temperature [K]' in a 2d
# model and `x', `y', `Temperature [K]' in a 3d model, which means that
# there has to be a single column containing the temperature. Note that the
# data in the input files need to be sorted in a specific order: the first
# coordinate needs to ascend first, followed by the second in order to
# assign the correct data to the prescribed coordinates. If you use a
# spherical model, then the assumed grid changes. `x' will be replaced by
# the radial distance of the point to the bottom of the model, `y' by the