diff --git a/.gitattributes b/.gitattributes index 694e4b9..e233d90 100644 --- a/.gitattributes +++ b/.gitattributes @@ -413,6 +413,7 @@ test/H5Fed/read_tetmesh.c -text test/H5Fed/read_trianglemesh.c -text test/H5Fed/write_tet.c -text test/H5Fed/write_triangle.c -text +test/H5Fed/write_trianglemesh.c -text test/H5Part/Bench.c -text test/H5Part/H5ParallelTest.cc -text test/H5Part/H5PartAndreasTest.cc -text diff --git a/test/H5Fed/write_trianglemesh.c b/test/H5Fed/write_trianglemesh.c new file mode 100644 index 0000000..1471a14 --- /dev/null +++ b/test/H5Fed/write_trianglemesh.c @@ -0,0 +1,134 @@ +#include +#include +#include +#include "H5Part.h" +#include "H5Fed.h" + +#ifndef PARALLEL_IO +#ifndef MPI_COMM_WORLD +#define MPI_COMM_WORLD 0 +#endif +#endif + +struct vertex { + h5_id_t global_id; + h5_float64_t P[3]; +}; + +typedef struct vertex vertex_t; + +struct entity { + h5_id_t global_id; + h5_id_t parent_id; + h5_id_t vids[3]; +}; +typedef struct entity entity_t; + + +vertex_t V0[4] = { + { 0, {-1.0, 0.0, 0.0} }, + { 1, { 1.0, 0.0, 0.0} }, + { 2, { 0.0, 1.0, 0.0} }, + { 3, { 0.0, -1.0, 0.0} } +}; + +vertex_t V1[1] = { + { 4, {0.0, 0.0, 0.0 } } +}; + +entity_t T0[2] = { + { 1, -1, { 0, 1, 2 } }, + { 0, -1, { 0, 1, 3 } } +}; + +entity_t T1[4] = { + { 2, 1, { 1, 2, 4 } }, + { 3, 1, { 0, 2, 4 } }, + { 4, 0, { 0, 3, 4 } }, + { 5, 0, { 1, 3, 4 } } +}; + +h5_err_t +add_level ( + h5_file *f, + vertex_t V[], + int num_verts, + entity_t T[], + int num_entities + ) { + + h5_err_t h5err = H5FedAddLevel ( f ); + if ( h5err < 0 ) { + fprintf ( stderr, "!!! Can't add level.\n" ); + return -1; + } + h5err = H5FedAddNumVertices ( f, num_verts ); + if ( h5err < 0 ) { + fprintf ( stderr, "!!! Can't set number of vertices.\n" ); + return -1; + } + + int i; + for ( i = 0; i