write TWiki-friendly output
This commit is contained in:
+227
-283
@@ -10,6 +10,9 @@
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#define PRINT_UPADJACENCIES 1
|
||||
#define PRINT_DOWNADJACENCIES 0
|
||||
|
||||
struct vertex {
|
||||
h5_float64_t P[3];
|
||||
};
|
||||
@@ -24,358 +27,299 @@ struct tet {
|
||||
typedef struct tet tet_t;
|
||||
|
||||
h5_err_t
|
||||
print_upadjacent_edges_to_vertex (
|
||||
print_adjacencies_to_vertex (
|
||||
h5_file_t * const f,
|
||||
h5_id_t local_id
|
||||
) {
|
||||
h5_idlist_t *list;
|
||||
h5_id_t i;
|
||||
|
||||
H5FedGetEdgesUpAdjacentToVertex ( f, local_id, &list );
|
||||
printf ( " Upward adjacent edges to vertex ID: %llx\n", local_id );
|
||||
for ( i = 0; i < list->num_items; i++ ) {
|
||||
h5_id_t local_vids[2];
|
||||
H5FedMapEntity2LocalVids ( f, list->items[i], local_vids );
|
||||
printf ( " Edge ID: %llx = (%lld,%lld)\n",
|
||||
list->items[i],
|
||||
local_vids[0],
|
||||
local_vids[1] );
|
||||
}
|
||||
H5FedReleaseListOfAdjacencies ( f, &list );
|
||||
|
||||
return H5_SUCCESS;
|
||||
}
|
||||
|
||||
h5_err_t
|
||||
print_upadjacent_triangles_to_vertex (
|
||||
h5_file_t * const f,
|
||||
h5_id_t local_id
|
||||
) {
|
||||
h5_idlist_t *list;
|
||||
h5_id_t i;
|
||||
|
||||
H5FedGetTrianglesUpAdjacentToVertex ( f, local_id, &list );
|
||||
printf ( " Upward adjacent triangles to vertex ID: %llx\n",
|
||||
local_id );
|
||||
for ( i = 0; i < list->num_items; i++ ) {
|
||||
h5_idlist_t *uadj_edges;
|
||||
h5_idlist_t *uadj_triangles;
|
||||
h5_idlist_t *uadj_tets;
|
||||
H5FedGetEdgesUpAdjacentToVertex ( f, local_id, &uadj_edges );
|
||||
H5FedGetTrianglesUpAdjacentToVertex ( f, local_id, &uadj_triangles );
|
||||
H5FedGetTetsUpAdjacentToVertex ( f, local_id, &uadj_tets );
|
||||
int n = uadj_tets->num_items;
|
||||
if ( uadj_triangles->num_items > n ) n = uadj_triangles->num_items;
|
||||
if ( uadj_edges->num_items > n ) n = uadj_edges->num_items;
|
||||
int i;
|
||||
for ( i = 0; i < n; i++ ) {
|
||||
char v[256];
|
||||
char k[256];
|
||||
char d[256];
|
||||
char t[256];
|
||||
h5_id_t local_vids[4];
|
||||
H5FedMapEntity2LocalVids ( f, list->items[i], local_vids );
|
||||
printf ( " Triangle ID: %llx = (%lld,%lld,%lld)\n",
|
||||
list->items[i],
|
||||
local_vids[0],
|
||||
local_vids[1],
|
||||
local_vids[2] );
|
||||
if ( i == 0 ) {
|
||||
snprintf ( v, sizeof(v), "=%llx=", local_id );
|
||||
} else {
|
||||
*v = '\0';
|
||||
}
|
||||
if ( i < uadj_edges->num_items ) {
|
||||
H5FedMapEntity2LocalVids (
|
||||
f, uadj_edges->items[i], local_vids );
|
||||
snprintf ( k, sizeof(k), "=[%lld,%lld]=",
|
||||
local_vids[0], local_vids[1] );
|
||||
} else {
|
||||
*k = '\0';
|
||||
}
|
||||
if ( i < uadj_triangles->num_items ) {
|
||||
H5FedMapEntity2LocalVids (
|
||||
f, uadj_triangles->items[i], local_vids );
|
||||
snprintf ( d, sizeof(d), "=[%lld,%lld,%lld]=",
|
||||
local_vids[0], local_vids[1], local_vids[2] );
|
||||
} else {
|
||||
*d = '\0';
|
||||
}
|
||||
if ( i < uadj_tets->num_items ) {
|
||||
H5FedMapEntity2LocalVids (
|
||||
f, uadj_tets->items[i], local_vids );
|
||||
snprintf ( t, sizeof(t), "=[%lld,%lld,%lld,%lld]=",
|
||||
local_vids[0], local_vids[1],
|
||||
local_vids[2], local_vids[3] );
|
||||
} else {
|
||||
*t = '\0';
|
||||
}
|
||||
printf ( "| %-18s | %-18s | %-18s | %-18s |\n", v, k, d, t );
|
||||
}
|
||||
H5FedReleaseListOfAdjacencies ( f, &list );
|
||||
H5FedReleaseListOfAdjacencies ( f, &uadj_edges );
|
||||
H5FedReleaseListOfAdjacencies ( f, &uadj_triangles );
|
||||
H5FedReleaseListOfAdjacencies ( f, &uadj_tets );
|
||||
return H5_SUCCESS;
|
||||
}
|
||||
|
||||
h5_err_t
|
||||
print_upadjacent_tets_to_vertex (
|
||||
static h5_err_t
|
||||
print_adjacencies_to_edge (
|
||||
h5_file_t * const f,
|
||||
h5_id_t local_id
|
||||
) {
|
||||
h5_idlist_t *list;
|
||||
h5_id_t i;
|
||||
h5_idlist_t *dadj_vertices;
|
||||
h5_idlist_t *uadj_triangles;
|
||||
h5_idlist_t *uadj_tets;
|
||||
H5FedGetVerticesDownAdjacentToEdge ( f, local_id, &dadj_vertices );
|
||||
H5FedGetTrianglesUpAdjacentToEdge ( f, local_id, &uadj_triangles );
|
||||
H5FedGetTetsUpAdjacentToEdge ( f, local_id, &uadj_tets );
|
||||
int n = dadj_vertices->num_items;
|
||||
if ( uadj_triangles->num_items > n ) n = uadj_triangles->num_items;
|
||||
if ( uadj_tets->num_items > n ) n = uadj_tets->num_items;
|
||||
|
||||
H5FedGetTetsUpAdjacentToVertex ( f, local_id, &list );
|
||||
printf ( " Upward adjacent tetrahedra to vertex ID: %llx\n", local_id );
|
||||
for ( i = 0; i < list->num_items; i++ ) {
|
||||
int i;
|
||||
for ( i = 0; i < n; i++ ) {
|
||||
char v[256];
|
||||
char k[256];
|
||||
char d[256];
|
||||
char t[256];
|
||||
h5_id_t local_vids[4];
|
||||
H5FedMapEntity2LocalVids ( f, list->items[i], local_vids );
|
||||
printf ( " Tet ID: %llx = (%lld,%lld,%lld,%lld)\n",
|
||||
list->items[i],
|
||||
local_vids[0],
|
||||
local_vids[1],
|
||||
local_vids[2],
|
||||
local_vids[3] );
|
||||
if ( i < dadj_vertices->num_items ) {
|
||||
H5FedMapEntity2LocalVids (
|
||||
f, dadj_vertices->items[i], local_vids );
|
||||
snprintf ( v, sizeof(v), "=[%lld]=",
|
||||
local_vids[0] );
|
||||
} else {
|
||||
*v = '\0';
|
||||
}
|
||||
if ( i == 0 ) {
|
||||
snprintf ( k, sizeof(k), "=%llx=", local_id );
|
||||
} else {
|
||||
*k = '\0';
|
||||
}
|
||||
if ( i < uadj_triangles->num_items ) {
|
||||
H5FedMapEntity2LocalVids (
|
||||
f, uadj_triangles->items[i], local_vids );
|
||||
snprintf ( d, sizeof(d), "=[%lld,%lld,%lld]=",
|
||||
local_vids[0], local_vids[1], local_vids[2] );
|
||||
} else {
|
||||
*d = '\0';
|
||||
}
|
||||
if ( i < uadj_tets->num_items ) {
|
||||
H5FedMapEntity2LocalVids (
|
||||
f, uadj_tets->items[i], local_vids );
|
||||
snprintf ( t, sizeof(t), "=[%lld,%lld,%lld,%lld]=",
|
||||
local_vids[0], local_vids[1],
|
||||
local_vids[2], local_vids[3] );
|
||||
} else {
|
||||
*t = '\0';
|
||||
}
|
||||
printf ( "| %-18s | %-18s | %-18s | %-18s |\n", v, k, d, t );
|
||||
}
|
||||
H5FedReleaseListOfAdjacencies ( f, &list );
|
||||
H5FedReleaseListOfAdjacencies ( f, &dadj_vertices );
|
||||
H5FedReleaseListOfAdjacencies ( f, &uadj_triangles );
|
||||
H5FedReleaseListOfAdjacencies ( f, &uadj_tets );
|
||||
return H5_SUCCESS;
|
||||
}
|
||||
|
||||
h5_err_t
|
||||
print_upadjacent_triangles_to_edge (
|
||||
static h5_err_t
|
||||
print_adjacencies_to_triangle (
|
||||
h5_file_t * const f,
|
||||
h5_id_t local_id
|
||||
) {
|
||||
h5_idlist_t *list;
|
||||
h5_id_t i;
|
||||
h5_idlist_t *dadj_vertices;
|
||||
h5_idlist_t *dadj_edges;
|
||||
h5_idlist_t *uadj_tets;
|
||||
H5FedGetVerticesDownAdjacentToTriangle ( f, local_id, &dadj_vertices );
|
||||
H5FedGetEdgesDownAdjacentToTriangle ( f, local_id, &dadj_edges );
|
||||
H5FedGetTetsUpAdjacentToTriangle ( f, local_id, &uadj_tets );
|
||||
|
||||
H5FedGetTrianglesUpAdjacentToEdge ( f, local_id, &list );
|
||||
printf ( " Upward adjacent triangles to edge ID: %llx\n",
|
||||
local_id );
|
||||
for ( i = 0; i < list->num_items; i++ ) {
|
||||
int n = dadj_vertices->num_items;
|
||||
if ( dadj_edges->num_items > n ) n = dadj_edges->num_items;
|
||||
if ( uadj_tets->num_items > n ) n = uadj_tets->num_items;
|
||||
int i;
|
||||
for ( i = 0; i < n; i++ ) {
|
||||
char v[256];
|
||||
char k[256];
|
||||
char d[256];
|
||||
char t[256];
|
||||
h5_id_t local_vids[4];
|
||||
H5FedMapEntity2LocalVids ( f, list->items[i], local_vids );
|
||||
printf ( " Triangle ID: %llx = (%lld,%lld,%lld)\n",
|
||||
list->items[i],
|
||||
local_vids[0],
|
||||
local_vids[1],
|
||||
local_vids[2] );
|
||||
if ( i < dadj_vertices->num_items ) {
|
||||
H5FedMapEntity2LocalVids (
|
||||
f, dadj_vertices->items[i], local_vids );
|
||||
snprintf ( v, sizeof(v), "=[%lld]=",
|
||||
local_vids[0] );
|
||||
} else {
|
||||
*v = '\0';
|
||||
}
|
||||
if ( i < dadj_edges->num_items ) {
|
||||
H5FedMapEntity2LocalVids (
|
||||
f, dadj_edges->items[i], local_vids );
|
||||
snprintf ( k, sizeof(k), "=[%lld,%lld]=",
|
||||
local_vids[0], local_vids[1] );
|
||||
} else {
|
||||
*k = '\0';
|
||||
}
|
||||
if ( i == 0 ) {
|
||||
snprintf ( d, sizeof(d), "=%llx=", local_id );
|
||||
} else {
|
||||
*d = '\0';
|
||||
}
|
||||
if ( i < uadj_tets->num_items ) {
|
||||
H5FedMapEntity2LocalVids (
|
||||
f, uadj_tets->items[i], local_vids );
|
||||
snprintf ( t, sizeof(t), "=[%lld,%lld,%lld,%lld]=",
|
||||
local_vids[0], local_vids[1],
|
||||
local_vids[2], local_vids[3] );
|
||||
} else {
|
||||
*t = '\0';
|
||||
}
|
||||
printf ( "| %-18s | %-18s | %-18s | %-18s |\n", v, k, d, t );
|
||||
}
|
||||
H5FedReleaseListOfAdjacencies ( f, &list );
|
||||
H5FedReleaseListOfAdjacencies ( f, &dadj_vertices );
|
||||
H5FedReleaseListOfAdjacencies ( f, &dadj_edges );
|
||||
H5FedReleaseListOfAdjacencies ( f, &uadj_tets );
|
||||
return H5_SUCCESS;
|
||||
}
|
||||
|
||||
h5_err_t
|
||||
print_upadjacent_tets_to_edge (
|
||||
static h5_err_t
|
||||
print_adjacencies_to_tet (
|
||||
h5_file_t * const f,
|
||||
h5_id_t local_id
|
||||
) {
|
||||
h5_idlist_t *list;
|
||||
h5_id_t i;
|
||||
h5_idlist_t *dadj_vertices;
|
||||
h5_idlist_t *dadj_edges;
|
||||
h5_idlist_t *dadj_triangles;
|
||||
H5FedGetVerticesDownAdjacentToTet ( f, local_id, &dadj_vertices );
|
||||
H5FedGetEdgesDownAdjacentToTet ( f, local_id, &dadj_edges );
|
||||
H5FedGetTrianglesDownAdjacentToTet ( f, local_id, &dadj_triangles );
|
||||
|
||||
H5FedGetTetsUpAdjacentToEdge ( f, local_id, &list );
|
||||
printf ( " Upward adjacent tetrahedra to edge ID: %llx\n", local_id );
|
||||
for ( i = 0; i < list->num_items; i++ ) {
|
||||
int n = dadj_vertices->num_items;
|
||||
if ( dadj_edges->num_items > n ) n = dadj_edges->num_items;
|
||||
if ( dadj_triangles->num_items > n ) n = dadj_triangles->num_items;
|
||||
int i;
|
||||
for ( i = 0; i < n; i++ ) {
|
||||
char v[256];
|
||||
char k[256];
|
||||
char d[256];
|
||||
char t[256];
|
||||
h5_id_t local_vids[4];
|
||||
H5FedMapEntity2LocalVids ( f, list->items[i], local_vids );
|
||||
printf ( " Tet ID: %llx = (%lld,%lld,%lld,%lld)\n",
|
||||
list->items[i],
|
||||
local_vids[0],
|
||||
local_vids[1],
|
||||
local_vids[2],
|
||||
local_vids[3] );
|
||||
if ( i < dadj_vertices->num_items ) {
|
||||
snprintf ( v, sizeof(v), "=[%lld]=",
|
||||
dadj_vertices->items[i] );
|
||||
} else {
|
||||
*v = '\0';
|
||||
}
|
||||
if ( i < dadj_edges->num_items ) {
|
||||
H5FedMapEntity2LocalVids (
|
||||
f, dadj_edges->items[i], local_vids );
|
||||
snprintf ( k, sizeof(k), "=[%lld,%lld]=",
|
||||
local_vids[0], local_vids[1] );
|
||||
} else {
|
||||
*k = '\0';
|
||||
}
|
||||
if ( i < dadj_triangles->num_items ) {
|
||||
H5FedMapEntity2LocalVids (
|
||||
f, dadj_triangles->items[i], local_vids );
|
||||
snprintf ( d, sizeof(d), "=[%lld,%lld,%lld]=",
|
||||
local_vids[0], local_vids[1], local_vids[2] );
|
||||
} else {
|
||||
*d = '\0';
|
||||
}
|
||||
if ( i == 0 ) {
|
||||
snprintf ( t, sizeof(t), "=%llx=", local_id );
|
||||
} else {
|
||||
*t = '\0';
|
||||
}
|
||||
printf ( "| %-18s | %-18s | %-18s | %-18s |\n", v, k, d, t );
|
||||
}
|
||||
H5FedReleaseListOfAdjacencies ( f, &list );
|
||||
H5FedReleaseListOfAdjacencies ( f, &dadj_vertices );
|
||||
H5FedReleaseListOfAdjacencies ( f, &dadj_edges );
|
||||
H5FedReleaseListOfAdjacencies ( f, &dadj_triangles );
|
||||
return H5_SUCCESS;
|
||||
}
|
||||
|
||||
h5_err_t
|
||||
print_upadjacent_tets_to_triangle (
|
||||
h5_file_t * const f,
|
||||
h5_id_t local_id
|
||||
) {
|
||||
h5_idlist_t *list;
|
||||
h5_id_t i;
|
||||
|
||||
H5FedGetTetsUpAdjacentToTriangle ( f, local_id, &list );
|
||||
printf ( " Upward adjacent tetrahedra to triangle ID: %llx\n",
|
||||
local_id );
|
||||
for ( i = 0; i < list->num_items; i++ ) {
|
||||
h5_id_t local_vids[4];
|
||||
H5FedMapEntity2LocalVids ( f, list->items[i], local_vids );
|
||||
printf ( " Tet ID: %llx = (%lld,%lld,%lld,%lld)\n",
|
||||
list->items[i],
|
||||
local_vids[0],
|
||||
local_vids[1],
|
||||
local_vids[2],
|
||||
local_vids[3] );
|
||||
}
|
||||
H5FedReleaseListOfAdjacencies ( f, &list );
|
||||
return H5_SUCCESS;
|
||||
}
|
||||
|
||||
h5_err_t
|
||||
print_downadjacent_vertices_to_edge (
|
||||
h5_file_t * const f,
|
||||
h5_id_t local_id
|
||||
) {
|
||||
h5_idlist_t *list;
|
||||
h5_id_t i;
|
||||
|
||||
H5FedGetVerticesDownAdjacentToEdge ( f, local_id, &list );
|
||||
printf ( " Downward adjacent vertices to edge ID: %llx\n", local_id );
|
||||
for ( i = 0; i < list->num_items; i++ ) {
|
||||
h5_id_t local_vids[4];
|
||||
H5FedMapEntity2LocalVids ( f, list->items[i], local_vids );
|
||||
printf ( " Vertex ID: %llx\n",
|
||||
list->items[i] );
|
||||
}
|
||||
H5FedReleaseListOfAdjacencies ( f, &list );
|
||||
return H5_SUCCESS;
|
||||
}
|
||||
|
||||
h5_err_t
|
||||
print_downadjacent_vertices_to_triangle (
|
||||
h5_file_t * const f,
|
||||
h5_id_t local_id
|
||||
) {
|
||||
h5_idlist_t *list;
|
||||
h5_id_t i;
|
||||
|
||||
H5FedGetVerticesDownAdjacentToTriangle ( f, local_id, &list );
|
||||
printf ( " Downward adjacent vertices to triangle ID: %llx\n",
|
||||
local_id );
|
||||
for ( i = 0; i < list->num_items; i++ ) {
|
||||
h5_id_t local_vids[4];
|
||||
H5FedMapEntity2LocalVids ( f, list->items[i], local_vids );
|
||||
printf ( " Vertex ID: %llx\n",
|
||||
list->items[i] );
|
||||
}
|
||||
H5FedReleaseListOfAdjacencies ( f, &list );
|
||||
return H5_SUCCESS;
|
||||
}
|
||||
|
||||
h5_err_t
|
||||
print_downadjacent_vertices_to_tet (
|
||||
h5_file_t * const f,
|
||||
h5_id_t local_id
|
||||
) {
|
||||
h5_idlist_t *list;
|
||||
h5_id_t i;
|
||||
|
||||
H5FedGetVerticesDownAdjacentToTet ( f, local_id, &list );
|
||||
printf ( " Downward adjacent vertices to tetrahedron ID: %llx\n", local_id );
|
||||
for ( i = 0; i < list->num_items; i++ ) {
|
||||
h5_id_t local_vids[4];
|
||||
H5FedMapEntity2LocalVids ( f, list->items[i], local_vids );
|
||||
printf ( " Vertex ID: %llx\n",
|
||||
list->items[i] );
|
||||
}
|
||||
H5FedReleaseListOfAdjacencies ( f, &list );
|
||||
return H5_SUCCESS;
|
||||
}
|
||||
|
||||
h5_err_t
|
||||
print_downadjacent_edges_to_triangle (
|
||||
h5_file_t * const f,
|
||||
h5_id_t local_id
|
||||
) {
|
||||
h5_idlist_t *list;
|
||||
h5_id_t i;
|
||||
|
||||
H5FedGetEdgesDownAdjacentToTriangle ( f, local_id, &list );
|
||||
printf ( " Downward adjacent edges to triangle ID: %llx\n",
|
||||
local_id );
|
||||
for ( i = 0; i < list->num_items; i++ ) {
|
||||
h5_id_t local_vids[4];
|
||||
H5FedMapEntity2LocalVids ( f, list->items[i], local_vids );
|
||||
printf ( " Edge ID: %llx = (%lld,%lld)\n",
|
||||
list->items[i],
|
||||
local_vids[0],
|
||||
local_vids[1] );
|
||||
}
|
||||
H5FedReleaseListOfAdjacencies ( f, &list );
|
||||
return H5_SUCCESS;
|
||||
}
|
||||
|
||||
h5_err_t
|
||||
print_downadjacent_edges_to_tet (
|
||||
h5_file_t * const f,
|
||||
h5_id_t local_id
|
||||
) {
|
||||
h5_idlist_t *list;
|
||||
h5_id_t i;
|
||||
|
||||
H5FedGetEdgesDownAdjacentToTet ( f, local_id, &list );
|
||||
printf ( " Downward adjacent edges to tetrahedron ID: %llx\n", local_id );
|
||||
for ( i = 0; i < list->num_items; i++ ) {
|
||||
h5_id_t local_vids[4];
|
||||
H5FedMapEntity2LocalVids ( f, list->items[i], local_vids );
|
||||
printf ( " Edge ID: %llx = (%lld,%lld)\n",
|
||||
list->items[i],
|
||||
local_vids[0],
|
||||
local_vids[1] );
|
||||
}
|
||||
H5FedReleaseListOfAdjacencies ( f, &list );
|
||||
return H5_SUCCESS;
|
||||
}
|
||||
|
||||
h5_err_t
|
||||
print_downadjacent_triangles_to_tet (
|
||||
h5_file_t * const f,
|
||||
h5_id_t local_id
|
||||
) {
|
||||
h5_idlist_t *list;
|
||||
h5_id_t i;
|
||||
|
||||
H5FedGetTrianglesDownAdjacentToTet ( f, local_id, &list );
|
||||
printf ( " Downward adjacent triangles to tetrahedron ID: %llx\n",
|
||||
local_id );
|
||||
for ( i = 0; i < list->num_items; i++ ) {
|
||||
h5_id_t local_vids[4];
|
||||
H5FedMapEntity2LocalVids ( f, list->items[i], local_vids );
|
||||
printf ( " Triangle ID: %llx = (%lld,%lld,%lld)\n",
|
||||
list->items[i],
|
||||
local_vids[0],
|
||||
local_vids[1],
|
||||
local_vids[2] );
|
||||
}
|
||||
H5FedReleaseListOfAdjacencies ( f, &list );
|
||||
return H5_SUCCESS;
|
||||
}
|
||||
|
||||
h5_err_t
|
||||
static h5_err_t
|
||||
traverse_vertices (
|
||||
h5_file_t * f
|
||||
) {
|
||||
h5_id_t id, local_id;
|
||||
h5_float64_t P[3];
|
||||
|
||||
h5_err_t h5err = H5FedBeginTraverseVertices ( f );
|
||||
if ( h5err < 0 ) return h5err;
|
||||
printf ( "\nAdjacencies to vertices\n" );
|
||||
H5FedBeginTraverseVertices ( f );
|
||||
while ( (local_id = H5FedTraverseVertices ( f, &id, P )) >= 0 ) {
|
||||
printf (" Level: %lld, Vertex[%llx]: coords: (%f, %f, %f)\n",
|
||||
H5FedGetLevel(f), local_id, P[0], P[1], P[2] );
|
||||
print_upadjacent_edges_to_vertex ( f, local_id );
|
||||
print_upadjacent_triangles_to_vertex ( f, local_id );
|
||||
print_upadjacent_tets_to_vertex ( f, local_id );
|
||||
print_adjacencies_to_vertex ( f, local_id );
|
||||
}
|
||||
H5FedEndTraverseVertices ( f );
|
||||
return H5_SUCCESS;
|
||||
return H5FedEndTraverseVertices ( f );
|
||||
}
|
||||
|
||||
h5_err_t
|
||||
static h5_err_t
|
||||
traverse_edges (
|
||||
h5_file_t * f
|
||||
) {
|
||||
h5_id_t local_id, vids[4];
|
||||
|
||||
h5_err_t h5err = H5FedBeginTraverseEdges ( f );
|
||||
if ( h5err < 0 ) return h5err;
|
||||
printf ( "\nAdjacencies to edges\n" );
|
||||
H5FedBeginTraverseEdges ( f );
|
||||
while ( (local_id = H5FedTraverseEdges ( f, vids )) >= 0 ) {
|
||||
printf (" Level: %lld, Edge[%llx]: (%lld, %lld)\n",
|
||||
H5FedGetLevel(f), local_id, vids[0], vids[1] );
|
||||
print_upadjacent_triangles_to_edge ( f, local_id );
|
||||
print_upadjacent_tets_to_edge ( f, local_id );
|
||||
print_downadjacent_vertices_to_edge ( f, local_id );
|
||||
print_adjacencies_to_edge ( f, local_id );
|
||||
}
|
||||
h5err = H5FedEndTraverseEdges ( f );
|
||||
return h5err;
|
||||
return H5FedEndTraverseEdges ( f );
|
||||
}
|
||||
|
||||
h5_err_t
|
||||
static h5_err_t
|
||||
traverse_triangles (
|
||||
h5_file_t * f
|
||||
) {
|
||||
h5_id_t local_id, vids[4];
|
||||
|
||||
h5_err_t h5err = H5FedBeginTraverseTriangles ( f );
|
||||
if ( h5err < 0 ) return h5err;
|
||||
printf ( "\nAdjacencies to triangle\n" );
|
||||
H5FedBeginTraverseTriangles ( f );
|
||||
while ( (local_id = H5FedTraverseTriangles ( f, vids )) >= 0 ) {
|
||||
printf (" Level: %lld, Triangle[%llx]: (%lld,%lld,%lld)\n",
|
||||
H5FedGetLevel(f), local_id, vids[0], vids[1], vids[2] );
|
||||
print_upadjacent_tets_to_triangle ( f, local_id );
|
||||
print_downadjacent_vertices_to_triangle ( f, local_id );
|
||||
print_downadjacent_edges_to_triangle ( f, local_id );
|
||||
print_adjacencies_to_triangle ( f, local_id );
|
||||
}
|
||||
h5err = H5FedEndTraverseTriangles ( f );
|
||||
return h5err;
|
||||
return H5FedEndTraverseTriangles ( f );
|
||||
}
|
||||
|
||||
h5_err_t
|
||||
static h5_err_t
|
||||
traverse_tets (
|
||||
h5_file_t * f
|
||||
) {
|
||||
h5_id_t id, local_id, parent_id, vids[4];
|
||||
|
||||
h5_err_t h5err = H5FedBeginTraverseElements ( f );
|
||||
if ( h5err < 0 ) return h5err;
|
||||
printf ( "\nAdjacencies to tetrahedra\n" );
|
||||
H5FedBeginTraverseElements ( f );
|
||||
while ( (local_id = H5FedTraverseElements (f, &id, &parent_id, vids )) >= 0 ) {
|
||||
printf (" Level: %lld, Tet[%lld]: (%lld, %lld, %lld, %lld)\n",
|
||||
H5FedGetLevel(f), local_id,
|
||||
vids[0], vids[1], vids[2], vids[3] );
|
||||
print_downadjacent_vertices_to_tet ( f, local_id );
|
||||
print_downadjacent_edges_to_tet ( f, local_id );
|
||||
print_downadjacent_triangles_to_tet ( f, local_id );
|
||||
print_adjacencies_to_tet ( f, local_id );
|
||||
}
|
||||
H5FedEndTraverseElements ( f );
|
||||
return H5_SUCCESS;
|
||||
return H5FedEndTraverseElements ( f );
|
||||
}
|
||||
|
||||
h5_err_t
|
||||
static h5_err_t
|
||||
traverse_level (
|
||||
h5_file_t * f
|
||||
) {
|
||||
@@ -387,16 +331,16 @@ traverse_level (
|
||||
return H5_SUCCESS;
|
||||
}
|
||||
|
||||
h5_err_t
|
||||
static h5_err_t
|
||||
traverse_mesh (
|
||||
h5_file_t * f
|
||||
) {
|
||||
|
||||
h5_id_t level_id;
|
||||
h5_size_t num_levels = H5FedGetNumLevels ( f );
|
||||
num_levels = 2;
|
||||
num_levels = 3;
|
||||
printf ( " Number of levels in mesh: %lld\n", num_levels );
|
||||
for ( level_id = 1; level_id < num_levels; level_id++ ) {
|
||||
for ( level_id = 2; level_id < num_levels; level_id++ ) {
|
||||
h5_err_t h5err = H5FedSetLevel ( f, level_id );
|
||||
if ( h5err < 0 ) {
|
||||
fprintf ( stderr, "!!! Can't set level %lld.\n", level_id );
|
||||
|
||||
Reference in New Issue
Block a user