~fluidity-core/fluidity/sea-ice-coupling

« back to all changes in this revision

Viewing changes to schemas/fluidity_options.rnc

  • Committer: Simon Mouradian
  • Date: 2012-10-09 20:00:15 UTC
  • Revision ID: mouradian@gmail.com-20121009200015-7hztzrng2bkqgz1t
revert last trunk merge, something broke

Show diffs side-by-side

added added

removed removed

Lines of Context:
15
15
include "embedded_models.rnc"
16
16
include "flredecomp.rnc"
17
17
include "porous_media.rnc"
18
 
include "multiphase_interaction.rnc"
19
18
include "equation_of_state.rnc"
20
19
 
21
20
start =
681
680
                        element prescribed {
682
681
                           mesh_choice,
683
682
                           prescribed_tensor_field
684
 
                        }|
685
 
                        element diagnostic {
686
 
                           mesh_choice,
687
 
                           (
688
 
                              sediment_concentration_dependent_viscosity_algorithm
689
 
                           ),
690
 
                           diagnostic_tensor_field
691
683
                        }
692
684
                     )
693
685
                  },                  
1053
1045
               ## carries the influence of turbulence onto the velocity field. See the manual for details.
1054
1046
               element k-epsilon {
1055
1047
                  ## Turbulent kinetic energy (k).
1056
 
                  ## 1. 'k_esilon'-type boundary conditions are recommended for this field.
 
1048
                  ## 1. 'k_epsilon'-type boundary conditions are recommended for this field.
1057
1049
                  ## 2. Turn on diffusivity, source and absorption diagnostic fields.
1058
1050
                  ## 3. Use the same mesh as Velocity.
1059
1051
                  element scalar_field {
1098
1090
                        element prescribed {
1099
1091
                           velocity_mesh_choice,
1100
1092
                           prescribed_tensor_field
1101
 
                        }|
1102
 
                        element diagnostic {
1103
 
                           velocity_mesh_choice,
1104
 
                           (
1105
 
                              sediment_concentration_dependent_viscosity_algorithm
1106
 
                           ),
1107
 
                           diagnostic_tensor_field
1108
1093
                        }
1109
1094
                     )
1110
1095
                  },
1111
 
                  ## Set the value of the background (laminar) diffusivity field here.
1112
 
                  ## This is used to calculate scalar field diffusivities.
1113
 
                  element tensor_field {
1114
 
                     attribute rank { "2" },
1115
 
                     attribute name { "BackgroundDiffusivity" },
1116
 
                     (
1117
 
                        element prescribed {
1118
 
                           velocity_mesh_choice,
1119
 
                           prescribed_tensor_field
1120
 
                        }
1121
 
                     )
1122
 
                  }?,
1123
1096
                  ## Eddy viscosity (turbulent diffusion of velocity).
1124
1097
                  ## This is a fictitious isotropic viscosity, added to normal viscosity field, that
1125
1098
                  ## carries the influence of turbulence onto the velocity field.
1163
1136
                        }
1164
1137
                     )
1165
1138
                  },
1166
 
                  ## f_1 damping coefficient for low_Re k-epsilon model
1167
 
                  ## Required for low_Re boundaries. If no low_Re boundaries are present
1168
 
                  ## this will be set to 1.0 throughout the domain and will not
1169
 
                  ## affect the result
1170
 
                  element scalar_field {
1171
 
                     attribute rank { "0" },
1172
 
                     attribute name { "f_1" },
1173
 
                     element diagnostic {
1174
 
                        internal_algorithm,
1175
 
                        velocity_mesh_choice,
1176
 
                        diagnostic_scalar_field                        
1177
 
                     }
1178
 
                  },
1179
 
                  ## f_2 damping coefficient for low_Re k-epsilon model
1180
 
                  ## Required for low_Re boundaries. If no low_Re boundaries are present
1181
 
                  ## this will be set to 1.0 throughout the domain and will not
1182
 
                  ## affect the result
1183
 
                  element scalar_field {
1184
 
                     attribute rank { "0" },
1185
 
                     attribute name { "f_2" },
1186
 
                     element diagnostic {
1187
 
                        internal_algorithm,
1188
 
                        velocity_mesh_choice,
1189
 
                        diagnostic_scalar_field                        
1190
 
                     }
1191
 
                  },
1192
 
                  ## f_mu damping coefficient for low_Re k-epsilon model
1193
 
                  ## Required for low_Re boundaries. If no low_Re boundaries are present
1194
 
                  ## this will be set to 1.0 throughout the domain and will not
1195
 
                  ## affect the result
1196
 
                  element scalar_field {
1197
 
                     attribute rank { "0" },
1198
 
                     attribute name { "f_mu" },
1199
 
                     element diagnostic {
1200
 
                        internal_algorithm,
1201
 
                        velocity_mesh_choice,
1202
 
                        diagnostic_scalar_field                        
1203
 
                     }
1204
 
                  },
1205
 
                  ## Limit the maximum value of damping function values. This helps stability when using low_Re number
1206
 
                  ## boundary conditions. If not using low_Re boundaries this will have no effect. 
1207
 
                  ## Recommended value (default): 10.0
1208
 
                  element max_damping_value {real},
1209
 
                  ## Describes distance to nearest solid wall.
1210
 
                  ## Required for low_Re boundaries.
1211
 
                  ## For simple geometries the simplest method of providing this information is to use a python function.
1212
 
                  ## For complex geometries where this is not possible precursive Eikonal equation or Poisson equation
1213
 
                  ## simulations must be run using Fluidity to determine the values for this field.
1214
 
                  ## Details of how this is done can be found in:
1215
 
                  ## Tucker, P 2011: "Hybrid Hamilton/Jacobi/Poisson wall distance function model"
1216
 
                  ## Elias et al 2007: "Simple finite element-based computation of distance functions in unstructured grids"
1217
 
                  element scalar_field {
1218
 
                     attribute rank { "0" },
1219
 
                     attribute name { "DistanceToWall" },
1220
 
                     element prescribed {
1221
 
                        velocity_mesh_choice,
1222
 
                        prescribed_scalar_field
1223
 
                     }
1224
 
                  }?,
 
1139
                  ## Select whether source and absorption terms for k and epsilon
 
1140
                  ## are implicit or explicit.
 
1141
                  element source_absorption {
 
1142
                     element string_value {
 
1143
                     "explicit"|"implicit"
 
1144
                     }
 
1145
                  },
 
1146
                  ## Limit the turbulence lengthscale to within physical bounds (e.g. inlet min dimension).
 
1147
                  ## This helps to prevent instabilities during simulation spin-up.
 
1148
                  element lengthscale_limit {real},
1225
1149
                  ## Eddy-viscosity coefficient: nu_T = density * C_mu * k**2 / epsilon.
1226
1150
                  ## Recommended value (default): 0.09.
1227
1151
                  element C_mu {real},
1237
1161
                  element sigma_k {real},
1238
1162
                  ## Turbulent Schmidt number (eddy-viscosity coefficient from epsilon equation).
1239
1163
                  ## Recommended value (default): 1.3.
1240
 
                  element sigma_eps {real},
1241
 
                  ## The Schmidt number (ratio of viscous diffusion rate to momentum diffusion rate) for 
1242
 
                  ## massive scalar fields, or Prandtl number (ratio of viscous diffusion rate to thermal diffusion rate) 
1243
 
                  ## for thermal fields. This is used to calculate the turbulent buoyancy term.
1244
 
                  ## Recommended value (default): 1.0.
1245
 
                  element sigma_p {real},
1246
 
                  ## Time discretisation of the source terms in the k and epsilon equations and also
1247
 
                  ## of the eddy viscosity
1248
 
                  element time_discretisation {  
1249
 
                     ## Implicit/explicit control (THETA) of source terms and eddy viscosity in
1250
 
                     ## the k-epsilon model
1251
 
                     ##  = 0.  -- explicit
1252
 
                     ##  = 0.5 -- Crank-Nicolson
1253
 
                     ##  = 1.  -- implicit
1254
 
                     element theta {real},
1255
 
                     ## Each term in the k and epsilon equations can be implemented as either a 
1256
 
                     ## source or as an absorbtion term. See the manual under 
1257
 
                     ## 'Parameterisations/Turbulent flow modelling and simulation/Reynolds Averaged Navier Stokes (RANS) Modelling/Standard k − ε Turbulence Model/Time Discretisation and Coupling' 
1258
 
                     ## for more information.
1259
 
                     element source_term_implementation { 
1260
 
                        element production_term { 'source'|'absorbtion' },
1261
 
                        element destruction_term { 'source'|'absorbtion' },
1262
 
                        element buoyancy_term { 'source'|'absorbtion' }
1263
 
                     }
1264
 
                  },
1265
 
                  ## The source terms in the k-epsilon model are calculated before the field is 
1266
 
                  ## solved. The process requires inversion of a mass matrix. This element contains
1267
 
                  ## options for defining how this is done. For P1 meshes mass lumping can be used,
1268
 
                  ## for other discretisations the mass matrix can not be easily inverted and so a 
1269
 
                  ## solve must be carried out, with solver options specified.
1270
 
                  element mass_terms {  
1271
 
                     (
1272
 
                        element lump_mass { empty }
1273
 
                        |
1274
 
                        element use_consistent_mass_matrix { 
1275
 
                           element solver {
1276
 
                              linear_solver_options_asym
1277
 
                           }
1278
 
                        }                     
1279
 
                     )
1280
 
                  },
1281
 
                  ## produce vtu output of individual kk and eps source terms and set prescribed 
1282
 
                  ## source terms for k and epsilon fields (for mms tests)
1283
 
                  element debugging_options{
1284
 
                     ## output fields for each of the source terms in the k-epsilon model
1285
 
                     element source_term_output_fields{
1286
 
                        element scalar_field {
1287
 
                           attribute rank { "0" },
1288
 
                           attribute name { "TurbulentKineticEnergy_production_term" },
1289
 
                           element diagnostic {
1290
 
                              internal_algorithm,
1291
 
                              velocity_mesh_choice,
1292
 
                              diagnostic_scalar_field                        
1293
 
                           }
1294
 
                        }?,
1295
 
                        element scalar_field {
1296
 
                           attribute rank { "0" },
1297
 
                           attribute name { "TurbulentKineticEnergy_destruction_term" },
1298
 
                           element diagnostic {
1299
 
                              internal_algorithm,
1300
 
                              velocity_mesh_choice,
1301
 
                              diagnostic_scalar_field                        
1302
 
                           }
1303
 
                        }?,
1304
 
                        element scalar_field {
1305
 
                           attribute rank { "0" },
1306
 
                           attribute name { "TurbulentKineticEnergy_buoyancy_term" },
1307
 
                           element diagnostic {
1308
 
                              internal_algorithm,
1309
 
                              velocity_mesh_choice,
1310
 
                              diagnostic_scalar_field                        
1311
 
                           }
1312
 
                        }?,
1313
 
                        element scalar_field {
1314
 
                           attribute rank { "0" },
1315
 
                           attribute name { "TurbulentDissipation_production_term" },
1316
 
                           element diagnostic {
1317
 
                              internal_algorithm,
1318
 
                              velocity_mesh_choice,
1319
 
                              diagnostic_scalar_field                        
1320
 
                           }
1321
 
                        }?,
1322
 
                        element scalar_field {
1323
 
                           attribute rank { "0" },
1324
 
                           attribute name { "TurbulentDissipation_destruction_term" },
1325
 
                           element diagnostic {
1326
 
                              internal_algorithm,
1327
 
                              velocity_mesh_choice,
1328
 
                              diagnostic_scalar_field                        
1329
 
                           }
1330
 
                        }?,
1331
 
                        element scalar_field {
1332
 
                           attribute rank { "0" },
1333
 
                           attribute name { "TurbulentDissipation_buoyancy_term" },
1334
 
                           element diagnostic {
1335
 
                              internal_algorithm,
1336
 
                              velocity_mesh_choice,
1337
 
                              diagnostic_scalar_field                        
1338
 
                           }
1339
 
                        }?
1340
 
                     },
1341
 
                     ## Enable to apply prescribed source terms into the k and epsilon equations.
1342
 
                     ## This is useful for MMS tests
1343
 
                     element prescribed_source_terms{
1344
 
                        element scalar_field {
1345
 
                           attribute rank { "0" },
1346
 
                           attribute name { "TurbulentKineticEnergyPrescribedSource" },
1347
 
                           element prescribed {
1348
 
                              velocity_mesh_choice,
1349
 
                              prescribed_scalar_field                        
1350
 
                           }
1351
 
                        }?,
1352
 
                        element scalar_field {
1353
 
                           attribute rank { "0" },
1354
 
                           attribute name { "TurbulentDissipationPrescribedSource" },
1355
 
                           element prescribed {
1356
 
                              velocity_mesh_choice,
1357
 
                              prescribed_scalar_field                        
1358
 
                           }
1359
 
                        }?
1360
 
                     },
1361
 
                     ## enabling this option disables the production term in the k and epsilon equations
1362
 
                     element disable_production_term{ empty }?,
1363
 
                     ## enabling this option disables the destruction term in the k and epsilon equation
1364
 
                     element disable_destruction_term{ empty }?,
1365
 
                     ## enabling this option disables the bouyancy term in the k and epsilon equation
1366
 
                     element disable_buoyancy_term{ empty }?,
1367
 
                     ## enabling this option enables the low-Re number damping functions regardless of whether there is
1368
 
                     ## a low-Re boundary condition
1369
 
                     element enable_lowRe_damping{ empty }?,
1370
 
                     ## Enabling this option disables feedback from the k-epsilon model back into 
1371
 
                     ## the rest of the model. Reynolds stress tensor is set to zero by zeroing 
1372
 
                     ## EddyViscosity and the added source term, based on k, in the momentum equation.
1373
 
                     ## Hence, Viscosity will always stay as the BackgroundViscosity,
1374
 
                     ## diffusivities will remain at the relevant BackgroundDiffusivity, and the 
1375
 
                     ## momentum equation will be as if there were no turbulence model present. 
1376
 
                     ## 
1377
 
                     ## ScalarEddyViscosity is still calculated as normal.
1378
 
                     element zero_reynolds_stress_tensor{ empty }?
1379
 
                  }?
 
1164
                  element sigma_eps {real}
 
1165
                  
1380
1166
               }?
1381
1167
            }?,
1382
1168
            ## Pressure
1601
1387
               comment,
1602
1388
               element particle_diameter { 
1603
1389
                     real 
1604
 
               }?,
1605
 
               ## If this is the fluid phase, 
1606
 
               ## the effective conductivity is required 
1607
 
               ## for the inter-phase heat transfer term.
1608
 
               element effective_conductivity { 
1609
 
                     real 
1610
 
               }?,
1611
 
               ## The specific heat (at constant volume) is required 
1612
 
               ## for the inter-phase heat transfer term.
1613
 
               element specific_heat { 
1614
 
                     real
1615
1390
               }?
1616
1391
            }?,
1617
1392
            sediment?
1795
1570
         reduced_model?,
1796
1571
         porous_media_model?,
1797
1572
         embedded_models?,
1798
 
         flredecomp?,
1799
 
         multiphase_interaction?
 
1573
         flredecomp?
1800
1574
      }
1801
1575
   )      
1802
1576
 
1803
1577
sediment = 
1804
1578
   (
1805
 
      ## A sediment model. See the manual for details on how to use this model.
 
1579
      ## A simple sediment model in which different classes of sediment fall 
 
1580
      ## and diffuse at different rates.
1806
1581
      element sediment {
1807
 
         ## A single sediment field with discrete characteristics
1808
 
         ## 
1809
 
         ## Notes: 
1810
 
         ##
1811
 
         ## - a sinking velocity is required for sediment fields, this can be set for each
1812
 
         ## sediment field under prognostic/SinkingVelocity
1813
 
         ##
1814
 
         ## - continuity must be the same for all fields. i.e. use the same mesh for all fields
1815
 
         ##
1816
 
         ## - rentrainment bc's can be used to allow sediment to be picked up from the bed
1817
 
         ## due to turbulence. This must be set on the same boundaries as the SedimentDepositon
1818
 
         ## field
1819
 
         ## 
1820
 
         ## - see the manual for more details on how to use this model 
 
1582
         ## This field is the basis for all sediment fields. Each
 
1583
         ## sediment class has a sediment field with name
 
1584
         ## SedimentClassName where ClassName is the name of the
 
1585
         ## class.
 
1586
         ##
 
1587
         ## By default, all sediment classes have exactly the same
 
1588
         ## characteristics, however each class can be given its own
 
1589
         ## settling velocity, diffusivity and initial condition under
 
1590
         ## the sediment_class element and this will override the
 
1591
         ## default specified here.
1821
1592
         element scalar_field {
1822
1593
            attribute rank { "0" },
1823
 
            attribute name { string },
 
1594
            attribute name { "SedimentTemplate" },
1824
1595
            ## Field type
1825
1596
            element prognostic {
1826
1597
               velocity_mesh_choice,
1827
 
               prognostic_scalar_field,
1828
 
               ## Sediment bedload diagnostic which records the sediment 
1829
 
               ## deposited through the prescribed boundary.
1830
 
               ##
1831
 
               ## The units are in unit distances as a depth of sediment.
1832
 
               element scalar_field {
1833
 
                  attribute rank { "0" },
1834
 
                  attribute name { "Bedload" },
1835
 
                  ## Field type
1836
 
                  (
1837
 
                     element diagnostic {
1838
 
                        ## Surface ids over which to calculate the bedload:
1839
 
                        element surface_ids {
1840
 
                           integer_vector
1841
 
                        },
1842
 
                        diagnostic_scalar_field
1843
 
                     }|
1844
 
                     element prescribed {
1845
 
                        ## Surface ids over which to calculate the bedload deposition:
1846
 
                        element surface_ids {
1847
 
                           integer_vector
1848
 
                        },
1849
 
                        prescribed_scalar_field
1850
 
                     }
1851
 
                  )
1852
 
               },
1853
 
               ## Sediment bedload diagnostic which records the sediment 
1854
 
               ## deposited through the prescribed boundary.
1855
 
               ##
1856
 
               ## The units are in unit distances/second.
1857
 
               element scalar_field {
1858
 
                  attribute rank { "0" },
1859
 
                  attribute name { "BedloadVolumeFraction" },
1860
 
                  ## Field type
1861
 
                  element diagnostic {
1862
 
                     diagnostic_scalar_field
1863
 
                  }
1864
 
               },
1865
 
               ## Sediment bedload deposit rate diagnostic.
1866
 
               ##
1867
 
               ## The units are in unit distances/second.
1868
 
               element scalar_field {
1869
 
                  attribute rank { "0" },
1870
 
                  attribute name { "BedloadDepositRate" },
1871
 
                  ## Field type
1872
 
                  element diagnostic {
1873
 
                     diagnostic_scalar_field
1874
 
                  }
1875
 
               }?,
1876
 
               ## Sediment bedload erosion rate diagnostic.
1877
 
               ##
1878
 
               ## The units are in unit distances as a depth of sediment.
1879
 
               element scalar_field {
1880
 
                  attribute rank { "0" },
1881
 
                  attribute name { "BedloadErosionRate" },
1882
 
                  ## Field type
1883
 
                  element diagnostic {
1884
 
                     diagnostic_scalar_field
1885
 
                  }
1886
 
               }?,
1887
 
               ## This is the unhindered sinking velocity of the sediment particles. 
1888
 
               ## 
1889
 
               ## With the sinking velocity field set to diagnostic, this field is used, along with the sediment 
1890
 
               ## concentration, to calculate the hindered sinking velocity of sediment particles. 
1891
 
               ##
1892
 
               ## This uses the equation developed by Richardson and Zaki [1954]. 
1893
 
               ##
1894
 
               ## If the 'SinkingVelocity' is not set to diagnostic, this field will not be used.
1895
 
               ##
1896
 
               ## As with the sinking velocity, this velocity is in the direction of gravity so if the substance
1897
 
               ## floats upwards, this field should be negative.
1898
 
               element scalar_field {
1899
 
                  attribute name { "UnhinderedSinkingVelocity" },
1900
 
                  attribute rank { "0" },
 
1598
               prognostic_scalar_field
 
1599
            },
 
1600
            ## This is the density of this sediment. It will be used
 
1601
            ## with the sediment concentration in the equation of state.
 
1602
            ## Density must be specified here or for each sediment class.
 
1603
            element density {
 
1604
               real
 
1605
            }?,
 
1606
            ## This is the diameter of the grain in mm.
 
1607
            ## Diameter must be specified here or under each sediment class.
 
1608
            element diameter {
 
1609
               real
 
1610
            }?,
 
1611
            ## Set porosity to use. Default is 0.3. 1.0 is a sold material.
 
1612
            element porosity {
 
1613
               real
 
1614
            }?,
 
1615
            ## Erodability of the sediment grain. A value of one means that only the
 
1616
            ## critical shear stress is used to determine if a grain can be put into 
 
1617
            ## suspension. A value of zero means these grains can never be resuspended.
 
1618
            ## Default is 1.
 
1619
            element erodability {
 
1620
                real
 
1621
            }?,
 
1622
            ## Critical shear stress of a grain. If not switched on a value
 
1623
            ## will be computed according to the particle Reynolds number and Shield's
 
1624
            ## criterion. Otherwise inoput a value in Nm-1
 
1625
            element critical_shear_stress {
 
1626
               real
 
1627
            }?
 
1628
         },
 
1629
         ## This field is the template for the sediment flux
 
1630
         ## diagnostic which records the flux of sediment through the
 
1631
         ## domain boundary.
 
1632
         element scalar_field {
 
1633
            attribute rank { "0" },
 
1634
            attribute name { "SedimentFluxTemplate" },
 
1635
            ## Field type
 
1636
            element diagnostic {
 
1637
               ## Surface ids over which to calculate the flux:
 
1638
               element surface_ids {
 
1639
                  integer_vector
 
1640
               },
 
1641
               velocity_mesh_choice,
 
1642
               diagnostic_scalar_field
 
1643
            }
 
1644
         },
 
1645
         element sediment_class {
 
1646
            attribute name { xsd:string },
 
1647
            initial_condition_scalar*,
 
1648
            scalar_boundary_conditions*,
 
1649
            ## Diffusivity for sediment class
 
1650
            element tensor_field {
 
1651
               attribute name { "Diffusivity" },
 
1652
               attribute rank { "2" },
 
1653
               (
1901
1654
                  element prescribed {
1902
 
                     prescribed_scalar_field
 
1655
                     mesh_choice?,
 
1656
                     prescribed_tensor_field_no_adapt
 
1657
                  }|
 
1658
                  element diagnostic {
 
1659
                    tensor_python_diagnostic_algorithm,
 
1660
                    diagnostic_tensor_field
1903
1661
                  }
1904
 
               }?,
1905
 
               ## This is the submerged specific gravity, R, of this sediment. 
1906
 
               ## It will be used with the sediment concentration in the equation
1907
 
               ## of state, as well as in erosion algorithms.
1908
 
               ## 
1909
 
               ## R = (rho_s - rho_a)/(rho_a)
1910
 
               ##
1911
 
               ## Where: rho_s is the sediment density and rho_a is the ambient fluid density
1912
 
               element submerged_specific_gravity {
1913
 
                  real
1914
 
               },
1915
 
               ## This is the diameter of the grain.
1916
 
               ## Diameter must be specified here or under each sediment class.
1917
 
               element diameter {
1918
 
                  real
1919
 
               }?,
1920
 
               ## Set porosity to use. Default is 0.3. 1.0 is a sold material.
1921
 
               element bed_porosity {
1922
 
                  real
1923
 
               }?,
1924
 
               ## Erodability of the sediment grain. A value of one means that only the
1925
 
               ## critical shear stress is used to determine if a grain can be put into 
1926
 
               ## suspension. A value of zero means these grains can never be resuspended.
1927
 
               ## Default is 1.
1928
 
               element erodability {
1929
 
                  real
1930
 
               }?,
1931
 
               ## Critical shear stress of a grain. If not switched on a value
1932
 
               ## will be computed according to the particle Reynolds number and Shield's
1933
 
               ## criterion.
1934
 
               element critical_shear_stress {
1935
 
                  real
1936
 
               }?
1937
 
            }
1938
 
         }*,
1939
 
         ## The median sediment diameter in the active layer of the bed. 
1940
 
         ## Required for some reentrainment algorithms.
1941
 
         element scalar_field {
1942
 
            attribute rank { "0" },
1943
 
            attribute name { "SedimentBedActiveLayerD50" },
1944
 
            (
1945
 
               element diagnostic {
1946
 
                  ## Surface ids over which to calculate the bedload:
1947
 
                  element surface_ids {
1948
 
                     integer_vector
1949
 
                  },
1950
 
                  internal_algorithm,
1951
 
                  velocity_mesh_choice,
1952
 
                  diagnostic_scalar_field
1953
 
               }
1954
 
            )
1955
 
         },
1956
 
         ## The standard deviation of sediment in the active layer of the
1957
 
         ## bed. Required for some reentrainment algorithms
1958
 
         element scalar_field {
1959
 
            attribute rank { "0" },
1960
 
            attribute name { "SedimentBedActiveLayerSigma" },
1961
 
            (
1962
 
               element diagnostic {
1963
 
                  ## Surface ids over which to calculate the bedload:
1964
 
                  element surface_ids {
1965
 
                     integer_vector
1966
 
                  },
1967
 
                  internal_algorithm,
1968
 
                  velocity_mesh_choice,
1969
 
                  diagnostic_scalar_field
1970
 
               }
1971
 
            )
1972
 
         },
1973
 
         ## ZeroSedimentConcentrationViscosity field:
1974
 
         ##
1975
 
         ## Field for the viscosity of this a fluid with zero 
1976
 
         ## concentration of sediment.
1977
 
         ## Required if using a diagnostic viscosity
1978
 
         ## in a sediment problem where sediment concentration
1979
 
         ## dependent viscosity is required.
1980
 
         element tensor_field {
1981
 
            attribute rank { "2" },
1982
 
            attribute name { "ZeroSedimentConcentrationViscosity" },
1983
 
            (
 
1662
               )
 
1663
            }?,
 
1664
            ## Velocity at which this sediment sinks through the water column.
 
1665
            ## 
 
1666
            ## This velocity is in the direction of gravity so if the substance
 
1667
            ## floats upwards, this field should be negative.
 
1668
            element scalar_field {
 
1669
               attribute name { "SinkingVelocity" },
 
1670
               attribute rank { "0" },
1984
1671
               element prescribed {
1985
 
                  velocity_mesh_choice,
1986
 
                  prescribed_tensor_field
1987
 
               }|
1988
 
               element aliased {
1989
 
                  generic_aliased_field
 
1672
                  prescribed_scalar_field_no_adapt
1990
1673
               }
1991
 
            )
1992
 
         }?
 
1674
            }?,
 
1675
            ## This is the density of this sediment. It will be used
 
1676
            ## with the sediment concentration in the equation of state.
 
1677
            element density {
 
1678
               real
 
1679
            }?,
 
1680
            ## This is the diamter of the grain in mm
 
1681
            element diameter {
 
1682
               real
 
1683
            }?,
 
1684
            ## Erodability of the sediment grain. A value of one means that only the
 
1685
            ## critical shear stress is used to determine if a grain can be put into 
 
1686
            ## suspension. A value of zero means these grains can never be resuspended.
 
1687
            ## Default is 1.
 
1688
            element erodability {
 
1689
                real
 
1690
            }?,
 
1691
            ## Critical shear stress of a grain. If not switched on a value
 
1692
            ## will be computed according to the particle Reynolds number and Shield's
 
1693
            ## criterion. Otherwise inoput a value in Nm-1
 
1694
            element critical_shear_stress {
 
1695
               real
 
1696
            }?
 
1697
         }+
1993
1698
      }
1994
1699
   )
1995
1700
 
2400
2105
      interpolation_algorithm_vector?
2401
2106
   )
2402
2107
 
 
2108
 
2403
2109
diagnostic_vector_field_bed_shear_stress =
2404
2110
   (
2405
 
      element density {
2406
 
         real
2407
 
      }, 
2408
 
      (
2409
 
         ## Three options for calculation of bed shear stress are available:
2410
 
         element calculation_method {
2411
 
            ## density*drag_coeff*|u|*u 
2412
 
            ## This is calculated at all boundaries
2413
 
            element drag_coefficient {
2414
 
               real
2415
 
            }|
2416
 
            ## velocity_gradient - nu * grad(u)
2417
 
            ## This uses the velocity gradient at the boundaries to calculate the 
2418
 
            ## bed shear stress. Valid for non parameterised velocity boundaries
2419
 
            element velocity_gradient {  
2420
 
               empty
2421
 
            }|
2422
 
            ## This diagnostic can only be used in conjunction with a near-wall treatment
2423
 
            ## velocity boundary condition. It is calculated at the same time as that boundary condition.
2424
 
            ## The shear stress depends upon parameters set for the near-wall treatment algorithm.
2425
 
            element wall_treatment {  
2426
 
               empty
2427
 
            }
2428
 
         }
2429
 
      ),
 
2111
      (
 
2112
          element density {
 
2113
             real
 
2114
          }
 
2115
      ),       
 
2116
      (
 
2117
          element drag_coefficient {
 
2118
             real
 
2119
          }
 
2120
      ),   
2430
2121
      diagnostic_output_options,
2431
2122
      diagnostic_vector_stat_options,
2432
2123
      diagnostic_detector_options,
4199
3890
               }
4200
3891
            )
4201
3892
         }|
4202
 
         ## Buoyancy Adjustment diffusivity
4203
 
         ##
4204
 
         ## The element-wise diffusion applied
4205
 
         ## in the buoyancy adjustment by vertical mixing
4206
 
         ## scheme available for tracer fields.
4207
 
         ##
4208
 
         ## This is an element-wise P0 field, so it is best
4209
 
         ## calculated in a discontinuous function space.
4210
 
         element scalar_field {
4211
 
            attribute rank { "0" },
4212
 
            attribute name { "BuoyancyAdjustmentDiffusivity" },
4213
 
            (
4214
 
               element diagnostic {
4215
 
                  internal_algorithm,
4216
 
                  velocity_mesh_choice,
4217
 
                  diagnostic_scalar_field
4218
 
               }|
4219
 
               element aliased {
4220
 
                  generic_aliased_field
4221
 
               }
4222
 
            )
4223
 
         }|
4224
3893
         ## The equilibrium pressure perturbation 
4225
3894
         ## 
4226
3895
         ## Further details to be added
5012
4681
                  }
5013
4682
               }
5014
4683
            )
5015
 
         }|
5016
 
         
5017
 
         ## CompressibleContinuityResidual
5018
 
         ##
5019
 
         ## Computes the residual of the continuity equation used in compressible multiphase flow simulations
5020
 
         ## i.e. vfrac_c*d(rho_c)/dt + div(rho_c*vfrac_c*u_c) + \sum_i{ rho_c*div(vfrac_i*u_i) }
5021
 
         ## where _c and _i denote the compressible and incompressible phases respectively.
5022
 
         element scalar_field {
5023
 
            attribute rank { "0" },
5024
 
            attribute name { "CompressibleContinuityResidual" },
5025
 
            (
5026
 
               element diagnostic {
5027
 
                  velocity_mesh_choice,
5028
 
                  internal_algorithm,
5029
 
                  diagnostic_scalar_field_no_adapt,
5030
 
                  element solver {
5031
 
                     linear_solver_options_sym
5032
 
                  }
5033
 
               }
5034
 
            )
5035
 
         }    
 
4684
         }              
5036
4685
 
5037
4686
# Insert new diagnostic scalar fields here using the template:
5038
4687
#        element scalar_field {