2.3.3.3.61. NXcg_hexahedron_set

Status:

base class, extends NXcg_primitive_set

Description:

Computational geometry description of a set of hexahedra in Euclidean space. ...

Computational geometry description of a set of hexahedra in Euclidean space.

This class can also be used to describe cuboids or cubes, axis-aligned or not. The class represents different access and description levels to offer both applied scientists and computational geometry experts an approach whereby different specific views can be implemented using the same base class:

  • In the simplest case experimentalists may use this base class to describe the dimensions or size of a specimen. In this case the alignment with axes is not relevant as eventually only the volume of the specimen is of interest.

  • In many cases, take for example an experiment where a specimen was cut out from a specifically deformed piece of material, the orientation of the specimen’s edges with the experiment coordinate system is of high relevance. Examples include knowledge about the specimen edge, whether it is parallel to the rolling, the transverse, or the normal direction.

  • While the above-mentioned use cases are sufficient to pinpoint the sample within a known laboratory/experiment coordinate system, these descriptions are not detailed enough to specify e.g. a CAD model of the specimen.

  • Therefore, groups and fields for an additional, computational-geometry- based view of hexahedra is offered to serve additional computational tasks: storage-oriented simple views or detailed topological/graph-based descriptions.

Hexahedra are important geometrical primitives, which are among the most frequently used elements in finite element meshing/modeling.

As a specialization of the NXcg_primitive_set base class hexahedra are assumed non-degenerated, closed, and built of polygons that are not self-intersecting.

The term hexahedra will be used throughout this base class but includes the special cases cuboid, cube, box, axis-aligned bounding box (AABB), and optimal bounding box (OBB).

An axis-aligned bounding box is a common data object in computational science and simulation codes to represent a cuboid whose edges are aligned with the base vectors of a coordinate system. As a part of binary trees, these data objects are important for making time- as well as space-efficient queries of geometric primitives in techniques like kd-trees.

An optimal bounding box is a common data object which provides the best tightly fitting box about an arbitrary object. In general, such boxes are rotated. Exact and substantially faster in practice approximate algorithms exist to compute optimal or near optimal bounding boxes for sets of points.

Symbols:

The symbols used in the schema to specify e.g. dimensions of arrays.

c: The cardinality of the set, i.e. the number of hexahedra.

Groups cited:

NXcg_face_list_data_structure, NXcg_half_edge_data_structure, NXcg_unit_normal_set

Structure:

shape: (optional) NX_NUMBER (Rank: 2, Dimensions: [c, 3]) {units=NX_LENGTH}

Qualifier for the shape of each hexahedron.

length: (optional) NX_NUMBER (Rank: 1, Dimensions: [c]) {units=NX_LENGTH}

Qualifier that is useful in cases when one edge is longer than all other ...

Qualifier that is useful in cases when one edge is longer than all other edges of the hexahedra. Often the term length is associated with the assumption that one edge is parallel to an axis of the coordinate system.

width: (optional) NX_NUMBER (Rank: 1, Dimensions: [c]) {units=NX_LENGTH}

Qualifier often used to describe the extent of an object in the horizontal ...

Qualifier often used to describe the extent of an object in the horizontal direction assuming a specific coordinate system.

For the sake of explicitness quantities like length, width, and height should not be reported without specifying also the assumed reference frame.

height: (optional) NX_NUMBER (Rank: 1, Dimensions: [c]) {units=NX_LENGTH}

Qualifier often used to describe the extent of an object in the vertical ...

Qualifier often used to describe the extent of an object in the vertical direction assuming a specific coordinate system.

volume: (optional) NX_NUMBER (Rank: 1, Dimensions: [c]) {units=NX_VOLUME}

Volume of each hexahedron.

area: (optional) NX_NUMBER (Rank: 1, Dimensions: [c]) {units=NX_AREA}

Total (surface) area (of all six faces) of each hexahedron.

face_area: (optional) NX_NUMBER (Rank: 2, Dimensions: [c, 6]) {units=NX_AREA}

Area of each of the six faces of each hexahedron.

is_box: (optional) NX_BOOLEAN (Rank: 1, Dimensions: [c])

Specifies if the hexahedra represent cuboids or cubes eventually rotated ...

Specifies if the hexahedra represent cuboids or cubes eventually rotated ones but at least not too exotic six-faced polyhedra.

is_axis_aligned: (optional) NX_BOOLEAN (Rank: 1, Dimensions: [c])

Only to be used if is_box is present. In this case, this field describes ...

Only to be used if is_box is present. In this case, this field describes whether hexahedra are boxes whose primary edges are parallel to the axes of the coordinate system.

vertex_normal: (optional) NXcg_unit_normal_set

edge_normal: (optional) NXcg_unit_normal_set

face_normal: (optional) NXcg_unit_normal_set

hexahedra: (optional) NXcg_face_list_data_structure

Combined storage of all primitives of all hexahedra.

hexahedronID: (optional) NXcg_face_list_data_structure

Individual storage of each hexahedron.

hexahedron_half_edgeID: (optional) NXcg_half_edge_data_structure

Individual storage of each hexahedron as a graph.

Hypertext Anchors

List of hypertext anchors for all groups, fields, attributes, and links defined in this class.

NXDL Source:

https://github.com/FAIRmat-NFDI/nexus_definitions/tree/fairmat/contributed_definitions/NXcg_hexahedron_set.nxdl.xml