- boundary facets iterator added
This commit is contained in:
@@ -105,7 +105,39 @@ traverse_triangles (
|
||||
/* done */
|
||||
H5FedEndTraverseEntities ( f, iter );
|
||||
|
||||
printf (" Number of triangles: %lud\n",
|
||||
printf (" Number of triangles: %lu\n",
|
||||
(unsigned long)num_triangles);
|
||||
return H5_SUCCESS;
|
||||
}
|
||||
|
||||
static h5_err_t
|
||||
traverse_boundary_triangles (
|
||||
h5_file_t* const f
|
||||
) {
|
||||
printf ( "Travering boundary triangles on level %lld:\n", H5FedGetLevel(f) );
|
||||
|
||||
/* get iterator for co-dim 1 entities, i.e. triangles */
|
||||
h5t_entity_iterator_t* iter = H5FedBeginTraverseBoundaryFaces (f, 1);
|
||||
|
||||
/* iterate */
|
||||
h5_id_t local_id;
|
||||
h5_size_t num_triangles = 0;
|
||||
while ((local_id = H5FedTraverseEntities (f, iter)) >= 0) {
|
||||
char v[256];
|
||||
char d[256];
|
||||
h5_id_t local_vids[4];
|
||||
snprintf ( d, sizeof(d), "=%llx=", local_id );
|
||||
H5FedGetVertexIndicesOfEntity ( f, local_id, local_vids );
|
||||
snprintf ( v, sizeof(v), "=[%lld,%lld,%lld]=",
|
||||
local_vids[0], local_vids[1], local_vids[2] );
|
||||
printf ( "| %-18s | %-18s |\n", d, v );
|
||||
num_triangles++;
|
||||
}
|
||||
|
||||
/* done */
|
||||
H5FedEndTraverseEntities ( f, iter );
|
||||
|
||||
printf (" Number of boundary triangles: %lu\n",
|
||||
(unsigned long)num_triangles);
|
||||
return H5_SUCCESS;
|
||||
}
|
||||
@@ -161,6 +193,7 @@ traverse_level (
|
||||
traverse_vertices (f);
|
||||
traverse_edges (f);
|
||||
traverse_triangles (f);
|
||||
traverse_boundary_triangles (f);
|
||||
traverse_elems (f);
|
||||
return H5_SUCCESS;
|
||||
}
|
||||
|
||||
@@ -73,6 +73,37 @@ traverse_edges (
|
||||
return H5_SUCCESS;
|
||||
}
|
||||
|
||||
static h5_err_t
|
||||
traverse_boundary_edges (
|
||||
h5_file_t* const f
|
||||
) {
|
||||
printf ( "Travering boundary edges on level %lld:\n", H5FedGetLevel(f) );
|
||||
|
||||
/* get iterator for co-dim 1 entities, i.e. edges */
|
||||
h5t_entity_iterator_t* iter = H5FedBeginTraverseBoundaryFaces (f, 1);
|
||||
|
||||
/* iterate */
|
||||
h5_id_t local_id;
|
||||
h5_size_t num_edges = 0;
|
||||
while ((local_id = H5FedTraverseEntities (f, iter)) >= 0) {
|
||||
char v[256];
|
||||
char k[256];
|
||||
h5_id_t local_vids[4];
|
||||
snprintf ( k, sizeof(k), "=%llx=", local_id );
|
||||
H5FedGetVertexIndicesOfEntity ( f, local_id, local_vids );
|
||||
snprintf ( v, sizeof(v), "=[%lld,%lld]=",
|
||||
local_vids[0], local_vids[1] );
|
||||
printf ( "| %-18s | %-18s |\n", k, v );
|
||||
num_edges++;
|
||||
}
|
||||
|
||||
/* done */
|
||||
H5FedEndTraverseEntities ( f, iter );
|
||||
|
||||
printf (" Number of edges: %lld\n", (long long)num_edges);
|
||||
return H5_SUCCESS;
|
||||
}
|
||||
|
||||
static h5_err_t
|
||||
traverse_elems (
|
||||
h5_file_t* const f
|
||||
@@ -106,9 +137,11 @@ traverse_elems (
|
||||
fprintf (stderr, "!!! Got %lld elements, but expected %lld.\n",
|
||||
(long long)num_elems, (long long)num_elems_expect);
|
||||
exit(1);
|
||||
|
||||
|
||||
}
|
||||
|
||||
printf (" Number of elements on level: %lld\n", (long long)num_elems);
|
||||
printf (" Number of elements on level: %lld\n", (long long)num_elems);
|
||||
return H5_SUCCESS;
|
||||
}
|
||||
|
||||
@@ -121,6 +154,7 @@ traverse_level (
|
||||
H5FedSetLevel (f, level_id);
|
||||
traverse_vertices (f);
|
||||
traverse_edges (f);
|
||||
traverse_boundary_edges (f);
|
||||
traverse_elems (f);
|
||||
return H5_SUCCESS;
|
||||
}
|
||||
@@ -155,7 +189,7 @@ main (
|
||||
|
||||
/* abort program on error, so we don't have to handle them */
|
||||
H5SetErrorHandler (H5AbortErrorhandler);
|
||||
H5SetVerbosityLevel (4);
|
||||
H5SetVerbosityLevel (5);
|
||||
|
||||
/* open file and get number of meshes */
|
||||
h5_file_t* f = H5OpenFile (FNAME, H5_O_RDONLY, 0);
|
||||
|
||||
Reference in New Issue
Block a user