trimesh_write_dunetest added
This commit is contained in:
@@ -522,6 +522,7 @@ test/H5Fed/tetmesh_write2.c -text
|
||||
test/H5Fed/tetmesh_write_tags.c -text
|
||||
test/H5Fed/trimesh_read.c -text
|
||||
test/H5Fed/trimesh_write.c -text
|
||||
test/H5Fed/trimesh_write_dunetest.c -text
|
||||
test/H5Fed/write_boundary.c -text
|
||||
test/H5Part/Bench.c -text
|
||||
test/H5Part/H5ParallelTest.cc -text
|
||||
|
||||
@@ -23,7 +23,8 @@ noinst_PROGRAMS = \
|
||||
tetmesh_write_tags \
|
||||
tetmesh_read_tags \
|
||||
trimesh_read \
|
||||
trimesh_write
|
||||
trimesh_write \
|
||||
trimesh_write_dunetest
|
||||
|
||||
# map_tet2globalid \
|
||||
# map_triangle2globalid
|
||||
@@ -37,7 +38,8 @@ EXTRA_DIST = \
|
||||
tetmesh_write_tags.c \
|
||||
tetmesh_read_tags.c \
|
||||
trimesh_read.c \
|
||||
trimesh_write.c
|
||||
trimesh_write.c \
|
||||
trimesh_write_dunetest.c
|
||||
|
||||
# map_tet2globalid.c \
|
||||
# map_triangle2globalid.c \
|
||||
|
||||
@@ -263,7 +263,7 @@ traverse_vertices (
|
||||
clock_t t_max = 0;
|
||||
clock_t t = 0;
|
||||
printf ("\nAdjacencies to vertices\n");
|
||||
h5t_entity_iterator_t* iter = H5FedBeginTraverseEntities (f, 3);
|
||||
h5t_iterator_t* iter = H5FedBeginTraverseEntities (f, 3);
|
||||
fprintf (
|
||||
stderr,
|
||||
"Computing all adjacencies of all vertices ... ");
|
||||
@@ -296,7 +296,7 @@ traverse_edges (
|
||||
clock_t t_max = 0;
|
||||
clock_t t = 0;
|
||||
printf ("\nAdjacencies to edges\n");
|
||||
h5t_entity_iterator_t* iter = H5FedBeginTraverseEntities (f, 2);
|
||||
h5t_iterator_t* iter = H5FedBeginTraverseEntities (f, 2);
|
||||
fprintf (
|
||||
stderr,
|
||||
"Computing all adjacencies of all edges ... ");
|
||||
@@ -329,7 +329,7 @@ traverse_triangles (
|
||||
clock_t t_total = 0;
|
||||
clock_t t = 0;
|
||||
printf ("\nAdjacencies to triangle\n");
|
||||
h5t_entity_iterator_t* iter = H5FedBeginTraverseEntities (f, 1);
|
||||
h5t_iterator_t* iter = H5FedBeginTraverseEntities (f, 1);
|
||||
fprintf (
|
||||
stderr,
|
||||
"Computing all adjacencies of all triangles ... ");
|
||||
@@ -362,7 +362,7 @@ traverse_elems (
|
||||
clock_t t_max = 0;
|
||||
clock_t t = 0;
|
||||
printf ("\nAdjacencies to tetrahedra\n");
|
||||
h5t_entity_iterator_t* iter = H5FedBeginTraverseEntities (f, 0);
|
||||
h5t_iterator_t* iter = H5FedBeginTraverseEntities (f, 0);
|
||||
fprintf (
|
||||
stderr,
|
||||
"Computing all adjacencies of all tetrahedra ... ");
|
||||
|
||||
@@ -17,7 +17,7 @@ traverse_vertices (
|
||||
h5_size_t num_vertices_expect = H5FedGetNumVerticesTotal (f);
|
||||
|
||||
/* get iterator for co-dim 3 entities, i.e vertices */
|
||||
h5t_entity_iterator_t* iter = H5FedBeginTraverseEntities (f, 3);
|
||||
h5t_iterator_t* iter = H5FedBeginTraverseEntities (f, 3);
|
||||
|
||||
/* iterate */
|
||||
h5_id_t local_id;
|
||||
@@ -54,7 +54,7 @@ traverse_edges (
|
||||
printf ( "Travering edges on level %lld:\n", H5FedGetLevel(f) );
|
||||
|
||||
/* get iterator for co-dim 2 entities, i.e. edges */
|
||||
h5t_entity_iterator_t* iter = H5FedBeginTraverseEntities (f, 2);
|
||||
h5t_iterator_t* iter = H5FedBeginTraverseEntities (f, 2);
|
||||
|
||||
/* iterate */
|
||||
h5_id_t local_id;
|
||||
@@ -85,7 +85,7 @@ traverse_triangles (
|
||||
printf ( "Travering triangles on level %lld:\n", H5FedGetLevel(f) );
|
||||
|
||||
/* get iterator for co-dim 1 entities, i.e. triangles */
|
||||
h5t_entity_iterator_t* iter = H5FedBeginTraverseEntities (f, 1);
|
||||
h5t_iterator_t* iter = H5FedBeginTraverseEntities (f, 1);
|
||||
|
||||
/* iterate */
|
||||
h5_id_t local_id;
|
||||
@@ -117,7 +117,7 @@ traverse_boundary_triangles (
|
||||
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);
|
||||
h5t_iterator_t* iter = H5FedBeginTraverseBoundaryFaces (f, 1);
|
||||
|
||||
/* iterate */
|
||||
h5_id_t local_id;
|
||||
@@ -150,7 +150,7 @@ traverse_elems (
|
||||
h5_size_t num_elems_expect = H5FedGetNumElementsTotal (f);
|
||||
|
||||
/* get iterator for co-dim 0 */
|
||||
h5t_entity_iterator_t* iter = H5FedBeginTraverseEntities (f, 0);
|
||||
h5t_iterator_t* iter = H5FedBeginTraverseEntities (f, 0);
|
||||
|
||||
/* iterate over all co-dim 0 entities, i.e. elements */
|
||||
h5_id_t local_id;
|
||||
|
||||
@@ -31,7 +31,7 @@ traverse_vertices (
|
||||
h5_size_t real_num = 0;
|
||||
|
||||
h5_size_t num = H5FedGetNumVerticesTotal ( f );
|
||||
h5t_entity_iterator_t* iter = H5FedBeginTraverseEntities (f, 3 );
|
||||
h5t_iterator_t* iter = H5FedBeginTraverseEntities (f, 3 );
|
||||
while ( (real_num < num) &&
|
||||
((local_id = H5FedTraverseEntities (f, iter)) >= 0) ) {
|
||||
size_t size;
|
||||
@@ -62,7 +62,7 @@ traverse_edges (
|
||||
) {
|
||||
h5_id_t local_id;
|
||||
|
||||
h5t_entity_iterator_t* iter = H5FedBeginTraverseEntities (f, 1);
|
||||
h5t_iterator_t* iter = H5FedBeginTraverseEntities (f, 1);
|
||||
while ( (local_id = H5FedTraverseEntities (f, iter)) >= 0 ) {
|
||||
h5_id_t local_vids[4];
|
||||
H5FedGetVertexIndicesOfEntity( f, local_id, local_vids );
|
||||
@@ -87,7 +87,7 @@ traverse_triangles (
|
||||
) {
|
||||
h5_id_t local_id;
|
||||
|
||||
h5t_entity_iterator_t* iter = H5FedBeginTraverseEntities (f, 2);
|
||||
h5t_iterator_t* iter = H5FedBeginTraverseEntities (f, 2);
|
||||
while ( (local_id = H5FedTraverseEntities (f, iter)) >= 0 ) {
|
||||
size_t size;
|
||||
h5_int64_t retval[3];
|
||||
@@ -113,7 +113,7 @@ traverse_tets (
|
||||
|
||||
h5_size_t num = H5FedGetNumElementsTotal ( f );
|
||||
|
||||
h5t_entity_iterator_t* iter = H5FedBeginTraverseEntities (f, 0);
|
||||
h5t_iterator_t* iter = H5FedBeginTraverseEntities (f, 0);
|
||||
while ( (real_num < num) &&
|
||||
((local_id = H5FedTraverseEntities (f, iter)) >= 0) ) {
|
||||
size_t size;
|
||||
|
||||
@@ -16,15 +16,15 @@ set_vertex_tags (
|
||||
h5_int64_t val[3];
|
||||
|
||||
printf ("\nSet tags to vertices\n");
|
||||
h5t_entity_iterator_t* iter = H5FedBeginTraverseEntities (f, 3);
|
||||
h5t_iterator_t* iter = H5FedBeginTraverseEntities (f, 3);
|
||||
while ((local_id = H5FedTraverseEntities (f, iter)) >= 0) {
|
||||
val[0] = local_id;
|
||||
val[1] = local_id+1;
|
||||
val[2] = local_id+2;
|
||||
H5FedSetMTag (f, "testtag", local_id, 3, val);
|
||||
h5_int64_t retval[3];
|
||||
size_t dims;
|
||||
H5FedGetMTag (f, "testtag", local_id, &dims, retval);
|
||||
size_t dim = 3;
|
||||
H5FedGetMTag (f, "testtag", local_id, &dim, retval);
|
||||
if (memcmp (val, retval, sizeof(val))) {
|
||||
fprintf ( stderr, "Oops!\n");
|
||||
}
|
||||
@@ -40,7 +40,7 @@ set_edge_tags (
|
||||
h5_id_t local_id;
|
||||
h5_int64_t val[3];
|
||||
printf ("\nSet tags to edges\n");
|
||||
h5t_entity_iterator_t* iter = H5FedBeginTraverseEntities (f, 2);
|
||||
h5t_iterator_t* iter = H5FedBeginTraverseEntities (f, 2);
|
||||
while ((local_id = H5FedTraverseEntities (f, iter)) >= 0) {
|
||||
val[0] = local_id;
|
||||
val[1] = local_id+1;
|
||||
@@ -63,7 +63,7 @@ set_tri_tags (
|
||||
h5_id_t local_id;
|
||||
h5_int64_t val[3];
|
||||
printf ("\nSet tags to triangle\n");
|
||||
h5t_entity_iterator_t* iter = H5FedBeginTraverseEntities (f, 1);
|
||||
h5t_iterator_t* iter = H5FedBeginTraverseEntities (f, 1);
|
||||
while ((local_id = H5FedTraverseEntities (f, iter)) >= 0) {
|
||||
val[0] = local_id;
|
||||
val[1] = local_id+1;
|
||||
@@ -86,7 +86,7 @@ set_tet_tags (
|
||||
h5_id_t local_id;
|
||||
h5_int64_t val[3];
|
||||
printf ("\nSet tags to tetrahedra\n");
|
||||
h5t_entity_iterator_t* iter = H5FedBeginTraverseEntities (f, 0);
|
||||
h5t_iterator_t* iter = H5FedBeginTraverseEntities (f, 0);
|
||||
while ((local_id = H5FedTraverseEntities (f, iter)) >= 0) {
|
||||
val[0] = local_id;
|
||||
val[1] = local_id+1;
|
||||
|
||||
@@ -14,7 +14,7 @@ traverse_vertices (
|
||||
h5_size_t num_vertices_expect = H5FedGetNumVerticesTotal (f);
|
||||
|
||||
/* get iterator for co-dim 2 entities, i.e. vertices */
|
||||
h5t_entity_iterator_t* iter = H5FedBeginTraverseEntities (f, 2);
|
||||
h5t_iterator_t* iter = H5FedBeginTraverseEntities (f, 2);
|
||||
|
||||
/* iterate */
|
||||
h5_id_t local_id;
|
||||
@@ -49,7 +49,7 @@ traverse_edges (
|
||||
printf ( "Travering edges on level %lld:\n", H5FedGetLevel(f) );
|
||||
|
||||
/* get iterator for co-dim 1 entities, i.e. edges */
|
||||
h5t_entity_iterator_t* iter = H5FedBeginTraverseEntities (f, 1);
|
||||
h5t_iterator_t* iter = H5FedBeginTraverseEntities (f, 1);
|
||||
|
||||
/* iterate */
|
||||
h5_id_t local_id;
|
||||
@@ -80,7 +80,7 @@ traverse_boundary_edges (
|
||||
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);
|
||||
h5t_iterator_t* iter = H5FedBeginTraverseBoundaryFaces (f, 1);
|
||||
|
||||
/* iterate */
|
||||
h5_id_t local_id;
|
||||
@@ -112,7 +112,7 @@ traverse_elems (
|
||||
h5_size_t num_elems_expect = H5FedGetNumElementsTotal (f);
|
||||
|
||||
/* get iterator for co-dim 0 */
|
||||
h5t_entity_iterator_t* iter = H5FedBeginTraverseEntities (f, 0);
|
||||
h5t_iterator_t* iter = H5FedBeginTraverseEntities (f, 0);
|
||||
|
||||
/* iterate over all co-dim 0 entities, i.e. elements */
|
||||
h5_id_t local_id;
|
||||
|
||||
@@ -0,0 +1,73 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#include "H5hut.h"
|
||||
|
||||
const h5_oid_t MESH_TYPE = H5_TRIANGLE_MESH;
|
||||
const char* FNAME = "simple_dunetest.h5";
|
||||
|
||||
typedef struct vertex {
|
||||
h5_id_t global_id;
|
||||
h5_float64_t P[3];
|
||||
} vertex_t;
|
||||
|
||||
typedef struct elem {
|
||||
h5_id_t global_id;
|
||||
h5_id_t parent_id;
|
||||
h5_id_t vids[3];
|
||||
} elem_t;
|
||||
|
||||
vertex_t Vertices[] = {
|
||||
{ 0, { 0.0, 0.0, 0.0} },
|
||||
{ 1, {-0.5, 1.0, 0.0} },
|
||||
{ 2, { 0.5, 1.0, 0.0} },
|
||||
{ 3, { 1.0, 0.0, 0.0} },
|
||||
{ 4, { 0.5, -1.0, 0.0} },
|
||||
{ 5, {-0.5, -1.0, 0.0} },
|
||||
{ 6, {-1.0, 0.0, 0.0} }
|
||||
};
|
||||
|
||||
elem_t Elems[] = {
|
||||
{ 0, -1, { 0, 1, 2 } },
|
||||
{ 1, -1, { 0, 2, 3 } },
|
||||
{ 2, -1, { 0, 3, 4 } },
|
||||
{ 3, -1, { 0, 4, 5 } },
|
||||
{ 4, -1, { 0, 5, 6 } },
|
||||
{ 5, -1, { 0, 1, 6 } }
|
||||
};
|
||||
|
||||
const int num_vertices = sizeof (Vertices) / sizeof (Vertices[0]);
|
||||
const int num_elems = sizeof (Elems) / sizeof (Elems[0]);
|
||||
|
||||
int
|
||||
main (
|
||||
int argc,
|
||||
char* argv[]
|
||||
) {
|
||||
/* abort program on errors in library */
|
||||
H5SetErrorHandler (H5AbortErrorhandler);
|
||||
H5SetVerbosityLevel (2);
|
||||
|
||||
/* open file and add mesh */
|
||||
h5_file_t* const f = H5OpenFile (FNAME, H5_O_WRONLY, 0);
|
||||
H5FedAddMesh (f, MESH_TYPE);
|
||||
|
||||
/* store vertices */
|
||||
H5FedBeginStoreVertices (f, num_vertices);
|
||||
int i;
|
||||
for (i = 0; i < num_vertices; i++) {
|
||||
H5FedStoreVertex (f, -1, Vertices[i].P);
|
||||
}
|
||||
H5FedEndStoreVertices (f);
|
||||
|
||||
/* store elements */
|
||||
H5FedBeginStoreElements (f, num_elems);
|
||||
for (i = 0; i < num_elems; i++) {
|
||||
H5FedStoreElement (f, Elems[i].vids);
|
||||
}
|
||||
H5FedEndStoreElements (f);
|
||||
|
||||
H5FedCloseMesh (f);
|
||||
H5CloseFile (f);
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user