- Use new travere/iterate functions

- Use new H5FedGetVertexIndicesOfXXX() functions
This commit is contained in:
2010-05-06 11:49:38 +00:00
parent bbc480fc80
commit 0edf356fb4
4 changed files with 58 additions and 52 deletions
+9 -9
View File
@@ -57,7 +57,7 @@ print_adjacencies_of_vertex (
*v = '\0';
}
if ( i < uadj_edges->num_items ) {
H5FedLMapEdgeID2VertexIDs (
H5FedGetVertexIndicesOfEntity (
f, uadj_edges->items[i], local_vids );
snprintf ( k, sizeof(k), "=[%lld,%lld]=",
local_vids[0], local_vids[1] );
@@ -65,7 +65,7 @@ print_adjacencies_of_vertex (
*k = '\0';
}
if ( i < uadj_triangles->num_items ) {
H5FedLMapTriangleID2VertexIDs (
H5FedGetVertexIndicesOfEntity (
f, uadj_triangles->items[i], local_vids );
snprintf ( d, sizeof(d), "=[%lld,%lld,%lld]=",
local_vids[0], local_vids[1], local_vids[2] );
@@ -73,7 +73,7 @@ print_adjacencies_of_vertex (
*d = '\0';
}
if ( i < uadj_tets->num_items ) {
H5FedLMapTetID2VertexIDs (
H5FedGetVertexIndicesOfEntity (
f, uadj_tets->items[i], local_vids );
snprintf ( t, sizeof(t), "=[%lld,%lld,%lld,%lld]=",
local_vids[0], local_vids[1],
@@ -126,7 +126,7 @@ print_adjacencies_of_edge (
*k = '\0';
}
if ( i < uadj_triangles->num_items ) {
H5FedLMapTriangleID2VertexIDs (
H5FedGetVertexIndicesOfEntity (
f, uadj_triangles->items[i], local_vids );
snprintf ( d, sizeof(d), "=[%lld,%lld,%lld]=",
local_vids[0], local_vids[1], local_vids[2] );
@@ -134,7 +134,7 @@ print_adjacencies_of_edge (
*d = '\0';
}
if ( i < uadj_tets->num_items ) {
H5FedLMapTetID2VertexIDs (
H5FedGetVertexIndicesOfEntity (
f, uadj_tets->items[i], local_vids );
snprintf ( t, sizeof(t), "=[%lld,%lld,%lld,%lld]=",
local_vids[0], local_vids[1],
@@ -181,7 +181,7 @@ print_adjacencies_of_triangle (
*v = '\0';
}
if ( i < dadj_edges->num_items ) {
H5FedLMapEdgeID2VertexIDs (
H5FedGetVertexIndicesOfEntity (
f, dadj_edges->items[i], local_vids );
snprintf ( k, sizeof(k), "=[%lld,%lld]=",
local_vids[0], local_vids[1] );
@@ -194,7 +194,7 @@ print_adjacencies_of_triangle (
*d = '\0';
}
if ( i < uadj_tets->num_items ) {
H5FedLMapTetID2VertexIDs (
H5FedGetVertexIndicesOfEntity (
f, uadj_tets->items[i], local_vids );
snprintf ( t, sizeof(t), "=[%lld,%lld,%lld,%lld]=",
local_vids[0], local_vids[1],
@@ -241,7 +241,7 @@ print_adjacencies_of_tet (
*v = '\0';
}
if ( i < dadj_edges->num_items ) {
H5FedLMapEdgeID2VertexIDs (
H5FedGetVertexIndicesOfEntity (
f, dadj_edges->items[i], local_vids );
snprintf ( k, sizeof(k), "=[%lld,%lld]=",
local_vids[0], local_vids[1] );
@@ -249,7 +249,7 @@ print_adjacencies_of_tet (
*k = '\0';
}
if ( i < dadj_triangles->num_items ) {
H5FedLMapTriangleID2VertexIDs (
H5FedGetVertexIndicesOfEntity (
f, dadj_triangles->items[i], local_vids );
snprintf ( d, sizeof(d), "=[%lld,%lld,%lld]=",
local_vids[0], local_vids[1], local_vids[2] );
+3 -3
View File
@@ -68,7 +68,7 @@ traverse_edges (
char k[256];
h5_id_t local_vids[4];
snprintf ( k, sizeof(k), "=%llx=", local_id );
H5FedLMapEdgeID2VertexIDs ( f, local_id, local_vids );
H5FedGetVertexIndicesOfEntity ( f, local_id, local_vids );
snprintf ( v, sizeof(v), "=[%lld,%lld]=",
local_vids[0], local_vids[1] );
printf ( "| %-18s | %-18s |\n", k, v );
@@ -89,7 +89,7 @@ traverse_triangles (
char d[256];
h5_id_t local_vids[4];
snprintf ( d, sizeof(d), "=%llx=", local_id );
H5FedLMapTriangleID2VertexIDs ( f, local_id, local_vids );
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 );
@@ -114,7 +114,7 @@ traverse_tets (
char t[256];
h5_id_t local_vids[4];
snprintf ( t, sizeof(t), "=%llx=", local_id );
H5FedLMapTetID2VertexIDs ( f, local_id, local_vids );
H5FedGetVertexIndicesOfEntity ( f, local_id, local_vids );
snprintf ( v, sizeof(v), "=[%lld,%lld,%lld,%lld]=",
local_vids[0], local_vids[1], local_vids[2],local_vids[3] );
printf ( "| %-18s | %-18s |\n", t, v );
+1 -1
View File
@@ -66,7 +66,7 @@ traverse_edges (
h5t_entity_iterator_t* iter = H5FedBeginTraverseEntities (f, 1);
while ( (local_id = H5FedTraverseEntities (f, iter)) >= 0 ) {
h5_id_t local_vids[4];
H5FedLMapEdgeID2VertexIDs ( f, local_id, local_vids );
H5FedGetVertexIndicesOfEntity( f, local_id, local_vids );
size_t size;
h5_int64_t retval[3];
H5FedGetMTag ( f, "testtag", local_id, &size, retval );
+45 -39
View File
@@ -23,74 +23,80 @@ struct entity {
};
typedef struct entity entity_t;
h5_err_t
read_vertices (
static h5_err_t
traverse_vertices (
h5_file_t * f
) {
h5_id_t id, local_id;
h5_id_t vertex_id;
h5_float64_t P[3];
h5_size_t real_num = 0;
h5t_entity_iterator_t* iter;
h5_id_t level_id = H5FedGetLevel ( f );
h5_size_t num = H5FedGetNumVertices ( f );
printf ( " Number of vertices on level %lld: %lld\n", level_id, num );
h5_err_t h5err = H5FedBeginTraverseVertices ( f );
if ( h5err < 0 ) return h5err;
while ( (real_num < num) &&
((local_id = H5FedTraverseVertices ( f, &id, P )) >= 0) ) {
printf ( " Vertex[%lld]: local id: %lld, coords: %f %f %f \n",
id, local_id, P[0], P[1], P[2] );
h5_size_t num = H5FedGetNumVerticesTotal (f);
printf (" Number of vertices on level: %lld\n", num);
iter = H5FedBeginTraverseEntities (f, 2);
while ((real_num < num) &&
((vertex_id = H5FedTraverseEntities (f, iter)) >= 0)) {
H5FedGetVertexCoordByID (f, vertex_id, P);
char v[256];
snprintf (v, sizeof(v), "=%llx=", vertex_id);
printf ("| %-18s | (%f, %f, %f) |\n",
v, P[0], P[1], P[2]);
real_num++;
}
if ( real_num != num ) {
fprintf ( stderr, "!!! Got %lld vertices, but expected %lld.\n",
real_num, num );
return -1;
H5FedEndTraverseEntities (f, iter);
if (real_num != num) {
fprintf (stderr, "!!! Got %lld vertices, but expected %lld.\n",
real_num, num);
exit (1);
}
return H5_SUCCESS;
}
h5_err_t
read_entities (
static h5_err_t
traverse_elems (
h5_file_t * f
) {
h5_id_t id, local_id, parent_id, vids[4];
h5_id_t local_id;
h5_size_t real_num = 0;
h5_id_t level_id = H5FedGetLevel ( f );
h5_size_t num = H5FedGetNumElements ( f );
printf ( " Number of triangles on level %lld: %lld\n", level_id, num );
h5_err_t h5err = H5FedBeginTraverseElements ( f );
if ( h5err < 0 ) return h5err;
h5_size_t num = H5FedGetNumElementsTotal ( f );
printf ( " Number of tetrahedra on level: %lld\n", num );
h5t_entity_iterator_t* iter = H5FedBeginTraverseEntities (f, 0);
while ( (real_num < num) &&
((local_id = H5FedTraverseElements (
f, &id, &parent_id, vids )) >= 0) ) {
printf (
" entitiy[%lld]: local id: %lld, parent id: %lld, "
"vids: %lld %lld %lld\n",
id, local_id, parent_id, vids[0], vids[1], vids[2] );
((local_id = H5FedTraverseEntities ( f, iter )) >= 0) ) {
char v[256];
char t[256];
h5_id_t local_vids[4];
snprintf ( t, sizeof(t), "=%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", t, v );
real_num++;
}
H5FedEndTraverseEntities (f, iter);
if ( real_num != num ) {
fprintf ( stderr, "!!! Got %lld tets, but expected %lld.\n",
real_num, num );
return -1;
exit(1);
}
return H5_SUCCESS;
}
h5_err_t
read_level (
h5_file_t * f
traverse_level (
h5_file_t* const f
) {
h5_err_t h5err = read_vertices ( f );
h5_err_t h5err = traverse_vertices (f);
if ( h5err < 0 ) {
fprintf ( stderr, "!!! Oops ...\n" );
return -1;
}
h5err = read_entities ( f );
h5err = traverse_elems (f);
if ( h5err < 0 ) {
fprintf ( stderr, "!!! Oops ...\n" );
return -1;
@@ -99,7 +105,7 @@ read_level (
}
h5_err_t
read_mesh (
traverse_mesh (
h5_file_t * f
) {
@@ -117,7 +123,7 @@ read_mesh (
fprintf ( stderr, "!!! Can't set level %lld.\n", level_id );
return -1;
}
h5err = read_level ( f );
h5err = traverse_level ( f );
if ( h5err < 0 ) {
fprintf ( stderr, "!!! Oops ...\n" );
return -1;
@@ -152,7 +158,7 @@ main (
fprintf ( stderr, "!!! Can't open mesh %lld\n", mesh_id );
return -1;
}
h5err = read_mesh ( f );
h5err = traverse_mesh ( f );
if ( h5err < 0 ) {
fprintf ( stderr, "!!! Oops ...\n" );
return 1;