MultiDomainMetaData » History » Version 4
Ted Sume, 11/18/2019 10:14 AM
1 | 1 | Ted Sume | # MultiDomainMetaData |
---|---|---|---|
2 | |||
3 | # Multi-Domain Metadata |
||
4 | |||
5 | Users with multi-domain data in their files may now use the following attributes to display their data as a single domain in VisIt. |
||
6 | |||
7 | 2 | Ted Sume | **Jump to** |
8 | |||
9 | 4 | Ted Sume | * [Variables and their metadata](https://ice.txcorp.com/projects/vizschema/wiki/Variables) |
10 | * [Variables that are combined with their meshes](https://ice.txcorp.com/projects/vizschema/wiki/VariablesWithMesh) |
||
11 | * [Data ordering](https://ice.txcorp.com/projects/vizschema/wiki/DataOrdering) |
||
12 | * [Variables defined in terms of other variables](https://ice.txcorp.com/projects/vizschema/wiki/DerivedVariables) |
||
13 | * [Multidomain metadata](https://ice.txcorp.com/projects/vizschema/wiki/MultiDomainMetaData) |
||
14 | * [Other metadata](https://ice.txcorp.com/projects/vizschema/wiki/OtherMetaData) |
||
15 | 2 | Ted Sume | |
16 | 1 | Ted Sume | |
17 | **Multi-domain Meshes** |
||
18 | |||
19 | A multi-domain mesh is a mesh that is stored in many pieces but should be considered to be a single, large mesh. Each piece of the mesh is declared separately in the data file, as is the usual format for single-domain data. However, a single added VizSchema attribute named vsMD will create links between these meshes. All meshes having a matching value of vsMD will be joined and displayed as a single mesh by the VisIt plugin. |
||
20 | |||
21 | Here is an example of two domain blocks that will be treated as a single multi-domain mesh named "edgeMesh". |
||
22 | ``` |
||
23 | Dataset "privMesh" { |
||
24 | Att vsType = "mesh" // Required string |
||
25 | Att vsKind = "structured" // Required string |
||
26 | Att vsMD = "edgeMesh" // Required string if part of a multi-domain mesh |
||
27 | DATASPACE [n0][n1][n2][n3] // Required float array |
||
28 | } |
||
29 | Dataset "solMesh" { |
||
30 | Att vsType = "mesh" // Required string |
||
31 | Att vsKind = "structured" // Required string |
||
32 | Att vsMD = "edgeMesh" // Required string if part of a multi-domain mesh |
||
33 | DATASPACE [n0][n1][n2][n3] // Required float array |
||
34 | } |
||
35 | ``` |
||
36 | Note that most of the attributes of the blocks must match in order for a multi-domain mesh to be successful. In this example the values of vsMD and vsKind must match. If present, vsIndexOrder and vsNumSpatialDims would also have to match. |
||
37 | |||
38 | **Multi-domain Variables** |
||
39 | Multi-domain variables are similar to multi-domain meshes in that they are separate pieces of the same data surface. The same attribute vsMD is used to declare which variables are part of a larger multi-domain variable. |
||
40 | |||
41 | It is important to note that the vsMesh attribute of the md variable must remain pointing at the exact mesh that the variable lives on. Therefore, the vsMesh attribute should never contain the name of a multi-domain mesh. However, in order to properly join the blocks of an md variable, each block must live on a mesh that is part of the same md mesh. In the following example, the two variables psiPriv and psiSol are declared to be an md variable named psi. So, the meshes for each variable must also belong to the same md mesh. In this case, the two meshes privMesh and solMesh have been declared to be blocks of the md mesh "edgeMesh". |
||
42 | |||
43 | Similar to multi-domain meshes, most of the attributes of an md variable must match in order to be successful. These attributes include but are not limited to: vsCentering and vsIndexOrder. |
||
44 | |||
45 | The following is an example of a multi-domain variable that corresponds to the multi-domain mesh above. Please note that each variable is linked to a single domain of the multi-domain mesh - neither variable directly refers to the md mesh named "edgeMesh". |
||
46 | ``` |
||
47 | Dataset "psiPriv" { |
||
48 | Att vsType = "variable" // Required string |
||
49 | Att vsMesh = "privMesh" // Required string |
||
50 | Att vsMD = "psi" // Required string if part of a multi-domain variable. |
||
51 | DATASPACE [201, 301, 105] // Required float array |
||
52 | Att vsCentering = "nodal" // Optional string, defaults to "nodal", other allowed value is "zonal" |
||
53 | } |
||
54 | Dataset "psiSol" { |
||
55 | Att vsType = "variable" // Required string |
||
56 | Att vsMesh = "solMesh" // Required string |
||
57 | Att vsMD = "psi" // Required string if part of a multi-domain variable. |
||
58 | DATASPACE [201, 301, 105] // Required float array |
||
59 | Att vsCentering = "nodal" // Optional string, defaults to "nodal", other allowed value is "zonal" |
||
60 | } |
||
61 | ``` |
||
62 | **Plotting Domains in VisIt** |
||
63 | VisIt allows the visualization of the different domains that make up a particular multi-domain mesh or variable. In order to view the domain blocks, create a Subset plot of your mesh. Each domain in the mesh will be a different color in the resulting image. The following image is a subset plot of our facets core-edge-explicit example, which is constructed from three different meshes. |
||
64 | 3 | Ted Sume | |
65 | <img style="width:35%" src="https://ice.txcorp.com/attachments/download/102/domains.png"/> |