1
<?xml version='1.0' encoding='utf-8'?>
4
<string_value lines="1">VK_Case_1b</string_value>
7
<string_value lines="1">stokes</string_value>
11
<integer_value rank="0">2</integer_value>
13
<mesh name="CoordinateMesh">
14
<from_file file_name="Subduction_Mesh">
15
<format name="triangle"/>
21
<mesh name="VelocityMesh">
23
<mesh name="CoordinateMesh"/>
26
<integer_value rank="0">2</integer_value>
36
<integer_value rank="0">5</integer_value>
42
<string_value>vtk</string_value>
44
<dump_period_in_timesteps>
46
<integer_value rank="0">0</integer_value>
48
</dump_period_in_timesteps>
49
<output_mesh name="CoordinateMesh"/>
54
<static_detector name="Temperature6060">
56
<real_value shape="2" dim1="dim" rank="1">60000. -60000.</real_value>
59
<static_detector name="Pressure_up">
61
<real_value shape="2" dim1="dim" rank="1">66000. -54000.</real_value>
64
<static_detector name="Pressure_down">
66
<real_value shape="2" dim1="dim" rank="1">594000. -354000.</real_value>
69
<detector_array name="TSlab">
71
<integer_value rank="0">36</integer_value>
72
</number_of_detectors>
75
<string_value lines="20" type="code" language="python">def val(t):
77
start = numpy.array([0, 0])
78
end = numpy.array([210000, -210000])
81
output.append(start + (float(i)/35) * end)
82
return output</string_value>
85
<detector_array name="TWedge">
87
<integer_value rank="0">78</integer_value>
88
</number_of_detectors>
91
<string_value lines="20" type="code" language="python">def val(t):
96
output1.append([54000 + (float(i)/20) * 120000, -54000 + (float(j)/20) * (-120000)])
97
return output1</string_value>
100
<fail_outside_domain/>
105
<real_value rank="0">0.0</real_value>
108
<real_value rank="0">1e12</real_value>
111
<real_value rank="0">1e16</real_value>
115
<real_value rank="0">5.0</real_value>
117
<courant_number name="CFLNumber">
118
<mesh name="CoordinateMesh"/>
121
<real_value rank="0">5</real_value>
122
</increase_tolerance>
126
<real_value rank="0">1e-3</real_value>
131
<material_phase name="Fluid">
132
<scalar_field name="Pressure" rank="0">
134
<mesh name="CoordinateMesh"/>
135
<spatial_discretisation>
136
<continuous_galerkin/>
137
</spatial_discretisation>
139
<integer_value rank="0">4</integer_value>
142
<poisson_pressure_solution>
143
<string_value lines="1">never</string_value>
144
</poisson_pressure_solution>
145
<use_projection_method>
146
<full_schur_complement>
147
<inner_matrix name="FullMomentumMatrix">
149
<iterative_method name="cg"/>
150
<preconditioner name="mg"/>
152
<real_value rank="0">1.0e-9</real_value>
155
<integer_value rank="0">10000</integer_value>
158
<never_ignore_solver_failures/>
164
<preconditioner_matrix name="DiagonalSchurComplement"/>
165
</full_schur_complement>
166
</use_projection_method>
169
<iterative_method name="fgmres"/>
170
<preconditioner name="ksp">
172
<iterative_method name="cg"/>
173
<preconditioner name="sor"/>
175
<real_value rank="0">1.0e-12</real_value>
178
<integer_value rank="0">10000</integer_value>
181
<never_ignore_solver_failures/>
188
<real_value rank="0">1.0e-7</real_value>
191
<real_value rank="0">1.e-7</real_value>
194
<integer_value rank="0">25000</integer_value>
196
<never_ignore_solver_failures/>
199
<preconditioned_residual/>
206
<include_in_convergence/>
209
<include_in_detectors/>
212
<exclude_from_steady_state/>
214
<consistent_interpolation/>
217
<scalar_field name="Density" rank="0">
219
<algorithm name="Internal" material_phase_support="multiple"/>
220
<mesh name="VelocityMesh"/>
224
<include_in_convergence/>
227
<include_in_detectors/>
230
<include_in_steady_state/>
234
<vector_field name="Velocity" rank="1">
236
<mesh name="VelocityMesh"/>
237
<equation name="LinearMomentum"/>
238
<spatial_discretisation>
239
<continuous_galerkin>
244
<exclude_mass_terms/>
247
<exclude_advection_terms/>
252
</continuous_galerkin>
253
<conservative_advection>
254
<real_value rank="0">1.0</real_value>
255
</conservative_advection>
256
</spatial_discretisation>
257
<temporal_discretisation>
259
<real_value rank="0">1.0</real_value>
262
<real_value rank="0">1.0</real_value>
264
</temporal_discretisation>
266
<iterative_method name="cg"/>
267
<preconditioner name="mg"/>
269
<real_value rank="0">1.0e-7</real_value>
272
<integer_value rank="0">5000</integer_value>
274
<never_ignore_solver_failures/>
279
<initial_condition name="WholeMesh">
281
<real_value shape="2" dim1="dim" rank="1">0.0 0.0</real_value>
284
<prescribed_region name="Crust">
286
<integer_value shape="1" rank="1">24</integer_value>
289
<real_value shape="2" dim1="dim" rank="1">0. 0.</real_value>
292
<prescribed_region name="Slab">
294
<integer_value shape="1" rank="1">30</integer_value>
297
<string_value lines="20" type="code" language="python">def val(X, t):
298
from math import sqrt
299
vx = sqrt(((0.05/(3600.*24.*365.))**2.)/2.)
300
vy = -sqrt(((0.05/(3600.*24.*365.))**2.)/2.)
301
return [vx,vy]</string_value>
304
<boundary_conditions name="Batchelor">
306
<integer_value shape="3" rank="1">12 13 16</integer_value>
308
<type name="dirichlet">
309
<align_bc_with_cartesian>
312
<string_value lines="20" type="code" language="python">def val(X, t):
314
from math import sqrt, atan, cos, sin, pi
319
Depth = (X[1] * -1.) -50000.
323
Xdist = 0.000000000000001
333
THETA = atan(Depth/Xdist)
335
VTHETA = (((ALFA - THETA) * sin(THETA) * sin(ALFA)) - (ALFA * THETA * sin(ALFA-THETA))) / (ALFA**2 - (sin(ALFA)**2))
336
VTHETA = VTHETA * (0.05/(3600.*24.*365.)) *-1.
338
VR = (((ALFA - THETA) * cos(THETA) * sin(ALFA)) - (sin(ALFA) * sin(THETA)) - (ALFA * sin(ALFA-THETA)) + (ALFA*THETA*cos(ALFA-THETA))) / ((ALFA**2) - (sin(ALFA))**2)
339
VR = VR * (0.05/(3600.*24.*365.))
341
Vx = -( VTHETA*sin(THETA) - VR*cos(THETA) )
342
Vy = - (VTHETA*cos(THETA) + VR*sin(THETA) )
344
return Vx</string_value>
349
<string_value lines="20" type="code" language="python">def val(X, t):
351
from math import sqrt, atan, cos, sin, pi
356
Depth = (X[1] * -1.) -50000.
360
Xdist = 0.000000000000001
370
THETA = atan(Depth/Xdist)
372
VTHETA = (((ALFA - THETA) * sin(THETA) * sin(ALFA)) - (ALFA * THETA * sin(ALFA-THETA))) / (ALFA**2 - (sin(ALFA)**2))
373
VTHETA = VTHETA * (0.05/(3600.*24.*365.)) *-1.
375
VR = (((ALFA - THETA) * cos(THETA) * sin(ALFA)) - (sin(ALFA) * sin(THETA)) - (ALFA * sin(ALFA-THETA)) + (ALFA*THETA*cos(ALFA-THETA))) / ((ALFA**2) - (sin(ALFA))**2)
376
VR = VR * (0.05/(3600.*24.*365.))
378
Vx = -( VTHETA*sin(THETA) - VR*cos(THETA) )
379
Vy = - (VTHETA*cos(THETA) + VR*sin(THETA) )
381
return Vy</string_value>
384
</align_bc_with_cartesian>
386
</boundary_conditions>
387
<boundary_conditions name="Crust">
389
<integer_value shape="1" rank="1">32</integer_value>
391
<type name="dirichlet">
392
<align_bc_with_cartesian>
395
<real_value rank="0">0.0</real_value>
400
<real_value rank="0">0.0</real_value>
403
</align_bc_with_cartesian>
405
</boundary_conditions>
406
<boundary_conditions name="Slab">
408
<integer_value shape="1" rank="1">31</integer_value>
410
<type name="dirichlet">
411
<align_bc_with_cartesian>
414
<string_value lines="20" type="code" language="python">def val(X, t):
415
from math import sqrt
416
vx = sqrt(((0.05/(3600.*24.*365.))**2.)/2.)
417
return vx</string_value>
422
<string_value lines="20" type="code" language="python">def val(X, t):
423
from math import sqrt
424
vy = -sqrt(((0.05/(3600.*24.*365.))**2.)/2.)
425
return vy</string_value>
428
</align_bc_with_cartesian>
430
</boundary_conditions>
431
<tensor_field name="Viscosity" rank="2">
433
<value name="WholeMesh">
436
<real_value rank="0">1e21</real_value>
446
<surface_integral type="normal" name="Outflow">
448
<integer_value shape="2" rank="1">13 16</integer_value>
451
<surface_integral type="normal" name="All">
453
<integer_value shape="3" rank="1">12 13 16</integer_value>
458
</previous_time_step>
464
<include_in_convergence/>
467
<include_in_detectors/>
470
<exclude_from_steady_state/>
472
<consistent_interpolation/>
475
<scalar_field name="Temperature" rank="0">
477
<mesh name="VelocityMesh"/>
478
<equation name="AdvectionDiffusion"/>
479
<spatial_discretisation>
480
<continuous_galerkin>
486
<exclude_mass_terms/>
488
</continuous_galerkin>
489
<conservative_advection>
490
<real_value rank="0">0.0</real_value>
491
</conservative_advection>
492
</spatial_discretisation>
493
<temporal_discretisation>
495
<real_value rank="0">1.0</real_value>
497
</temporal_discretisation>
499
<iterative_method name="preonly"/>
500
<preconditioner name="lu">
501
<factorization_package name="petsc"/>
504
<real_value rank="0">1.0e-10</real_value>
507
<integer_value rank="0">25000</integer_value>
509
<never_ignore_solver_failures/>
514
<initial_condition name="WholeMesh">
516
<string_value lines="20" type="code" language="python">def val(x, t):
518
return T</string_value>
521
<boundary_conditions name="SurfaceTemperature">
523
<integer_value shape="1" rank="1">10</integer_value>
525
<type name="dirichlet">
527
<real_value rank="0">273.</real_value>
530
</boundary_conditions>
531
<boundary_conditions name="InflowWedge">
533
<integer_value shape="1" rank="1">12</integer_value>
535
<type name="dirichlet">
537
<real_value rank="0">1573.</real_value>
540
</boundary_conditions>
541
<boundary_conditions name="ERF">
543
<integer_value shape="1" rank="1">15</integer_value>
545
<type name="dirichlet">
547
<string_value lines="20" type="code" language="python">def val(X, t):
566
# A&S formula 7.1.26
568
y = 1.0 - (((((a5*t + a4)*t) + a3)*t + a2)*t + a1)*t*math.exp(-x*x)
569
return sign*y # erf(-x) = -erf(x)
573
Age = 1576800000000000.
574
TempHalfSpace = 273.+ 1300.*(erf(Depth/(2.*math.sqrt(0.0000007272*Age))))
575
return TempHalfSpace</string_value>
578
</boundary_conditions>
579
<boundary_conditions name="LinearGradientCrust">
581
<integer_value shape="1" rank="1">11</integer_value>
583
<type name="dirichlet">
585
<string_value lines="20" type="code" language="python">def val(X, t):
587
T = 273. + (Depth*0.026)
588
return T</string_value>
591
</boundary_conditions>
592
<boundary_conditions name="Outflow">
594
<integer_value shape="2" rank="1">13 16</integer_value>
596
<type name="neumann">
598
<real_value rank="0">0.0</real_value>
601
</boundary_conditions>
602
<tensor_field name="Diffusivity" rank="2">
604
<value name="WholeMesh">
607
<real_value rank="0">0.0000007272</real_value>
617
<include_in_convergence/>
620
<include_in_detectors/>
623
<include_in_steady_state/>
625
<consistent_interpolation/>
628
<scalar_field name="FEDiv" rank="0">
630
<algorithm source_field_type="vector" material_phase_support="single" name="finite_element_divergence" source_field_name="Velocity">
632
<iterative_method name="cg"/>
633
<preconditioner name="sor"/>
635
<real_value rank="0">1.E-10</real_value>
638
<integer_value rank="0">10000</integer_value>
640
<never_ignore_solver_failures/>
646
<mesh name="VelocityMesh"/>
650
<include_in_convergence/>
653
<include_in_detectors/>
656
<exclude_from_steady_state/>
660
<vector_field name="FiniteElementGradient" rank="1">
661
<diagnostic field_name="Pressure">
662
<algorithm name="Internal" material_phase_support="multiple"/>
663
<mesh name="VelocityMesh"/>
665
<iterative_method name="cg"/>
666
<preconditioner name="sor"/>
668
<real_value rank="0">1e-7</real_value>
671
<integer_value rank="0">10000</integer_value>
673
<never_ignore_solver_failures/>
683
<include_in_convergence/>
686
<include_in_detectors/>
689
<include_in_steady_state/>