Toolbox
Last update: 16.07.2025Data analysis and manipulation toolbox. More...
Classes | |
| class | ComputeAbsoluteMaxima< TYPE > |
| a struct which collects settings for ComputeAbsoluteMaxima More... | |
| class | ComputeAbsoluteMinima< TYPE > |
| a struct which collects settings for ComputeAbsoluteMinima More... | |
| struct | ComputeNodalCoorDeviation |
| a struct which collects settings for computeNodalCoorDeviation More... | |
| class | ComputeRelativeMaxima< TYPE > |
| a struct which collects settings for ComputeRelativeMaxima More... | |
| class | ComputeRelativeMinima< TYPE > |
| a struct which collects settings for ComputeRelativeMinima More... | |
| class | ComputeSingleObjectPerObject< TYPE > |
| a base class for algorithms that apply a simple algorithm to obtain a single object from another object More... | |
| class | ComputeSingleObjectPerSample< TYPE > |
| a base class for algorithms that apply a simple algorithm to obtain a single object from a single set of samples. More... | |
| struct | ConvertToElement< TYPE > |
| a struct which collects settings for convertToElement More... | |
| struct | ConvertToNode< TYPE > |
| a struct which collects settings for convertToNode More... | |
| class | CopyFilledData< TYPE > |
| a struct which collects settings for CopyFilledData More... | |
| class | DistanceField |
| represents a distance field for an unstructured grid More... | |
| class | ExtractAboveThreshold< TYPE > |
| a struct which collects settings for extractAboveThreshold More... | |
| class | ExtractBelowThreshold< TYPE > |
| a struct which collects settings for extractBelowThreshold More... | |
| class | ExtractMissingDataFlags< TYPE > |
| a struct which collects settings for ExtractMissingDataFlags More... | |
| class | ExtractScalarsFromQuantity< TYPE > |
| a struct which collects settings for extractAboveThreshold More... | |
| struct | MeshMorpherSettings |
| a class containing global settings for mesh morphing More... | |
| class | ReplaceAboveThreshold< TYPE > |
| a struct which collects settings for ReplaceAboveThreshold More... | |
| class | ReplaceBelowThreshold< TYPE > |
| a struct which collects settings for ReplaceBelowThreshold More... | |
Functions | |
| Matrix | checkPointsInElement (Structure database, Matrix coors) |
| checks in which finite element which coordinates are located More... | |
| Matrix | checkPointsInVolume (Structure database, Matrix coors) |
| checks which coordinates are in the interior of a volume More... | |
| Matrix | computeEuclidianDistancesNode (Structure database, Matrix reference_indices) |
| computes the Euclidian distances of all nodes with respect to a given node set. More... | |
| Matrix | computeGraphDistancesNode (Structure database, Matrix reference_indices) |
| computes the graph (i.e. normalized) distances of all nodes with respect to a given node set. More... | |
| number | computeLargestModelDimension (Structure database) |
| computes the largest axial dimension of the mesh More... | |
| computeNodalCoorDeviation (Structure database, Structure mesh_project_target, MetaStructure mesh_project_contactor, number max_search_distance, bool number_sided_n2s_contact, string new_x_deviation_ident, string new_y_deviation_ident, string new_z_deviation_ident, string new_normal_deviation_ident, string new_design_ident, bool overwrite_existing, bool associate_face_normals) | |
| computes the deviation of nodal coordinates between two meshes More... | |
| DataObjectVector | computeNodalCoorDeviationVectorFromSignedDistance (Structure database, IndexMapper index_mapper, DataObjectPtr signed_distance, bool use_interpolated_missing_values, bool use_distancefield, bool mesh_smoothening) |
| Computes the deviation vector (of node coordinates) given a signed distance vector and a reference mesh. The output will, of course, only contain the nodes on the boundary - all other are marked as "missing". More... | |
| Matrix | computeNodeIndicesWithOptimalSpatialDistribution (Structure database, number number, Matrix boundary_indices) |
| computeSmoothenedCoorDeviationVector (Structure database, IndexMapper index_mapper, Matrix deviations, Matrix smoothened_deviations, Eigen::VectorXd missing_items_of_deviations) | |
| Computes the deviation vector (of node coordinates) given 3 vectors defining the desired deviation direction in 3d space and a reference mesh. The output will, only contain the nodes on the boundary - all other are marked as "missing". More... | |
| DataObjectVector | computeSmoothenedCoorDeviationVector (Structure database, IndexMapper index_mapper, DataObjectPtr distance_vector_x, DataObjectPtr distance_vector_y, DataObjectPtr distance_vector_z, bool use_interpolated_missing_values) |
| Computes the deviation vector (of node coordinates) given 3 vectors defining the desired deviation direction in 3d space and a reference mesh. The output will, only contain the nodes on the boundary - all other are marked as "missing". More... | |
| Matrix | computeTopologicalDistancesElement (Structure database, Matrix reference_indices) |
| computes the topological distances of all elements with respect to a given element set. More... | |
| Matrix | computeTopologicalDistancesNode (Structure database, Matrix reference_indices) |
| computes the topological distances of all nodes with respect to a given node set. More... | |
| Structure | extractSubstructure (Structure database, Matrix nodes, Matrix elements) |
| Matrix | globalIndexFromElementSet (Structure database, string part_ident, string set_ident) |
| Matrix | globalIndexFromNodeSet (Structure database, string part_ident, string set_ident) |
| Matrix | identifyElementsAdjacentToNodes (Structure database, Matrix node_indices) |
| Matrix | identifyNodesInRange (Structure database, number min_x, number max_x, number min_y, number max_y, number min_z, number max_z) |
| identifies all nodes being in the defined rectangular region More... | |
| Matrix | identifyNodesNearFixedBoundary (Structure database) |
| identifies all FE nodes being which are part of the current reference set and which touch the fixed boundary More... | |
| Matrix | identifyNodesOfElements (Structure database, Matrix element_indices) |
| Matrix | identifyNodesOnBoundary (Structure database) |
| identifies all FE nodes being on the boundary surface of a FEM mesh More... | |
| Matrix | identifyNodesOnBoundaryEdges (Structure database) |
| identifies all FE nodes being on the boundary and on an edge of a FEM mesh or of the active domain. More... | |
| Matrix | identifyNodesOnBoundaryNearSharpFeatures (Structure database, number cos_angle_limit) |
| identifies all FE nodes on the boundary, at boundary edges and at boundary points with sharp edges/corners More... | |
| Matrix | identifyNodesOnReferenceSetBoundary (Structure database) |
| identifies all FE nodes being on the edge of the current reference set (neighbours of nodes being not part of it) More... | |
| Matrix | identifyNodesOnSurfaceAndReferenceSetBoundary (Structure database) |
| identifies all FE nodes being on the boundary surface of a FEM mesh AND on the edge of the current reference set (neighbours of nodes being not part of it) More... | |
| Matrix | identifyNodesOnSurfacePatches (Structure database, Matrix reference_indices, number cos_angle_limit=0.75) |
| identifies all FE nodes being on the boundary surface of a FEM mesh AND which define a single or multiple surface patches. A surface patch is defined by a part of the boundary that is delimited by an edge with too sharp angle between surface segements. More... | |
| Matrix | indexDifference (Matrix A, Matrix B) |
| Matrix | indexIntersection (Matrix A, Matrix B) |
| Matrix | indexUnion (Matrix A, Matrix B) |
| template (ExtractBelowThresholdNode) ExtractBelowThreshold< NODE_DATA > | |
| template (ExtractBelowThresholdElement) ExtractBelowThreshold< ELEMENT_DATA > | |
| template (ExtractAboveThresholdNode) ExtractAboveThreshold< NODE_DATA > | |
| template (ExtractBelowThresholdScalar) ExtractBelowThreshold< SCALAR_DATA > | |
| template (ExtractAboveThresholdElement) ExtractAboveThreshold< ELEMENT_DATA > | |
| template (CopyFilledDataNode) CopyFilledData< NODE_DATA > | |
| template (ExtractMissingDataFlagsNode) ExtractMissingDataFlags< NODE_DATA > | |
| template (ExtractAboveThresholdScalar) ExtractAboveThreshold< SCALAR_DATA > | |
| template (ExtractScalarsFromQuantityNode) ExtractScalarsFromQuantity< NODE_DATA > | |
| template (CopyFilledDataElement) CopyFilledData< ELEMENT_DATA > | |
| template (ExtractMissingDataFlagsElement) ExtractMissingDataFlags< ELEMENT_DATA > | |
| template (ComputeAbsoluteMaximaNode) ComputeAbsoluteMaxima< NODE_DATA > | |
| template (ComputeAbsoluteMinimaNode) ComputeAbsoluteMinima< NODE_DATA > | |
| template (ExtractScalarsFromQuantityElement) ExtractScalarsFromQuantity< ELEMENT_DATA > | |
| template (CopyFilledDataScalar) CopyFilledData< SCALAR_DATA > | |
| template (ComputeAbsoluteMaximaElement) ComputeAbsoluteMaxima< ELEMENT_DATA > | |
| template (ComputeAbsoluteMinimaElement) ComputeAbsoluteMinima< ELEMENT_DATA > | |
| template (ReplaceAboveThresholdNode) ReplaceAboveThreshold< NODE_DATA > | |
| template (ReplaceBelowThresholdNode) ReplaceBelowThreshold< NODE_DATA > | |
| template (ExtractMissingDataFlagsScalar) ExtractMissingDataFlags< SCALAR_DATA > | |
| template (ReplaceAboveThresholdElement) ReplaceAboveThreshold< ELEMENT_DATA > | |
| template (ReplaceBelowThresholdElement) ReplaceBelowThreshold< ELEMENT_DATA > | |
| template (ReplaceAboveThresholdScalar) ReplaceAboveThreshold< SCALAR_DATA > | |
| template (ReplaceBelowThresholdScalar) ReplaceBelowThreshold< SCALAR_DATA > | |
| template (ComputeRelativeMaximaNode) ComputeRelativeMaxima< NODE_DATA > | |
| template (ComputeRelativeMinimaNode) ComputeRelativeMinima< NODE_DATA > | |
| template (ComputeRelativeMinimaElement) ComputeRelativeMinima< ELEMENT_DATA > | |
| template (ComputeRelativeMaximaElement) ComputeRelativeMaxima< ELEMENT_DATA > | |
| template (ConvertNodeToNode) ConvertToNode< NODE_DATA > | |
| template (ConvertNodeToElement) ConvertToElement< NODE_DATA > | |
| template (ConvertElementToNode) ConvertToNode< ELEMENT_DATA > | |
| template (ConvertElementToElement) ConvertToElement< ELEMENT_DATA > | |
| template (ComputeSingleObjectPerSampleNode) ComputeSingleObjectPerSample< NODE_DATA > | |
| template (ComputeSingleObjectPerSampleElement) ComputeSingleObjectPerSample< ELEMENT_DATA > | |
| template (ComputeSingleObjectPerSampleScalar) ComputeSingleObjectPerSample< SCALAR_DATA > | |
| template (ComputeSingleObjectPerObjectNode) ComputeSingleObjectPerObject< NODE_DATA > | |
| template (ComputeSingleObjectPerObjectElement) ComputeSingleObjectPerObject< ELEMENT_DATA > | |
| template (ComputeSingleObjectPerObjectScalar) ComputeSingleObjectPerObject< SCALAR_DATA > | |
Variables | |
| MeshMorpherSettings | mesh_morpher_settings |
| global settings for mesh morphing | |
Detailed Description
Data analysis and manipulation toolbox.
Function Documentation
◆ checkPointsInElement()
checks in which finite element which coordinates are located
- Parameters
-
database contains the mesh (FEM) coors the coordinates of the points to be tested (3*N, each column is one coordinate in 3d)
- Returns
- a column vector indicating outside by -1 and else the index of the finite element (with respect to indexMapper)
◆ checkPointsInVolume()
checks which coordinates are in the interior of a volume
- Parameters
-
database contains the mesh coors the coordinates of the points to be tested (3*N, each column is one coordinate in 3d)
- Returns
- a column vector indicating outside by 0 and inside by 1
◆ computeEuclidianDistancesNode()
computes the Euclidian distances of all nodes with respect to a given node set.
- Returns
- a vector containing the euclidian distances of each node to the respective reference nodes The euclidian distance between two nodes defines the distance between two nodes in Euclidian space (ignoring mesh topology). Numerical complexity is O(n*m) with n = number of nodes, m=number of reference nodes;
- Parameters
-
database the database containing the reference mesh reference_indices a vector containing the indices to nodes the define the zero distances (e.g. reference boundary)
◆ computeGraphDistancesNode()
computes the graph (i.e. normalized) distances of all nodes with respect to a given node set.
- Returns
- a vector containing the graph distances of each node to the respective reference nodes The graph distance defines between two nodes how many graph edges are used at least to connect the two nodes.
- Parameters
-
database the database containing the reference mesh reference_indices a vector containing the indices to nodes the define the zero distances (e.g. reference boundary)
◆ computeLargestModelDimension()
| number computeLargestModelDimension | ( | Structure | database | ) |
computes the largest axial dimension of the mesh
- Parameters
-
database contains the mesh
- Returns
- the largest dimension of the mesh along one of the axis.
◆ computeNodalCoorDeviation()
| computeNodalCoorDeviation | ( | Structure | database, |
| Structure | mesh_project_target, | ||
| MetaStructure | mesh_project_contactor, | ||
| number | max_search_distance, | ||
| bool | number_sided_n2s_contact, | ||
| string | new_x_deviation_ident, | ||
| string | new_y_deviation_ident, | ||
| string | new_z_deviation_ident, | ||
| string | new_normal_deviation_ident, | ||
| string | new_design_ident, | ||
| bool | overwrite_existing, | ||
| bool | associate_face_normals | ||
| ) |
computes the deviation of nodal coordinates between two meshes
- Parameters
-
mesh_project_target is the mesh to which the deviation is measured. the difference vector will be the difference of the coordinates of mesh_project_contactor minus the coordinates of mesh_project_target. On requires that the onSurface flags were set in the mesh_project_target mesh! mesh_project_contactor is the mesh from which the deviation is to be measured. If mesh_project_target and mesh_project_contactor are compatible, a simple algorithm is used which only takes the nodal coordinates (and the normal vectors on the boundary of mesh-from) as reference. If both are incompatible, then a real closest-point projection is performed. Usually, mesh_project_contactor is one of the imported design meshes. It must be identical or compatible with the mesh stored in database. If mesh_project_contactor is empty, one takes the mesh from database instead. The coordinate deviation is computes such that coor[contactor]+deviation = coor[target] max_search_distance the maximum search distance used in closest-point projection. number_sided_n2s_contact defines if a number sided node-to-surface projection is used in closest-point projection (recommended). If not, only the boundary nodes of mesh_project_contactor are chosen. new_x_deviation_ident the ident of the nodal deviation object along x direction (if empty: no object will be created) new_y_deviation_ident the ident of the nodal deviation object along y direction (if empty: no object will be created) new_z_deviation_ident the ident of the nodal deviation object along z direction (if empty: no object will be created) new_normal_deviation_ident the ident of the nodal deviation object along normal direction (if empty: no object will be created) new_design_ident the design ident of all new objects database the database where all objects are to be inserted. overwrite_existing is true if already existing output data objects will be replaced. In this case, also all depending objects of the already existing one will be deleted. associate_face_normals if true, then the detection tries to associate only those boundary faces which point into the same half space. This may be good for thin-walled structures, but may fail in case of large deformations.
◆ computeNodalCoorDeviationVectorFromSignedDistance()
| DataObjectVector computeNodalCoorDeviationVectorFromSignedDistance | ( | Structure | database, |
| IndexMapper | index_mapper, | ||
| DataObjectPtr | signed_distance, | ||
| bool | use_interpolated_missing_values, | ||
| bool | use_distancefield, | ||
| bool | mesh_smoothening | ||
| ) |
Computes the deviation vector (of node coordinates) given a signed distance vector and a reference mesh. The output will, of course, only contain the nodes on the boundary - all other are marked as "missing".
- Parameters
-
mesh The reference mesh index_mapper the index mapper all data refer to signed_distance The signed distance ("deviation") vector based on the reference mesh. use_interpolated_missing_values If true, then one takes the interpolated value if the input has missing items. Otherwise, missing items in the input will be also missing in the output. use_distancefield If false: Use normal vectors on the boundary. Else: Use distance field for geometric morphing. mesh_smoothening if true: use iterative smoothening, if false: no smoothening
- Returns
- A vector with 3 objects: the deviation along x [0], y [1], and z [2] direction.
◆ computeNodeIndicesWithOptimalSpatialDistribution()
| Matrix computeNodeIndicesWithOptimalSpatialDistribution | ( | Structure | database, |
| number | number, | ||
| Matrix | boundary_indices | ||
| ) |
- Returns
- a vector with node indices
- Parameters
-
number the number of indices boundary_indices the boundary indices, e.g. obtained from identifyNodesOnBoundaryEdges database the database containing the reference mesh
◆ computeSmoothenedCoorDeviationVector() [1/2]
| computeSmoothenedCoorDeviationVector | ( | Structure | database, |
| IndexMapper | index_mapper, | ||
| Matrix | deviations, | ||
| Matrix | smoothened_deviations, | ||
| Eigen::VectorXd | missing_items_of_deviations | ||
| ) |
Computes the deviation vector (of node coordinates) given 3 vectors defining the desired deviation direction in 3d space and a reference mesh. The output will, only contain the nodes on the boundary - all other are marked as "missing".
- Parameters
-
mesh The reference mesh index_mapper the index mapper all data refer to deviations 3 columns containing the axial deviations
- Returns
- A matrix with 3 columns: the deviation along x [0], y [1], and z [2] direction.
◆ computeSmoothenedCoorDeviationVector() [2/2]
| DataObjectVector computeSmoothenedCoorDeviationVector | ( | Structure | database, |
| IndexMapper | index_mapper, | ||
| DataObjectPtr | distance_vector_x, | ||
| DataObjectPtr | distance_vector_y, | ||
| DataObjectPtr | distance_vector_z, | ||
| bool | use_interpolated_missing_values | ||
| ) |
Computes the deviation vector (of node coordinates) given 3 vectors defining the desired deviation direction in 3d space and a reference mesh. The output will, only contain the nodes on the boundary - all other are marked as "missing".
- Parameters
-
mesh The reference mesh index_mapper the index mapper all data refer to distance_vector_x The distance ("deviation") vector along x axis based on the reference mesh. distance_vector_y The distance ("deviation") vector along y axis based on the reference mesh. distance_vector_z The distance ("deviation") vector along z axis based on the reference mesh. use_interpolated_missing_values If true, then one takes the interpolated value if the input has missing items. Otherwise, missing items in the input will be also missing in the output.
- Returns
- A vector with 3 objects: the deviation along x [0], y [1], and z [2] direction.
◆ computeTopologicalDistancesElement()
computes the topological distances of all elements with respect to a given element set.
- Returns
- a vector containing the topological distances of each element to the respective reference elements The topological distance between two nodes defines the minimum cumulative distance along the graph edges to connect the two elements.
- Parameters
-
database the database containing the reference mesh reference_indices a vector containing the indices to elements the define the zero distances (e.g. reference boundary)
◆ computeTopologicalDistancesNode()
computes the topological distances of all nodes with respect to a given node set.
- Returns
- a vector containing the topological distances of each node to the respective reference nodes The topological distance between two nodes defines the minimum cumulative distance along the graph edges to connect the two nodes.
- Parameters
-
database the database containing the reference mesh reference_indices a vector containing the indices to nodes the define the zero distances (e.g. reference boundary)
◆ extractSubstructure()
- Returns
- a database containing only the specified spatial substructure of the original data
- Parameters
-
database the original database nodes the global indices of the nodes to be exported elements the global indices of the elements to be exported
The given indices refer to the curently active sets. All nodes being part of the given elements must be part of the specified list of nodes. The output database has the following properties:
- smaller mesh (limited to the node/elements)
- smaller node and element sets (limtied to the node/elements)
- copy of all scalar objects
- copy of all field objects, but with reduced dimension
- copy of all random fields, but with reduced dimension (probably not optimal -> recreation the random field is recommended)
- copy of all FMOP, but with reduced dimension (probably not optimal -> recreation the FMOP is recommended)
◆ globalIndexFromElementSet()
- Returns
- a column vector containing the global indices of all elements that are in the given element set and in the currently set reference element set
- Parameters
-
database the database containing the reference mesh part_ident the part ident of the element set set_ident the ident of the element set within the part
◆ globalIndexFromNodeSet()
- Returns
- a column vector containing the global indices of all nodes that are in the given node set and in the currently set reference node set
- Parameters
-
database the database containing the reference mesh part_ident the part ident of the node set set_ident the ident of the node set within the part
◆ identifyElementsAdjacentToNodes()
- Returns
- a column vector containing the global indices of all elements that are connected to the given list of nodes
- Parameters
-
database the database containing the reference mesh node_indices indices (global indices) of all nodes to be considered
◆ identifyNodesInRange()
| Matrix identifyNodesInRange | ( | Structure | database, |
| number | min_x, | ||
| number | max_x, | ||
| number | min_y, | ||
| number | max_y, | ||
| number | min_z, | ||
| number | max_z | ||
| ) |
identifies all nodes being in the defined rectangular region
- Parameters
-
database the database containing the mesh and refernece node set min_x lower bound for X max_x upper bound for X min_y lower bound for Y max_y upper bound for Y min_z lower bound for Z max_z upper bound for Z
- Returns
- a vector with indices. Each index corresponds to a node and is the index in a dataobject.
◆ identifyNodesNearFixedBoundary()
identifies all FE nodes being which are part of the current reference set and which touch the fixed boundary
- Parameters
-
database contains the FEM mesh
- Returns
- a vector with indices. Each index corresponds to a node and is the index in a dataobject.
◆ identifyNodesOfElements()
- Returns
- a column vector containing the global indices of all nodes that belong to the givven list of elements
- Parameters
-
database the database containing the reference mesh element_indices indices (global indices) of all elements to be considered
◆ identifyNodesOnBoundary()
identifies all FE nodes being on the boundary surface of a FEM mesh
- Parameters
-
database contains the FEM mesh
- Returns
- a vector with indices. Each index corresponds to a node and is the index in a dataobject.
◆ identifyNodesOnBoundaryEdges()
identifies all FE nodes being on the boundary and on an edge of a FEM mesh or of the active domain.
- Parameters
-
database contains the FEM mesh
- Returns
- a vector with indices. Each index corresponds to a node and is the index in a dataobject.
◆ identifyNodesOnBoundaryNearSharpFeatures()
identifies all FE nodes on the boundary, at boundary edges and at boundary points with sharp edges/corners
- Parameters
-
database contains the FEM mesh cos_angle_limit the cosine of the limiting angle between neighbouring normal vectors. If the actual scalar product is larger than the value defined here, it is considered as a sharp feature. "0" means e.g. an angle of >90°
- Returns
- a vector with indices. Each index corresponds to a node and is the index in a dataobject.
◆ identifyNodesOnReferenceSetBoundary()
identifies all FE nodes being on the edge of the current reference set (neighbours of nodes being not part of it)
- Note
- Advantage: Works also for nsets in interior of volumes. Disadvantage: All nodes of the bounding element layer are token as boundary. Check method identifyNodesOnSurfaceAndReferenceSetBoundary as alternative.
- Parameters
-
database contains the FEM mesh
- Returns
- a vector with indices. Each index corresponds to a node and is the index in a dataobject.
◆ identifyNodesOnSurfaceAndReferenceSetBoundary()
identifies all FE nodes being on the boundary surface of a FEM mesh AND on the edge of the current reference set (neighbours of nodes being not part of it)
- Parameters
-
database contains the FEM mesh
- Returns
- a vector with indices. Each index corresponds to a node and is the index in a dataobject.
◆ identifyNodesOnSurfacePatches()
| Matrix identifyNodesOnSurfacePatches | ( | Structure | database, |
| Matrix | reference_indices, | ||
| number | cos_angle_limit = 0.75 |
||
| ) |
identifies all FE nodes being on the boundary surface of a FEM mesh AND which define a single or multiple surface patches. A surface patch is defined by a part of the boundary that is delimited by an edge with too sharp angle between surface segements.
- Parameters
-
database contains the FEM mesh cos_angle_limit the cosine of the limiting angle between neighbouring normal vectors. If the actual scalar product is larger than the value defined here, it is considered as a sharp feature. "0" means e.g. an angle of >90° reference indices contains the global indices of the FEM nodes which are located on the surface patch(es) to be identified.
- Returns
- a vector with indices. Each index corresponds to a node and is the index in a dataobject.
◆ indexDifference()
- Returns
- a column vector containing the difference of the indices A-B
- Parameters
-
A the first index matrix B the second index matrix
◆ indexIntersection()
- Returns
- a column vector containing the intersection of the indices A and B
- Parameters
-
A the first index matrix B the second index matrix