~fluidity-core/fluidity/sea-ice-branch

« back to all changes in this revision

Viewing changes to tests/column-parallel/column-parallel.flml

  • Committer: Simon Mouradian
  • Date: 2012-05-30 09:08:23 UTC
  • mfrom: (3520.32.274 fluidity)
  • Revision ID: simon.mouradian06@imperial.ac.uk-20120530090823-pq0fgemjpqn72j8d
mergeĀ fromĀ lp:fluidity

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<?xml version='1.0' encoding='utf-8'?>
 
2
<fluidity_options>
 
3
  <simulation_name>
 
4
    <string_value lines="1">column-parallel</string_value>
 
5
  </simulation_name>
 
6
  <problem_type>
 
7
    <string_value lines="1">oceans</string_value>
 
8
  </problem_type>
 
9
  <geometry>
 
10
    <dimension>
 
11
      <integer_value rank="0">3</integer_value>
 
12
    </dimension>
 
13
    <mesh name="CoordinateMesh">
 
14
      <from_file file_name="column">
 
15
        <format name="triangle"/>
 
16
        <stat>
 
17
          <include_in_stat/>
 
18
        </stat>
 
19
      </from_file>
 
20
    </mesh>
 
21
    <mesh name="VelocityMesh">
 
22
      <from_mesh>
 
23
        <mesh name="CoordinateMesh"/>
 
24
        <stat>
 
25
          <exclude_from_stat/>
 
26
        </stat>
 
27
      </from_mesh>
 
28
    </mesh>
 
29
    <mesh name="PressureMesh">
 
30
      <from_mesh>
 
31
        <mesh name="CoordinateMesh"/>
 
32
        <stat>
 
33
          <exclude_from_stat/>
 
34
        </stat>
 
35
      </from_mesh>
 
36
    </mesh>
 
37
    <quadrature>
 
38
      <degree>
 
39
        <integer_value rank="0">3</integer_value>
 
40
      </degree>
 
41
    </quadrature>
 
42
  </geometry>
 
43
  <io>
 
44
    <dump_format>
 
45
      <string_value>vtk</string_value>
 
46
    </dump_format>
 
47
    <dump_period>
 
48
      <constant>
 
49
        <real_value rank="0">86400</real_value>
 
50
        <comment>86400 - 1 day
 
51
604800 - 1 week</comment>
 
52
      </constant>
 
53
    </dump_period>
 
54
    <output_mesh name="CoordinateMesh"/>
 
55
    <stat/>
 
56
  </io>
 
57
  <timestepping>
 
58
    <current_time>
 
59
      <real_value rank="0">0.0</real_value>
 
60
      <time_units date="seconds since 1970-01-01 12:00:0.0"/>
 
61
    </current_time>
 
62
    <timestep>
 
63
      <real_value rank="0">15</real_value>
 
64
    </timestep>
 
65
    <finish_time>
 
66
      <real_value rank="0">45</real_value>
 
67
      <comment>1 years</comment>
 
68
    </finish_time>
 
69
    <nonlinear_iterations>
 
70
      <integer_value rank="0">2</integer_value>
 
71
    </nonlinear_iterations>
 
72
  </timestepping>
 
73
  <physical_parameters>
 
74
    <gravity>
 
75
      <magnitude>
 
76
        <real_value rank="0">9.8</real_value>
 
77
      </magnitude>
 
78
      <vector_field name="GravityDirection" rank="1">
 
79
        <prescribed>
 
80
          <mesh name="CoordinateMesh"/>
 
81
          <value name="WholeMesh">
 
82
            <constant>
 
83
              <real_value shape="3" dim1="dim" rank="1">0.0 0.0 -1.0</real_value>
 
84
            </constant>
 
85
          </value>
 
86
          <output/>
 
87
          <stat>
 
88
            <include_in_stat/>
 
89
          </stat>
 
90
          <detectors>
 
91
            <exclude_from_detectors/>
 
92
          </detectors>
 
93
        </prescribed>
 
94
      </vector_field>
 
95
    </gravity>
 
96
    <coriolis>
 
97
      <f_plane>
 
98
        <f>
 
99
          <real_value rank="0">1.0e-4</real_value>
 
100
        </f>
 
101
      </f_plane>
 
102
    </coriolis>
 
103
  </physical_parameters>
 
104
  <material_phase name="Fluid">
 
105
    <equation_of_state>
 
106
      <fluids>
 
107
        <ocean_pade_approximation/>
 
108
      </fluids>
 
109
    </equation_of_state>
 
110
    <subgridscale_parameterisations>
 
111
      <GLS>
 
112
        <option>
 
113
          <string_value>k-epsilon</string_value>
 
114
        </option>
 
115
        <stability_function>
 
116
          <string_value>Canuto-01-A</string_value>
 
117
        </stability_function>
 
118
        <calculate_boundaries>
 
119
          <string_value>neumann</string_value>
 
120
          <top_surface_ids>
 
121
            <integer_value shape="1" rank="1">38</integer_value>
 
122
          </top_surface_ids>
 
123
          <bottom_surface_ids>
 
124
            <integer_value shape="1" rank="1">39</integer_value>
 
125
          </bottom_surface_ids>
 
126
        </calculate_boundaries>
 
127
        <scalar_field name="GLSTurbulentKineticEnergy" rank="0">
 
128
          <prognostic>
 
129
            <mesh name="VelocityMesh"/>
 
130
            <equation name="AdvectionDiffusion"/>
 
131
            <spatial_discretisation>
 
132
              <control_volumes>
 
133
                <face_value name="FiniteElement">
 
134
                  <limit_face_value>
 
135
                    <limiter name="Sweby"/>
 
136
                  </limit_face_value>
 
137
                </face_value>
 
138
                <diffusion_scheme name="ElementGradient"/>
 
139
              </control_volumes>
 
140
              <conservative_advection>
 
141
                <real_value rank="0">0.0</real_value>
 
142
              </conservative_advection>
 
143
            </spatial_discretisation>
 
144
            <temporal_discretisation>
 
145
              <theta>
 
146
                <real_value rank="0">1.0</real_value>
 
147
              </theta>
 
148
              <control_volumes>
 
149
                <number_advection_iterations>
 
150
                  <integer_value rank="0">3</integer_value>
 
151
                </number_advection_iterations>
 
152
              </control_volumes>
 
153
            </temporal_discretisation>
 
154
            <solver>
 
155
              <iterative_method name="gmres">
 
156
                <restart>
 
157
                  <integer_value rank="0">50</integer_value>
 
158
                </restart>
 
159
              </iterative_method>
 
160
              <preconditioner name="sor"/>
 
161
              <relative_error>
 
162
                <real_value rank="0">1.0e-7</real_value>
 
163
              </relative_error>
 
164
              <max_iterations>
 
165
                <integer_value rank="0">5000</integer_value>
 
166
              </max_iterations>
 
167
              <never_ignore_solver_failures/>
 
168
              <diagnostics>
 
169
                <monitors/>
 
170
              </diagnostics>
 
171
            </solver>
 
172
            <initial_condition name="WholeMesh">
 
173
              <constant>
 
174
                <real_value rank="0">7.6e-6</real_value>
 
175
              </constant>
 
176
            </initial_condition>
 
177
            <tensor_field name="Diffusivity" rank="2">
 
178
              <diagnostic>
 
179
                <algorithm name="Internal" material_phase_support="multiple"/>
 
180
                <output/>
 
181
                <stat>
 
182
                  <include_in_stat/>
 
183
                </stat>
 
184
              </diagnostic>
 
185
            </tensor_field>
 
186
            <scalar_field name="Source" rank="0">
 
187
              <diagnostic>
 
188
                <algorithm name="Internal" material_phase_support="multiple"/>
 
189
                <output/>
 
190
                <stat/>
 
191
                <detectors>
 
192
                  <include_in_detectors/>
 
193
                </detectors>
 
194
              </diagnostic>
 
195
            </scalar_field>
 
196
            <scalar_field name="Absorption" rank="0">
 
197
              <diagnostic>
 
198
                <algorithm name="Internal" material_phase_support="multiple"/>
 
199
                <output/>
 
200
                <stat/>
 
201
                <detectors>
 
202
                  <include_in_detectors/>
 
203
                </detectors>
 
204
              </diagnostic>
 
205
            </scalar_field>
 
206
            <output/>
 
207
            <stat/>
 
208
            <convergence>
 
209
              <include_in_convergence/>
 
210
            </convergence>
 
211
            <detectors>
 
212
              <include_in_detectors/>
 
213
            </detectors>
 
214
            <steady_state>
 
215
              <include_in_steady_state/>
 
216
            </steady_state>
 
217
            <consistent_interpolation/>
 
218
            <minimum_value>
 
219
              <real_value rank="0">7.6e-6</real_value>
 
220
            </minimum_value>
 
221
          </prognostic>
 
222
        </scalar_field>
 
223
        <scalar_field name="GLSGenericSecondQuantity" rank="0">
 
224
          <prognostic>
 
225
            <mesh name="VelocityMesh"/>
 
226
            <equation name="AdvectionDiffusion"/>
 
227
            <spatial_discretisation>
 
228
              <control_volumes>
 
229
                <face_value name="FiniteElement">
 
230
                  <limit_face_value>
 
231
                    <limiter name="Sweby"/>
 
232
                  </limit_face_value>
 
233
                </face_value>
 
234
                <diffusion_scheme name="ElementGradient"/>
 
235
              </control_volumes>
 
236
              <conservative_advection>
 
237
                <real_value rank="0">0.0</real_value>
 
238
              </conservative_advection>
 
239
            </spatial_discretisation>
 
240
            <temporal_discretisation>
 
241
              <theta>
 
242
                <real_value rank="0">1.0</real_value>
 
243
              </theta>
 
244
              <control_volumes>
 
245
                <number_advection_iterations>
 
246
                  <integer_value rank="0">3</integer_value>
 
247
                </number_advection_iterations>
 
248
              </control_volumes>
 
249
            </temporal_discretisation>
 
250
            <solver>
 
251
              <iterative_method name="gmres">
 
252
                <restart>
 
253
                  <integer_value rank="0">30</integer_value>
 
254
                </restart>
 
255
              </iterative_method>
 
256
              <preconditioner name="sor"/>
 
257
              <relative_error>
 
258
                <real_value rank="0">1.0E-7</real_value>
 
259
              </relative_error>
 
260
              <max_iterations>
 
261
                <integer_value rank="0">20000</integer_value>
 
262
              </max_iterations>
 
263
              <never_ignore_solver_failures/>
 
264
              <diagnostics>
 
265
                <monitors/>
 
266
              </diagnostics>
 
267
            </solver>
 
268
            <initial_condition name="WholeMesh">
 
269
              <constant>
 
270
                <real_value rank="0">1.0e-12</real_value>
 
271
              </constant>
 
272
            </initial_condition>
 
273
            <tensor_field name="Diffusivity" rank="2">
 
274
              <diagnostic>
 
275
                <algorithm name="Internal" material_phase_support="multiple"/>
 
276
                <output/>
 
277
                <stat>
 
278
                  <include_in_stat/>
 
279
                </stat>
 
280
              </diagnostic>
 
281
            </tensor_field>
 
282
            <scalar_field name="Source" rank="0">
 
283
              <diagnostic>
 
284
                <algorithm name="Internal" material_phase_support="multiple"/>
 
285
                <output/>
 
286
                <stat/>
 
287
                <detectors>
 
288
                  <include_in_detectors/>
 
289
                </detectors>
 
290
              </diagnostic>
 
291
            </scalar_field>
 
292
            <scalar_field name="Absorption" rank="0">
 
293
              <diagnostic>
 
294
                <algorithm name="Internal" material_phase_support="multiple"/>
 
295
                <output/>
 
296
                <stat/>
 
297
                <detectors>
 
298
                  <include_in_detectors/>
 
299
                </detectors>
 
300
              </diagnostic>
 
301
            </scalar_field>
 
302
            <output/>
 
303
            <stat/>
 
304
            <convergence>
 
305
              <include_in_convergence/>
 
306
            </convergence>
 
307
            <detectors>
 
308
              <include_in_detectors/>
 
309
            </detectors>
 
310
            <steady_state>
 
311
              <include_in_steady_state/>
 
312
            </steady_state>
 
313
            <consistent_interpolation/>
 
314
          </prognostic>
 
315
        </scalar_field>
 
316
        <tensor_field name="GLSBackgroundViscosity" rank="2">
 
317
          <prescribed>
 
318
            <mesh name="VelocityMesh"/>
 
319
            <value name="WholeMesh">
 
320
              <anisotropic_symmetric>
 
321
                <python>
 
322
                  <string_value lines="20" type="code" language="python">def val(X, t):
 
323
   depth = 3.
 
324
   surface_nu = 0.1
 
325
   if (X[2] &gt; -depth): # top depth m
 
326
      value = surface_nu * (X[2]+depth)/depth
 
327
   else:
 
328
      value = 1e-6
 
329
 
 
330
   return [[1000, 0, 0],
 
331
               [0, 1000, 0],
 
332
               [0, 0, value]]</string_value>
 
333
                </python>
 
334
              </anisotropic_symmetric>
 
335
            </value>
 
336
            <output/>
 
337
          </prescribed>
 
338
        </tensor_field>
 
339
        <tensor_field name="GLSBackgroundDiffusivity" rank="2">
 
340
          <prescribed>
 
341
            <mesh name="VelocityMesh"/>
 
342
            <value name="WholeMesh">
 
343
              <anisotropic_symmetric>
 
344
                <python>
 
345
                  <string_value lines="20" type="code" language="python">def val(X, t):
 
346
   depth = 3.
 
347
   surface_nu = 0.1
 
348
   if (X[2] &gt; -depth): # top depth m
 
349
      value = surface_nu * (X[2]+depth)/depth
 
350
   else:
 
351
      value = 1e-6
 
352
 
 
353
   return [[1000, 0, 0],
 
354
               [0, 1000, 0],
 
355
               [0, 0, value]]</string_value>
 
356
                </python>
 
357
              </anisotropic_symmetric>
 
358
            </value>
 
359
            <output/>
 
360
          </prescribed>
 
361
        </tensor_field>
 
362
        <tensor_field name="GLSEddyViscosityKM" rank="2">
 
363
          <diagnostic>
 
364
            <algorithm name="Internal" material_phase_support="multiple"/>
 
365
            <mesh name="VelocityMesh"/>
 
366
            <output/>
 
367
            <stat/>
 
368
            <convergence>
 
369
              <include_in_convergence/>
 
370
            </convergence>
 
371
            <detectors>
 
372
              <include_in_detectors/>
 
373
            </detectors>
 
374
            <steady_state>
 
375
              <include_in_steady_state/>
 
376
            </steady_state>
 
377
          </diagnostic>
 
378
        </tensor_field>
 
379
        <tensor_field name="GLSEddyDiffusivityKH" rank="2">
 
380
          <diagnostic>
 
381
            <algorithm name="Internal" material_phase_support="multiple"/>
 
382
            <mesh name="VelocityMesh"/>
 
383
            <output/>
 
384
            <stat/>
 
385
            <convergence>
 
386
              <include_in_convergence/>
 
387
            </convergence>
 
388
            <detectors>
 
389
              <include_in_detectors/>
 
390
            </detectors>
 
391
            <steady_state>
 
392
              <include_in_steady_state/>
 
393
            </steady_state>
 
394
          </diagnostic>
 
395
        </tensor_field>
 
396
        <scalar_field name="GLSLengthScale" rank="0">
 
397
          <diagnostic>
 
398
            <algorithm name="Internal" material_phase_support="multiple"/>
 
399
            <mesh name="VelocityMesh"/>
 
400
            <output/>
 
401
            <stat/>
 
402
            <convergence>
 
403
              <include_in_convergence/>
 
404
            </convergence>
 
405
            <detectors>
 
406
              <include_in_detectors/>
 
407
            </detectors>
 
408
            <steady_state>
 
409
              <include_in_steady_state/>
 
410
            </steady_state>
 
411
          </diagnostic>
 
412
        </scalar_field>
 
413
        <scalar_field name="GLSBuoyancyFrequency" rank="0">
 
414
          <diagnostic>
 
415
            <algorithm name="Internal" material_phase_support="multiple"/>
 
416
            <mesh name="VelocityMesh"/>
 
417
            <output/>
 
418
            <stat/>
 
419
            <convergence>
 
420
              <include_in_convergence/>
 
421
            </convergence>
 
422
            <detectors>
 
423
              <include_in_detectors/>
 
424
            </detectors>
 
425
            <steady_state>
 
426
              <include_in_steady_state/>
 
427
            </steady_state>
 
428
          </diagnostic>
 
429
        </scalar_field>
 
430
        <scalar_field name="GLSVelocityShear" rank="0">
 
431
          <diagnostic>
 
432
            <algorithm name="Internal" material_phase_support="multiple"/>
 
433
            <mesh name="VelocityMesh"/>
 
434
            <output/>
 
435
            <stat/>
 
436
            <convergence>
 
437
              <include_in_convergence/>
 
438
            </convergence>
 
439
            <detectors>
 
440
              <include_in_detectors/>
 
441
            </detectors>
 
442
            <steady_state>
 
443
              <include_in_steady_state/>
 
444
            </steady_state>
 
445
          </diagnostic>
 
446
        </scalar_field>
 
447
        <scalar_field name="GLSShearProduction" rank="0">
 
448
          <diagnostic>
 
449
            <algorithm name="Internal" material_phase_support="multiple"/>
 
450
            <mesh name="VelocityMesh"/>
 
451
            <output/>
 
452
            <stat/>
 
453
            <convergence>
 
454
              <include_in_convergence/>
 
455
            </convergence>
 
456
            <detectors>
 
457
              <include_in_detectors/>
 
458
            </detectors>
 
459
            <steady_state>
 
460
              <include_in_steady_state/>
 
461
            </steady_state>
 
462
          </diagnostic>
 
463
        </scalar_field>
 
464
        <scalar_field name="GLSBuoyancyProduction" rank="0">
 
465
          <diagnostic>
 
466
            <algorithm name="Internal" material_phase_support="multiple"/>
 
467
            <mesh name="VelocityMesh"/>
 
468
            <output/>
 
469
            <stat/>
 
470
            <convergence>
 
471
              <include_in_convergence/>
 
472
            </convergence>
 
473
            <detectors>
 
474
              <include_in_detectors/>
 
475
            </detectors>
 
476
            <steady_state>
 
477
              <include_in_steady_state/>
 
478
            </steady_state>
 
479
          </diagnostic>
 
480
        </scalar_field>
 
481
        <scalar_field name="GLSDissipationEpsilon" rank="0">
 
482
          <diagnostic>
 
483
            <algorithm name="Internal" material_phase_support="multiple"/>
 
484
            <mesh name="VelocityMesh"/>
 
485
            <output/>
 
486
            <stat/>
 
487
            <convergence>
 
488
              <include_in_convergence/>
 
489
            </convergence>
 
490
            <detectors>
 
491
              <include_in_detectors/>
 
492
            </detectors>
 
493
            <steady_state>
 
494
              <include_in_steady_state/>
 
495
            </steady_state>
 
496
          </diagnostic>
 
497
        </scalar_field>
 
498
        <scalar_field name="GLSStabilityFunctionSM" rank="0">
 
499
          <diagnostic>
 
500
            <algorithm name="Internal" material_phase_support="multiple"/>
 
501
            <mesh name="VelocityMesh"/>
 
502
            <output/>
 
503
            <stat/>
 
504
            <convergence>
 
505
              <include_in_convergence/>
 
506
            </convergence>
 
507
            <detectors>
 
508
              <include_in_detectors/>
 
509
            </detectors>
 
510
            <steady_state>
 
511
              <include_in_steady_state/>
 
512
            </steady_state>
 
513
          </diagnostic>
 
514
        </scalar_field>
 
515
        <scalar_field name="GLSStabilityFunctionSH" rank="0">
 
516
          <diagnostic>
 
517
            <algorithm name="Internal" material_phase_support="multiple"/>
 
518
            <mesh name="VelocityMesh"/>
 
519
            <output/>
 
520
            <stat/>
 
521
            <convergence>
 
522
              <include_in_convergence/>
 
523
            </convergence>
 
524
            <detectors>
 
525
              <include_in_detectors/>
 
526
            </detectors>
 
527
            <steady_state>
 
528
              <include_in_steady_state/>
 
529
            </steady_state>
 
530
          </diagnostic>
 
531
        </scalar_field>
 
532
        <scalar_field name="GLSSource1" rank="0">
 
533
          <diagnostic>
 
534
            <algorithm name="Internal" material_phase_support="multiple"/>
 
535
            <mesh name="VelocityMesh"/>
 
536
            <output/>
 
537
            <stat/>
 
538
            <convergence>
 
539
              <include_in_convergence/>
 
540
            </convergence>
 
541
            <detectors>
 
542
              <include_in_detectors/>
 
543
            </detectors>
 
544
            <steady_state>
 
545
              <include_in_steady_state/>
 
546
            </steady_state>
 
547
          </diagnostic>
 
548
        </scalar_field>
 
549
        <scalar_field name="GLSSource2" rank="0">
 
550
          <diagnostic>
 
551
            <algorithm name="Internal" material_phase_support="multiple"/>
 
552
            <mesh name="VelocityMesh"/>
 
553
            <output/>
 
554
            <stat/>
 
555
            <convergence>
 
556
              <include_in_convergence/>
 
557
            </convergence>
 
558
            <detectors>
 
559
              <include_in_detectors/>
 
560
            </detectors>
 
561
            <steady_state>
 
562
              <include_in_steady_state/>
 
563
            </steady_state>
 
564
          </diagnostic>
 
565
        </scalar_field>
 
566
        <scalar_field name="GLSAbsorption1" rank="0">
 
567
          <diagnostic>
 
568
            <algorithm name="Internal" material_phase_support="multiple"/>
 
569
            <mesh name="VelocityMesh"/>
 
570
            <output/>
 
571
            <stat/>
 
572
            <convergence>
 
573
              <include_in_convergence/>
 
574
            </convergence>
 
575
            <detectors>
 
576
              <include_in_detectors/>
 
577
            </detectors>
 
578
            <steady_state>
 
579
              <include_in_steady_state/>
 
580
            </steady_state>
 
581
          </diagnostic>
 
582
        </scalar_field>
 
583
        <scalar_field name="GLSAbsorption2" rank="0">
 
584
          <diagnostic>
 
585
            <algorithm name="Internal" material_phase_support="multiple"/>
 
586
            <mesh name="VelocityMesh"/>
 
587
            <output/>
 
588
            <stat/>
 
589
            <convergence>
 
590
              <include_in_convergence/>
 
591
            </convergence>
 
592
            <detectors>
 
593
              <include_in_detectors/>
 
594
            </detectors>
 
595
            <steady_state>
 
596
              <include_in_steady_state/>
 
597
            </steady_state>
 
598
          </diagnostic>
 
599
        </scalar_field>
 
600
        <scalar_field name="GLSWallFunction" rank="0">
 
601
          <diagnostic>
 
602
            <algorithm name="Internal" material_phase_support="multiple"/>
 
603
            <mesh name="VelocityMesh"/>
 
604
            <output/>
 
605
            <stat/>
 
606
            <convergence>
 
607
              <include_in_convergence/>
 
608
            </convergence>
 
609
            <detectors>
 
610
              <include_in_detectors/>
 
611
            </detectors>
 
612
            <steady_state>
 
613
              <include_in_steady_state/>
 
614
            </steady_state>
 
615
          </diagnostic>
 
616
        </scalar_field>
 
617
        <scalar_field name="GLSVerticalViscosity" rank="0">
 
618
          <diagnostic>
 
619
            <algorithm name="Internal" material_phase_support="multiple"/>
 
620
            <mesh name="VelocityMesh"/>
 
621
            <output/>
 
622
            <stat/>
 
623
            <convergence>
 
624
              <include_in_convergence/>
 
625
            </convergence>
 
626
            <detectors>
 
627
              <include_in_detectors/>
 
628
            </detectors>
 
629
            <steady_state>
 
630
              <include_in_steady_state/>
 
631
            </steady_state>
 
632
          </diagnostic>
 
633
        </scalar_field>
 
634
        <scalar_field name="GLSVerticalDiffusivity" rank="0">
 
635
          <diagnostic>
 
636
            <algorithm name="Internal" material_phase_support="multiple"/>
 
637
            <mesh name="VelocityMesh"/>
 
638
            <output/>
 
639
            <stat/>
 
640
            <convergence>
 
641
              <include_in_convergence/>
 
642
            </convergence>
 
643
            <detectors>
 
644
              <include_in_detectors/>
 
645
            </detectors>
 
646
            <steady_state>
 
647
              <include_in_steady_state/>
 
648
            </steady_state>
 
649
          </diagnostic>
 
650
        </scalar_field>
 
651
      </GLS>
 
652
    </subgridscale_parameterisations>
 
653
    <scalar_field name="Density" rank="0">
 
654
      <diagnostic>
 
655
        <algorithm name="Internal" material_phase_support="multiple"/>
 
656
        <mesh name="VelocityMesh"/>
 
657
        <output/>
 
658
        <stat/>
 
659
        <convergence>
 
660
          <include_in_convergence/>
 
661
        </convergence>
 
662
        <detectors>
 
663
          <include_in_detectors/>
 
664
        </detectors>
 
665
        <steady_state>
 
666
          <include_in_steady_state/>
 
667
        </steady_state>
 
668
      </diagnostic>
 
669
    </scalar_field>
 
670
    <vector_field name="Velocity" rank="1">
 
671
      <prognostic>
 
672
        <mesh name="VelocityMesh"/>
 
673
        <equation name="Boussinesq"/>
 
674
        <spatial_discretisation>
 
675
          <continuous_galerkin>
 
676
            <stabilisation>
 
677
              <streamline_upwind>
 
678
                <nu_bar_optimal/>
 
679
                <nu_scale name="0.5">
 
680
                  <real_value shape="1" rank="0">0.5</real_value>
 
681
                </nu_scale>
 
682
              </streamline_upwind>
 
683
            </stabilisation>
 
684
            <mass_terms>
 
685
              <lump_mass_matrix/>
 
686
            </mass_terms>
 
687
            <advection_terms>
 
688
              <exclude_advection_terms/>
 
689
            </advection_terms>
 
690
            <stress_terms>
 
691
              <tensor_form/>
 
692
            </stress_terms>
 
693
          </continuous_galerkin>
 
694
          <conservative_advection>
 
695
            <real_value rank="0">0.0</real_value>
 
696
          </conservative_advection>
 
697
        </spatial_discretisation>
 
698
        <temporal_discretisation>
 
699
          <theta>
 
700
            <real_value rank="0">1.0</real_value>
 
701
          </theta>
 
702
          <relaxation>
 
703
            <real_value rank="0">1.0</real_value>
 
704
          </relaxation>
 
705
        </temporal_discretisation>
 
706
        <solver>
 
707
          <iterative_method name="gmres">
 
708
            <restart>
 
709
              <integer_value rank="0">30</integer_value>
 
710
            </restart>
 
711
          </iterative_method>
 
712
          <preconditioner name="sor"/>
 
713
          <relative_error>
 
714
            <real_value rank="0">1.0E-7</real_value>
 
715
          </relative_error>
 
716
          <max_iterations>
 
717
            <integer_value rank="0">2000</integer_value>
 
718
          </max_iterations>
 
719
          <never_ignore_solver_failures/>
 
720
          <diagnostics>
 
721
            <monitors/>
 
722
          </diagnostics>
 
723
        </solver>
 
724
        <initial_condition name="WholeMesh">
 
725
          <constant>
 
726
            <real_value shape="3" dim1="dim" rank="1">0.0 0.0 0.0</real_value>
 
727
          </constant>
 
728
        </initial_condition>
 
729
        <boundary_conditions name="lateral">
 
730
          <surface_ids>
 
731
            <integer_value shape="4" rank="1">40 41 42 43</integer_value>
 
732
          </surface_ids>
 
733
          <type name="dirichlet">
 
734
            <align_bc_with_cartesian>
 
735
              <z_component>
 
736
                <constant>
 
737
                  <real_value rank="0">0.0</real_value>
 
738
                </constant>
 
739
              </z_component>
 
740
            </align_bc_with_cartesian>
 
741
          </type>
 
742
        </boundary_conditions>
 
743
        <boundary_conditions name="topbottom">
 
744
          <surface_ids>
 
745
            <integer_value shape="2" rank="1">38 39</integer_value>
 
746
          </surface_ids>
 
747
          <type name="dirichlet">
 
748
            <align_bc_with_cartesian>
 
749
              <z_component>
 
750
                <constant>
 
751
                  <real_value rank="0">0.0</real_value>
 
752
                </constant>
 
753
              </z_component>
 
754
            </align_bc_with_cartesian>
 
755
          </type>
 
756
        </boundary_conditions>
 
757
        <boundary_conditions name="BulkForcingVelocity">
 
758
          <surface_ids>
 
759
            <integer_value shape="1" rank="1">38</integer_value>
 
760
          </surface_ids>
 
761
          <type name="bulk_formulae"/>
 
762
        </boundary_conditions>
 
763
        <tensor_field name="Viscosity" rank="2">
 
764
          <diagnostic>
 
765
            <algorithm name="Internal" material_phase_support="multiple"/>
 
766
            <output/>
 
767
            <stat>
 
768
              <include_in_stat/>
 
769
            </stat>
 
770
          </diagnostic>
 
771
        </tensor_field>
 
772
        <vector_field name="Absorption" rank="1">
 
773
          <prescribed>
 
774
            <value name="WholeMesh">
 
775
              <constant>
 
776
                <real_value shape="3" dim1="dim" rank="1">1.0e-7 1.0e-7 1.0e-7</real_value>
 
777
              </constant>
 
778
            </value>
 
779
            <output/>
 
780
            <stat>
 
781
              <include_in_stat/>
 
782
            </stat>
 
783
            <detectors>
 
784
              <exclude_from_detectors/>
 
785
            </detectors>
 
786
          </prescribed>
 
787
          <default_absorption/>
 
788
        </vector_field>
 
789
        <output/>
 
790
        <stat>
 
791
          <include_in_stat/>
 
792
          <previous_time_step>
 
793
            <exclude_from_stat/>
 
794
          </previous_time_step>
 
795
          <nonlinear_field>
 
796
            <exclude_from_stat/>
 
797
          </nonlinear_field>
 
798
        </stat>
 
799
        <convergence>
 
800
          <include_in_convergence/>
 
801
        </convergence>
 
802
        <detectors>
 
803
          <include_in_detectors/>
 
804
        </detectors>
 
805
        <steady_state>
 
806
          <include_in_steady_state/>
 
807
        </steady_state>
 
808
        <consistent_interpolation/>
 
809
      </prognostic>
 
810
    </vector_field>
 
811
    <scalar_field name="Temperature" rank="0">
 
812
      <prognostic>
 
813
        <mesh name="VelocityMesh"/>
 
814
        <equation name="AdvectionDiffusion"/>
 
815
        <spatial_discretisation>
 
816
          <continuous_galerkin>
 
817
            <stabilisation>
 
818
              <streamline_upwind>
 
819
                <nu_bar_optimal/>
 
820
                <nu_scale name="0.5">
 
821
                  <real_value shape="1" rank="0">0.5</real_value>
 
822
                </nu_scale>
 
823
              </streamline_upwind>
 
824
            </stabilisation>
 
825
            <advection_terms>
 
826
              <exclude_advection_terms/>
 
827
            </advection_terms>
 
828
            <mass_terms/>
 
829
          </continuous_galerkin>
 
830
          <conservative_advection>
 
831
            <real_value rank="0">0.0</real_value>
 
832
          </conservative_advection>
 
833
        </spatial_discretisation>
 
834
        <temporal_discretisation>
 
835
          <theta>
 
836
            <real_value rank="0">1.0</real_value>
 
837
          </theta>
 
838
        </temporal_discretisation>
 
839
        <solver>
 
840
          <iterative_method name="gmres">
 
841
            <restart>
 
842
              <integer_value rank="0">30</integer_value>
 
843
            </restart>
 
844
          </iterative_method>
 
845
          <preconditioner name="sor"/>
 
846
          <relative_error>
 
847
            <real_value rank="0">1.0e-7</real_value>
 
848
          </relative_error>
 
849
          <max_iterations>
 
850
            <integer_value rank="0">1000000</integer_value>
 
851
          </max_iterations>
 
852
          <never_ignore_solver_failures/>
 
853
          <diagnostics>
 
854
            <monitors/>
 
855
          </diagnostics>
 
856
        </solver>
 
857
        <initial_condition name="WholeMesh">
 
858
          <python>
 
859
            <string_value lines="20" type="code" language="python">def val(X,t):              
 
860
  import numpy
 
861
  import csv
 
862
  import interpolate
 
863
 
 
864
  templ = []
 
865
  layerl = []
 
866
  reader = csv.reader(file("temperature.csv"))
 
867
  for row in reader:
 
868
    layerl.append(abs(float(row[0])))
 
869
    templ.append(float(row[1]))
 
870
 
 
871
  return float(interpolate.interpolate(layerl, templ, abs(X[2])))</string_value>
 
872
          </python>
 
873
        </initial_condition>
 
874
        <boundary_conditions name="BulkForcingTemperature">
 
875
          <surface_ids>
 
876
            <integer_value shape="1" rank="1">38</integer_value>
 
877
          </surface_ids>
 
878
          <type name="bulk_formulae"/>
 
879
        </boundary_conditions>
 
880
        <subgridscale_parameterisation name="GLS"/>
 
881
        <output/>
 
882
        <stat/>
 
883
        <convergence>
 
884
          <include_in_convergence/>
 
885
        </convergence>
 
886
        <detectors>
 
887
          <include_in_detectors/>
 
888
        </detectors>
 
889
        <steady_state>
 
890
          <include_in_steady_state/>
 
891
        </steady_state>
 
892
        <consistent_interpolation/>
 
893
      </prognostic>
 
894
    </scalar_field>
 
895
    <scalar_field name="Salinity" rank="0">
 
896
      <prognostic>
 
897
        <mesh name="VelocityMesh"/>
 
898
        <equation name="AdvectionDiffusion"/>
 
899
        <spatial_discretisation>
 
900
          <continuous_galerkin>
 
901
            <stabilisation>
 
902
              <streamline_upwind>
 
903
                <nu_bar_optimal/>
 
904
                <nu_scale name="0.5">
 
905
                  <real_value shape="1" rank="0">0.5</real_value>
 
906
                </nu_scale>
 
907
              </streamline_upwind>
 
908
            </stabilisation>
 
909
            <advection_terms>
 
910
              <exclude_advection_terms/>
 
911
            </advection_terms>
 
912
            <mass_terms/>
 
913
          </continuous_galerkin>
 
914
          <conservative_advection>
 
915
            <real_value rank="0">0.0</real_value>
 
916
          </conservative_advection>
 
917
        </spatial_discretisation>
 
918
        <temporal_discretisation>
 
919
          <theta>
 
920
            <real_value rank="0">1.0</real_value>
 
921
          </theta>
 
922
        </temporal_discretisation>
 
923
        <solver>
 
924
          <iterative_method name="gmres">
 
925
            <restart>
 
926
              <integer_value rank="0">30</integer_value>
 
927
            </restart>
 
928
          </iterative_method>
 
929
          <preconditioner name="sor"/>
 
930
          <relative_error>
 
931
            <real_value rank="0">1.0e-7</real_value>
 
932
          </relative_error>
 
933
          <max_iterations>
 
934
            <integer_value rank="0">100000</integer_value>
 
935
          </max_iterations>
 
936
          <never_ignore_solver_failures/>
 
937
          <diagnostics>
 
938
            <monitors/>
 
939
          </diagnostics>
 
940
        </solver>
 
941
        <initial_condition name="WholeMesh">
 
942
          <python>
 
943
            <string_value lines="20" type="code" language="python">def val(X,t):
 
944
  import csv
 
945
  import numpy
 
946
  from interpolate import interpolate
 
947
 
 
948
  templ = []
 
949
  layerl = []
 
950
  reader = csv.reader(file("salinity.csv"))
 
951
  for row in reader:
 
952
    layerl.append(abs(float(row[0])))
 
953
    templ.append(float(row[1]))
 
954
 
 
955
  return float(interpolate(layerl, templ, abs(X[2])))</string_value>
 
956
          </python>
 
957
        </initial_condition>
 
958
        <boundary_conditions name="BulkForcingSalinity">
 
959
          <surface_ids>
 
960
            <integer_value shape="1" rank="1">38</integer_value>
 
961
          </surface_ids>
 
962
          <type name="bulk_formulae"/>
 
963
        </boundary_conditions>
 
964
        <subgridscale_parameterisation name="GLS"/>
 
965
        <output/>
 
966
        <stat/>
 
967
        <convergence>
 
968
          <include_in_convergence/>
 
969
        </convergence>
 
970
        <detectors>
 
971
          <include_in_detectors/>
 
972
        </detectors>
 
973
        <steady_state>
 
974
          <include_in_steady_state/>
 
975
        </steady_state>
 
976
        <consistent_interpolation/>
 
977
      </prognostic>
 
978
    </scalar_field>
 
979
    <scalar_field name="PerturbationDensity" rank="0">
 
980
      <diagnostic>
 
981
        <algorithm name="Internal" material_phase_support="multiple"/>
 
982
        <mesh name="VelocityMesh"/>
 
983
        <output/>
 
984
        <stat/>
 
985
        <convergence>
 
986
          <include_in_convergence/>
 
987
        </convergence>
 
988
        <detectors>
 
989
          <include_in_detectors/>
 
990
        </detectors>
 
991
        <steady_state>
 
992
          <include_in_steady_state/>
 
993
        </steady_state>
 
994
      </diagnostic>
 
995
    </scalar_field>
 
996
    <scalar_field name="CFLNumber" rank="0">
 
997
      <diagnostic>
 
998
        <algorithm name="Internal" material_phase_support="multiple"/>
 
999
        <mesh name="VelocityMesh"/>
 
1000
        <output/>
 
1001
        <stat/>
 
1002
        <convergence>
 
1003
          <include_in_convergence/>
 
1004
        </convergence>
 
1005
        <detectors>
 
1006
          <include_in_detectors/>
 
1007
        </detectors>
 
1008
        <steady_state>
 
1009
          <include_in_steady_state/>
 
1010
        </steady_state>
 
1011
      </diagnostic>
 
1012
    </scalar_field>
 
1013
    <scalar_field name="DistanceToTop" rank="0">
 
1014
      <prescribed>
 
1015
        <mesh name="VelocityMesh"/>
 
1016
        <value name="WholeMesh">
 
1017
          <python>
 
1018
            <string_value lines="20" type="code" language="python">def val(X,t):
 
1019
  return abs(X[2])</string_value>
 
1020
          </python>
 
1021
        </value>
 
1022
        <output/>
 
1023
        <stat/>
 
1024
        <detectors>
 
1025
          <exclude_from_detectors/>
 
1026
        </detectors>
 
1027
      </prescribed>
 
1028
    </scalar_field>
 
1029
    <scalar_field name="DistanceToBottom" rank="0">
 
1030
      <prescribed>
 
1031
        <mesh name="VelocityMesh"/>
 
1032
        <value name="WholeMesh">
 
1033
          <python>
 
1034
            <string_value lines="20" type="code" language="python">def val(X,t):
 
1035
  return 900.0 - abs(X[2])</string_value>
 
1036
          </python>
 
1037
        </value>
 
1038
        <output/>
 
1039
        <stat/>
 
1040
        <detectors>
 
1041
          <exclude_from_detectors/>
 
1042
        </detectors>
 
1043
      </prescribed>
 
1044
    </scalar_field>
 
1045
  </material_phase>
 
1046
  <ocean_forcing>
 
1047
    <bulk_formulae>
 
1048
      <bulk_formulae>
 
1049
        <type name="NCAR"/>
 
1050
      </bulk_formulae>
 
1051
      <input_file file_name="1970_1980_StationPapa.nc"/>
 
1052
      <position>
 
1053
        <real_value shape="2" rank="1">50 -145</real_value>
 
1054
        <single_location/>
 
1055
      </position>
 
1056
      <output_fluxes_diagnostics/>
 
1057
    </bulk_formulae>
 
1058
  </ocean_forcing>
 
1059
</fluidity_options>