Skip to content

Variable Z-Item data storage

Z-item is a special variable holding information about depth (Z coordinates).

It contains data representing Z coordinates of each node (not element!) per timestep.

image.png

Layer numbering

A dataset provides informaton about the total number of element layers. Each element layer has a top and bottom layer with 2 adjacent layers sharing its node layers.

Number of node layers = number of element layers + 1

image.png

Layers are numbered from the bottom.

  • Layer 0 is at the bottom
  • Top most layer index = number of element layers

Z Item values storage

Each layer is stored separately See storage docs.

Variable Z-item are used only in meshes. As described in Mesh storage, elements are organized in pages.

Assumption: Elements in each mesh page are spatially adjacent, variation of depth will be small across page (hence 256 elements)

Each Mesh Page has information about maximum number of layers for elements in the page, then we have a static sized data block per page, thus we do not have to maintain this information in the storage for each element. This significantly reduces storage size for mesh page definition and simplifies data block retrieval.

class MeshPage
{
    ...
    ushort ZLevelLayerCount { get; set; }

    int ZLevelBlockLength => StoredNodeCount * ZLevelLayerCount;
    ...
}

Example

image.png

  • Image is simplified to six elements (page has up to 256 elements)
  • ZLevelLayerCount would be 7 (max from valid)
  • The green elements are valid values
  • The white will be filled with no data values