- traverse function replaced with iterator functions
This commit is contained in:
+46
-159
@@ -19,44 +19,50 @@
|
||||
#include "h5core/h5_core.h"
|
||||
#include "H5Fed.h"
|
||||
|
||||
|
||||
/*!
|
||||
Begin traverse over all vertices on this compute node.
|
||||
Begin traverse over all entities on this compute node.
|
||||
Initialize internal data structures.
|
||||
|
||||
\remark
|
||||
Vertices can be on processor boundaries! Therefore the same vertex can be
|
||||
Entities might be on processor boundaries! Therefore the same entity might be
|
||||
processed on several compute nodes.
|
||||
|
||||
\param[in] f file handle
|
||||
\param[in] codim co-dimension of entity to traverse
|
||||
|
||||
\return H5_SUCCESS or error code
|
||||
*/
|
||||
h5_err_t
|
||||
H5FedBeginTraverseVertices (
|
||||
h5_file_t * const f
|
||||
|
||||
h5t_entity_iterator_t*
|
||||
H5FedBeginTraverseEntities (
|
||||
h5_file_t* const f,
|
||||
int codim
|
||||
) {
|
||||
h5t_entity_iterator_t* iter;
|
||||
SET_FNAME ( f, __func__ );
|
||||
return h5t_begin_traverse_vertices ( f );
|
||||
if (h5t_alloc_entity_iterator (f, &iter, codim) < 0) {
|
||||
return (void*)H5_ERR;
|
||||
}
|
||||
return iter;
|
||||
}
|
||||
|
||||
/*!
|
||||
Get coordinates of next vertex.
|
||||
Get next local entity ID.
|
||||
|
||||
\param[in] f file handle
|
||||
\param[out] P 3-dimensional coordinates
|
||||
\param[in] f file handle
|
||||
\param[in/out] iter iterator
|
||||
|
||||
\return Local vertex ID
|
||||
\return -1, if done
|
||||
\return error code on error
|
||||
\return Local entity ID
|
||||
\return -1, if done
|
||||
\return error code on error
|
||||
*/
|
||||
h5_id_t
|
||||
H5FedTraverseVertices (
|
||||
h5_file_t * const f,
|
||||
h5_float64_t P[3]
|
||||
H5FedTraverseEntities (
|
||||
h5_file_t* const f,
|
||||
h5t_entity_iterator_t* iter
|
||||
) {
|
||||
SET_FNAME ( f, __func__ );
|
||||
return h5t_traverse_vertices ( f, P );
|
||||
return h5t_iterate_entities (f, iter);
|
||||
}
|
||||
|
||||
/*!
|
||||
@@ -68,171 +74,52 @@ H5FedTraverseVertices (
|
||||
|
||||
*/
|
||||
h5_err_t
|
||||
H5FedEndTraverseVertices (
|
||||
h5_file_t * const f
|
||||
H5FedEndTraverseEntities (
|
||||
h5_file_t* const f,
|
||||
h5t_entity_iterator_t* iter
|
||||
) {
|
||||
SET_FNAME ( f, __func__ );
|
||||
return h5t_end_traverse_vertices ( f );
|
||||
return h5t_release_entity_iterator (f, iter);
|
||||
}
|
||||
|
||||
/*!
|
||||
Begin traverse over all edges on this compute node.
|
||||
Initialize internal data structures.
|
||||
|
||||
\remark
|
||||
Edges can be on processor boundaries! Therefore the same edge can be
|
||||
processed on several compute nodes.
|
||||
|
||||
\param[in] f file handle
|
||||
|
||||
\return H5_SUCCESS or error code
|
||||
*/
|
||||
h5_err_t
|
||||
H5FedBeginTraverseEdges (
|
||||
h5_file_t * const f /*!< file handle */
|
||||
) {
|
||||
SET_FNAME ( f, __func__ );
|
||||
return h5t_begin_traverse_edges ( f );
|
||||
}
|
||||
|
||||
/*!
|
||||
Get local edge id and vertices of next edge.
|
||||
Get coordinates of vertex given by local index
|
||||
|
||||
\param[in] f file handle
|
||||
\param[out] vids local vertex IDs
|
||||
|
||||
\return Local edge ID
|
||||
\return -1, if done
|
||||
\return error code on error
|
||||
*/
|
||||
h5_id_t
|
||||
H5FedTraverseEdges (
|
||||
h5_file_t * const f,
|
||||
h5_id_t * const vids
|
||||
) {
|
||||
SET_FNAME ( f, __func__ );
|
||||
return h5t_traverse_edges ( f, vids );
|
||||
}
|
||||
|
||||
/*!
|
||||
End of traversing. Release internal data structures.
|
||||
|
||||
\param[in] f File handle
|
||||
\param[in] f file handle
|
||||
\param[in] vertex_idx local index of vertex
|
||||
\param[out] P 3-dimensional coordinates
|
||||
|
||||
\return H5_SUCCESS or error code
|
||||
*/
|
||||
h5_err_t
|
||||
H5FedEndTraverseEdges (
|
||||
h5_file_t * const f /*!< file handle */
|
||||
H5FedGetVertexCoordsByIndex (
|
||||
h5_file_t* const f,
|
||||
h5_id_t vertex_index,
|
||||
h5_float64_t P[3]
|
||||
) {
|
||||
SET_FNAME ( f, __func__ );
|
||||
return h5t_end_traverse_edges ( f );
|
||||
return h5t_get_vertex_coords_by_index (f, vertex_index, P);
|
||||
}
|
||||
|
||||
/*!
|
||||
Begin traverse over all triangles on this compute node.
|
||||
Initialize internal data structures.
|
||||
|
||||
\remark
|
||||
Triangles can be on processor boundaries! Therefore the same vertex can be
|
||||
processed on several compute nodes.
|
||||
|
||||
\param[in] f file handle
|
||||
|
||||
\return H5_SUCCESS or error code
|
||||
*/
|
||||
h5_err_t
|
||||
H5FedBeginTraverseTriangles (
|
||||
h5_file_t * const f
|
||||
H5FedGetVertexCoordByID (
|
||||
h5_file_t* const f,
|
||||
h5_id_t vertex_id,
|
||||
h5_float64_t P[3]
|
||||
) {
|
||||
SET_FNAME ( f, __func__ );
|
||||
return h5t_begin_traverse_triangles ( f );
|
||||
return h5t_get_vertrex_coords_by_id (f, vertex_id, P);
|
||||
}
|
||||
|
||||
/*!
|
||||
Get local triangle ID and vertices of next triangle.
|
||||
|
||||
\param[in] f file handle
|
||||
\param[out] vids local vertex IDs
|
||||
|
||||
\return Local triangle ID
|
||||
\return -1, if done
|
||||
\return error code on error
|
||||
*/
|
||||
h5_id_t
|
||||
H5FedTraverseTriangles (
|
||||
h5_file_t * const f,
|
||||
h5_id_t * const vids
|
||||
) {
|
||||
SET_FNAME ( f, __func__ );
|
||||
return h5t_traverse_triangles ( f, vids );
|
||||
}
|
||||
|
||||
/*!
|
||||
End of traversing. Release internal data structures.
|
||||
|
||||
\param[in] f File handle
|
||||
|
||||
\return H5_SUCCESS or error code
|
||||
*/
|
||||
h5_err_t
|
||||
H5FedEndTraverseTriangles (
|
||||
h5_file_t * const f
|
||||
H5FedGetVertexIndicesOfEntity (
|
||||
h5_file_t* const f,
|
||||
h5_id_t entity_id,
|
||||
h5_id_t* const vertex_indices
|
||||
) {
|
||||
SET_FNAME ( f, __func__ );
|
||||
return h5t_end_traverse_triangles ( f );
|
||||
return h5t_get_vertex_indices_of_entity (f, entity_id, vertex_indices);
|
||||
}
|
||||
|
||||
/*!
|
||||
Begin traverse over all elements on this compute node.
|
||||
Initialize internal data structures.
|
||||
|
||||
\remark
|
||||
Elements are unique per compute node. Ghost elements are *not* return
|
||||
while traversing.
|
||||
|
||||
\param[in] f file handle
|
||||
|
||||
\return H5_SUCCESS or error code
|
||||
*/
|
||||
h5_err_t
|
||||
H5FedBeginTraverseElements (
|
||||
h5_file_t * const f
|
||||
) {
|
||||
SET_FNAME ( f, __func__ );
|
||||
return h5t_begin_traverse_elems ( f );
|
||||
}
|
||||
|
||||
/*!
|
||||
Get local element ID and vertices of next element.
|
||||
|
||||
\param[in] f file handle
|
||||
\param[out] vids local vertex IDs
|
||||
|
||||
\return Local element ID
|
||||
\return -1, if done
|
||||
\return error code on error
|
||||
*/
|
||||
h5_id_t
|
||||
H5FedTraverseElements (
|
||||
h5_file_t * const f,
|
||||
h5_id_t * const vids
|
||||
) {
|
||||
SET_FNAME ( f, __func__ );
|
||||
return h5t_traverse_elems ( f, vids );
|
||||
}
|
||||
|
||||
/*!
|
||||
End of traversing. Release internal data structures.
|
||||
|
||||
\param[in] f File handle
|
||||
|
||||
\return H5_SUCCESS or error code
|
||||
*/
|
||||
h5_id_t
|
||||
H5FedEndTraverseElements (
|
||||
h5_file_t * const f
|
||||
) {
|
||||
return h5t_end_traverse_elems ( f );
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user