Tilted mesh¶
The tilted mesh specification aims at generalizing the structured mesh description to oblique oriented faces. Surfaces and volume faces are again defined by hexaedral’s nodes by are not limited to axis aligned nodes. The following section gives the rules to creating objects made of predefined faces and volumes.
A tilted mesh is a named HDF5 group child of /mesh
having an attribute
type
equals tilted
.
A structured mesh is composed of three children :
A mandatory child :
a
cartesianGrid
group
Two optional children :
a
group
HDF5 groupa
groupGroup
HDF5 group
Cartesian grid¶
The tilted mesh’s cartesian grid definition is exactly the same as for the structured mesh. The reader can refer to Cartesian grid for more details.
As an example, in dimension 3, the cartesian grid is defined by 3 children floatingType called x, y and z :
data.h5
`-- mesh/
`-- $gmesh1
`-- $structured-mesh-3d[@type=tilted]/
`-- cartesianGrid
|-- x[@physicalNature=length
| @unit=meter]
|-- y[@physicalNature=length
| @unit=meter]
`-- z[@physicalNature=length
@unit=meter]
The physical nature of x, y and z is length
and the unit is meter
.
Element node numbering¶
The corners of hexaedral elements of the structured grid are uniquely numbering. This numbering is used in the definition of faces and volumes.
The following figure shows a structured element and the numbering convention:
Element¶
A tilted element is defined by:
The min max indices of the structured element carrying the tilted element : (imin, jmin, kmin, jmax, kmax, kmax)
A type : a predefined integer which represents the nodes used in the element definition
A normal defined in the same way the normal is defined for a structured mesh face
As said above, elements definition is based upon predefined elements identified by a type, a support and a node list.
The predefined element table is given hereafter:
Type |
Support |
Nodes |
---|---|---|
0 |
face |
1, 2, 3, 4 |
1 |
face |
1, 2, 4 |
2 |
face |
1, 2, 3 |
3 |
face |
2, 3, 4 |
4 |
face |
1, 3, 4 |
5 |
volume |
2, 4, 5 |
6 |
volume |
1, 6, 3 |
7 |
volume |
2, 7, 4 |
8 |
volume |
1, 3, 8 |
9 |
volume |
1, 8, 6 |
10 |
volume |
2, 5, 7 |
11 |
volume |
3, 6, 8 |
12 |
volume |
4, 5, 7 |
13 |
volume |
1, 2, 7, 8 |
14 |
volume |
2, 3, 8, 5 |
15 |
volume |
3, 4, 5, 6 |
16 |
volume |
1, 6, 7, 4 |
17 |
volume |
1, 5, 7, 3 |
18 |
volume |
2, 4, 8, 6 |
Element group¶
An element group of a tilted mesh is an HDF5 two dimensional dataset
children of /mesh/$gmesh/$mesh
.
An element group has an HDF5 attribute type
, its value is element
, in
addition, it has an entityType
attribute. The entityType
attribute
is a hdf5 string attribute and gives the type of entities store in the group.
entityType
can take the following values:
face
: the group contains only surface elements.volume
: the group contains only volume elements.
The first dimension is the rows. Each row defines 7 integers representing:
The lowest corner of a parallelepiped
The highest corner of the same parallelepiped
The seventh gives the
type
of the element
Normal¶
As for structured mesh, normal faces are contained in the
/mesh/$gmesh/$mesh/normal
group in datasets named as the initial face
group in /mesh/$gmesh/$mesh/group
.
The possible values of the /mesh/$gmesh/$mesh/normal
dataset are:
For type 0 element, the normal definition is as in the structure mesh specification
For a tilted element, the normal is defined by the order of the nodes in the type table following the pigtail rule. A sign + or - permits to give the direction of the normal.
Example :
data.h5
`-- mesh/
`-- $gmesh1/
`-- $tilted-mesh[@type=tilted]/
|-- cartesianGrid/
|-- group/
| `- $a_tilted_group[@type=element,
| @entityType=face]
| | 0 1 2 1 2 2 0
| | 1 1 2 2 2 2 4
`-- normal/
`-- $a_tilted_group
| +z
| +u
groupGroup¶
groupGroup
is an HDF5 group and contains sets of group
children.
groupGroup
children are named HDF5 string dataset,
each groupGroup is a set group’s names.
groupGroup
definition is the same as the structured mesh groupGroup
definition.