Next: Command Line Options Up: T3d User Guide Previous: Background Mesh Input Data Format


Mesh Output Format

The output of the mesh data is formatted in such a way that it can be read by another application either in a fixed or free format. There are no keywords in the mesh output format (the keywords used in the following subsection are just for better understanding). The output is organized in blocks separated by a free line (if there is no output in a particular block the corresponding free line is omitted as well). The corresponding fixed format in Fortran style is enclosed in parenthesis at the end of the same line. If the description of a particular record of output format is too long it is split to several lines. In that case the corresponding format in Fortran style is split equivalently. The actual number of items on output is provided in brackets if necessary. Since the actual output is controlled by a command line option (see -p option in Section Command Line Options), items of the output format which are dependent on that option are enclosed in brackets. If some of them are not requested for the output the corresponding part of the format should be skipped. Note that some features of the output are enabled or disabled if the source code is compiled with certain directives. Output of neighbouring elements is supported only if the code has been compiled with the T3D_OUTPUT_NEIGHBOUR directive.

Block No 1 contains mesh type (3 - for the current implementation), element degree (1 - linear, 2 - quadratic), applied renumbering type (0 - none renumbering, 1 - node renumbering, 2 - element renumbering), and output type (see -p option in Section Command Line Options) followed by the number of nodes, edges, triangles, and tetrahedrons.


Block No 2 consists of records for each node in one of the following formats depending on the node classification to the parent model entity (note that mesh entities are always classified to the non-hidden model entity of the lowest possible dimension).

vertex (entity type = 1)


curve (entity type = 2)


surface (entity type = 3)


region (entity type = 4)


patch (entity type = 5)


shell (entity type = 6)


Note that parametric coordinates are not available for midside nodes of quadratic elements classified to non-linear curves or non-planar surfaces and shells if boundary non-conforming elements are generated, and therefore zeros are used in that case. The tangent and normal are provided as if boundary conforming elements would have been generated. Also note that nodes classified to a vertex or curve are always classified to the most top physical parent vertex or curve, respectively. The only exception are the nodes on hidden curves, surfaces, patches, and shells when generating linear elements, in which case the nodes are classified to the appropriate from the two model entities of the next higher dimension between which the original model entity is hidden. Note that this dynamic reclassification is not performed when quadratic elements are required. The parametric coordinates of a node on a patch refers to a fictitious rectangular bilinear planar surface not defined in the input model (and are provided just for completeness). The tangent, normal, and parametric coordinates in block No 2 are provided only if appropriate output specification ( -p option) has been used.

Important note: In the case of quadratic elements (see option -k), output of tangent, normal, and parametric coordinates is suppressed for the whole mesh if a hidden entity on input was detected (regardless whether the hiding request was later ignored for some reason).

Block No 3 consists of records for each edge in one of the following formats depending on element type (linear or quadratic). Entity type is equal to 2 (curve).

linear edge


quadratic edge


Note that edges classified to a curve are always classified to the most top physical parent curve. The node numbering of an edge element is provided in Figure 1.


Figure 1: Node numbering of an edge element.

Block No 4 consists of records for each triangle in one of the following formats depending on element type (linear or quadratic). the entity type is equal to 3, 5, or 6 according to the classification of the triangle to a surface, patch, or shell model entity, respectively.

linear triangle


quadratic triangle


The bounding curve ids (zero means no boundary curve) are provided to simplify the boundary condition specification. The node and edge numbering of a triangular element is depicted in Figure 2. Note that the numbering of neighbouring triangles is in agreement with the edge numbering.


Figure 2: Node and edge numbering of a triangular element.

Block No 5 consists of records for each tetrahedron in one of the following formats depending on element type (linear or quadratic). Entity type is equal to 4 (region).

linear tetrahedron


quadratic tetrahedron


The bounding model entity ids are provided to simplify the boundary condition specification. If there is no boundary model entity on a particular face of a tetrahedron then corresponding boundary entity id and boundary entity type are equal to zero. The node and face numbering of a tetrahedral element is displayed in Figure 3. Note that the numbering of neighbouring tetrahedrons is done with respect to the face numbering.


Figure 3: Node and face numbering of a tetrahedral element.

Note that there is only one global element numbering (it means that different types of elements are not numbered independently). The output of neighbouring elements and boundary entities in blocks No 4 and 5 are provided only if appropriate output specification ( -p option) has been used. Also note that the output of the following blocks (blocks No. 6, 7, 8, 9, and 10) is dependent on the -p option in the similar way as was the case for the previous blocks. The actual form of the output may be checked by executing the program with -F option and appropriate -p option.

Block No 6 consists of the number of curves, surfaces, patches, and shells for which the list of associated elements is provided.


Block No 7 contains curve entity type (equal to 2), curve id, and number of edges on the curve. This first record is followed by records (for each of the curve edges) containing number of triangles connected to the edge and list of ids of these connected triangles. The order in which these records appear on the output is identical with the edge ordering if the curve would have been designated for output. The order of connected triangles is not defined. If the parent entity of the connected triangle has not been designated for the output the triangle does not appear in the list of connected triangles. If neither from the 2D model entities connected to the curve is designated for the output, the curve does not appear in this block.


Block No 7 is repeated for all physical curves for which the output of associated triangles has not been disabled on the input (see keyword bassoc in Section Input Record of a Curve) or during run-time and the total number of which is given in block No 6.

Block No 8 contains surface entity type (equal to 3), surface id, and number of triangles on the surface. This first record is followed by records (for each of the surface triangles) containing number of tetrahedrons connected to the triangle and list of ids of these connected tetrahedrons. The order in which these records appear on the output is identical with the triangle ordering if the surface would have been designated for output. The order of connected tetrahedrons is not defined. If the region of the connected tetrahedron has not been designated for the output the tetrahedron does not appear in the list of connected tetrahedrons. If neither from the regions bounded by the surface is designated for the output, the surface does not appear in this block.


Block No 8 is repeated for all physical solid surfaces for which the output of associated tetrahedrons has not been disabled on the input (see keyword bassoc in Section Input Record of a Surface) or during run-time and the total number of which is given in block No 6.

Block No 9 contains patch entity type (equal to 5), patch id, and number of triangles on the patch. This first record is followed by records (for each of the patch triangles) containing number of tetrahedrons connected to the triangle and list of ids of these connected tetrahedrons. The order in which these records appear on the output is identical with the triangle ordering if the patch would have been designated for output. The order of connected tetrahedrons is not defined. If the region of the connected tetrahedron has not been designated for the output the tetrahedron does not appear in the list of connected tetrahedrons. If neither from the regions bounded by the patch is designated for the output, the patch does not appear in this block.


Block No 9 is repeated for all physical solid patches for which the output of associated tetrahedrons has not been disabled on the input (see keyword bassoc in Section Input Record of a Patch) or during run-time and the total number of which is given in block No 6.

Block No 10 contains shell entity type (equal to 6), shell id, and number of triangles on the shell. This first record is followed by records (for each of the shell triangles) containing number of tetrahedrons connected to the triangle and list of ids of these connected tetrahedrons. The order in which these records appear on the output is identical with the triangle ordering if the shell would have been designated for output. The order of connected tetrahedrons is not defined. If the region of the connected tetrahedron has not been designated for the output the tetrahedron does not appear in the list of connected tetrahedrons. If neither from the regions bounded by the shell is designated for the output, the shell does not appear in this block.


Block No 10 is repeated for all physical solid shells for which the output of associated tetrahedrons has not been disabled on the input (see keyword bassoc in Section Input Record of a Shell) or during run-time and the total number of which is given in block No 6.



Next: Command Line Options Up: T3d User Guide Previous: Background Mesh Input Data Format

Daniel Rypl
2008-06-04