From 8c22f38d2388339cf3a1a305897b492b82ff8ec8 Mon Sep 17 00:00:00 2001 From: Veselin Dobrev Date: Wed, 11 Aug 2021 17:26:38 -0700 Subject: [PATCH 01/17] Clean-up compiler warnings. A few build system tweaks. --- .gitignore | 2 +- CMakeLists.txt | 3 +- examples/demo_pumi_mfem/demo_pumi_mfem.cpp | 6 +- examples/include-fms/main.cpp | 2 +- examples/meshing/CMakeLists.txt | 6 +- examples/meshing/domains.c | 4 +- examples/meshing/hexes.c | 8 +- examples/meshing/quads.c | 3 +- examples/meshing/simple_mesh.c | 2 +- src/fms.c | 18 ++- src/fmsio.c | 179 +++++++++------------ tests/CMakeLists.txt | 6 +- tests/fmstesting.cpp | 4 +- tests/t_fms.cpp | 2 +- tests/t_fmsio.cpp | 2 +- 15 files changed, 120 insertions(+), 127 deletions(-) diff --git a/.gitignore b/.gitignore index c354e4a..84b7852 100644 --- a/.gitignore +++ b/.gitignore @@ -6,4 +6,4 @@ data/ *.out # IDE directories -.vscode/ \ No newline at end of file +.vscode/ diff --git a/CMakeLists.txt b/CMakeLists.txt index 82d6137..68d9337 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -37,7 +37,8 @@ endif() # Setup thirdparty dependencies # Optional conduit implementation for IO functions if(CONDUIT_DIR) - find_package(Conduit 0.5.1 REQUIRED + enable_language(CXX) + find_package(Conduit 0.7.1 REQUIRED HINTS ${CONDUIT_DIR} NO_DEFAULT_PATH) set(FMS_HAVE_CONDUIT TRUE) diff --git a/examples/demo_pumi_mfem/demo_pumi_mfem.cpp b/examples/demo_pumi_mfem/demo_pumi_mfem.cpp index af13a52..4dff5f1 100644 --- a/examples/demo_pumi_mfem/demo_pumi_mfem.cpp +++ b/examples/demo_pumi_mfem/demo_pumi_mfem.cpp @@ -123,7 +123,7 @@ int main(int argc, char *argv[]) { } // Edges - FmsInt nvtxs = 2; + const FmsInt nvtxs = 2; FmsInt num_edges = 0; int edge[nvtxs]; itr = pumi_mesh->begin(1); @@ -157,7 +157,7 @@ int main(int argc, char *argv[]) { pumi_mesh->end(itr); // Define Face based on edge Id's - FmsInt nedges = 3; + const FmsInt nedges = 3; int face[nedges]; int num_triangles = 0; itr = pumi_mesh->begin(2); @@ -191,7 +191,7 @@ int main(int argc, char *argv[]) { pumi_mesh->end(itr); // Define Elem based on face Id's - FmsInt nfaces = 4; + const FmsInt nfaces = 4; FmsEntityReordering EntReord; int tetOrd[4] = {0,1,3,2}; // PUMI order for tet element faces EntReord[FMS_TETRAHEDRON] = &tetOrd[0]; diff --git a/examples/include-fms/main.cpp b/examples/include-fms/main.cpp index 3ace813..8690da7 100644 --- a/examples/include-fms/main.cpp +++ b/examples/include-fms/main.cpp @@ -6,4 +6,4 @@ int main(int, char**) { auto a = FmsMeshConstruct(&m); printf("Hello %d\n", a); return a; -} \ No newline at end of file +} diff --git a/examples/meshing/CMakeLists.txt b/examples/meshing/CMakeLists.txt index e6c2f3f..147ed32 100644 --- a/examples/meshing/CMakeLists.txt +++ b/examples/meshing/CMakeLists.txt @@ -14,6 +14,10 @@ # software, applications, hardware, advanced system engineering and early # testbed platforms, in support of the nation's exascale computing imperative. +set(CMAKE_C_STANDARD 99) +set(CMAKE_C_STANDARD_REQUIRED ON) +set(CMAKE_C_EXTENSIONS OFF) + add_executable(domains domains.c) target_link_libraries(domains PRIVATE fms) @@ -24,4 +28,4 @@ add_executable(quads quads.c) target_link_libraries(quads PRIVATE fms m) add_executable(simple_mesh simple_mesh.c) -target_link_libraries(simple_mesh PRIVATE fms) \ No newline at end of file +target_link_libraries(simple_mesh PRIVATE fms) diff --git a/examples/meshing/domains.c b/examples/meshing/domains.c index b6fbd5b..4e1b2ca 100644 --- a/examples/meshing/domains.c +++ b/examples/meshing/domains.c @@ -201,11 +201,11 @@ double * append_domain_coords_face(int dom, int order, double *ptr, const int *global_index, const int *edges, const int *tri, int ntri) { - int i,j,edge,v0,v1; + int i,j,v0,v1; double pt[2], xoffset, yoffset, travel = 0.01; if(order == 3) { for(i = 0; i < ntri; ++i) { - pt[0] = pt[1] = pt[2] = 0.; + pt[0] = pt[1] = 0.; for(j = 0; j < 3; ++j) { /* Current edge in tri*/ int edge = tri[3*i+j]; diff --git a/examples/meshing/hexes.c b/examples/meshing/hexes.c index 7e1bde6..9709e82 100644 --- a/examples/meshing/hexes.c +++ b/examples/meshing/hexes.c @@ -251,7 +251,7 @@ compute_cells(const int *dims, int *ncells) { int F1 = (dims[0]-1)*(dims[1]-1)*dims[2]; /* back/front */ int F2 = (dims[0]-1)*(dims[1]) *(dims[2]-1); /* bottom/top */ - int F3 = (dims[0]) *(dims[1]-1)*(dims[2]-1); /* left/right */ + // int F3 = (dims[0]) *(dims[1]-1)*(dims[2]-1); /* left/right */ for(k = 0; k < dims[2]-1; k++) for(j = 0; j < dims[1]-1; j++) @@ -337,7 +337,7 @@ double * append_coord_dofs_face(int order, double *dest, const double *verts, const int *edges, const int *faces, int nfaces, double travel, int component) { - int i,j,ii,jj,edge,e0,e2,v0,v1,v2,v3; + int i,ii,jj,e0,e2,v0,v1,v2,v3; double value, r,s, *ptr = dest; if(order >= 2) { for(i = 0; i < nfaces; ++i) { @@ -377,7 +377,7 @@ append_coord_dofs_face(int order, double *dest, const double *verts, double * append_coord_dofs_cell(int order, double *dest, const int *dims, const double *verts, double travel, int component) { - int i,j,k,ii,jj,kk,edge,v0,v1; + int i,j,k,ii,jj,kk; double r,s,t,value, *ptr = dest; #ifdef ADD_CELLS if(order >= 2) { @@ -443,7 +443,7 @@ add_radial_scalar(FmsDataCollection dc, FmsComponent volume, const int *faces, int nfaces, int ncells) { int i, ndofs; - double *data, *coords, *cptr, *x, *y, *z; + double *data, *coords, *x, *y, *z; char fdname[100]; /* Create a field descriptor for the coordinates that live on "surface". */ diff --git a/examples/meshing/quads.c b/examples/meshing/quads.c index 57668a7..3ee8ab3 100644 --- a/examples/meshing/quads.c +++ b/examples/meshing/quads.c @@ -140,7 +140,7 @@ append_coords_edge(int order, double *ptr, const double *coords, double * append_coords_face(int order, double *ptr, const double *coords, const int *edges, const int *quads, int nquads, double travel) { - int i,j,ii,jj,edge,e0,e2,v0,v1,v2,v3; + int i,ii,jj,e0,e2,v0,v1,v2,v3; double pt[2], xoffset, yoffset; float r,s; if(order >= 2) { @@ -264,7 +264,6 @@ add_doforder_scalar(FmsDataCollection dc, FmsComponent surface, const char *name, int nverts, int nedges, int nquads) { int i, order = 3, ndofs, nedge_data, nface_data; float *data, *ptr; - double x, y; char fdname[100]; /* Create a field descriptor for the coordinates that live on "surface". */ diff --git a/examples/meshing/simple_mesh.c b/examples/meshing/simple_mesh.c index 5cf4875..d960f1c 100644 --- a/examples/meshing/simple_mesh.c +++ b/examples/meshing/simple_mesh.c @@ -135,4 +135,4 @@ int main(int argc, const char *argv[]) { FmsDataCollectionDestroy(&dc); return 0; -} \ No newline at end of file +} diff --git a/src/fms.c b/src/fms.c index 4222ebe..7023fbc 100644 --- a/src/fms.c +++ b/src/fms.c @@ -263,11 +263,12 @@ static void FmsAbortNotImplemented() { abort(); } - +#ifndef NDEBUG static void FmsInternalError() { fprintf(stderr, "\n\nFMS internal error detected! Aborting ...\n\n"); abort(); } +#endif static inline int FmsCopyString(const char *str, char **str_copy_p) { if (str == NULL) { *str_copy_p = NULL; return 0; } @@ -2044,6 +2045,7 @@ int FmsMetaDataSetIntegers(FmsMetaData mdata, const char *mdata_name, mdata->sub_type.int_type = int_type; mdata->num_entries = size; mdata->data = md_data; + // FIXME: why? memcpy(md_data, data, size*sizeof_int_type); *data = md_data; return 0; @@ -2066,6 +2068,7 @@ int FmsMetaDataSetScalars(FmsMetaData mdata, const char *mdata_name, mdata->sub_type.scalar_type = scal_type; mdata->num_entries = size; mdata->data = md_data; + // FIXME: why? memcpy(md_data, data, size*sizeof_scal_type); *data = md_data; return 0; @@ -2984,6 +2987,8 @@ static inline FmsInt CompareScalarData(FmsScalarType stype, FmsInt size, case FMS_COMPLEX_DOUBLE: COMPARE_SCALAR_DATA(double, lhs, rhs, size*2, isDifferent); break; + default: + return 2; } return isDifferent; } @@ -3019,6 +3024,8 @@ static inline FmsInt CompareIntData(FmsIntType itype, FmsInt size, case FMS_UINT64: COMPARE_INT_DATA(uint64_t, lhs, rhs, size, isDifferent); break; + default: + return 2; } return isDifferent; } @@ -3350,6 +3357,10 @@ int FmsMetaDataCompare(FmsMetaData lhs, FmsMetaData rhs) { } break; } + default: { + diff += 1000000; + break; + } } } return diff; @@ -3523,8 +3534,9 @@ int FmsTagCompare(FmsTag lhs, FmsTag rhs) { if(diff == 0) { FmsInt ne = 0; - if(lhs->comp) - lhs->comp->num_main_entities; + // FIXME: warning: expression result unused + // if(lhs->comp) + // lhs->comp->num_main_entities; if(CompareIntData(lhs->tag_type, ne, lhs->tags, rhs->tags)) diff += 1000; } diff --git a/src/fmsio.c b/src/fmsio.c index 1e05c48..5bcddbc 100644 --- a/src/fmsio.c +++ b/src/fmsio.c @@ -25,6 +25,7 @@ #include #include #include +#include #ifdef FMS_HAVE_CONDUIT #include @@ -42,23 +43,27 @@ do { \ // NOTE: If set to 1 the last line will still have 2 entries. #define FMS_ELE_PER_LINE 3u -#if UINT_MAX == ULONG_MAX -#define FMS_LD "%lld" -#define FMS_LU "%llu" +// printf format string for FmsInt +#define FMS_LU "%" PRIu64 + +// Routine used for converting a string to FmsInt +#if UINT64_MAX == ULLONG_MAX +#define StrToFmsInt strtoull +#elif UINT64_MAX == ULONG_MAX +#define StrToFmsInt strtoul #else -#define FMS_LD "%ld" -#define FMS_LU "%lu" +#error "unknown conversion routine for FmsInt" #endif #define FOR_EACH_INT_TYPE(macro) \ - macro(FMS_INT8, int8_t, "%d") \ - macro(FMS_INT16, int16_t, "%d") \ - macro(FMS_INT32, int32_t, "%d") \ - macro(FMS_INT64, int64_t, FMS_LD) \ - macro(FMS_UINT8, uint8_t, "%u") \ - macro(FMS_UINT16, uint16_t, "%u") \ - macro(FMS_UINT32, uint32_t, "%u") \ - macro(FMS_UINT64, uint64_t, FMS_LU) + macro(FMS_INT8, int8_t, "%" PRId8) \ + macro(FMS_INT16, int16_t, "%" PRId16) \ + macro(FMS_INT32, int32_t, "%" PRId32) \ + macro(FMS_INT64, int64_t, "%" PRId64) \ + macro(FMS_UINT8, uint8_t, "%" PRIu8) \ + macro(FMS_UINT16, uint16_t, "%" PRIu16) \ + macro(FMS_UINT32, uint32_t, "%" PRIu32) \ + macro(FMS_UINT64, uint64_t, "%" PRIu64) #define FOR_EACH_SCALAR_TYPE(macro) \ macro(FMS_FLOAT, float, "%f") \ @@ -114,13 +119,6 @@ static inline int FmsIOStringToLower(const char *src, const size_t N, char *dst) return 0; } -// Return m=2^k, k-integer, such that: m >= n > m/2 -static inline FmsInt NextPow2(FmsInt n) { - FmsInt m = 1; - while (m < n) { m *= 2; } - return m; -} - /** Data structures. */ @@ -173,7 +171,7 @@ typedef struct { union { FmsIntType i_type; FmsScalarType s_type; - }; + } subtype; const char *name; FmsInt size; void *data; @@ -520,7 +518,6 @@ FmsIOReadKeyValue(FmsIOContext *ctx, char *key, char *value) { // After the ':' is a space then the value starts if(value) { - N = 0; N = strlen(key_end+2); if(N >= FMS_BUFFER_SIZE) E_RETURN(5); @@ -535,7 +532,6 @@ FmsIOReadKeyValue(FmsIOContext *ctx, char *key, char *value) { static int FmsIOHasPath(FmsIOContext *ctx, const char *path) { int err = 0; - long curr_loc = 0; char k[FMS_BUFFER_SIZE]; if(!ctx) E_RETURN(1); if(!path) E_RETURN(2); @@ -582,20 +578,12 @@ FmsIOGetInt(FmsIOContext *ctx, const char *path, FmsInt *value) { if(strcmp(k, path)) E_RETURN(5); -#if UINT_MAX == ULONG_MAX - *value = strtoull(v, NULL, 10); -#else - *value = strtoul(v, NULL, 10); -#endif + *value = StrToFmsInt(v, NULL, 10); - // Potential error - if(value == 0) { - if(errno == EINVAL) - E_RETURN(6); + // Potential errors + if (errno == ERANGE) { E_RETURN(6); } + if (errno == EINVAL) { E_RETURN(7); } - if(errno == ERANGE) - E_RETURN(7); - } return 0; } @@ -631,16 +619,10 @@ FmsIOGetTypedIntArray(FmsIOContext *ctx, const char *path, FmsIntType *type, if(err) E_RETURN(7); -#if UINT_MAX == ULONG_MAX - *n = strtoull(v, NULL, 10); -#else - *n = strtoul(v, NULL, 10); -#endif + *n = StrToFmsInt(v, NULL, 10); - if(*n == 0) { - if(errno == EINVAL) E_RETURN(8); - if(errno == ERANGE) E_RETURN(9); - } + if (errno == ERANGE) { E_RETURN(8); } + if (errno == EINVAL) { E_RETURN(9); } } { @@ -677,15 +659,15 @@ do { \ DEST_T *data = malloc(sizeof(DEST_T) * *n); \ FmsInt i = 0; \ while(1) { \ - FmsInt len = strlen(v); \ + size_t len = strlen(v); \ char *off = v, *newoff = NULL; \ if(off[0] == '[') \ off++; \ while(len && i < *n) { \ data[i++] = (DEST_T)FUNC(off, &newoff, 10); \ newoff++; \ - if(*newoff = ' ') newoff++; /* Current flaw in the file format, last element has no trialing space */ \ - if(newoff - v >= len) break; \ + if(*newoff == ' ') newoff++; /* Current flaw in the file format, last element has no trialing space */ \ + if(newoff >= v + len) break; \ off = newoff; \ } \ if(strchr(v, ']')) break; \ @@ -694,46 +676,36 @@ do { \ *values = (void*)data; \ } while(0) -#if UINT_MAX == ULONG_MAX -#define UNSIGNED_FUNC strtoull -#define SIGNED_FUNC strtoll -#else -#define UNSIGNED_FUNC strtoul -#define SIGNED_FUNC strtol -#endif - switch(*type) { case FMS_INT8: - READ_ARRAY_DATA(int8_t, SIGNED_FUNC); + READ_ARRAY_DATA(int8_t, strtoimax); break; case FMS_INT16: - READ_ARRAY_DATA(int16_t, SIGNED_FUNC); + READ_ARRAY_DATA(int16_t, strtoimax); break; case FMS_INT32: - READ_ARRAY_DATA(int32_t, SIGNED_FUNC); + READ_ARRAY_DATA(int32_t, strtoimax); break; case FMS_INT64: - READ_ARRAY_DATA(int64_t, SIGNED_FUNC); + READ_ARRAY_DATA(int64_t, strtoimax); break; case FMS_UINT8: - READ_ARRAY_DATA(uint8_t, UNSIGNED_FUNC); + READ_ARRAY_DATA(uint8_t, strtoumax); break; case FMS_UINT16: - READ_ARRAY_DATA(uint16_t, UNSIGNED_FUNC); + READ_ARRAY_DATA(uint16_t, strtoumax); break; case FMS_UINT32: - READ_ARRAY_DATA(uint32_t, UNSIGNED_FUNC); + READ_ARRAY_DATA(uint32_t, strtoumax); break; case FMS_UINT64: - READ_ARRAY_DATA(uint64_t, UNSIGNED_FUNC); + READ_ARRAY_DATA(uint64_t, strtoumax); break; default: E_RETURN(16); break; } #undef READ_ARRAY_DATA -#undef UNSIGNED_FUNC -#undef SIGNED_FUNC return 0; } @@ -770,16 +742,10 @@ FmsIOGetScalarArray(FmsIOContext *ctx, const char *path, FmsScalarType *type, if(err) E_RETURN(7); -#if UINT_MAX == ULONG_MAX - *n = strtoull(v, NULL, 10); -#else - *n = strtoul(v, NULL, 10); -#endif + *n = StrToFmsInt(v, NULL, 10); - if(*n == 0) { - if(errno == EINVAL) E_RETURN(8); - if(errno == ERANGE) E_RETURN(9); - } + if (errno == ERANGE) { E_RETURN(8); } + if (errno == EINVAL) { E_RETURN(9); } } { @@ -817,15 +783,15 @@ do { \ DEST_T *data = malloc(sizeof(DEST_T) * SIZE); \ FmsInt i = 0; \ while(1) { \ - FmsInt len = strlen(v); \ + size_t len = strlen(v); \ char *off = v, *newoff = NULL; \ if(off[0] == '[') \ off++; \ while(len && i < SIZE) { \ data[i++] = (DEST_T)FUNC(off, &newoff); \ newoff++; \ - if(*newoff = ' ') newoff++; /* Current flaw in the file format, last element has no trialing space */ \ - if(newoff - v >= len) break; \ + if(*newoff == ' ') newoff++; /* Current flaw in the file format, last element has no trialing space */ \ + if(newoff >= v + len) break; \ off = newoff; \ } \ if(strchr(v, ']')) break; \ @@ -886,11 +852,14 @@ FmsIOGetString(FmsIOContext *ctx, const char *path, const char **value) { return 0; } +// This function is not used, for now. +#if 0 static int FmsIOGetStringArray(FmsIOContext *ctx, const char *path, const char ***values, FmsInt *n) { E_RETURN(1); // TODO: Implement } +#endif /** @brief This function initializes the IO context . @@ -987,7 +956,7 @@ FmsIOAddIntConduit(FmsIOContext *ctx, const char *path, FmsInt value) { static int FmsIOAddIntArrayConduit(FmsIOContext *ctx, const char *path, - const FmsInt *values, size_t n) { + const FmsInt *values, FmsInt n) { if(!ctx) E_RETURN(1); if(!path) E_RETURN(2); @@ -1593,12 +1562,12 @@ FmsIOWriteFmsMetaData(FmsIOContext *ctx, FmsIOFunctions *io, const char *key, kname = join_keys(key, "Name"); err = (*io->add_string)(ctx, kname, mdata_name); FREE(kname); + if (err) { E_RETURN(4); } kdata = join_keys(key, "Data"); err = (*io->add_typed_int_array)(ctx, kdata, int_type, data, size); FREE(kdata); - if(err) - E_RETURN(4); + if (err) { E_RETURN(5); } break; } case FMS_SCALAR: { @@ -1609,17 +1578,17 @@ FmsIOWriteFmsMetaData(FmsIOContext *ctx, FmsIOFunctions *io, const char *key, const void *data = NULL; if(FmsMetaDataGetScalars(mdata, &mdata_name, &scalar_type, &size, &data)) - E_RETURN(5); + E_RETURN(6); kname = join_keys(key, "Name"); err = (*io->add_string)(ctx, kname, mdata_name); FREE(kname); + if (err) { E_RETURN(7); } kdata = join_keys(key, "Data"); err = (*io->add_scalar_array)(ctx, kdata, scalar_type, data, size); FREE(kdata); - if(err) - E_RETURN(6); + if (err) { E_RETURN(8); } break; } case FMS_STRING: { @@ -1628,17 +1597,17 @@ FmsIOWriteFmsMetaData(FmsIOContext *ctx, FmsIOFunctions *io, const char *key, const char *data = NULL; if(FmsMetaDataGetString(mdata, &mdata_name, &data)) - E_RETURN(7); + E_RETURN(9); kname = join_keys(key, "Name"); err = (*io->add_string)(ctx, kname, mdata_name); FREE(kname); + if (err) { E_RETURN(10); } kdata = join_keys(key, "Data"); err = (*io->add_string)(ctx, kdata, data); FREE(kdata); - if(err) - E_RETURN(8); + if (err) { E_RETURN(11); } break; } case FMS_META_DATA: { @@ -1648,18 +1617,19 @@ FmsIOWriteFmsMetaData(FmsIOContext *ctx, FmsIOFunctions *io, const char *key, FmsMetaData *data = NULL; if(FmsMetaDataGetMetaData(mdata, &mdata_name, &size, &data)) - E_RETURN(9); + E_RETURN(12); - if(!data) - E_RETURN(10); + if (!data) { E_RETURN(13); } kname = join_keys(key, "Name"); err = (*io->add_string)(ctx, kname, mdata_name); FREE(kname); + if (err) { E_RETURN(14); } ksize = join_keys(key, "Size"); err = (*io->add_int)(ctx, ksize, size); FREE(ksize); + if (err) { E_RETURN(15); } kdata = join_keys(key, "Data"); // Recursive? @@ -1669,15 +1639,16 @@ FmsIOWriteFmsMetaData(FmsIOContext *ctx, FmsIOFunctions *io, const char *key, tk = join_keys(kdata, temp); err = FmsIOWriteFmsMetaData(ctx, io, tk, data[i]); FREE(tk); + if (err) { + FREE(kdata); + E_RETURN(16); + } } FREE(kdata); - - if(err) - E_RETURN(11); break; } default: - E_RETURN(12); + E_RETURN(17); break; } return 0; @@ -1713,8 +1684,8 @@ FmsIOReadFmsMetaData(FmsIOContext *ctx, FmsIOFunctions *io, const char *key, case FMS_INTEGER: { // Get DataArray char *kdata = join_keys(key, "Data"); - err = (*io->get_typed_int_array)(ctx, kdata, &mdinfo->i_type, &mdinfo->data, - &mdinfo->size); + err = (*io->get_typed_int_array)(ctx, kdata, &mdinfo->subtype.i_type, + &mdinfo->data, &mdinfo->size); FREE(kdata); if(err) E_RETURN(5); @@ -1723,8 +1694,8 @@ FmsIOReadFmsMetaData(FmsIOContext *ctx, FmsIOFunctions *io, const char *key, case FMS_SCALAR: { // Get data array char *kdata = join_keys(key, "Data"); - err = (*io->get_scalar_array)(ctx, kdata, &mdinfo->s_type, &mdinfo->data, - &mdinfo->size); + err = (*io->get_scalar_array)(ctx, kdata, &mdinfo->subtype.s_type, + &mdinfo->data, &mdinfo->size); FREE(kdata); if(err) E_RETURN(6); @@ -3085,19 +3056,22 @@ FmsIOBuildFmsMetaData(FmsMetaData md, FmsIOMetaDataInfo *minfo) { switch(minfo->mdtype) { case FMS_INTEGER: { void *data = NULL; - FmsMetaDataSetIntegers(md, minfo->name, minfo->i_type, minfo->size, + FmsMetaDataSetIntegers(md, minfo->name, minfo->subtype.i_type, minfo->size, &data); if(data) - memcpy(data, minfo->data, FmsIntTypeSize[minfo->i_type]*minfo->size); + memcpy(data, minfo->data, + FmsIntTypeSize[minfo->subtype.i_type]*minfo->size); else E_RETURN(3); break; } case FMS_SCALAR: { void *data = NULL; - FmsMetaDataSetScalars(md, minfo->name, minfo->s_type, minfo->size, &data); + FmsMetaDataSetScalars(md, minfo->name, minfo->subtype.s_type, minfo->size, + &data); if(data) - memcpy(data, minfo->data, FmsScalarTypeSize[minfo->s_type]*minfo->size); + memcpy(data, minfo->data, + FmsScalarTypeSize[minfo->subtype.s_type]*minfo->size); else E_RETURN(4); break; @@ -3330,6 +3304,7 @@ FmsIOBuildFmsDataCollection(FmsIODataCollectionInfo *dc_info, FmsMetaData md = NULL; FmsDataCollectionAttachMetaData(*dc, &md); err = FmsIOBuildFmsMetaData(md, dc_info->md); + (void)err; // TODO: error handling } return 0; @@ -3377,8 +3352,6 @@ static int FmsIODestroyFmsIODataCollectionInfo(FmsIODataCollectionInfo *dc_info) { if(!dc_info) E_RETURN(1); - int err = 0; - // Destroy DomainNameInfos & DomainInfos const FmsInt ndomnames = dc_info->mesh_info->ndomain_names; if(ndomnames) { diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index d2dddf0..0ad10eb 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -45,6 +45,10 @@ function(fms_add_cpp_test) endfunction() # ------------------------------------------------------------------------ +set(CMAKE_CXX_STANDARD 11) +set(CMAKE_CXX_STANDARD_REQUIRED ON) +set(CMAKE_CXX_EXTENSIONS OFF) + # Add FmsBaselines add_library(fms_testing_common STATIC fmstesting.hpp fmstesting.cpp) target_link_libraries(fms_testing_common PUBLIC fms) @@ -58,4 +62,4 @@ fms_add_cpp_test( fms_add_cpp_test( TEST t_fmsio -) \ No newline at end of file +) diff --git a/tests/fmstesting.cpp b/tests/fmstesting.cpp index 6d0fbd2..5d531b7 100644 --- a/tests/fmstesting.cpp +++ b/tests/fmstesting.cpp @@ -1,4 +1,4 @@ -#include +#include "fmstesting.hpp" #include // #define PRINT_DATASETS @@ -327,4 +327,4 @@ int ConstructAllDataCollections(FmsInt *size, FmsDataCollection **out_dcs) { *out_dcs = dcs; *size = 4; return 0; -} \ No newline at end of file +} diff --git a/tests/t_fms.cpp b/tests/t_fms.cpp index dc026da..fb47bc7 100644 --- a/tests/t_fms.cpp +++ b/tests/t_fms.cpp @@ -1,5 +1,5 @@ #include -#include +#include "fmstesting.hpp" #include TEST(Fms, Version) { diff --git a/tests/t_fmsio.cpp b/tests/t_fmsio.cpp index 29a3220..97289f6 100644 --- a/tests/t_fmsio.cpp +++ b/tests/t_fmsio.cpp @@ -1,6 +1,6 @@ #include #include -#include +#include "fmstesting.hpp" #include TEST(FmsIO, WriteReadAscii) { From b3d5e1b487c469d371bd6eebc0cdf93d6715da6d Mon Sep 17 00:00:00 2001 From: Veselin Dobrev Date: Wed, 11 Aug 2021 21:29:50 -0700 Subject: [PATCH 02/17] Suppress more compiler warnings. --- examples/meshing/domains.c | 4 ++-- examples/meshing/hexes.c | 8 ++++++-- examples/meshing/quads.c | 4 ++-- src/fmsio.c | 12 ++++++++---- tests/t_fms.cpp | 4 ++-- 5 files changed, 20 insertions(+), 12 deletions(-) diff --git a/examples/meshing/domains.c b/examples/meshing/domains.c index 4e1b2ca..52c54a2 100644 --- a/examples/meshing/domains.c +++ b/examples/meshing/domains.c @@ -155,7 +155,7 @@ append_domain_coords_edge(int dom, int order, double *ptr, const int *global_index, const int *edges, int nedges) { int i, j, v0, v1; - double t, xoffset, yoffset, pt[2], travel = 0.02; + double t, xoffset = 0., yoffset = 0., pt[2], travel = 0.02; if(order > 1) { for(i = 0; i < nedges; ++i) { @@ -202,7 +202,7 @@ append_domain_coords_face(int dom, int order, double *ptr, const int *global_index, const int *edges, const int *tri, int ntri) { int i,j,v0,v1; - double pt[2], xoffset, yoffset, travel = 0.01; + double pt[2], xoffset = 0., yoffset = 0., travel = 0.01; if(order == 3) { for(i = 0; i < ntri; ++i) { pt[0] = pt[1] = 0.; diff --git a/examples/meshing/hexes.c b/examples/meshing/hexes.c index 9709e82..54a8d38 100644 --- a/examples/meshing/hexes.c +++ b/examples/meshing/hexes.c @@ -15,6 +15,10 @@ software, applications, hardware, advanced system engineering and early testbed platforms, in support of the nation's exascale computing imperative. */ + +// We use drand48() - this is one way to get it: +#define _XOPEN_SOURCE + #include #include #include @@ -132,12 +136,12 @@ for orders 3+ look right on the faces. */ int * compute_faces(const int *dims, int *nfaces) { - int i,j,k,A,B,C,D, E1,E2,E3,F1,F2,F3, *faces, *f; + int i,j,k,A,B,C,D, E1,E2/*,E3*/,F1,F2,F3, *faces, *f; /* number of edges. */ E1 = (dims[0]-1) * (dims[1]) * (dims[2]); E2 = (dims[0]) * (dims[1]-1) * (dims[2]); - E3 = (dims[0]) * (dims[1]) * (dims[2]-1); + // E3 = (dims[0]) * (dims[1]) * (dims[2]-1); F1 = (dims[0]-1)*(dims[1]-1)*dims[2]; /* back/front */ F2 = (dims[0]-1)*(dims[1]) *(dims[2]-1); /* bottom/top */ diff --git a/examples/meshing/quads.c b/examples/meshing/quads.c index 3ee8ab3..58167a1 100644 --- a/examples/meshing/quads.c +++ b/examples/meshing/quads.c @@ -100,7 +100,7 @@ double * append_coords_edge(int order, double *ptr, const double *coords, const int *edges, int nedges, double travel) { int i, j, v0, v1; - double t, xoffset, yoffset, pt[2]; + double t, xoffset = 0., yoffset = 0., pt[2]; if(order > 1) { for(i = 0; i < nedges; ++i) { @@ -141,7 +141,7 @@ double * append_coords_face(int order, double *ptr, const double *coords, const int *edges, const int *quads, int nquads, double travel) { int i,ii,jj,e0,e2,v0,v1,v2,v3; - double pt[2], xoffset, yoffset; + double pt[2], xoffset = 0., yoffset = 0.; float r,s; if(order >= 2) { for(i = 0; i < nquads; ++i) { diff --git a/src/fmsio.c b/src/fmsio.c index 5bcddbc..930697b 100644 --- a/src/fmsio.c +++ b/src/fmsio.c @@ -110,6 +110,7 @@ static inline int FmsIOCopyString(const char *str, char **str_copy_p) { } // Make sure dst is large enough to hold N + 1 chars. N should be strlen(str) to convert an entire string. +#ifdef FMS_HAVE_CONDUIT static inline int FmsIOStringToLower(const char *src, const size_t N, char *dst) { if(!dst) return 1; if(!src) dst[0] = '\0'; @@ -118,6 +119,7 @@ static inline int FmsIOStringToLower(const char *src, const size_t N, char *dst) dst[N] = '\0'; return 0; } +#endif /** Data structures. @@ -2005,7 +2007,7 @@ FmsIOWriteComponent(FmsIOContext *ctx, FmsIOFunctions *io, const char *key, sprintf(temp, "%d", (int)i); kpart = join_keys(kparts, temp); FmsDomain dom; - if(FmsComponentGetPart(comp, i, 0, &dom, NULL, NULL, NULL, NULL)) + if(FmsComponentGetPart(comp, i, FMS_VERTEX, &dom, NULL, NULL, NULL, NULL)) E_RETURN(6); if(dom) { @@ -2190,7 +2192,7 @@ FmsIOReadFmsComponent(FmsIOContext *ctx, FmsIOFunctions *io, const char *key, char *k = join_keys(kpart, FmsEntityTypeNames[et]); if((*io->has_path)(ctx, k)) { // Now we have to populate the entitiy info - comp_info->parts[i].entities[et].ent_type = et; + comp_info->parts[i].entities[et].ent_type = (FmsEntityType)et; // Get nents { @@ -3239,8 +3241,9 @@ FmsIOBuildFmsDataCollection(FmsIODataCollectionInfo *dc_info, break; } } - FmsFieldDescriptorSetFixedOrder(fd, fd_info->fixed_order[0], - fd_info->fixed_order[1], fd_info->fixed_order[2]); + FmsFieldDescriptorSetFixedOrder(fd, (FmsFieldType)fd_info->fixed_order[0], + (FmsBasisType)fd_info->fixed_order[1], + fd_info->fixed_order[2]); // TODO: Check ndofs & type against what was serialized? } } @@ -3572,6 +3575,7 @@ FmsIORead(const char *filename, const char *protocol, FmsDataCollection *dc) { E_RETURN(5); } #else + (void)protocol; FmsIOContextInitialize(&ctx); FmsIOFunctionsInitialize(&io); #endif diff --git a/tests/t_fms.cpp b/tests/t_fms.cpp index fb47bc7..97d4dcb 100644 --- a/tests/t_fms.cpp +++ b/tests/t_fms.cpp @@ -12,7 +12,7 @@ TEST(Fms, Version) { TEST(Fms, DataCollectionCompare) { FmsDataCollection *dcs0 = NULL; FmsDataCollection *dcs1 = NULL; - FmsInt size0 = 0, size1 = -1; + FmsInt size0 = 0, size1 = 0; ASSERT_EQ(ConstructAllDataCollections(&size0, &dcs0), 0); ASSERT_TRUE(dcs0); ASSERT_TRUE(size0); @@ -256,7 +256,7 @@ TEST(Fms, FieldDescriptorCompare) { FmsDataCollection dc1 = NULL; ASSERT_EQ(Construct2DData0(&dc1), 0); ASSERT_TRUE(dc1); - FmsInt dc_nfds = 0, dc1_nfds = -1; + FmsInt dc_nfds = 0, dc1_nfds = 0; FmsFieldDescriptor *dc_fds = NULL, *dc1_fds = NULL; ASSERT_EQ(FmsDataCollectionGetFieldDescriptors(dc, &dc_fds, &dc_nfds), 0); ASSERT_EQ(FmsDataCollectionGetFieldDescriptors(dc1, &dc1_fds, &dc1_nfds), 0); From 24d8657e66a95715581632d03209a8e7be53e80c Mon Sep 17 00:00:00 2001 From: Veselin Dobrev Date: Thu, 12 Aug 2021 16:53:02 -0700 Subject: [PATCH 03/17] Add "Build and test" GitHub action. --- .github/workflows/build-and-test.yaml | 66 +++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 .github/workflows/build-and-test.yaml diff --git a/.github/workflows/build-and-test.yaml b/.github/workflows/build-and-test.yaml new file mode 100644 index 0000000..03c7f04 --- /dev/null +++ b/.github/workflows/build-and-test.yaml @@ -0,0 +1,66 @@ +# Copyright (c) 2021, Lawrence Livermore National Security, LLC. Produced at +# the Lawrence Livermore National Laboratory. LLNL-CODE-734707. All Rights +# reserved. See files LICENSE and NOTICE for details. +# +# This file is part of CEED, a collection of benchmarks, miniapps, software +# libraries and APIs for efficient high-order finite element and spectral +# element discretizations for exascale applications. For more information and +# source code availability see http://github.com/ceed. +# +# The CEED research is supported by the Exascale Computing Project (17-SC-20-SC) +# a collaborative effort of two U.S. Department of Energy organizations (Office +# of Science and the National Nuclear Security Administration) responsible for +# the planning and preparation of a capable exascale ecosystem, including +# software, applications, hardware, advanced system engineering and early +# testbed platforms, in support of the nation's exascale computing imperative. + +name: Build and test + +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + +env: + BUILD_C_FLAGS: -Wall -Wextra -pedantic -Werror + BUILD_CXX_FLAGS: -Wall -Wextra -pedantic -Werror + +jobs: + build-and-test: + runs-on: ${{matrix.os}} + strategy: + matrix: + os: [ubuntu-latest, macos-latest] + build-type: [Debug, Release] + name: ${{matrix.os}}-${{matrix.build-type}} + + steps: + - uses: actions/checkout@v2 + + - name: Configure + run: | + cmake \ + -B ${{github.workspace}}/build \ + -DCMAKE_BUILD_TYPE=${{matrix.build-type}} \ + -DFMS_ENABLE_TESTS=ON \ + -DCMAKE_C_FLAGS="$BUILD_C_FLAGS" \ + -DCMAKE_CXX_FLAGS="$BUILD_CXX_FLAGS" \ + -DCMAKE_INSTALL_PREFIX=${{github.workspace}}/install + + - name: Build + run: | + cmake \ + --build ${{github.workspace}}/build \ + --config ${{matrix.build-type}} + + - name: Install + run: | + cmake \ + --build ${{github.workspace}}/build \ + --config ${{matrix.build-type}} \ + --target install + + - name: Test + working-directory: ${{github.workspace}}/build + run: ctest -C ${{matrix.build-type}} --output-on-failure From bb23b96c3d48e9118b407553908a6447ba755fa4 Mon Sep 17 00:00:00 2001 From: Veselin Dobrev Date: Thu, 12 Aug 2021 17:09:26 -0700 Subject: [PATCH 04/17] In GitHub action, recursively checkout submodules. --- .github/workflows/build-and-test.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/build-and-test.yaml b/.github/workflows/build-and-test.yaml index 03c7f04..8504f41 100644 --- a/.github/workflows/build-and-test.yaml +++ b/.github/workflows/build-and-test.yaml @@ -37,6 +37,8 @@ jobs: steps: - uses: actions/checkout@v2 + with: + submodules: recursive - name: Configure run: | From ceb93a60e430b0335f176e29ac6dea2c4b2ba83c Mon Sep 17 00:00:00 2001 From: Veselin Dobrev Date: Thu, 12 Aug 2021 18:09:24 -0700 Subject: [PATCH 05/17] Tweak the definition of FMS_PRETTY_FUNCTION to avoid warnings with gcc 9.3.0 and -Wpedantic. --- src/fms.c | 8 +++++++- src/fmsio.c | 8 +++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/fms.c b/src/fms.c index 7023fbc..7ccf503 100644 --- a/src/fms.c +++ b/src/fms.c @@ -225,8 +225,14 @@ static void FmsErrorDebug(int err_code, const char *func, const char *file, "Aborting ...\n\n", err_code, func, file, line); abort(); } -#ifndef _MSC_VER +// __PRETTY_FUNCTION__ is the same as the standard __func__ for most compilers, +// with the exception of clang. GCC 9.3.0 with -Wpedantic gives a warning about +// __PRETTY_FUNCTION__ not being standard, so we use __PRETTY_FUNCTION__ only +// with clang. +#if defined(__clang__) #define FMS_PRETTY_FUNCTION __PRETTY_FUNCTION__ +#elif !defined(_MSC_VER) +#define FMS_PRETTY_FUNCTION __func__ #else // for Visual Studio C++ #define FMS_PRETTY_FUNCTION __FUNCSIG__ #endif diff --git a/src/fmsio.c b/src/fmsio.c index 930697b..f8ed8d9 100644 --- a/src/fmsio.c +++ b/src/fmsio.c @@ -87,8 +87,14 @@ static void FmsErrorDebug(int err_code, const char *func, const char *file, /*"Aborting ...\n\n"*/, err_code, func, file, line); // abort(); } -#ifndef _MSC_VER +// __PRETTY_FUNCTION__ is the same as the standard __func__ for most compilers, +// with the exception of clang. GCC 9.3.0 with -Wpedantic gives a warning about +// __PRETTY_FUNCTION__ not being standard, so we use __PRETTY_FUNCTION__ only +// with clang. +#if defined(__clang__) #define FMS_PRETTY_FUNCTION __PRETTY_FUNCTION__ +#elif !defined(_MSC_VER) +#define FMS_PRETTY_FUNCTION __func__ #else // for Visual Studio C++ #define FMS_PRETTY_FUNCTION __FUNCSIG__ #endif From 80b5932a421b55873e4551595b2e3b63532ad32d Mon Sep 17 00:00:00 2001 From: Veselin Dobrev Date: Thu, 12 Aug 2021 18:21:21 -0700 Subject: [PATCH 06/17] Enable verbose build mode in GitHub actions. --- .github/workflows/build-and-test.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build-and-test.yaml b/.github/workflows/build-and-test.yaml index 8504f41..652140b 100644 --- a/.github/workflows/build-and-test.yaml +++ b/.github/workflows/build-and-test.yaml @@ -48,7 +48,8 @@ jobs: -DFMS_ENABLE_TESTS=ON \ -DCMAKE_C_FLAGS="$BUILD_C_FLAGS" \ -DCMAKE_CXX_FLAGS="$BUILD_CXX_FLAGS" \ - -DCMAKE_INSTALL_PREFIX=${{github.workspace}}/install + -DCMAKE_INSTALL_PREFIX=${{github.workspace}}/install \ + -DCMAKE_VERBOSE_MAKEFILE=ON - name: Build run: | From f836fa00350ce53091fa570d16067ccade17eac9 Mon Sep 17 00:00:00 2001 From: Veselin Dobrev Date: Fri, 13 Aug 2021 16:16:49 -0700 Subject: [PATCH 07/17] Add script 'apply-style.sh' to format C/C++ files using astyle v3.1. Add GitHub workflow to check C/C++ style. --- .github/workflows/check-style.yaml | 37 +++++++++++++++ apply-style.sh | 72 ++++++++++++++++++++++++++++++ 2 files changed, 109 insertions(+) create mode 100644 .github/workflows/check-style.yaml create mode 100755 apply-style.sh diff --git a/.github/workflows/check-style.yaml b/.github/workflows/check-style.yaml new file mode 100644 index 0000000..4fa3ee6 --- /dev/null +++ b/.github/workflows/check-style.yaml @@ -0,0 +1,37 @@ +# Copyright (c) 2021, Lawrence Livermore National Security, LLC. Produced at +# the Lawrence Livermore National Laboratory. LLNL-CODE-734707. All Rights +# reserved. See files LICENSE and NOTICE for details. +# +# This file is part of CEED, a collection of benchmarks, miniapps, software +# libraries and APIs for efficient high-order finite element and spectral +# element discretizations for exascale applications. For more information and +# source code availability see http://github.com/ceed. +# +# The CEED research is supported by the Exascale Computing Project (17-SC-20-SC) +# a collaborative effort of two U.S. Department of Energy organizations (Office +# of Science and the National Nuclear Security Administration) responsible for +# the planning and preparation of a capable exascale ecosystem, including +# software, applications, hardware, advanced system engineering and early +# testbed platforms, in support of the nation's exascale computing imperative. + +name: Check style + +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + +jobs: + check-style: + runs-on: ubuntu-20.04 + + steps: + - name: Checkout + - uses: actions/checkout@v2 + + - name: Get astyle + run: sudo apt-get install astyle + + - name: Check style + run: ./apply-style.sh diff --git a/apply-style.sh b/apply-style.sh new file mode 100755 index 0000000..e3fae07 --- /dev/null +++ b/apply-style.sh @@ -0,0 +1,72 @@ +#!/bin/bash + +# Copyright (c) 2021, Lawrence Livermore National Security, LLC. Produced at +# the Lawrence Livermore National Laboratory. LLNL-CODE-734707. All Rights +# reserved. See files LICENSE and NOTICE for details. +# +# This file is part of CEED, a collection of benchmarks, miniapps, software +# libraries and APIs for efficient high-order finite element and spectral +# element discretizations for exascale applications. For more information and +# source code availability see http://github.com/ceed. +# +# The CEED research is supported by the Exascale Computing Project (17-SC-20-SC) +# a collaborative effort of two U.S. Department of Energy organizations (Office +# of Science and the National Nuclear Security Administration) responsible for +# the planning and preparation of a capable exascale ecosystem, including +# software, applications, hardware, advanced system engineering and early +# testbed platforms, in support of the nation's exascale computing imperative. + +function main() +{ + cd $(dirname "$0") + fms_astyle_file="fms.astylerc" + if [[ ! -r "${fms_astyle_file}" ]]; then + echo "FMS's astyle format file not found: '${fms_astyle_file}'. Stop." + exit 21 + fi + + find_astyle + + local old_IFS="${IFS}" + IFS=$'\n' + format_files=($(git ls-files "*.[ch]" "*.[ch]pp")) + if [[ "$?" -ne 0 ]]; then + echo "Error getting list of C/C++ source files from Git. Stop." + exit 22 + fi + IFS="${old_IFS}" + + if ${astyle_bin} --options="${fms_astyle_file}" "${format_files[@]}" | \ + grep "Formatted"; then + printf "\nPlease make sure the changes are committed.\n\n" + return 1 + else + printf "All source files are properly formatted.\n" + fi + return 0 +} # end of function 'main' + +function find_astyle() +{ + astyle_req_version="Artistic Style Version 3.1" + astyle_bin_list=("${ASTYLE_BIN:-astyle}" astyle-3.1) + for astyle_bin in "${astyle_bin_list[@]}"; do + if ! command -v "${astyle_bin}" > /dev/null 2>&1; then + continue + fi + astyle_version="$("${astyle_bin}" --version)" + if [[ "${astyle_version}" != "${astyle_req_version}" ]]; then + continue + fi + return 0 + done + echo "Required astyle version not found: '${astyle_req_version}'." + printf "Astyle commands tried:" + printf " '%s'" "${astyle_bin_list[@]}" + printf ".\n" + exit 23 +} # end of function 'find_astyle' + + +# Invoke the 'main' function +main "$@" From 07e49fcd9a67fdf6df8b40d50105e6ef2a9942cd Mon Sep 17 00:00:00 2001 From: Veselin Dobrev Date: Fri, 13 Aug 2021 16:23:14 -0700 Subject: [PATCH 08/17] Fix bug in check-style.yaml --- .github/workflows/check-style.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/check-style.yaml b/.github/workflows/check-style.yaml index 4fa3ee6..9cf1f92 100644 --- a/.github/workflows/check-style.yaml +++ b/.github/workflows/check-style.yaml @@ -28,7 +28,7 @@ jobs: steps: - name: Checkout - - uses: actions/checkout@v2 + uses: actions/checkout@v2 - name: Get astyle run: sudo apt-get install astyle From 33646651e689085ed0dbddba0705b31122e3721f Mon Sep 17 00:00:00 2001 From: Veselin Dobrev Date: Fri, 13 Aug 2021 16:26:46 -0700 Subject: [PATCH 09/17] Apply style --- src/fms.c | 401 ++++++++++++------------ src/fmsio.c | 6 +- src/fmsio.h | 6 +- tests/fmstesting.cpp | 588 ++++++++++++++++++----------------- tests/t_fms.cpp | 725 ++++++++++++++++++++++--------------------- tests/t_fmsio.cpp | 218 ++++++------- 6 files changed, 980 insertions(+), 964 deletions(-) diff --git a/src/fms.c b/src/fms.c index 7ccf503..c2d8a56 100644 --- a/src/fms.c +++ b/src/fms.c @@ -2975,63 +2975,63 @@ static inline double FmsAbs(const double x) { } while(0) static inline FmsInt CompareScalarData(FmsScalarType stype, FmsInt size, - const void *lhs, const void *rhs) { + const void *lhs, const void *rhs) { if(lhs == rhs) return 0; if(!lhs) return 1; if(!rhs) return 1; FmsInt isDifferent = 0; switch(stype) { - case FMS_FLOAT: - COMPARE_SCALAR_DATA(float, lhs, rhs, size, isDifferent); - break; - case FMS_DOUBLE: - COMPARE_SCALAR_DATA(double, lhs, rhs, size, isDifferent); - break; - case FMS_COMPLEX_FLOAT: - COMPARE_SCALAR_DATA(float, lhs, rhs, size*2, isDifferent); - break; - case FMS_COMPLEX_DOUBLE: - COMPARE_SCALAR_DATA(double, lhs, rhs, size*2, isDifferent); - break; - default: - return 2; + case FMS_FLOAT: + COMPARE_SCALAR_DATA(float, lhs, rhs, size, isDifferent); + break; + case FMS_DOUBLE: + COMPARE_SCALAR_DATA(double, lhs, rhs, size, isDifferent); + break; + case FMS_COMPLEX_FLOAT: + COMPARE_SCALAR_DATA(float, lhs, rhs, size*2, isDifferent); + break; + case FMS_COMPLEX_DOUBLE: + COMPARE_SCALAR_DATA(double, lhs, rhs, size*2, isDifferent); + break; + default: + return 2; } return isDifferent; } static inline FmsInt CompareIntData(FmsIntType itype, FmsInt size, - const void *lhs, const void *rhs) { + const void *lhs, const void *rhs) { if(lhs == rhs) return 0; if(!lhs) return 1; if(!rhs) return 1; FmsInt isDifferent = 0; switch(itype) { - case FMS_INT8: - COMPARE_INT_DATA(int8_t, lhs, rhs, size, isDifferent); - break; - case FMS_INT16: - COMPARE_INT_DATA(int16_t, lhs, rhs, size, isDifferent); - break; - case FMS_INT32: - COMPARE_INT_DATA(int32_t, lhs, rhs, size, isDifferent); - break; - case FMS_INT64: - COMPARE_INT_DATA(int64_t, lhs, rhs, size, isDifferent); - break; - case FMS_UINT8: - COMPARE_INT_DATA(uint8_t, lhs, rhs, size, isDifferent); - break; - case FMS_UINT16: - COMPARE_INT_DATA(uint16_t, lhs, rhs, size, isDifferent); - break; - case FMS_UINT32: - COMPARE_INT_DATA(uint32_t, lhs, rhs, size, isDifferent); - break; - case FMS_UINT64: - COMPARE_INT_DATA(uint64_t, lhs, rhs, size, isDifferent); - break; - default: - return 2; + case FMS_INT8: + COMPARE_INT_DATA(int8_t, lhs, rhs, size, isDifferent); + break; + case FMS_INT16: + COMPARE_INT_DATA(int16_t, lhs, rhs, size, isDifferent); + break; + case FMS_INT32: + COMPARE_INT_DATA(int32_t, lhs, rhs, size, isDifferent); + break; + case FMS_INT64: + COMPARE_INT_DATA(int64_t, lhs, rhs, size, isDifferent); + break; + case FMS_UINT8: + COMPARE_INT_DATA(uint8_t, lhs, rhs, size, isDifferent); + break; + case FMS_UINT16: + COMPARE_INT_DATA(uint16_t, lhs, rhs, size, isDifferent); + break; + case FMS_UINT32: + COMPARE_INT_DATA(uint32_t, lhs, rhs, size, isDifferent); + break; + case FMS_UINT64: + COMPARE_INT_DATA(uint64_t, lhs, rhs, size, isDifferent); + break; + default: + return 2; } return isDifferent; } @@ -3065,8 +3065,7 @@ int FmsDataCollectionCompare(FmsDataCollection lhs, FmsDataCollection rhs) { FmsDataCollectionGetFieldDescriptors(rhs, &rhs_fds, &rhs_nfds); if(lhs_nfds != rhs_nfds) { diff += 100; - } - else { + } else { for(FmsInt i = 0; i < lhs_nfds; i++) { if(FmsFieldDescriptorCompare(lhs_fds[i], rhs_fds[i])) { diff += 100; @@ -3081,8 +3080,7 @@ int FmsDataCollectionCompare(FmsDataCollection lhs, FmsDataCollection rhs) { FmsDataCollectionGetFields(rhs, &rhs_fields, &rhs_nfields); if(lhs_nfds != rhs_nfds) { diff += 1000; - } - else { + } else { for(FmsInt i = 0; i < lhs_nfds; i++) { if(FmsFieldCompare(lhs_fields[i], rhs_fields[i])) { diff += 1000; @@ -3113,8 +3111,7 @@ int FmsMeshCompare(FmsMesh lhs, FmsMesh rhs) { // Compare domain names & domains if(lhs_ndnames != rhs_ndnames) { diff += 1; - } - else { + } else { for(FmsInt i = 0; i < lhs_ndnames; i++) { const char *lhs_dname = NULL, *rhs_dname = NULL; FmsInt lhs_ndomains = 0, rhs_ndomains = -1; @@ -3143,14 +3140,13 @@ int FmsMeshCompare(FmsMesh lhs, FmsMesh rhs) { FmsMeshGetNumComponents(rhs, &rhs_ncomponents); if(lhs_ncomponents != rhs_ncomponents) { diff += 1000; - } - else { + } else { for(FmsInt i = 0; i < lhs_ncomponents; i++) { FmsComponent lhs_component = NULL, rhs_component = NULL; FmsMeshGetComponent(lhs, i, &lhs_component); FmsMeshGetComponent(rhs, i, &rhs_component); if(FmsComponentCompare(lhs_component, rhs_component)) { - diff += 1000; + diff += 1000; } } } @@ -3161,8 +3157,7 @@ int FmsMeshCompare(FmsMesh lhs, FmsMesh rhs) { FmsMeshGetNumTags(rhs, &rhs_ntags); if(lhs_ntags != rhs_ntags) { diff += 10000; - } - else { + } else { for(FmsInt i = 0; i < lhs_ntags; i++) { FmsTag lhs_tag = NULL, rhs_tag = NULL; FmsMeshGetTag(lhs, i, &lhs_tag); @@ -3185,36 +3180,34 @@ int FmsFieldDescriptorCompare(FmsFieldDescriptor lhs, FmsFieldDescriptor rhs) { if(!lhs) return -1; if(!rhs) return -2; int diff = 0; - + if(strcmp(lhs->name, rhs->name)) { diff += 1; } if(lhs->descr_type != rhs->descr_type) { diff += 10; - } - else { + } else { if(lhs->descr_type == FMS_FIXED_ORDER) { // Make sure both of their fixed orders have been set if(lhs->descriptor.fixed_order && rhs->descriptor.fixed_order) { - if(lhs->descriptor.fixed_order->basis_type != rhs->descriptor.fixed_order->basis_type) { + if(lhs->descriptor.fixed_order->basis_type != + rhs->descriptor.fixed_order->basis_type) { diff += 100; } - if(lhs->descriptor.fixed_order->field_type != rhs->descriptor.fixed_order->field_type) { + if(lhs->descriptor.fixed_order->field_type != + rhs->descriptor.fixed_order->field_type) { diff += 1000; } if(lhs->descriptor.fixed_order->order != rhs->descriptor.fixed_order->order) { diff += 10000; } - } - else if(!lhs->descriptor.fixed_order) { + } else if(!lhs->descriptor.fixed_order) { diff += 20; - } - else if(!rhs->descriptor.fixed_order) { + } else if(!rhs->descriptor.fixed_order) { diff += 30; } - } - else { + } else { // TODO: Update this when it's possible to set a non fixed order. } } @@ -3231,13 +3224,11 @@ int FmsFieldDescriptorCompare(FmsFieldDescriptor lhs, FmsFieldDescriptor rhs) { if(strcmp(lhs->component->name, rhs->component->name)) { diff += 1000000; } - } - else if(!lhs->component->name) + } else if(!lhs->component->name) diff += 2000000; else if(!rhs->component->name) diff += 3000000; - } - else if(!lhs->component) + } else if(!lhs->component) diff += 4000000; else if(!rhs->component) diff += 5000000; @@ -3296,8 +3287,7 @@ int FmsMetaDataCompare(FmsMetaData lhs, FmsMetaData rhs) { if(lhs->name && rhs->name) { if(strcmp(lhs->name, rhs->name)) diff += 1; - } - else if(!lhs->name) + } else if(!lhs->name) diff += 2; else if(!rhs->name) diff += 3; @@ -3310,132 +3300,132 @@ int FmsMetaDataCompare(FmsMetaData lhs, FmsMetaData rhs) { // Only compare the data is everything has been the same so far if(diff == 0) { switch(lhs->md_type) { - case FMS_INTEGER: { - if(lhs->sub_type.int_type != rhs->sub_type.int_type) - diff += 100; + case FMS_INTEGER: { + if(lhs->sub_type.int_type != rhs->sub_type.int_type) + diff += 100; - if(lhs->num_entries != rhs->num_entries) - diff += 1000; + if(lhs->num_entries != rhs->num_entries) + diff += 1000; - if(diff == 0) { - if(CompareIntData(lhs->sub_type.int_type, lhs->num_entries, lhs->data, rhs->data)) - diff += 100000; - } - break; + if(diff == 0) { + if(CompareIntData(lhs->sub_type.int_type, lhs->num_entries, lhs->data, + rhs->data)) + diff += 100000; } - case FMS_SCALAR: { - if(lhs->sub_type.scalar_type != rhs->sub_type.scalar_type) - diff += 100; + break; + } + case FMS_SCALAR: { + if(lhs->sub_type.scalar_type != rhs->sub_type.scalar_type) + diff += 100; - if(lhs->num_entries != rhs->num_entries) - diff += 1000; + if(lhs->num_entries != rhs->num_entries) + diff += 1000; - if(diff == 0) { - if(CompareScalarData(lhs->sub_type.scalar_type, lhs->num_entries, lhs->data, rhs->data)) - diff += 100000; - } - break; - } - case FMS_STRING: { - if(lhs->data && rhs->data) { - if(strcmp(lhs->data, rhs->data)) - diff += 100000; - } - else if(!lhs->name) - diff += 100; - else if(!rhs->name) - diff += 200; - break; + if(diff == 0) { + if(CompareScalarData(lhs->sub_type.scalar_type, lhs->num_entries, lhs->data, + rhs->data)) + diff += 100000; } - case FMS_META_DATA: { - if(lhs->num_entries != rhs->num_entries) - diff += 100; + break; + } + case FMS_STRING: { + if(lhs->data && rhs->data) { + if(strcmp(lhs->data, rhs->data)) + diff += 100000; + } else if(!lhs->name) + diff += 100; + else if(!rhs->name) + diff += 200; + break; + } + case FMS_META_DATA: { + if(lhs->num_entries != rhs->num_entries) + diff += 100; - if(diff == 0) { - FmsMetaData *ldata = (FmsMetaData*)lhs->data; - FmsMetaData *rdata = (FmsMetaData*)rhs->data; - const FmsInt NE = lhs->num_entries; - for(FmsInt i = 0; i < NE; i++) { - diff += FmsMetaDataCompare(ldata[i], rdata[i]); - if(diff) - break; - } + if(diff == 0) { + FmsMetaData *ldata = (FmsMetaData*)lhs->data; + FmsMetaData *rdata = (FmsMetaData*)rhs->data; + const FmsInt NE = lhs->num_entries; + for(FmsInt i = 0; i < NE; i++) { + diff += FmsMetaDataCompare(ldata[i], rdata[i]); + if(diff) + break; } - break; - } - default: { - diff += 1000000; - break; } + break; + } + default: { + diff += 1000000; + break; + } } } return diff; } int FmsDomainCompare(FmsDomain lhs, FmsDomain rhs) { - if(lhs == rhs) return 0; - if(!lhs) return -1; - if(!rhs) return -2; - int diff = 0; - - // Compare names - if(lhs->name && rhs->name) { - if(strcmp(lhs->name, rhs->name)) - diff += 1; - } - else if(!lhs->name) - diff += 2; - else if(!rhs->name) - diff += 3; - - // Compare ids - if(lhs->id != rhs->id) - diff += 10; - - // Compare dimension - if(lhs->dim != rhs->dim) - diff += 100; + if(lhs == rhs) return 0; + if(!lhs) return -1; + if(!rhs) return -2; + int diff = 0; - // Compare num ents - for(int i = 0; i < FMS_NUM_ENTITY_TYPES; i++) { - if(lhs->num_entities[i] != rhs->num_entities[i]) { - diff += 1000; - break; - } + // Compare names + if(lhs->name && rhs->name) { + if(strcmp(lhs->name, rhs->name)) + diff += 1; + } else if(!lhs->name) + diff += 2; + else if(!rhs->name) + diff += 3; + + // Compare ids + if(lhs->id != rhs->id) + diff += 10; + + // Compare dimension + if(lhs->dim != rhs->dim) + diff += 100; + + // Compare num ents + for(int i = 0; i < FMS_NUM_ENTITY_TYPES; i++) { + if(lhs->num_entities[i] != rhs->num_entities[i]) { + diff += 1000; + break; } + } - // Make sure everything is stored using the same types - for(int i = 0; i < FMS_NUM_ENTITY_TYPES; i++) { - if(lhs->side_ids_type[i] != rhs->side_ids_type[i]) { - diff += 10000; - break; - } + // Make sure everything is stored using the same types + for(int i = 0; i < FMS_NUM_ENTITY_TYPES; i++) { + if(lhs->side_ids_type[i] != rhs->side_ids_type[i]) { + diff += 10000; + break; } + } - // Compare the entities - if(diff == 0) { - for(int i = 0; i < FMS_NUM_ENTITY_TYPES; i++) { - if(CompareIntData(lhs->side_ids_type[i], - lhs->num_entities[i]*FmsEntityNumSides[i], - lhs->entities[i], rhs->entities[i])) { - diff += 100000; - break; - } + // Compare the entities + if(diff == 0) { + for(int i = 0; i < FMS_NUM_ENTITY_TYPES; i++) { + if(CompareIntData(lhs->side_ids_type[i], + lhs->num_entities[i]*FmsEntityNumSides[i], + lhs->entities[i], rhs->entities[i])) { + diff += 100000; + break; } } + } - if(diff == 0) { - for(int i = 0; i < FMS_NUM_ENTITY_TYPES; i++) { - if(CompareIntData(FMS_ORIENTATION_INT_TYPE, - lhs->num_entities[i]*FmsEntityNumSides[i], - lhs->orientations[i], rhs->orientations[i])) { - diff += 1000000; - break; - } + if(diff == 0) { + for(int i = 0; i < FMS_NUM_ENTITY_TYPES; i++) { + if(CompareIntData(FMS_ORIENTATION_INT_TYPE, + lhs->num_entities[i]*FmsEntityNumSides[i], + lhs->orientations[i], rhs->orientations[i])) { + diff += 1000000; + break; } } + } - return diff; + return diff; } int FmsComponentCompare(FmsComponent lhs, FmsComponent rhs) { @@ -3447,8 +3437,7 @@ int FmsComponentCompare(FmsComponent lhs, FmsComponent rhs) { if(lhs->name && rhs->name) { if(strcmp(lhs->name, rhs->name)) diff += 1; - } - else if(!lhs->name) + } else if(!lhs->name) diff += 2; else if(!rhs->name) diff += 3; @@ -3487,8 +3476,8 @@ int FmsComponentCompare(FmsComponent lhs, FmsComponent rhs) { break; } if(CompareIntData(lpart->entities_ids_type[j], - lpart->num_entities[j], - lpart->entities_ids[j], rpart->entities_ids[j])) { + lpart->num_entities[j], + lpart->entities_ids[j], rpart->entities_ids[j])) { diff += 40000; break; } @@ -3499,7 +3488,8 @@ int FmsComponentCompare(FmsComponent lhs, FmsComponent rhs) { } if(diff == 0) { - if(CompareIntData(FMS_INT_TYPE, lhs->num_relations, lhs->relations, rhs->relations)) + if(CompareIntData(FMS_INT_TYPE, lhs->num_relations, lhs->relations, + rhs->relations)) diff += 50000; } @@ -3508,44 +3498,43 @@ int FmsComponentCompare(FmsComponent lhs, FmsComponent rhs) { if(FmsFieldCompare(lhs->coordinates, rhs->coordinates)) diff += 60000; } - + return diff; } int FmsTagCompare(FmsTag lhs, FmsTag rhs) { - if(lhs == rhs) return 0; - if(!lhs) return -1; - if(!rhs) return -2; - int diff = 0; + if(lhs == rhs) return 0; + if(!lhs) return -1; + if(!rhs) return -2; + int diff = 0; - if(lhs->name && rhs->name) { - if(strcmp(lhs->name, rhs->name)) - diff += 1; - } - else if(!lhs->name) - diff += 2; - else if(!rhs->name) - diff += 3; + if(lhs->name && rhs->name) { + if(strcmp(lhs->name, rhs->name)) + diff += 1; + } else if(!lhs->name) + diff += 2; + else if(!rhs->name) + diff += 3; - if(lhs->tag_type != rhs->tag_type) - diff += 10; + if(lhs->tag_type != rhs->tag_type) + diff += 10; - if(lhs->num_tag_descriptions != rhs->num_tag_descriptions) - diff += 20; + if(lhs->num_tag_descriptions != rhs->num_tag_descriptions) + diff += 20; - if(diff == 0) { - if(FmsComponentCompare(lhs->comp, rhs->comp)) - diff += 100; - } + if(diff == 0) { + if(FmsComponentCompare(lhs->comp, rhs->comp)) + diff += 100; + } - if(diff == 0) { - FmsInt ne = 0; - // FIXME: warning: expression result unused - // if(lhs->comp) - // lhs->comp->num_main_entities; - if(CompareIntData(lhs->tag_type, ne, lhs->tags, rhs->tags)) - diff += 1000; - } - - return diff; + if(diff == 0) { + FmsInt ne = 0; + // FIXME: warning: expression result unused + // if(lhs->comp) + // lhs->comp->num_main_entities; + if(CompareIntData(lhs->tag_type, ne, lhs->tags, rhs->tags)) + diff += 1000; + } + + return diff; } diff --git a/src/fmsio.c b/src/fmsio.c index f8ed8d9..23e8297 100644 --- a/src/fmsio.c +++ b/src/fmsio.c @@ -117,7 +117,8 @@ static inline int FmsIOCopyString(const char *str, char **str_copy_p) { // Make sure dst is large enough to hold N + 1 chars. N should be strlen(str) to convert an entire string. #ifdef FMS_HAVE_CONDUIT -static inline int FmsIOStringToLower(const char *src, const size_t N, char *dst) { +static inline int FmsIOStringToLower(const char *src, const size_t N, + char *dst) { if(!dst) return 1; if(!src) dst[0] = '\0'; for(size_t i = 0; i < N; i++) @@ -3096,8 +3097,7 @@ FmsIOBuildFmsMetaData(FmsMetaData md, FmsIOMetaDataInfo *minfo) { if(child) { for(i = 0; i < minfo->size; ++i) FmsIOBuildFmsMetaData(child[i], &mds[i]); - } - else + } else E_RETURN(5); } break; diff --git a/src/fmsio.h b/src/fmsio.h index 246561d..67ae2c3 100644 --- a/src/fmsio.h +++ b/src/fmsio.h @@ -33,8 +33,8 @@ extern "C" { the protocol can match the supported Conduit protocols, which can include: "json", "yaml", "conduit_bin", "hdf5". @param dc The FMS object that will be written to the file. -@return The function returns 0 on success and non-zero for failure. - If Conduit support is enabled then a return value of 2 indicates the +@return The function returns 0 on success and non-zero for failure. + If Conduit support is enabled then a return value of 2 indicates the given protocol is unsupported by the Conduit runtime. */ int FmsIOWrite(const char *filename, const char *protocol, @@ -52,7 +52,7 @@ int FmsIOWrite(const char *filename, const char *protocol, an educated guess will be made for which protocol to use. @param[out] dc The FMS object that was read from the file. @return The function returns 0 on success and non-zero for failure. - If Conduit support is enabled then a return value of 2 indicates the + If Conduit support is enabled then a return value of 2 indicates the given protocol is unsupported by the Conduit runtime. */ int FmsIORead(const char *filename, const char *protocol, diff --git a/tests/fmstesting.cpp b/tests/fmstesting.cpp index 5d531b7..ed7674f 100644 --- a/tests/fmstesting.cpp +++ b/tests/fmstesting.cpp @@ -7,324 +7,328 @@ #endif int Construct2DData0(FmsDataCollection *out_dc) { - if(!out_dc) return 1; - // Taken from examples/meshing/simple_mesh.c - FmsMesh mesh; - FmsMeshConstruct(&mesh); - FmsMeshSetPartitionId(mesh, 0, 1); - - FmsDomain *domain; - FmsMeshAddDomains(mesh, "domains", 1, &domain); - FmsDomainSetNumVertices(domain[0], 4); - FmsDomainSetNumEntities(domain[0], FMS_EDGE, FMS_INT32, 4); - FmsDomainSetNumEntities(domain[0], FMS_QUADRILATERAL, FMS_INT32, 1); - - const int edge_vert[] = {0,1, 1,2, 2,3, 3,0}; - FmsDomainAddEntities(domain[0], FMS_EDGE, NULL, FMS_INT32, edge_vert, 4); - - const int quad_edge[] = {0, 1, 2, 3}; - FmsDomainAddEntities(domain[0], FMS_QUADRILATERAL, NULL, - FMS_INT32, quad_edge, 1); - - FmsComponent volume; - FmsMeshAddComponent(mesh, "volume", &volume); - FmsComponentAddDomain(volume, domain[0]); - - FmsComponent boundary; - FmsMeshAddComponent(mesh, "boundary", &boundary); - FmsInt part_id; - FmsComponentAddPart(boundary, domain[0], &part_id); - const int bdr_edge[] = {2}; - FmsComponentAddPartEntities(boundary, part_id, FMS_EDGE, FMS_INT32, - FMS_INT32, FMS_INT32, NULL, bdr_edge, NULL, 1); - - FmsComponentAddRelation(volume, 1); // 1 = index of "boundary" component - - // Mesh Tags - FmsTag material; - FmsMeshAddTag(mesh, "material", &material); - FmsTagSetComponent(material, volume); - const int material_tags[] = {1}; - FmsTagSet(material, FMS_INT32, FMS_INT32, material_tags, 1); - - int tvs[1] = {1}; - const char * const descriptions[] = {"Test"}; - FmsTagAddDescriptions(material, FMS_INT32, tvs, descriptions, 1); - - FmsMeshFinalize(mesh); - FmsMeshValidate(mesh); - - FmsDataCollection dc; - FmsDataCollectionCreate(mesh, "data collection", &dc); - - FmsFieldDescriptor coords_fd; - FmsDataCollectionAddFieldDescriptor(dc, "coords descriptor", &coords_fd); - FmsFieldDescriptorSetComponent(coords_fd, volume); - FmsInt coords_order = 1; - FmsFieldDescriptorSetFixedOrder(coords_fd, FMS_CONTINUOUS, - FMS_NODAL_GAUSS_CLOSED, coords_order); - - FmsField coords; - FmsDataCollectionAddField(dc, "coords", &coords); - const double coords_data[] = { + if(!out_dc) return 1; + // Taken from examples/meshing/simple_mesh.c + FmsMesh mesh; + FmsMeshConstruct(&mesh); + FmsMeshSetPartitionId(mesh, 0, 1); + + FmsDomain *domain; + FmsMeshAddDomains(mesh, "domains", 1, &domain); + FmsDomainSetNumVertices(domain[0], 4); + FmsDomainSetNumEntities(domain[0], FMS_EDGE, FMS_INT32, 4); + FmsDomainSetNumEntities(domain[0], FMS_QUADRILATERAL, FMS_INT32, 1); + + const int edge_vert[] = {0,1, 1,2, 2,3, 3,0}; + FmsDomainAddEntities(domain[0], FMS_EDGE, NULL, FMS_INT32, edge_vert, 4); + + const int quad_edge[] = {0, 1, 2, 3}; + FmsDomainAddEntities(domain[0], FMS_QUADRILATERAL, NULL, + FMS_INT32, quad_edge, 1); + + FmsComponent volume; + FmsMeshAddComponent(mesh, "volume", &volume); + FmsComponentAddDomain(volume, domain[0]); + + FmsComponent boundary; + FmsMeshAddComponent(mesh, "boundary", &boundary); + FmsInt part_id; + FmsComponentAddPart(boundary, domain[0], &part_id); + const int bdr_edge[] = {2}; + FmsComponentAddPartEntities(boundary, part_id, FMS_EDGE, FMS_INT32, + FMS_INT32, FMS_INT32, NULL, bdr_edge, NULL, 1); + + FmsComponentAddRelation(volume, 1); // 1 = index of "boundary" component + + // Mesh Tags + FmsTag material; + FmsMeshAddTag(mesh, "material", &material); + FmsTagSetComponent(material, volume); + const int material_tags[] = {1}; + FmsTagSet(material, FMS_INT32, FMS_INT32, material_tags, 1); + + int tvs[1] = {1}; + const char * const descriptions[] = {"Test"}; + FmsTagAddDescriptions(material, FMS_INT32, tvs, descriptions, 1); + + FmsMeshFinalize(mesh); + FmsMeshValidate(mesh); + + FmsDataCollection dc; + FmsDataCollectionCreate(mesh, "data collection", &dc); + + FmsFieldDescriptor coords_fd; + FmsDataCollectionAddFieldDescriptor(dc, "coords descriptor", &coords_fd); + FmsFieldDescriptorSetComponent(coords_fd, volume); + FmsInt coords_order = 1; + FmsFieldDescriptorSetFixedOrder(coords_fd, FMS_CONTINUOUS, + FMS_NODAL_GAUSS_CLOSED, coords_order); + + FmsField coords; + FmsDataCollectionAddField(dc, "coords", &coords); + const double coords_data[] = { 0.,0., 1.,0., 1.,1., 0.,1. - }; - FmsInt sdim = 2; // A 2D mesh embedded in "sdim"-dimensional space. - FmsFieldSet(coords, coords_fd, sdim, FMS_BY_VDIM, FMS_DOUBLE, coords_data); + }; + FmsInt sdim = 2; // A 2D mesh embedded in "sdim"-dimensional space. + FmsFieldSet(coords, coords_fd, sdim, FMS_BY_VDIM, FMS_DOUBLE, coords_data); - FmsComponentSetCoordinates(volume, coords); - *out_dc = dc; + FmsComponentSetCoordinates(volume, coords); + *out_dc = dc; #ifdef PRINT_DATASETS - FmsIOWrite("2DData0.fms", "ascii", dc); + FmsIOWrite("2DData0.fms", "ascii", dc); #endif - return 0; + return 0; } int Construct2DData1(FmsDataCollection *out_dc) { - if(!out_dc) return 1; - // Taken from examples/meshing/simple_mesh.c - FmsMesh mesh; - FmsMeshConstruct(&mesh); - FmsMeshSetPartitionId(mesh, 0, 1); - - FmsDomain *domain = NULL; - FmsMeshAddDomains(mesh, "domains", 1, &domain); - FmsDomainSetNumVertices(domain[0], 3); - FmsDomainSetNumEntities(domain[0], FMS_EDGE, FMS_INT32, 3); - FmsDomainSetNumEntities(domain[0], FMS_TRIANGLE, FMS_INT32, 1); - - const int edge_vert[] = {0,1, 1,2, 2,0}; - FmsDomainAddEntities(domain[0], FMS_EDGE, NULL, FMS_INT32, edge_vert, 3); - - const int tri_edge[] = {0, 1, 2}; - FmsDomainAddEntities(domain[0], FMS_TRIANGLE, NULL, - FMS_INT32, tri_edge, 1); - - FmsComponent volume; - FmsMeshAddComponent(mesh, "volume", &volume); - FmsComponentAddDomain(volume, domain[0]); - - FmsComponent boundary; - FmsMeshAddComponent(mesh, "boundary", &boundary); - FmsInt part_id; - FmsComponentAddPart(boundary, domain[0], &part_id); - const int bdr_edge[] = {2}; - FmsComponentAddPartEntities(boundary, part_id, FMS_EDGE, FMS_INT32, - FMS_INT32, FMS_INT32, NULL, bdr_edge, NULL, 1); - - FmsComponentAddRelation(volume, 1); // 1 = index of "boundary" component - - // Mesh Tags - FmsTag material; - FmsMeshAddTag(mesh, "material", &material); - FmsTagSetComponent(material, volume); - const int material_tags[] = {1}; - FmsTagSet(material, FMS_INT32, FMS_INT32, material_tags, 1); - - int tvs[1] = {1}; - const char * const descriptions[] = {"Test"}; - FmsTagAddDescriptions(material, FMS_INT32, tvs, descriptions, 1); - - FmsMeshFinalize(mesh); - FmsMeshValidate(mesh); - - FmsDataCollection dc; - FmsDataCollectionCreate(mesh, "data collection", &dc); - - FmsFieldDescriptor coords_fd; - FmsDataCollectionAddFieldDescriptor(dc, "coords descriptor", &coords_fd); - FmsFieldDescriptorSetComponent(coords_fd, volume); - FmsInt coords_order = 1; - FmsFieldDescriptorSetFixedOrder(coords_fd, FMS_CONTINUOUS, - FMS_NODAL_GAUSS_CLOSED, coords_order); - - FmsField coords; - FmsDataCollectionAddField(dc, "coords", &coords); - const double coords_data[] = { - 0.,0., - 1.,0., - 0.,1. - }; - FmsInt sdim = 2; // A 2D mesh embedded in "sdim"-dimensional space. - FmsFieldSet(coords, coords_fd, sdim, FMS_BY_VDIM, FMS_DOUBLE, coords_data); + if(!out_dc) return 1; + // Taken from examples/meshing/simple_mesh.c + FmsMesh mesh; + FmsMeshConstruct(&mesh); + FmsMeshSetPartitionId(mesh, 0, 1); + + FmsDomain *domain = NULL; + FmsMeshAddDomains(mesh, "domains", 1, &domain); + FmsDomainSetNumVertices(domain[0], 3); + FmsDomainSetNumEntities(domain[0], FMS_EDGE, FMS_INT32, 3); + FmsDomainSetNumEntities(domain[0], FMS_TRIANGLE, FMS_INT32, 1); + + const int edge_vert[] = {0,1, 1,2, 2,0}; + FmsDomainAddEntities(domain[0], FMS_EDGE, NULL, FMS_INT32, edge_vert, 3); + + const int tri_edge[] = {0, 1, 2}; + FmsDomainAddEntities(domain[0], FMS_TRIANGLE, NULL, + FMS_INT32, tri_edge, 1); + + FmsComponent volume; + FmsMeshAddComponent(mesh, "volume", &volume); + FmsComponentAddDomain(volume, domain[0]); + + FmsComponent boundary; + FmsMeshAddComponent(mesh, "boundary", &boundary); + FmsInt part_id; + FmsComponentAddPart(boundary, domain[0], &part_id); + const int bdr_edge[] = {2}; + FmsComponentAddPartEntities(boundary, part_id, FMS_EDGE, FMS_INT32, + FMS_INT32, FMS_INT32, NULL, bdr_edge, NULL, 1); + + FmsComponentAddRelation(volume, 1); // 1 = index of "boundary" component + + // Mesh Tags + FmsTag material; + FmsMeshAddTag(mesh, "material", &material); + FmsTagSetComponent(material, volume); + const int material_tags[] = {1}; + FmsTagSet(material, FMS_INT32, FMS_INT32, material_tags, 1); + + int tvs[1] = {1}; + const char * const descriptions[] = {"Test"}; + FmsTagAddDescriptions(material, FMS_INT32, tvs, descriptions, 1); + + FmsMeshFinalize(mesh); + FmsMeshValidate(mesh); + + FmsDataCollection dc; + FmsDataCollectionCreate(mesh, "data collection", &dc); + + FmsFieldDescriptor coords_fd; + FmsDataCollectionAddFieldDescriptor(dc, "coords descriptor", &coords_fd); + FmsFieldDescriptorSetComponent(coords_fd, volume); + FmsInt coords_order = 1; + FmsFieldDescriptorSetFixedOrder(coords_fd, FMS_CONTINUOUS, + FMS_NODAL_GAUSS_CLOSED, coords_order); + + FmsField coords; + FmsDataCollectionAddField(dc, "coords", &coords); + const double coords_data[] = { + 0.,0., + 1.,0., + 0.,1. + }; + FmsInt sdim = 2; // A 2D mesh embedded in "sdim"-dimensional space. + FmsFieldSet(coords, coords_fd, sdim, FMS_BY_VDIM, FMS_DOUBLE, coords_data); - FmsComponentSetCoordinates(volume, coords); - *out_dc = dc; + FmsComponentSetCoordinates(volume, coords); + *out_dc = dc; #ifdef PRINT_DATASETS - FmsIOWrite("2DData1.fms", "ascii", dc); + FmsIOWrite("2DData1.fms", "ascii", dc); #endif - return 0; + return 0; } // 1 element hex mesh int Construct3DData0(FmsDataCollection *out_dc) { - if(!out_dc) return 1; - FmsMesh mesh; - FmsMeshConstruct(&mesh); - FmsMeshSetPartitionId(mesh, 0, 1); - FmsDomain *domain; - FmsMeshAddDomains(mesh, "domains", 1, &domain); - FmsDomainSetNumVertices(domain[0], 8); - const int edge_vert[] = {0,1, 2,3, 4,5, 6,7, - 0,2, 1,3, 4,6, 5,7, - 0,4, 1,5, 2,6, 3,7}; - FmsDomainSetNumEntities(domain[0], FMS_EDGE, FMS_INT32, 12); - FmsDomainAddEntities(domain[0], FMS_EDGE, NULL, FMS_INT32, edge_vert, 12); - const int quad_edge[] = {0,5,1,4, 2,7,3,6, 0,9,2,8, 1,10,3,11, 4,8,6,10, 5,11,7,9}; - FmsDomainSetNumEntities(domain[0], FMS_QUADRILATERAL, FMS_INT32, 6); - FmsDomainAddEntities(domain[0], FMS_QUADRILATERAL, NULL, - FMS_INT32, quad_edge, 6); - const int hex_face[] = {0,1,2,3,4,5}; - FmsDomainSetNumEntities(domain[0], FMS_HEXAHEDRON, FMS_INT32, 1); - FmsDomainAddEntities(domain[0], FMS_HEXAHEDRON, NULL, FMS_INT32, hex_face, 1); - FmsComponent volume; - FmsMeshAddComponent(mesh, "volume", &volume); - FmsComponentAddDomain(volume, domain[0]); - FmsComponent boundary; - FmsMeshAddComponent(mesh, "boundary", &boundary); - FmsInt part_id; - FmsComponentAddPart(boundary, domain[0], &part_id); - const int bdr_face[] = {0,2,4}; - FmsComponentAddPartEntities(boundary, part_id, FMS_QUADRILATERAL, FMS_INT32, - FMS_INT32, FMS_INT32, NULL, bdr_face, NULL, 3); - FmsComponentAddRelation(volume, 1); // 1 = index of "boundary" component - // Mesh Tags - FmsTag material; - FmsMeshAddTag(mesh, "material", &material); - FmsTagSetComponent(material, volume); - const int material_tags[] = {1}; - FmsTagSet(material, FMS_INT32, FMS_INT32, material_tags, 1); - int tvs[1] = {1}; - const char * const descriptions[] = {"Test"}; - FmsTagAddDescriptions(material, FMS_INT32, tvs, descriptions, 1); - FmsMeshFinalize(mesh); - FmsMeshValidate(mesh); - FmsDataCollection dc; - FmsDataCollectionCreate(mesh, "data collection", &dc); - FmsFieldDescriptor coords_fd; - FmsDataCollectionAddFieldDescriptor(dc, "coords descriptor", &coords_fd); - FmsFieldDescriptorSetComponent(coords_fd, volume); - FmsInt coords_order = 1; - FmsFieldDescriptorSetFixedOrder(coords_fd, FMS_CONTINUOUS, - FMS_NODAL_GAUSS_CLOSED, coords_order); - FmsField coords; - FmsDataCollectionAddField(dc, "coords", &coords); - const double coords_data[] = { - -1,-1,-1, 1,-1,-1, -1,1,-1, 1,1,-1, - -1,-1,1, 1,-1,1, -1,1,1, 1,1,1}; - FmsInt sdim = 3; - FmsFieldSet(coords, coords_fd, sdim, FMS_BY_VDIM, FMS_DOUBLE, coords_data); - FmsComponentSetCoordinates(volume, coords); - *out_dc = dc; + if(!out_dc) return 1; + FmsMesh mesh; + FmsMeshConstruct(&mesh); + FmsMeshSetPartitionId(mesh, 0, 1); + FmsDomain *domain; + FmsMeshAddDomains(mesh, "domains", 1, &domain); + FmsDomainSetNumVertices(domain[0], 8); + const int edge_vert[] = {0,1, 2,3, 4,5, 6,7, + 0,2, 1,3, 4,6, 5,7, + 0,4, 1,5, 2,6, 3,7 + }; + FmsDomainSetNumEntities(domain[0], FMS_EDGE, FMS_INT32, 12); + FmsDomainAddEntities(domain[0], FMS_EDGE, NULL, FMS_INT32, edge_vert, 12); + const int quad_edge[] = {0,5,1,4, 2,7,3,6, 0,9,2,8, 1,10,3,11, 4,8,6,10, 5,11,7,9}; + FmsDomainSetNumEntities(domain[0], FMS_QUADRILATERAL, FMS_INT32, 6); + FmsDomainAddEntities(domain[0], FMS_QUADRILATERAL, NULL, + FMS_INT32, quad_edge, 6); + const int hex_face[] = {0,1,2,3,4,5}; + FmsDomainSetNumEntities(domain[0], FMS_HEXAHEDRON, FMS_INT32, 1); + FmsDomainAddEntities(domain[0], FMS_HEXAHEDRON, NULL, FMS_INT32, hex_face, 1); + FmsComponent volume; + FmsMeshAddComponent(mesh, "volume", &volume); + FmsComponentAddDomain(volume, domain[0]); + FmsComponent boundary; + FmsMeshAddComponent(mesh, "boundary", &boundary); + FmsInt part_id; + FmsComponentAddPart(boundary, domain[0], &part_id); + const int bdr_face[] = {0,2,4}; + FmsComponentAddPartEntities(boundary, part_id, FMS_QUADRILATERAL, FMS_INT32, + FMS_INT32, FMS_INT32, NULL, bdr_face, NULL, 3); + FmsComponentAddRelation(volume, 1); // 1 = index of "boundary" component + // Mesh Tags + FmsTag material; + FmsMeshAddTag(mesh, "material", &material); + FmsTagSetComponent(material, volume); + const int material_tags[] = {1}; + FmsTagSet(material, FMS_INT32, FMS_INT32, material_tags, 1); + int tvs[1] = {1}; + const char * const descriptions[] = {"Test"}; + FmsTagAddDescriptions(material, FMS_INT32, tvs, descriptions, 1); + FmsMeshFinalize(mesh); + FmsMeshValidate(mesh); + FmsDataCollection dc; + FmsDataCollectionCreate(mesh, "data collection", &dc); + FmsFieldDescriptor coords_fd; + FmsDataCollectionAddFieldDescriptor(dc, "coords descriptor", &coords_fd); + FmsFieldDescriptorSetComponent(coords_fd, volume); + FmsInt coords_order = 1; + FmsFieldDescriptorSetFixedOrder(coords_fd, FMS_CONTINUOUS, + FMS_NODAL_GAUSS_CLOSED, coords_order); + FmsField coords; + FmsDataCollectionAddField(dc, "coords", &coords); + const double coords_data[] = { + -1,-1,-1, 1,-1,-1, -1,1,-1, 1,1,-1, + -1,-1,1, 1,-1,1, -1,1,1, 1,1,1 + }; + FmsInt sdim = 3; + FmsFieldSet(coords, coords_fd, sdim, FMS_BY_VDIM, FMS_DOUBLE, coords_data); + FmsComponentSetCoordinates(volume, coords); + *out_dc = dc; #ifdef PRINT_DATASETS - FmsIOWrite("3DData0.fms", "ascii", dc); + FmsIOWrite("3DData0.fms", "ascii", dc); #endif - return 0; + return 0; } // 1 element tet mesh int Construct3DData1(FmsDataCollection *out_dc) { - if(!out_dc) return 1; - // Taken from examples/meshing/simple_mesh.c - FmsMesh mesh; - FmsMeshConstruct(&mesh); - FmsMeshSetPartitionId(mesh, 0, 1); - FmsDomain *domain; - FmsMeshAddDomains(mesh, "domains", 1, &domain); - FmsDomainSetNumVertices(domain[0], 4); - const int edge_vert[] = {0,1, 0,2, 1,2, 0,3, 1,3, 2,3}; - FmsDomainSetNumEntities(domain[0], FMS_EDGE, FMS_INT32, 6); - FmsDomainAddEntities(domain[0], FMS_EDGE, NULL, FMS_INT32, edge_vert, 6); - const int tri_edge[] = {0,2,1, 1,3,5, 0,4,3, 2,5,4}; - FmsDomainSetNumEntities(domain[0], FMS_TRIANGLE, FMS_INT32, 4); - FmsDomainAddEntities(domain[0], FMS_TRIANGLE, NULL, - FMS_INT32, tri_edge, 4); - const int tet_faces[] = {0,1,2,3}; - FmsDomainSetNumEntities(domain[0], FMS_TETRAHEDRON, FMS_INT32, 1); - FmsDomainAddEntities(domain[0], FMS_TETRAHEDRON, NULL, FMS_INT32, tet_faces, 1); - FmsComponent volume; - FmsMeshAddComponent(mesh, "volume", &volume); - FmsComponentAddDomain(volume, domain[0]); - FmsComponent boundary; - FmsMeshAddComponent(mesh, "boundary", &boundary); - FmsInt part_id; - FmsComponentAddPart(boundary, domain[0], &part_id); - const int bdr_face[] = {0,1,2}; - FmsComponentAddPartEntities(boundary, part_id, FMS_TRIANGLE, FMS_INT32, - FMS_INT32, FMS_INT32, NULL, bdr_face, NULL, 3); - FmsComponentAddRelation(volume, 1); // 1 = index of "boundary" component - // Mesh Tags - FmsTag material; - FmsMeshAddTag(mesh, "material", &material); - FmsTagSetComponent(material, volume); - const int material_tags[] = {1}; - FmsTagSet(material, FMS_INT32, FMS_INT32, material_tags, 1); - int tvs[1] = {1}; - const char * const descriptions[] = {"Test"}; - FmsTagAddDescriptions(material, FMS_INT32, tvs, descriptions, 1); - FmsMeshFinalize(mesh); - FmsMeshValidate(mesh); - FmsDataCollection dc; - FmsDataCollectionCreate(mesh, "data collection", &dc); - FmsFieldDescriptor coords_fd; - FmsDataCollectionAddFieldDescriptor(dc, "coords descriptor", &coords_fd); - FmsFieldDescriptorSetComponent(coords_fd, volume); - FmsInt coords_order = 1; - FmsFieldDescriptorSetFixedOrder(coords_fd, FMS_DISCONTINUOUS, - FMS_NODAL_GAUSS_CLOSED, coords_order); - FmsField coords; - FmsDataCollectionAddField(dc, "coords", &coords); - const double coords_data[] = { - -1,-1,-1, 1,-1,-1, -1,1,-1, -1,-1,1}; - FmsInt sdim = 3; - FmsFieldSet(coords, coords_fd, sdim, FMS_BY_VDIM, FMS_DOUBLE, coords_data); - FmsComponentSetCoordinates(volume, coords); - FmsMetaData mdata = NULL; - FmsDataCollectionAttachMetaData(dc, &mdata); - void *cycle = nullptr; - FmsMetaDataSetIntegers(mdata, "cycle", FMS_UINT8, 1, &cycle); - *static_cast(cycle) = 1u; - *out_dc = dc; + if(!out_dc) return 1; + // Taken from examples/meshing/simple_mesh.c + FmsMesh mesh; + FmsMeshConstruct(&mesh); + FmsMeshSetPartitionId(mesh, 0, 1); + FmsDomain *domain; + FmsMeshAddDomains(mesh, "domains", 1, &domain); + FmsDomainSetNumVertices(domain[0], 4); + const int edge_vert[] = {0,1, 0,2, 1,2, 0,3, 1,3, 2,3}; + FmsDomainSetNumEntities(domain[0], FMS_EDGE, FMS_INT32, 6); + FmsDomainAddEntities(domain[0], FMS_EDGE, NULL, FMS_INT32, edge_vert, 6); + const int tri_edge[] = {0,2,1, 1,3,5, 0,4,3, 2,5,4}; + FmsDomainSetNumEntities(domain[0], FMS_TRIANGLE, FMS_INT32, 4); + FmsDomainAddEntities(domain[0], FMS_TRIANGLE, NULL, + FMS_INT32, tri_edge, 4); + const int tet_faces[] = {0,1,2,3}; + FmsDomainSetNumEntities(domain[0], FMS_TETRAHEDRON, FMS_INT32, 1); + FmsDomainAddEntities(domain[0], FMS_TETRAHEDRON, NULL, FMS_INT32, tet_faces, 1); + FmsComponent volume; + FmsMeshAddComponent(mesh, "volume", &volume); + FmsComponentAddDomain(volume, domain[0]); + FmsComponent boundary; + FmsMeshAddComponent(mesh, "boundary", &boundary); + FmsInt part_id; + FmsComponentAddPart(boundary, domain[0], &part_id); + const int bdr_face[] = {0,1,2}; + FmsComponentAddPartEntities(boundary, part_id, FMS_TRIANGLE, FMS_INT32, + FMS_INT32, FMS_INT32, NULL, bdr_face, NULL, 3); + FmsComponentAddRelation(volume, 1); // 1 = index of "boundary" component + // Mesh Tags + FmsTag material; + FmsMeshAddTag(mesh, "material", &material); + FmsTagSetComponent(material, volume); + const int material_tags[] = {1}; + FmsTagSet(material, FMS_INT32, FMS_INT32, material_tags, 1); + int tvs[1] = {1}; + const char * const descriptions[] = {"Test"}; + FmsTagAddDescriptions(material, FMS_INT32, tvs, descriptions, 1); + FmsMeshFinalize(mesh); + FmsMeshValidate(mesh); + FmsDataCollection dc; + FmsDataCollectionCreate(mesh, "data collection", &dc); + FmsFieldDescriptor coords_fd; + FmsDataCollectionAddFieldDescriptor(dc, "coords descriptor", &coords_fd); + FmsFieldDescriptorSetComponent(coords_fd, volume); + FmsInt coords_order = 1; + FmsFieldDescriptorSetFixedOrder(coords_fd, FMS_DISCONTINUOUS, + FMS_NODAL_GAUSS_CLOSED, coords_order); + FmsField coords; + FmsDataCollectionAddField(dc, "coords", &coords); + const double coords_data[] = { + -1,-1,-1, 1,-1,-1, -1,1,-1, -1,-1,1 + }; + FmsInt sdim = 3; + FmsFieldSet(coords, coords_fd, sdim, FMS_BY_VDIM, FMS_DOUBLE, coords_data); + FmsComponentSetCoordinates(volume, coords); + FmsMetaData mdata = NULL; + FmsDataCollectionAttachMetaData(dc, &mdata); + void *cycle = nullptr; + FmsMetaDataSetIntegers(mdata, "cycle", FMS_UINT8, 1, &cycle); + *static_cast(cycle) = 1u; + *out_dc = dc; #ifdef PRINT_DATASETS - FmsIOWrite("3DData1.fms", "ascii", dc); + FmsIOWrite("3DData1.fms", "ascii", dc); #endif - return 0; + return 0; } int ConstructAllDataCollections(FmsInt *size, FmsDataCollection **out_dcs) { - if(!size) return 1; - if(!out_dcs) return 2; - FmsDataCollection *dcs = static_cast(std::calloc(sizeof(FmsDataCollection), 4)); - if(Construct2DData0(&dcs[0])) { - if(dcs[0]) FmsDataCollectionDestroy(&dcs[0]); - std::free(dcs); - return 3; - } - if(Construct2DData1(&dcs[1])) { - FmsDataCollectionDestroy(&dcs[0]); - if(dcs[1]) FmsDataCollectionDestroy(&dcs[1]); - std::free(dcs); - return 4; - } - if(Construct3DData0(&dcs[2])) { - FmsDataCollectionDestroy(&dcs[0]); - FmsDataCollectionDestroy(&dcs[1]); - if(dcs[2]) FmsDataCollectionDestroy(&dcs[2]); - std::free(dcs); - return 5; - } - if(Construct3DData1(&dcs[3])) { - FmsDataCollectionDestroy(&dcs[0]); - FmsDataCollectionDestroy(&dcs[1]); - FmsDataCollectionDestroy(&dcs[2]); - if(dcs[3]) FmsDataCollectionDestroy(&dcs[3]); - std::free(dcs); - return 6; - } - *out_dcs = dcs; - *size = 4; - return 0; + if(!size) return 1; + if(!out_dcs) return 2; + FmsDataCollection *dcs = static_cast(std::calloc(sizeof( + FmsDataCollection), 4)); + if(Construct2DData0(&dcs[0])) { + if(dcs[0]) FmsDataCollectionDestroy(&dcs[0]); + std::free(dcs); + return 3; + } + if(Construct2DData1(&dcs[1])) { + FmsDataCollectionDestroy(&dcs[0]); + if(dcs[1]) FmsDataCollectionDestroy(&dcs[1]); + std::free(dcs); + return 4; + } + if(Construct3DData0(&dcs[2])) { + FmsDataCollectionDestroy(&dcs[0]); + FmsDataCollectionDestroy(&dcs[1]); + if(dcs[2]) FmsDataCollectionDestroy(&dcs[2]); + std::free(dcs); + return 5; + } + if(Construct3DData1(&dcs[3])) { + FmsDataCollectionDestroy(&dcs[0]); + FmsDataCollectionDestroy(&dcs[1]); + FmsDataCollectionDestroy(&dcs[2]); + if(dcs[3]) FmsDataCollectionDestroy(&dcs[3]); + std::free(dcs); + return 6; + } + *out_dcs = dcs; + *size = 4; + return 0; } diff --git a/tests/t_fms.cpp b/tests/t_fms.cpp index 97d4dcb..c4a8379 100644 --- a/tests/t_fms.cpp +++ b/tests/t_fms.cpp @@ -3,384 +3,407 @@ #include TEST(Fms, Version) { - FmsInt v = 0; - ASSERT_EQ(FmsGetInterfaceVersion(&v), 0); - EXPECT_EQ(FMS_INTERFACE_VERSION, v); + FmsInt v = 0; + ASSERT_EQ(FmsGetInterfaceVersion(&v), 0); + EXPECT_EQ(FMS_INTERFACE_VERSION, v); } // Compare interface TEST(Fms, DataCollectionCompare) { - FmsDataCollection *dcs0 = NULL; - FmsDataCollection *dcs1 = NULL; - FmsInt size0 = 0, size1 = 0; - ASSERT_EQ(ConstructAllDataCollections(&size0, &dcs0), 0); - ASSERT_TRUE(dcs0); - ASSERT_TRUE(size0); - ASSERT_EQ(ConstructAllDataCollections(&size1, &dcs1), 0); - ASSERT_TRUE(dcs1); - ASSERT_TRUE(size1); - ASSERT_EQ(size0, size1); - for(FmsInt i = 0; i < size0; i++) { - ASSERT_TRUE(dcs0[i]); - EXPECT_EQ(FmsDataCollectionCompare(dcs0[i], dcs0[i]), 0); - for(FmsInt j = 0; j < size1; j++) { - ASSERT_TRUE(dcs1[j]); - ASSERT_NE(dcs0[i], dcs1[j]); - EXPECT_EQ(FmsDataCollectionCompare(dcs1[j], dcs1[j]), 0); - if(i == j) { - EXPECT_EQ(FmsDataCollectionCompare(dcs0[i], dcs1[j]), 0) - << "DataCollection " << i << " compared not equal to " << j << "."; - } - else { - EXPECT_NE(FmsDataCollectionCompare(dcs0[i], dcs1[j]), 0) - << "DataCollection " << i << " compared equal to " << j << "."; - } - } + FmsDataCollection *dcs0 = NULL; + FmsDataCollection *dcs1 = NULL; + FmsInt size0 = 0, size1 = 0; + ASSERT_EQ(ConstructAllDataCollections(&size0, &dcs0), 0); + ASSERT_TRUE(dcs0); + ASSERT_TRUE(size0); + ASSERT_EQ(ConstructAllDataCollections(&size1, &dcs1), 0); + ASSERT_TRUE(dcs1); + ASSERT_TRUE(size1); + ASSERT_EQ(size0, size1); + for(FmsInt i = 0; i < size0; i++) { + ASSERT_TRUE(dcs0[i]); + EXPECT_EQ(FmsDataCollectionCompare(dcs0[i], dcs0[i]), 0); + for(FmsInt j = 0; j < size1; j++) { + ASSERT_TRUE(dcs1[j]); + ASSERT_NE(dcs0[i], dcs1[j]); + EXPECT_EQ(FmsDataCollectionCompare(dcs1[j], dcs1[j]), 0); + if(i == j) { + EXPECT_EQ(FmsDataCollectionCompare(dcs0[i], dcs1[j]), 0) + << "DataCollection " << i << " compared not equal to " << j << "."; + } else { + EXPECT_NE(FmsDataCollectionCompare(dcs0[i], dcs1[j]), 0) + << "DataCollection " << i << " compared equal to " << j << "."; + } } - for(FmsInt i = 0; i < size0; i++) { - EXPECT_EQ(FmsDataCollectionDestroy(&dcs0[i]), 0); - EXPECT_EQ(FmsDataCollectionDestroy(&dcs1[i]), 0); - } - std::free(dcs0); - std::free(dcs1); + } + for(FmsInt i = 0; i < size0; i++) { + EXPECT_EQ(FmsDataCollectionDestroy(&dcs0[i]), 0); + EXPECT_EQ(FmsDataCollectionDestroy(&dcs1[i]), 0); + } + std::free(dcs0); + std::free(dcs1); } TEST(Fms, MetaDataCompare) { - // First we need to create a mesh and a datacollection to attach the metadata to - FmsMesh mesh = NULL; - ASSERT_EQ(FmsMeshConstruct(&mesh), 0); - ASSERT_TRUE(mesh); - ASSERT_EQ(FmsMeshFinalize(mesh), 0); - FmsDataCollection dc = NULL; - ASSERT_EQ(FmsDataCollectionCreate(mesh, "MetaDataCompareDC", &dc), 0); - ASSERT_TRUE(dc); + // First we need to create a mesh and a datacollection to attach the metadata to + FmsMesh mesh = NULL; + ASSERT_EQ(FmsMeshConstruct(&mesh), 0); + ASSERT_TRUE(mesh); + ASSERT_EQ(FmsMeshFinalize(mesh), 0); + FmsDataCollection dc = NULL; + ASSERT_EQ(FmsDataCollectionCreate(mesh, "MetaDataCompareDC", &dc), 0); + ASSERT_TRUE(dc); - // Now start creating and comparing MetaData - FmsMetaData toplevel_md = NULL; - ASSERT_EQ(FmsDataCollectionAttachMetaData(dc, &toplevel_md), 0); - ASSERT_TRUE(toplevel_md); - FmsMetaData *mds = NULL; - ASSERT_EQ(FmsMetaDataSetMetaData(toplevel_md, "MetaDataCompareDC", 8, &mds), 0); - ASSERT_TRUE(mds); + // Now start creating and comparing MetaData + FmsMetaData toplevel_md = NULL; + ASSERT_EQ(FmsDataCollectionAttachMetaData(dc, &toplevel_md), 0); + ASSERT_TRUE(toplevel_md); + FmsMetaData *mds = NULL; + ASSERT_EQ(FmsMetaDataSetMetaData(toplevel_md, "MetaDataCompareDC", 8, &mds), 0); + ASSERT_TRUE(mds); - // Compare integer mds - FmsInt *data0 = NULL; - ASSERT_EQ(FmsMetaDataSetIntegers(mds[0], "Ints", FMS_INT_TYPE, 3, (void**)&data0), 0); - ASSERT_TRUE(data0); - data0[0] = 3; data0[1] = 5; data0[2] = 1; - EXPECT_EQ(FmsMetaDataCompare(mds[0], mds[0]), 0); - // First make sure that they compare equal when equal - FmsInt *data1 = NULL; - ASSERT_EQ(FmsMetaDataSetIntegers(mds[1], "Ints", FMS_INT_TYPE, 3, (void**)&data1), 0); - data1[0] = 3; data1[1] = 5; data1[2] = 1; - ASSERT_NE(mds[0], mds[1]); - EXPECT_EQ(FmsMetaDataCompare(mds[0], mds[1]), 0); - EXPECT_EQ(FmsMetaDataCompare(mds[1], mds[0]), 0); - // Compare different names - ASSERT_EQ(FmsMetaDataSetIntegers(mds[1], "Ints1", FMS_INT_TYPE, 3, (void**)&data1), 0); - ASSERT_TRUE(data1); - data1[0] = 3; data1[1] = 5; data1[2] = 1; - EXPECT_NE(FmsMetaDataCompare(mds[0], mds[1]), 0); - EXPECT_NE(FmsMetaDataCompare(mds[1], mds[0]), 0); - // Compare different sizes - ASSERT_EQ(FmsMetaDataSetIntegers(mds[1], "Ints", FMS_INT_TYPE, 4, (void**)&data1), 0); - ASSERT_TRUE(data1); - data1[0] = 3; data1[1] = 5; data1[2] = 1; data1[3] = 0; - EXPECT_NE(FmsMetaDataCompare(mds[0], mds[1]), 0); - EXPECT_NE(FmsMetaDataCompare(mds[1], mds[0]), 0); - // Compare different contents - ASSERT_EQ(FmsMetaDataSetIntegers(mds[1], "Ints", FMS_INT_TYPE, 3, (void**)&data1), 0); - data1[0] = 2; data1[1] = 5; data1[2] = 1; - EXPECT_NE(FmsMetaDataCompare(mds[0], mds[1]), 0); - EXPECT_NE(FmsMetaDataCompare(mds[1], mds[0]), 0); - data1[0] = 3; data1[1] = 0; - EXPECT_NE(FmsMetaDataCompare(mds[0], mds[1]), 0); - EXPECT_NE(FmsMetaDataCompare(mds[1], mds[0]), 0); - data1[1] = 5; data1[2] = 0; - EXPECT_NE(FmsMetaDataCompare(mds[0], mds[1]), 0); - EXPECT_NE(FmsMetaDataCompare(mds[1], mds[0]), 0); - data1[2] = 1; - EXPECT_EQ(FmsMetaDataCompare(mds[0], mds[1]), 0); - EXPECT_EQ(FmsMetaDataCompare(mds[1], mds[0]), 0); - data1 = NULL; - // Compare different int types - uint16_t *data11 = NULL; - ASSERT_EQ(FmsMetaDataSetIntegers(mds[1], "Ints", FMS_UINT16, 3, (void**)&data11), 0); - ASSERT_TRUE(data11); - data11[0] = 3; data11[1] = 5; data11[2] = 1; - EXPECT_NE(FmsMetaDataCompare(mds[0], mds[1]), 0); - EXPECT_NE(FmsMetaDataCompare(mds[1], mds[0]), 0); + // Compare integer mds + FmsInt *data0 = NULL; + ASSERT_EQ(FmsMetaDataSetIntegers(mds[0], "Ints", FMS_INT_TYPE, 3, + (void**)&data0), 0); + ASSERT_TRUE(data0); + data0[0] = 3; data0[1] = 5; data0[2] = 1; + EXPECT_EQ(FmsMetaDataCompare(mds[0], mds[0]), 0); + // First make sure that they compare equal when equal + FmsInt *data1 = NULL; + ASSERT_EQ(FmsMetaDataSetIntegers(mds[1], "Ints", FMS_INT_TYPE, 3, + (void**)&data1), 0); + data1[0] = 3; data1[1] = 5; data1[2] = 1; + ASSERT_NE(mds[0], mds[1]); + EXPECT_EQ(FmsMetaDataCompare(mds[0], mds[1]), 0); + EXPECT_EQ(FmsMetaDataCompare(mds[1], mds[0]), 0); + // Compare different names + ASSERT_EQ(FmsMetaDataSetIntegers(mds[1], "Ints1", FMS_INT_TYPE, 3, + (void**)&data1), 0); + ASSERT_TRUE(data1); + data1[0] = 3; data1[1] = 5; data1[2] = 1; + EXPECT_NE(FmsMetaDataCompare(mds[0], mds[1]), 0); + EXPECT_NE(FmsMetaDataCompare(mds[1], mds[0]), 0); + // Compare different sizes + ASSERT_EQ(FmsMetaDataSetIntegers(mds[1], "Ints", FMS_INT_TYPE, 4, + (void**)&data1), 0); + ASSERT_TRUE(data1); + data1[0] = 3; data1[1] = 5; data1[2] = 1; data1[3] = 0; + EXPECT_NE(FmsMetaDataCompare(mds[0], mds[1]), 0); + EXPECT_NE(FmsMetaDataCompare(mds[1], mds[0]), 0); + // Compare different contents + ASSERT_EQ(FmsMetaDataSetIntegers(mds[1], "Ints", FMS_INT_TYPE, 3, + (void**)&data1), 0); + data1[0] = 2; data1[1] = 5; data1[2] = 1; + EXPECT_NE(FmsMetaDataCompare(mds[0], mds[1]), 0); + EXPECT_NE(FmsMetaDataCompare(mds[1], mds[0]), 0); + data1[0] = 3; data1[1] = 0; + EXPECT_NE(FmsMetaDataCompare(mds[0], mds[1]), 0); + EXPECT_NE(FmsMetaDataCompare(mds[1], mds[0]), 0); + data1[1] = 5; data1[2] = 0; + EXPECT_NE(FmsMetaDataCompare(mds[0], mds[1]), 0); + EXPECT_NE(FmsMetaDataCompare(mds[1], mds[0]), 0); + data1[2] = 1; + EXPECT_EQ(FmsMetaDataCompare(mds[0], mds[1]), 0); + EXPECT_EQ(FmsMetaDataCompare(mds[1], mds[0]), 0); + data1 = NULL; + // Compare different int types + uint16_t *data11 = NULL; + ASSERT_EQ(FmsMetaDataSetIntegers(mds[1], "Ints", FMS_UINT16, 3, + (void**)&data11), 0); + ASSERT_TRUE(data11); + data11[0] = 3; data11[1] = 5; data11[2] = 1; + EXPECT_NE(FmsMetaDataCompare(mds[0], mds[1]), 0); + EXPECT_NE(FmsMetaDataCompare(mds[1], mds[0]), 0); - // Compare scalar mds - double *data2 = NULL; - ASSERT_EQ(FmsMetaDataSetScalars(mds[2], "Ints", FMS_DOUBLE, 4, (void**)&data2), 0); - ASSERT_TRUE(data2); - data2[0] = 3.; data2[1] = 5.; data2[2] = 1.; data2[3] = 10.; - EXPECT_EQ(FmsMetaDataCompare(mds[2], mds[2]), 0); - // Compare different metadata type - EXPECT_NE(FmsMetaDataCompare(mds[0], mds[2]), 0); - EXPECT_NE(FmsMetaDataCompare(mds[2], mds[0]), 0); - ASSERT_EQ(FmsMetaDataSetScalars(mds[2], "Scalars", FMS_DOUBLE, 4, (void**)&data2), 0); - ASSERT_TRUE(data2); - data2[0] = 3.; data2[1] = 5.; data2[2] = 1.; data2[3] = 10.; - // Compare different contents - double *data3 = NULL; - ASSERT_EQ(FmsMetaDataSetScalars(mds[3], "Scalars", FMS_DOUBLE, 4, (void**)&data3), 0); - ASSERT_TRUE(data3); - data3[0] = 13.; data3[1] = 5.; data3[2] = 1.; data3[3] = 10.; - EXPECT_NE(FmsMetaDataCompare(mds[3], mds[2]), 0); - EXPECT_NE(FmsMetaDataCompare(mds[2], mds[3]), 0); - data3[0] = 3.; data3[1] = 13.; - EXPECT_NE(FmsMetaDataCompare(mds[3], mds[2]), 0); - EXPECT_NE(FmsMetaDataCompare(mds[2], mds[3]), 0); - data3[1] = 5.; data3[2] = 13.; - EXPECT_NE(FmsMetaDataCompare(mds[3], mds[2]), 0); - EXPECT_NE(FmsMetaDataCompare(mds[2], mds[3]), 0); - data3[2] = 1.; data3[3] = 13.; - EXPECT_NE(FmsMetaDataCompare(mds[3], mds[2]), 0); - EXPECT_NE(FmsMetaDataCompare(mds[2], mds[3]), 0); - data3[3] = 10.; - EXPECT_EQ(FmsMetaDataCompare(mds[3], mds[2]), 0); - EXPECT_EQ(FmsMetaDataCompare(mds[2], mds[3]), 0); - // Compare different sizes - ASSERT_EQ(FmsMetaDataSetScalars(mds[3], "Scalars", FMS_DOUBLE, 3, (void**)&data3), 0); - ASSERT_TRUE(data3); - data3[0] = 3.; data3[1] = 5.; data3[2] = 1.; - EXPECT_NE(FmsMetaDataCompare(mds[3], mds[2]), 0); - EXPECT_NE(FmsMetaDataCompare(mds[2], mds[3]), 0); - data3 = NULL; - // Compare different scalar type - float *data31 = NULL; - ASSERT_EQ(FmsMetaDataSetScalars(mds[3], "Scalars", FMS_FLOAT, 4, (void**)&data31), 0); - ASSERT_TRUE(data31); - data31[0] = 3.f; data31[1] = 5.f; data31[2] = 1.f; data31[3] = 10.f; - EXPECT_NE(FmsMetaDataCompare(mds[3], mds[2]), 0); - EXPECT_NE(FmsMetaDataCompare(mds[2], mds[3]), 0); + // Compare scalar mds + double *data2 = NULL; + ASSERT_EQ(FmsMetaDataSetScalars(mds[2], "Ints", FMS_DOUBLE, 4, (void**)&data2), + 0); + ASSERT_TRUE(data2); + data2[0] = 3.; data2[1] = 5.; data2[2] = 1.; data2[3] = 10.; + EXPECT_EQ(FmsMetaDataCompare(mds[2], mds[2]), 0); + // Compare different metadata type + EXPECT_NE(FmsMetaDataCompare(mds[0], mds[2]), 0); + EXPECT_NE(FmsMetaDataCompare(mds[2], mds[0]), 0); + ASSERT_EQ(FmsMetaDataSetScalars(mds[2], "Scalars", FMS_DOUBLE, 4, + (void**)&data2), 0); + ASSERT_TRUE(data2); + data2[0] = 3.; data2[1] = 5.; data2[2] = 1.; data2[3] = 10.; + // Compare different contents + double *data3 = NULL; + ASSERT_EQ(FmsMetaDataSetScalars(mds[3], "Scalars", FMS_DOUBLE, 4, + (void**)&data3), 0); + ASSERT_TRUE(data3); + data3[0] = 13.; data3[1] = 5.; data3[2] = 1.; data3[3] = 10.; + EXPECT_NE(FmsMetaDataCompare(mds[3], mds[2]), 0); + EXPECT_NE(FmsMetaDataCompare(mds[2], mds[3]), 0); + data3[0] = 3.; data3[1] = 13.; + EXPECT_NE(FmsMetaDataCompare(mds[3], mds[2]), 0); + EXPECT_NE(FmsMetaDataCompare(mds[2], mds[3]), 0); + data3[1] = 5.; data3[2] = 13.; + EXPECT_NE(FmsMetaDataCompare(mds[3], mds[2]), 0); + EXPECT_NE(FmsMetaDataCompare(mds[2], mds[3]), 0); + data3[2] = 1.; data3[3] = 13.; + EXPECT_NE(FmsMetaDataCompare(mds[3], mds[2]), 0); + EXPECT_NE(FmsMetaDataCompare(mds[2], mds[3]), 0); + data3[3] = 10.; + EXPECT_EQ(FmsMetaDataCompare(mds[3], mds[2]), 0); + EXPECT_EQ(FmsMetaDataCompare(mds[2], mds[3]), 0); + // Compare different sizes + ASSERT_EQ(FmsMetaDataSetScalars(mds[3], "Scalars", FMS_DOUBLE, 3, + (void**)&data3), 0); + ASSERT_TRUE(data3); + data3[0] = 3.; data3[1] = 5.; data3[2] = 1.; + EXPECT_NE(FmsMetaDataCompare(mds[3], mds[2]), 0); + EXPECT_NE(FmsMetaDataCompare(mds[2], mds[3]), 0); + data3 = NULL; + // Compare different scalar type + float *data31 = NULL; + ASSERT_EQ(FmsMetaDataSetScalars(mds[3], "Scalars", FMS_FLOAT, 4, + (void**)&data31), 0); + ASSERT_TRUE(data31); + data31[0] = 3.f; data31[1] = 5.f; data31[2] = 1.f; data31[3] = 10.f; + EXPECT_NE(FmsMetaDataCompare(mds[3], mds[2]), 0); + EXPECT_NE(FmsMetaDataCompare(mds[2], mds[3]), 0); - // Compare string mds - const char *data4 = "Hello"; - ASSERT_EQ(FmsMetaDataSetString(mds[4], "String", data4), 0); - EXPECT_EQ(FmsMetaDataCompare(mds[4], mds[4]), 0); - // Compare equal strings - const char *data5 = "Hello"; - ASSERT_EQ(FmsMetaDataSetString(mds[5], "String", data5), 0); - EXPECT_EQ(FmsMetaDataCompare(mds[4], mds[5]), 0); - EXPECT_EQ(FmsMetaDataCompare(mds[5], mds[4]), 0); - // Compare different contents - const char *data51 = "World"; - ASSERT_EQ(FmsMetaDataSetString(mds[5], "String", data51), 0); - EXPECT_NE(FmsMetaDataCompare(mds[4], mds[5]), 0); - EXPECT_NE(FmsMetaDataCompare(mds[5], mds[4]), 0); + // Compare string mds + const char *data4 = "Hello"; + ASSERT_EQ(FmsMetaDataSetString(mds[4], "String", data4), 0); + EXPECT_EQ(FmsMetaDataCompare(mds[4], mds[4]), 0); + // Compare equal strings + const char *data5 = "Hello"; + ASSERT_EQ(FmsMetaDataSetString(mds[5], "String", data5), 0); + EXPECT_EQ(FmsMetaDataCompare(mds[4], mds[5]), 0); + EXPECT_EQ(FmsMetaDataCompare(mds[5], mds[4]), 0); + // Compare different contents + const char *data51 = "World"; + ASSERT_EQ(FmsMetaDataSetString(mds[5], "String", data51), 0); + EXPECT_NE(FmsMetaDataCompare(mds[4], mds[5]), 0); + EXPECT_NE(FmsMetaDataCompare(mds[5], mds[4]), 0); - FmsMetaData *data6 = NULL; - ASSERT_EQ(FmsMetaDataSetMetaData(mds[6], "MetaDatas", 2, &data6), 0); - ASSERT_TRUE(data6); - int32_t *data61 = NULL; - ASSERT_EQ(FmsMetaDataSetIntegers(data6[0], "Int", FMS_INT32, 1, (void**)&data61), 0); - ASSERT_TRUE(data61); - data61[0] = 7; - double *data62 = NULL; - ASSERT_EQ(FmsMetaDataSetScalars(data6[1], "Scalars", FMS_DOUBLE, 3, (void**)&data62), 0); - ASSERT_TRUE(data62); - data62[0] = 3.; data62[1] = 5.; data62[2] = 1.; + FmsMetaData *data6 = NULL; + ASSERT_EQ(FmsMetaDataSetMetaData(mds[6], "MetaDatas", 2, &data6), 0); + ASSERT_TRUE(data6); + int32_t *data61 = NULL; + ASSERT_EQ(FmsMetaDataSetIntegers(data6[0], "Int", FMS_INT32, 1, + (void**)&data61), 0); + ASSERT_TRUE(data61); + data61[0] = 7; + double *data62 = NULL; + ASSERT_EQ(FmsMetaDataSetScalars(data6[1], "Scalars", FMS_DOUBLE, 3, + (void**)&data62), 0); + ASSERT_TRUE(data62); + data62[0] = 3.; data62[1] = 5.; data62[2] = 1.; - // Compare everything so far to unset md - for(int i = 0; i < 7; i++) { - EXPECT_NE(FmsMetaDataCompare(mds[i], mds[7]), 0); - EXPECT_NE(FmsMetaDataCompare(mds[7], mds[i]), 0); - } + // Compare everything so far to unset md + for(int i = 0; i < 7; i++) { + EXPECT_NE(FmsMetaDataCompare(mds[i], mds[7]), 0); + EXPECT_NE(FmsMetaDataCompare(mds[7], mds[i]), 0); + } - // Compare md of mds - // Compare equal - FmsMetaData *data7 = NULL; - ASSERT_EQ(FmsMetaDataSetMetaData(mds[7], "MetaDatas", 2, &data7), 0); - ASSERT_TRUE(data7); - int32_t *data71 = NULL; - ASSERT_EQ(FmsMetaDataSetIntegers(data7[0], "Int", FMS_INT32, 1, (void**)&data71), 0); - ASSERT_TRUE(data71); - data71[0] = 7; - double *data72 = NULL; - ASSERT_EQ(FmsMetaDataSetScalars(data7[1], "Scalars", FMS_DOUBLE, 3, (void**)&data72), 0); - ASSERT_TRUE(data72); - data72[0] = 3.; data72[1] = 5.; data72[2] = 1.; - EXPECT_EQ(FmsMetaDataCompare(mds[6], mds[7]), 0); - EXPECT_EQ(FmsMetaDataCompare(mds[7], mds[6]), 0); - data7 = NULL; - data71 = NULL; - data72 = NULL; - // Compare different sizes - ASSERT_EQ(FmsMetaDataSetMetaData(mds[7], "MetaDatas", 1, &data7), 0); - ASSERT_TRUE(data7); - ASSERT_EQ(FmsMetaDataSetIntegers(data7[0], "Int", FMS_INT32, 1, (void**)&data71), 0); - ASSERT_TRUE(data71); - data71[0] = 7; - EXPECT_NE(FmsMetaDataCompare(mds[6], mds[7]), 0); - EXPECT_NE(FmsMetaDataCompare(mds[7], mds[6]), 0); - data7 = NULL; - data71 = NULL; - // Compare different content - ASSERT_EQ(FmsMetaDataSetMetaData(mds[7], "MetaDatas", 2, &data7), 0); - ASSERT_TRUE(data7); - ASSERT_EQ(FmsMetaDataSetScalars(data7[0], "Scalars", FMS_DOUBLE, 3, (void**)&data72), 0); - ASSERT_TRUE(data72); - data72[0] = 3.; data72[1] = 5.; data72[2] = 1.; - ASSERT_EQ(FmsMetaDataSetIntegers(data7[1], "Int", FMS_INT32, 1, (void**)&data71), 0); - ASSERT_TRUE(data71); - data71[0] = 7; - EXPECT_NE(FmsMetaDataCompare(mds[6], mds[7]), 0); - EXPECT_NE(FmsMetaDataCompare(mds[7], mds[6]), 0); - // Make them equal again - FmsMetaData temp = data7[0]; - data7[0] = data7[1]; data7[1] = temp; - EXPECT_EQ(FmsMetaDataCompare(mds[6], mds[7]), 0); - EXPECT_EQ(FmsMetaDataCompare(mds[7], mds[6]), 0); + // Compare md of mds + // Compare equal + FmsMetaData *data7 = NULL; + ASSERT_EQ(FmsMetaDataSetMetaData(mds[7], "MetaDatas", 2, &data7), 0); + ASSERT_TRUE(data7); + int32_t *data71 = NULL; + ASSERT_EQ(FmsMetaDataSetIntegers(data7[0], "Int", FMS_INT32, 1, + (void**)&data71), 0); + ASSERT_TRUE(data71); + data71[0] = 7; + double *data72 = NULL; + ASSERT_EQ(FmsMetaDataSetScalars(data7[1], "Scalars", FMS_DOUBLE, 3, + (void**)&data72), 0); + ASSERT_TRUE(data72); + data72[0] = 3.; data72[1] = 5.; data72[2] = 1.; + EXPECT_EQ(FmsMetaDataCompare(mds[6], mds[7]), 0); + EXPECT_EQ(FmsMetaDataCompare(mds[7], mds[6]), 0); + data7 = NULL; + data71 = NULL; + data72 = NULL; + // Compare different sizes + ASSERT_EQ(FmsMetaDataSetMetaData(mds[7], "MetaDatas", 1, &data7), 0); + ASSERT_TRUE(data7); + ASSERT_EQ(FmsMetaDataSetIntegers(data7[0], "Int", FMS_INT32, 1, + (void**)&data71), 0); + ASSERT_TRUE(data71); + data71[0] = 7; + EXPECT_NE(FmsMetaDataCompare(mds[6], mds[7]), 0); + EXPECT_NE(FmsMetaDataCompare(mds[7], mds[6]), 0); + data7 = NULL; + data71 = NULL; + // Compare different content + ASSERT_EQ(FmsMetaDataSetMetaData(mds[7], "MetaDatas", 2, &data7), 0); + ASSERT_TRUE(data7); + ASSERT_EQ(FmsMetaDataSetScalars(data7[0], "Scalars", FMS_DOUBLE, 3, + (void**)&data72), 0); + ASSERT_TRUE(data72); + data72[0] = 3.; data72[1] = 5.; data72[2] = 1.; + ASSERT_EQ(FmsMetaDataSetIntegers(data7[1], "Int", FMS_INT32, 1, + (void**)&data71), 0); + ASSERT_TRUE(data71); + data71[0] = 7; + EXPECT_NE(FmsMetaDataCompare(mds[6], mds[7]), 0); + EXPECT_NE(FmsMetaDataCompare(mds[7], mds[6]), 0); + // Make them equal again + FmsMetaData temp = data7[0]; + data7[0] = data7[1]; data7[1] = temp; + EXPECT_EQ(FmsMetaDataCompare(mds[6], mds[7]), 0); + EXPECT_EQ(FmsMetaDataCompare(mds[7], mds[6]), 0); - FmsDataCollectionDestroy(&dc); + FmsDataCollectionDestroy(&dc); } TEST(Fms, FieldDescriptorCompare) { - // We need a DataCollection to attach the FDs to - FmsDataCollection dc = NULL; - ASSERT_EQ(Construct2DData0(&dc), 0); - ASSERT_TRUE(dc); - FmsMesh mesh = NULL; - ASSERT_EQ(FmsDataCollectionGetMesh(dc, &mesh), 0); - ASSERT_TRUE(mesh); - FmsComponent volume = NULL, boundary = NULL; - ASSERT_EQ(FmsMeshGetComponent(mesh, 0, &volume), 0); - ASSERT_EQ(FmsMeshGetComponent(mesh, 1, &boundary), 0); - ASSERT_TRUE(volume); ASSERT_TRUE(boundary); - ASSERT_NE(volume, boundary); + // We need a DataCollection to attach the FDs to + FmsDataCollection dc = NULL; + ASSERT_EQ(Construct2DData0(&dc), 0); + ASSERT_TRUE(dc); + FmsMesh mesh = NULL; + ASSERT_EQ(FmsDataCollectionGetMesh(dc, &mesh), 0); + ASSERT_TRUE(mesh); + FmsComponent volume = NULL, boundary = NULL; + ASSERT_EQ(FmsMeshGetComponent(mesh, 0, &volume), 0); + ASSERT_EQ(FmsMeshGetComponent(mesh, 1, &boundary), 0); + ASSERT_TRUE(volume); ASSERT_TRUE(boundary); + ASSERT_NE(volume, boundary); - // Compare equal FDs - FmsDataCollection dc1 = NULL; - ASSERT_EQ(Construct2DData0(&dc1), 0); - ASSERT_TRUE(dc1); - FmsInt dc_nfds = 0, dc1_nfds = 0; - FmsFieldDescriptor *dc_fds = NULL, *dc1_fds = NULL; - ASSERT_EQ(FmsDataCollectionGetFieldDescriptors(dc, &dc_fds, &dc_nfds), 0); - ASSERT_EQ(FmsDataCollectionGetFieldDescriptors(dc1, &dc1_fds, &dc1_nfds), 0); - ASSERT_TRUE(dc_fds); ASSERT_TRUE(dc1_fds); - ASSERT_TRUE(dc_nfds); ASSERT_TRUE(dc1_nfds); - ASSERT_EQ(dc_nfds, dc1_nfds); - for(FmsInt i = 0; i < dc_nfds; i++) { - ASSERT_TRUE(dc_fds[i]); ASSERT_TRUE(dc1_fds[i]); - ASSERT_NE(dc_fds[i], dc1_fds[i]); - EXPECT_EQ(FmsFieldDescriptorCompare(dc_fds[i], dc1_fds[i]), 0) - << "The FD at index " << i << " did not compare equal."; - } - FmsDataCollectionDestroy(&dc1); + // Compare equal FDs + FmsDataCollection dc1 = NULL; + ASSERT_EQ(Construct2DData0(&dc1), 0); + ASSERT_TRUE(dc1); + FmsInt dc_nfds = 0, dc1_nfds = 0; + FmsFieldDescriptor *dc_fds = NULL, *dc1_fds = NULL; + ASSERT_EQ(FmsDataCollectionGetFieldDescriptors(dc, &dc_fds, &dc_nfds), 0); + ASSERT_EQ(FmsDataCollectionGetFieldDescriptors(dc1, &dc1_fds, &dc1_nfds), 0); + ASSERT_TRUE(dc_fds); ASSERT_TRUE(dc1_fds); + ASSERT_TRUE(dc_nfds); ASSERT_TRUE(dc1_nfds); + ASSERT_EQ(dc_nfds, dc1_nfds); + for(FmsInt i = 0; i < dc_nfds; i++) { + ASSERT_TRUE(dc_fds[i]); ASSERT_TRUE(dc1_fds[i]); + ASSERT_NE(dc_fds[i], dc1_fds[i]); + EXPECT_EQ(FmsFieldDescriptorCompare(dc_fds[i], dc1_fds[i]), 0) + << "The FD at index " << i << " did not compare equal."; + } + FmsDataCollectionDestroy(&dc1); - // Compare different combinations of basis type - // NOTE: Might need to use the two identical datacollection from above because it might - // not always be okay to have two FDs with the same name in the same DataCollection - for(int i = 0; i < 7; i++) { - FmsFieldDescriptor fdi = NULL; - ASSERT_EQ(FmsDataCollectionAddFieldDescriptor(dc, "FD", &fdi), 0); - ASSERT_TRUE(fdi); - ASSERT_EQ(FmsFieldDescriptorSetComponent(fdi, volume), 0); - ASSERT_EQ(FmsFieldDescriptorSetFixedOrder(fdi, FMS_CONTINUOUS, static_cast(i), 10), 0); - for(int j = 0; j < 7; j++){ - FmsFieldDescriptor fdj = NULL; - ASSERT_EQ(FmsDataCollectionAddFieldDescriptor(dc, "FD", &fdj), 0); - ASSERT_EQ(FmsFieldDescriptorSetComponent(fdj, volume), 0); - ASSERT_EQ(FmsFieldDescriptorSetFixedOrder(fdj, FMS_CONTINUOUS, static_cast(j), 10), 0); - if(i == j) { - EXPECT_EQ(FmsFieldDescriptorCompare(fdi, fdj), 0) - << "FDs compared not equal with basistype " << i; - EXPECT_EQ(FmsFieldDescriptorCompare(fdj, fdi), 0) - << "FDs compared not equal with basistype " << i;; - } - else { - EXPECT_NE(FmsFieldDescriptorCompare(fdi, fdj), 0) - << "FDs compared equal with basistypes " << i << " " << j; - EXPECT_NE(FmsFieldDescriptorCompare(fdj, fdi), 0) - << "FDs compared equal with basistypes " << i << " " << j; - } - } + // Compare different combinations of basis type + // NOTE: Might need to use the two identical datacollection from above because it might + // not always be okay to have two FDs with the same name in the same DataCollection + for(int i = 0; i < 7; i++) { + FmsFieldDescriptor fdi = NULL; + ASSERT_EQ(FmsDataCollectionAddFieldDescriptor(dc, "FD", &fdi), 0); + ASSERT_TRUE(fdi); + ASSERT_EQ(FmsFieldDescriptorSetComponent(fdi, volume), 0); + ASSERT_EQ(FmsFieldDescriptorSetFixedOrder(fdi, FMS_CONTINUOUS, + static_cast(i), 10), 0); + for(int j = 0; j < 7; j++) { + FmsFieldDescriptor fdj = NULL; + ASSERT_EQ(FmsDataCollectionAddFieldDescriptor(dc, "FD", &fdj), 0); + ASSERT_EQ(FmsFieldDescriptorSetComponent(fdj, volume), 0); + ASSERT_EQ(FmsFieldDescriptorSetFixedOrder(fdj, FMS_CONTINUOUS, + static_cast(j), 10), 0); + if(i == j) { + EXPECT_EQ(FmsFieldDescriptorCompare(fdi, fdj), 0) + << "FDs compared not equal with basistype " << i; + EXPECT_EQ(FmsFieldDescriptorCompare(fdj, fdi), 0) + << "FDs compared not equal with basistype " << i;; + } else { + EXPECT_NE(FmsFieldDescriptorCompare(fdi, fdj), 0) + << "FDs compared equal with basistypes " << i << " " << j; + EXPECT_NE(FmsFieldDescriptorCompare(fdj, fdi), 0) + << "FDs compared equal with basistypes " << i << " " << j; + } } + } - // Compare different combinations of FieldType - // TODO: Update this when HCURL is implemented - for(int i = 0; i < 5; i++) { - if(static_cast(i) == FMS_HCURL) continue; - FmsFieldDescriptor fdi = NULL; - ASSERT_EQ(FmsDataCollectionAddFieldDescriptor(dc, "FD", &fdi), 0); - ASSERT_TRUE(fdi); - ASSERT_EQ(FmsFieldDescriptorSetComponent(fdi, volume), 0); - ASSERT_EQ(FmsFieldDescriptorSetFixedOrder(fdi, static_cast(i), FMS_NODAL_GAUSS_CLOSED, 10), 0); - for(int j = 0; j < 5; j++){ - if(static_cast(j) == FMS_HCURL) continue; - FmsFieldDescriptor fdj = NULL; - ASSERT_EQ(FmsDataCollectionAddFieldDescriptor(dc, "FD", &fdj), 0); - ASSERT_EQ(FmsFieldDescriptorSetComponent(fdj, volume), 0); - ASSERT_EQ(FmsFieldDescriptorSetFixedOrder(fdj, static_cast(j), FMS_NODAL_GAUSS_CLOSED, 10), 0); - ASSERT_NE(fdi, fdj); - if(i == j) { - EXPECT_EQ(FmsFieldDescriptorCompare(fdi, fdj), 0) - << "FDs compared not equal with fieldtype " << i; - EXPECT_EQ(FmsFieldDescriptorCompare(fdj, fdi), 0) - << "FDs compared not equal with fieldtype " << i;; - } - else { - EXPECT_NE(FmsFieldDescriptorCompare(fdi, fdj), 0) - << "FDs compared equal with fieldtypes " << i << " " << j; - EXPECT_NE(FmsFieldDescriptorCompare(fdj, fdi), 0) - << "FDs compared equal with fieldtypes " << i << " " << j; - } - } + // Compare different combinations of FieldType + // TODO: Update this when HCURL is implemented + for(int i = 0; i < 5; i++) { + if(static_cast(i) == FMS_HCURL) continue; + FmsFieldDescriptor fdi = NULL; + ASSERT_EQ(FmsDataCollectionAddFieldDescriptor(dc, "FD", &fdi), 0); + ASSERT_TRUE(fdi); + ASSERT_EQ(FmsFieldDescriptorSetComponent(fdi, volume), 0); + ASSERT_EQ(FmsFieldDescriptorSetFixedOrder(fdi, static_cast(i), + FMS_NODAL_GAUSS_CLOSED, 10), 0); + for(int j = 0; j < 5; j++) { + if(static_cast(j) == FMS_HCURL) continue; + FmsFieldDescriptor fdj = NULL; + ASSERT_EQ(FmsDataCollectionAddFieldDescriptor(dc, "FD", &fdj), 0); + ASSERT_EQ(FmsFieldDescriptorSetComponent(fdj, volume), 0); + ASSERT_EQ(FmsFieldDescriptorSetFixedOrder(fdj, static_cast(j), + FMS_NODAL_GAUSS_CLOSED, 10), 0); + ASSERT_NE(fdi, fdj); + if(i == j) { + EXPECT_EQ(FmsFieldDescriptorCompare(fdi, fdj), 0) + << "FDs compared not equal with fieldtype " << i; + EXPECT_EQ(FmsFieldDescriptorCompare(fdj, fdi), 0) + << "FDs compared not equal with fieldtype " << i;; + } else { + EXPECT_NE(FmsFieldDescriptorCompare(fdi, fdj), 0) + << "FDs compared equal with fieldtypes " << i << " " << j; + EXPECT_NE(FmsFieldDescriptorCompare(fdj, fdi), 0) + << "FDs compared equal with fieldtypes " << i << " " << j; + } } + } - // Compare different orders - for(int i = 1; i < 5; i++) { - FmsFieldDescriptor fdi = NULL; - ASSERT_EQ(FmsDataCollectionAddFieldDescriptor(dc, "FD", &fdi), 0); - ASSERT_TRUE(fdi); - ASSERT_EQ(FmsFieldDescriptorSetComponent(fdi, volume), 0); - ASSERT_EQ(FmsFieldDescriptorSetFixedOrder(fdi, FMS_CONTINUOUS, FMS_NODAL_GAUSS_CLOSED, i), 0); - for(int j = 1; j < 5; j++){ - if(static_cast(j) == FMS_HCURL) continue; - FmsFieldDescriptor fdj = NULL; - ASSERT_EQ(FmsDataCollectionAddFieldDescriptor(dc, "FD", &fdj), 0); - ASSERT_EQ(FmsFieldDescriptorSetComponent(fdj, volume), 0); - ASSERT_EQ(FmsFieldDescriptorSetFixedOrder(fdj, FMS_CONTINUOUS, FMS_NODAL_GAUSS_CLOSED, j), 0); - ASSERT_NE(fdi, fdj); - if(i == j) { - EXPECT_EQ(FmsFieldDescriptorCompare(fdi, fdj), 0) - << "FDs compared not equal with order " << i; - EXPECT_EQ(FmsFieldDescriptorCompare(fdj, fdi), 0) - << "FDs compared not equal with order " << i;; - } - else { - EXPECT_NE(FmsFieldDescriptorCompare(fdi, fdj), 0) - << "FDs compared equal with orders " << i << " " << j; - EXPECT_NE(FmsFieldDescriptorCompare(fdj, fdi), 0) - << "FDs compared equal with orders " << i << " " << j; - } - } + // Compare different orders + for(int i = 1; i < 5; i++) { + FmsFieldDescriptor fdi = NULL; + ASSERT_EQ(FmsDataCollectionAddFieldDescriptor(dc, "FD", &fdi), 0); + ASSERT_TRUE(fdi); + ASSERT_EQ(FmsFieldDescriptorSetComponent(fdi, volume), 0); + ASSERT_EQ(FmsFieldDescriptorSetFixedOrder(fdi, FMS_CONTINUOUS, + FMS_NODAL_GAUSS_CLOSED, i), 0); + for(int j = 1; j < 5; j++) { + if(static_cast(j) == FMS_HCURL) continue; + FmsFieldDescriptor fdj = NULL; + ASSERT_EQ(FmsDataCollectionAddFieldDescriptor(dc, "FD", &fdj), 0); + ASSERT_EQ(FmsFieldDescriptorSetComponent(fdj, volume), 0); + ASSERT_EQ(FmsFieldDescriptorSetFixedOrder(fdj, FMS_CONTINUOUS, + FMS_NODAL_GAUSS_CLOSED, j), 0); + ASSERT_NE(fdi, fdj); + if(i == j) { + EXPECT_EQ(FmsFieldDescriptorCompare(fdi, fdj), 0) + << "FDs compared not equal with order " << i; + EXPECT_EQ(FmsFieldDescriptorCompare(fdj, fdi), 0) + << "FDs compared not equal with order " << i;; + } else { + EXPECT_NE(FmsFieldDescriptorCompare(fdi, fdj), 0) + << "FDs compared equal with orders " << i << " " << j; + EXPECT_NE(FmsFieldDescriptorCompare(fdj, fdi), 0) + << "FDs compared equal with orders " << i << " " << j; + } } + } - // Compare different components - FmsFieldDescriptor fdv = NULL, fdb = NULL; - ASSERT_EQ(FmsDataCollectionAddFieldDescriptor(dc, "FD", &fdv), 0); - ASSERT_EQ(FmsDataCollectionAddFieldDescriptor(dc, "FD", &fdb), 0); - ASSERT_TRUE(fdv); ASSERT_TRUE(fdb); - ASSERT_EQ(FmsFieldDescriptorSetComponent(fdv, volume), 0); - ASSERT_EQ(FmsFieldDescriptorSetComponent(fdb, boundary), 0); - ASSERT_EQ(FmsFieldDescriptorSetFixedOrder(fdv, FMS_CONTINUOUS, FMS_NODAL_GAUSS_CLOSED, 3), 0); - ASSERT_EQ(FmsFieldDescriptorSetFixedOrder(fdb, FMS_CONTINUOUS, FMS_NODAL_GAUSS_CLOSED, 3), 0); - ASSERT_NE(fdv, fdb); - EXPECT_NE(FmsFieldDescriptorCompare(fdv, fdb), 0); - EXPECT_NE(FmsFieldDescriptorCompare(fdb, fdv), 0); + // Compare different components + FmsFieldDescriptor fdv = NULL, fdb = NULL; + ASSERT_EQ(FmsDataCollectionAddFieldDescriptor(dc, "FD", &fdv), 0); + ASSERT_EQ(FmsDataCollectionAddFieldDescriptor(dc, "FD", &fdb), 0); + ASSERT_TRUE(fdv); ASSERT_TRUE(fdb); + ASSERT_EQ(FmsFieldDescriptorSetComponent(fdv, volume), 0); + ASSERT_EQ(FmsFieldDescriptorSetComponent(fdb, boundary), 0); + ASSERT_EQ(FmsFieldDescriptorSetFixedOrder(fdv, FMS_CONTINUOUS, + FMS_NODAL_GAUSS_CLOSED, 3), 0); + ASSERT_EQ(FmsFieldDescriptorSetFixedOrder(fdb, FMS_CONTINUOUS, + FMS_NODAL_GAUSS_CLOSED, 3), 0); + ASSERT_NE(fdv, fdb); + EXPECT_NE(FmsFieldDescriptorCompare(fdv, fdb), 0); + EXPECT_NE(FmsFieldDescriptorCompare(fdb, fdv), 0); - // Compare different names - FmsFieldDescriptor diff_name = NULL; - ASSERT_EQ(FmsDataCollectionAddFieldDescriptor(dc, "DiffName", &diff_name), 0); - ASSERT_TRUE(diff_name); - ASSERT_EQ(FmsFieldDescriptorSetComponent(diff_name, volume), 0); - ASSERT_EQ(FmsFieldDescriptorSetFixedOrder(diff_name, FMS_CONTINUOUS, FMS_NODAL_GAUSS_CLOSED, 3), 0); - EXPECT_NE(FmsFieldDescriptorCompare(fdv, diff_name), 0); - EXPECT_NE(FmsFieldDescriptorCompare(diff_name, fdv), 0); + // Compare different names + FmsFieldDescriptor diff_name = NULL; + ASSERT_EQ(FmsDataCollectionAddFieldDescriptor(dc, "DiffName", &diff_name), 0); + ASSERT_TRUE(diff_name); + ASSERT_EQ(FmsFieldDescriptorSetComponent(diff_name, volume), 0); + ASSERT_EQ(FmsFieldDescriptorSetFixedOrder(diff_name, FMS_CONTINUOUS, + FMS_NODAL_GAUSS_CLOSED, 3), 0); + EXPECT_NE(FmsFieldDescriptorCompare(fdv, diff_name), 0); + EXPECT_NE(FmsFieldDescriptorCompare(diff_name, fdv), 0); - FmsDataCollectionDestroy(&dc); + FmsDataCollectionDestroy(&dc); } diff --git a/tests/t_fmsio.cpp b/tests/t_fmsio.cpp index 97289f6..3a37672 100644 --- a/tests/t_fmsio.cpp +++ b/tests/t_fmsio.cpp @@ -4,130 +4,130 @@ #include TEST(FmsIO, WriteReadAscii) { - FmsInt size = 0; - FmsDataCollection *dcs = NULL; - ASSERT_EQ(ConstructAllDataCollections(&size, &dcs), 0); - ASSERT_TRUE(dcs); - ASSERT_TRUE(size); - for(FmsInt i = 0; i < size; i++) { - ASSERT_TRUE(dcs[i]); - ASSERT_EQ(FmsIOWrite("TestAscii.fms", "ascii", dcs[i]), 0); - FmsDataCollection read_dc = NULL; - ASSERT_EQ(FmsIORead("TestAscii.fms", "ascii", &read_dc), 0); - ASSERT_TRUE(read_dc); - EXPECT_EQ(FmsDataCollectionCompare(dcs[i], read_dc), 0); - ASSERT_EQ(FmsDataCollectionDestroy(&dcs[i]), 0); - ASSERT_EQ(FmsDataCollectionDestroy(&read_dc), 0); - } - std::free(dcs); + FmsInt size = 0; + FmsDataCollection *dcs = NULL; + ASSERT_EQ(ConstructAllDataCollections(&size, &dcs), 0); + ASSERT_TRUE(dcs); + ASSERT_TRUE(size); + for(FmsInt i = 0; i < size; i++) { + ASSERT_TRUE(dcs[i]); + ASSERT_EQ(FmsIOWrite("TestAscii.fms", "ascii", dcs[i]), 0); + FmsDataCollection read_dc = NULL; + ASSERT_EQ(FmsIORead("TestAscii.fms", "ascii", &read_dc), 0); + ASSERT_TRUE(read_dc); + EXPECT_EQ(FmsDataCollectionCompare(dcs[i], read_dc), 0); + ASSERT_EQ(FmsDataCollectionDestroy(&dcs[i]), 0); + ASSERT_EQ(FmsDataCollectionDestroy(&read_dc), 0); + } + std::free(dcs); } TEST(FmsIO, WriteReadYaml) { - FmsInt size = 0; - FmsDataCollection *dcs = NULL; - ASSERT_EQ(ConstructAllDataCollections(&size, &dcs), 0); - ASSERT_TRUE(dcs); - ASSERT_TRUE(size); - for(FmsInt i = 0; i < size; i++) { - ASSERT_TRUE(dcs[i]); - ASSERT_EQ(FmsIOWrite("TestYaml.fms", "yaml", dcs[i]), 0); - FmsDataCollection read_dc = NULL; - ASSERT_EQ(FmsIORead("TestYaml.fms", "yaml", &read_dc), 0); - ASSERT_TRUE(read_dc); - EXPECT_EQ(FmsDataCollectionCompare(dcs[i], read_dc), 0); - ASSERT_EQ(FmsDataCollectionDestroy(&dcs[i]), 0); - ASSERT_EQ(FmsDataCollectionDestroy(&read_dc), 0); - } - std::free(dcs); + FmsInt size = 0; + FmsDataCollection *dcs = NULL; + ASSERT_EQ(ConstructAllDataCollections(&size, &dcs), 0); + ASSERT_TRUE(dcs); + ASSERT_TRUE(size); + for(FmsInt i = 0; i < size; i++) { + ASSERT_TRUE(dcs[i]); + ASSERT_EQ(FmsIOWrite("TestYaml.fms", "yaml", dcs[i]), 0); + FmsDataCollection read_dc = NULL; + ASSERT_EQ(FmsIORead("TestYaml.fms", "yaml", &read_dc), 0); + ASSERT_TRUE(read_dc); + EXPECT_EQ(FmsDataCollectionCompare(dcs[i], read_dc), 0); + ASSERT_EQ(FmsDataCollectionDestroy(&dcs[i]), 0); + ASSERT_EQ(FmsDataCollectionDestroy(&read_dc), 0); + } + std::free(dcs); } TEST(FmsIO, WriteReadJson) { - FmsInt size = 0; - FmsDataCollection *dcs = NULL; - ASSERT_EQ(ConstructAllDataCollections(&size, &dcs), 0); - ASSERT_TRUE(dcs); - ASSERT_TRUE(size); - for(FmsInt i = 0; i < size; i++) { - ASSERT_TRUE(dcs[i]); - ASSERT_EQ(FmsIOWrite("TestJson.fms", "json", dcs[i]), 0); - FmsDataCollection read_dc = NULL; - ASSERT_EQ(FmsIORead("TestJson.fms", "json", &read_dc), 0); - ASSERT_TRUE(read_dc); - EXPECT_EQ(FmsDataCollectionCompare(dcs[i], read_dc), 0); - ASSERT_EQ(FmsDataCollectionDestroy(&dcs[i]), 0); - ASSERT_EQ(FmsDataCollectionDestroy(&read_dc), 0); - } - std::free(dcs); + FmsInt size = 0; + FmsDataCollection *dcs = NULL; + ASSERT_EQ(ConstructAllDataCollections(&size, &dcs), 0); + ASSERT_TRUE(dcs); + ASSERT_TRUE(size); + for(FmsInt i = 0; i < size; i++) { + ASSERT_TRUE(dcs[i]); + ASSERT_EQ(FmsIOWrite("TestJson.fms", "json", dcs[i]), 0); + FmsDataCollection read_dc = NULL; + ASSERT_EQ(FmsIORead("TestJson.fms", "json", &read_dc), 0); + ASSERT_TRUE(read_dc); + EXPECT_EQ(FmsDataCollectionCompare(dcs[i], read_dc), 0); + ASSERT_EQ(FmsDataCollectionDestroy(&dcs[i]), 0); + ASSERT_EQ(FmsDataCollectionDestroy(&read_dc), 0); + } + std::free(dcs); } TEST(FmsIO, WriteReadHdf5) { - FmsInt size = 0; - FmsDataCollection *dcs = NULL; - ASSERT_EQ(ConstructAllDataCollections(&size, &dcs), 0); - ASSERT_TRUE(dcs); - ASSERT_TRUE(size); - int isNotSupported = 0; - for(FmsInt i = 0; i < size; i++) { - ASSERT_TRUE(dcs[i]); - // It's possible that Conduit is compiled without hdf5 support - int retval = FmsIOWrite("TestHdf5.fms", "hdf5", dcs[i]); - if(retval == 2) { - isNotSupported = 1; - break; - } - ASSERT_EQ(retval, 0); - FmsDataCollection read_dc = NULL; - ASSERT_EQ(FmsIORead("TestHdf5.fms", "hdf5", &read_dc), 0); - ASSERT_TRUE(read_dc); - EXPECT_EQ(FmsDataCollectionCompare(dcs[i], read_dc), 0); - FmsDataCollectionDestroy(&read_dc); + FmsInt size = 0; + FmsDataCollection *dcs = NULL; + ASSERT_EQ(ConstructAllDataCollections(&size, &dcs), 0); + ASSERT_TRUE(dcs); + ASSERT_TRUE(size); + int isNotSupported = 0; + for(FmsInt i = 0; i < size; i++) { + ASSERT_TRUE(dcs[i]); + // It's possible that Conduit is compiled without hdf5 support + int retval = FmsIOWrite("TestHdf5.fms", "hdf5", dcs[i]); + if(retval == 2) { + isNotSupported = 1; + break; } - for(FmsInt i = 0; i < size; i++) { - FmsDataCollectionDestroy(&dcs[i]); - } - std::free(dcs); - if(isNotSupported) GTEST_SKIP(); + ASSERT_EQ(retval, 0); + FmsDataCollection read_dc = NULL; + ASSERT_EQ(FmsIORead("TestHdf5.fms", "hdf5", &read_dc), 0); + ASSERT_TRUE(read_dc); + EXPECT_EQ(FmsDataCollectionCompare(dcs[i], read_dc), 0); + FmsDataCollectionDestroy(&read_dc); + } + for(FmsInt i = 0; i < size; i++) { + FmsDataCollectionDestroy(&dcs[i]); + } + std::free(dcs); + if(isNotSupported) GTEST_SKIP(); } TEST(FmsIO, WriteReadConduitBin) { - FmsInt size = 0; - FmsDataCollection *dcs = NULL; - ASSERT_EQ(ConstructAllDataCollections(&size, &dcs), 0); - ASSERT_TRUE(dcs); - ASSERT_TRUE(size); - for(FmsInt i = 0; i < size; i++) { - ASSERT_TRUE(dcs[i]); - ASSERT_EQ(FmsIOWrite("TestConduitBin.fms", "conduit_bin", dcs[i]), 0); - FmsDataCollection read_dc = NULL; - ASSERT_EQ(FmsIORead("TestConduitBin.fms", "conduit_bin", &read_dc), 0); - ASSERT_TRUE(read_dc); - EXPECT_EQ(FmsDataCollectionCompare(dcs[i], read_dc), 0); - ASSERT_EQ(FmsDataCollectionDestroy(&dcs[i]), 0); - ASSERT_EQ(FmsDataCollectionDestroy(&read_dc), 0); - } - std::free(dcs); + FmsInt size = 0; + FmsDataCollection *dcs = NULL; + ASSERT_EQ(ConstructAllDataCollections(&size, &dcs), 0); + ASSERT_TRUE(dcs); + ASSERT_TRUE(size); + for(FmsInt i = 0; i < size; i++) { + ASSERT_TRUE(dcs[i]); + ASSERT_EQ(FmsIOWrite("TestConduitBin.fms", "conduit_bin", dcs[i]), 0); + FmsDataCollection read_dc = NULL; + ASSERT_EQ(FmsIORead("TestConduitBin.fms", "conduit_bin", &read_dc), 0); + ASSERT_TRUE(read_dc); + EXPECT_EQ(FmsDataCollectionCompare(dcs[i], read_dc), 0); + ASSERT_EQ(FmsDataCollectionDestroy(&dcs[i]), 0); + ASSERT_EQ(FmsDataCollectionDestroy(&read_dc), 0); + } + std::free(dcs); } TEST(FmsIO, WriteReadAutoDetect) { - FmsDataCollection dc = NULL; - ASSERT_EQ(Construct2DData0(&dc), 0); - ASSERT_TRUE(dc); - const char *protocols[5] = { - "ascii", "json", "yaml", "hdf5", "conduit_bin" - }; - for(int i = 0; i < 5; i++) { - int retval = FmsIOWrite("TestAuto.fms", protocols[i], dc); - // Sometimes hdf5 will not be supported by conduit - if(retval == 2 && strcmp("hdf5", protocols[i]) == 0) { - continue; - } - ASSERT_EQ(retval, 0); - FmsDataCollection read_dc = NULL; - ASSERT_EQ(FmsIORead("TestAuto.fms", NULL, &read_dc), 0); - ASSERT_TRUE(read_dc); - EXPECT_EQ(FmsDataCollectionCompare(dc, read_dc), 0); - EXPECT_EQ(FmsDataCollectionCompare(read_dc, dc), 0); - FmsDataCollectionDestroy(&read_dc); + FmsDataCollection dc = NULL; + ASSERT_EQ(Construct2DData0(&dc), 0); + ASSERT_TRUE(dc); + const char *protocols[5] = { + "ascii", "json", "yaml", "hdf5", "conduit_bin" + }; + for(int i = 0; i < 5; i++) { + int retval = FmsIOWrite("TestAuto.fms", protocols[i], dc); + // Sometimes hdf5 will not be supported by conduit + if(retval == 2 && strcmp("hdf5", protocols[i]) == 0) { + continue; } - FmsDataCollectionDestroy(&dc); + ASSERT_EQ(retval, 0); + FmsDataCollection read_dc = NULL; + ASSERT_EQ(FmsIORead("TestAuto.fms", NULL, &read_dc), 0); + ASSERT_TRUE(read_dc); + EXPECT_EQ(FmsDataCollectionCompare(dc, read_dc), 0); + EXPECT_EQ(FmsDataCollectionCompare(read_dc, dc), 0); + FmsDataCollectionDestroy(&read_dc); + } + FmsDataCollectionDestroy(&dc); } From 0bc408bfdb04fd90dfe76f370228719788d3e035 Mon Sep 17 00:00:00 2001 From: Veselin Dobrev Date: Thu, 19 Aug 2021 22:33:13 -0700 Subject: [PATCH 10/17] Update FMS version to v0.2. Set the FMS file format version to 100, i.e. v0.1. Add FMS_VERSION macro in fms.h. Address some FIXMEs. Small updates in the doxygen documentation. --- CMakeLists.txt | 11 +++++---- Doxyfile | 2 +- src/fms.c | 9 +------ src/fms.h | 66 +++++++++++++++++++++++++++++++++++++------------- src/fmsio.c | 8 ++++-- src/fmsio.h | 31 +++++++++++++++--------- 6 files changed, 83 insertions(+), 44 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 68d9337..7bb704c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -17,8 +17,9 @@ # We use the C_STANDARD target property introduced in CMake 3.1 cmake_minimum_required (VERSION 3.1) -# Project name -project(FMS VERSION 0.1 LANGUAGES C) +# Project name and version. +# The version is also defined in the files: fms.h and Doxyfile. +project(FMS VERSION 0.2 LANGUAGES C) # Optional demo - see examples/README.md for more information option(FMS_ENABLE_DEMO "Enable the PUMI + MFEM demo" OFF) @@ -68,9 +69,9 @@ if(FMS_ENABLE_DEMO) endif() if(PUMI_DIR) - find_package(SCOREC 2.1.0 REQUIRED - CONFIG - HINTS ${PUMI_DIR} + find_package(SCOREC 2.1.0 REQUIRED + CONFIG + HINTS ${PUMI_DIR} NO_DEFAULT_PATH) set(FMS_HAVE_PUMI TRUE) message(STATUS "Demo using PUMI: ${SCOREC_DIR}") diff --git a/Doxyfile b/Doxyfile index 83c53ad..305ea68 100644 --- a/Doxyfile +++ b/Doxyfile @@ -38,7 +38,7 @@ PROJECT_NAME = "FMS" # could be handy for archiving the generated documentation or if some version # control system is used. -PROJECT_NUMBER = v0.1 +PROJECT_NUMBER = v0.2 # Using the PROJECT_BRIEF tag one can provide an optional one line description # for a project that appears at the top of each page and should give viewer a diff --git a/src/fms.c b/src/fms.c index c2d8a56..9a9c278 100644 --- a/src/fms.c +++ b/src/fms.c @@ -2051,8 +2051,6 @@ int FmsMetaDataSetIntegers(FmsMetaData mdata, const char *mdata_name, mdata->sub_type.int_type = int_type; mdata->num_entries = size; mdata->data = md_data; - // FIXME: why? - memcpy(md_data, data, size*sizeof_int_type); *data = md_data; return 0; } @@ -2074,8 +2072,6 @@ int FmsMetaDataSetScalars(FmsMetaData mdata, const char *mdata_name, mdata->sub_type.scalar_type = scal_type; mdata->num_entries = size; mdata->data = md_data; - // FIXME: why? - memcpy(md_data, data, size*sizeof_scal_type); *data = md_data; return 0; } @@ -3528,10 +3524,7 @@ int FmsTagCompare(FmsTag lhs, FmsTag rhs) { } if(diff == 0) { - FmsInt ne = 0; - // FIXME: warning: expression result unused - // if(lhs->comp) - // lhs->comp->num_main_entities; + FmsInt ne = lhs->comp->num_main_entities; if(CompareIntData(lhs->tag_type, ne, lhs->tags, rhs->tags)) diff += 1000; } diff --git a/src/fms.h b/src/fms.h index 5d0d48c..bd69086 100644 --- a/src/fms.h +++ b/src/fms.h @@ -27,8 +27,17 @@ extern "C" { #endif +/// FMS version constant of the form: ((major*100 + minor)*100 + patch). +/** For example, value of 10203 means v1.2.3. + + The version is also defined in the files: CMakeLists.txt and Doxyfile. + + This macro was added in version: v0.2. */ +#define FMS_VERSION 200 + /// Interface version constant of the form: ((major*100 + minor)*100 + patch). -enum { FMS_INTERFACE_VERSION = 100 /* v0.1 */ }; +/** Since FMS v0.2, this value is the same as the macro FMS_VERSION. */ +enum { FMS_INTERFACE_VERSION = FMS_VERSION }; /// Type used by fms for representing and storing sizes and indices. typedef uint64_t FmsInt; @@ -56,9 +65,11 @@ typedef enum { extern const size_t FmsIntTypeSize[FMS_NUM_INT_TYPES]; +/// Added in version: v0.2. extern const char * const FmsIntTypeNames[FMS_NUM_INT_TYPES]; /// Get the enum representation of an int type from the string name. +/** Added in version: v0.2. */ int FmsGetIntTypeFromName(const char * const name, FmsIntType *type); /// TODO: dox @@ -235,8 +246,11 @@ typedef enum { } FmsEntityType; /// String representations of each entity type. +/** Added in version: v0.2. */ extern const char * const FmsEntityTypeNames[FMS_NUM_ENTITY_TYPES]; +/// Convert an entity-type string to FmsEntityType value. +/** Added in version: v0.2. */ int FmsGetEntityTypeFromName(const char * const name, FmsEntityType *ent_type); /// Dimensions of the entity types. @@ -306,7 +320,7 @@ typedef uint8_t FmsOrientation; enum { FMS_ORIENTATION_UNKNOWN = 255 }; -/// TODO: dox +/// Scalar types supported by FMS: floating-point types, real and complex. typedef enum { FMS_FLOAT, FMS_DOUBLE, @@ -318,14 +332,16 @@ typedef enum { extern const size_t FmsScalarTypeSize[FMS_NUM_SCALAR_TYPES]; +/// Added in version: v0.2. extern const char * const FmsScalarTypeNames[FMS_NUM_SCALAR_TYPES]; /// Get the enum representation of an int type from the string name. +/** Added in version: v0.2. */ int FmsGetScalarTypeFromName(const char * const name, FmsScalarType *type); -/// TODO: dox +/// Field descriptor types supported by FMS, see FmsFieldDescriptor. typedef enum { - FMS_FIXED_ORDER + FMS_FIXED_ORDER ///< See FmsFieldDescriptorSetFixedOrder() } FmsFieldDescriptorType; /// TODO: dox @@ -360,11 +376,14 @@ typedef enum { FMS_SCALAR, FMS_STRING, FMS_META_DATA, - FMS_NUM_METADATA_TYPES + FMS_NUM_METADATA_TYPES ///< Added in version: v0.2 } FmsMetaDataType; +/// Added in version: v0.2. extern const char * const FmsMetaDataTypeNames[FMS_NUM_METADATA_TYPES]; +/// Convert a meta-data-type string to FmsMetaDataType value. +/** Added in version: v0.2. */ int FmsGetMetaDataTypeFromName(const char * const name, FmsMetaDataType *type); /// TODO: dox @@ -403,7 +422,7 @@ typedef struct FmsMetaData_private *FmsMetaData; */ typedef struct FmsFieldDescriptor_private *FmsFieldDescriptor; -/// TODO: dox +/// Discrete field data type. /** A field structure contains: * a field name * meta-data - e.g. time (FmsMetaData, can be NULL) @@ -415,7 +434,7 @@ typedef struct FmsFieldDescriptor_private *FmsFieldDescriptor; */ typedef struct FmsField_private *FmsField; -/// TODO: dox +/// Data collection type: contains a mesh, discrete fileds, meta-data, etc. /** A data collection structure contains: * a name (const char *) * meta-data (FmsMetaData, can be NULL) @@ -477,7 +496,6 @@ int FmsMeshAddDomains(FmsMesh mesh, const char *domain_name, FmsInt num_domains, int FmsMeshAddComponent(FmsMesh mesh, const char *comp_name, FmsComponent *comp); -/// TODO: dox /** @brief Add a new tag to the mesh with the given name and return the new tag in @a tag. */ /** The tag should be set via the FmsTagSet* functions. */ @@ -783,15 +801,14 @@ int FmsTagGet(FmsTag tag, FmsIntType *tag_type, const void **ent_tags, int FmsTagGetDescriptions(FmsTag tag, FmsIntType *tag_type, const void **tags, const char *const **tag_descr, FmsInt *num_tags); -/// TODO: dox -/** -@brief Get the name of the data collection. -@param dc the data collection. -@param[out] name A char pointer that will be set to point to the name string. - The name is owned by the data collection so it should not be - freed or modified. -@return 0 on success, non-zero otherwise. -*/ +/// Get the name of the data collection. +/** @param dc the data collection. + @param[out] name A char pointer that will be set to point to the name + string. The name is owned by the data collection so it + should not be freed or modified. + @return 0 on success, non-zero otherwise. + + Added in version: v0.2. */ int FmsDataCollectionGetName(FmsDataCollection dc, const char **name); /// TODO: dox @@ -869,20 +886,35 @@ int FmsMetaDataGetMetaData(FmsMetaData mdata, const char **mdata_name, /// /// Return 0 if equivalent, not 0 otherwise +/** Added in version: v0.2. */ int FmsDataCollectionCompare(FmsDataCollection,FmsDataCollection); + /// Return 0 if equivalent, not 0 otherwise +/** Added in version: v0.2. */ int FmsMeshCompare(FmsMesh,FmsMesh); + /// Return 0 if equivalent, not 0 otherwise +/** Added in version: v0.2. */ int FmsFieldDescriptorCompare(FmsFieldDescriptor,FmsFieldDescriptor); + /// Return 0 if equivalent, not 0 otherwise +/** Added in version: v0.2. */ int FmsFieldCompare(FmsField,FmsField); + /// Return 0 if equivalent, not 0 otherwise +/** Added in version: v0.2. */ int FmsMetaDataCompare(FmsMetaData,FmsMetaData); + /// Return 0 if equivalent, not 0 otherwise +/** Added in version: v0.2. */ int FmsDomainCompare(FmsDomain,FmsDomain); + /// Return 0 if equivalent, not 0 otherwise +/** Added in version: v0.2. */ int FmsComponentCompare(FmsComponent,FmsComponent); + /// Return 0 if equivalent, not 0 otherwise +/** Added in version: v0.2. */ int FmsTagCompare(FmsTag,FmsTag); #ifdef __cplusplus diff --git a/src/fmsio.c b/src/fmsio.c index 23e8297..15b6e1a 100644 --- a/src/fmsio.c +++ b/src/fmsio.c @@ -3497,7 +3497,9 @@ FmsIOWrite(const char *filename, const char *protocol, FmsDataCollection dc) { /* "open" the file. */ if((*io.open)(&ctx, filename, "wt") == 0) { - if((*io.add_int)(&ctx, "FMS", (int)FMS_INTERFACE_VERSION) != 0) { + // FMS format version of this writer: 100 = v0.1 + const int fms_format_version = 100; + if((*io.add_int)(&ctx, "FMS", fms_format_version) != 0) { /* "close" the file. */ (*io.close)(&ctx); E_RETURN(6); @@ -3592,8 +3594,10 @@ FmsIORead(const char *filename, const char *protocol, FmsDataCollection *dc) { FmsInt version = 0; FmsIODataCollectionInfo *dc_info; FmsIOConstructFmsIODataCollectionInfo(&dc_info); + // FMS format version of this reader: 100 = v0.1 + const int fms_format_version = 100; err = (*io.get_int)(&ctx, "FMS", &version); - if(err != 0 || version != (int)FMS_INTERFACE_VERSION) { + if(err != 0 || version != fms_format_version) { /* "close" the file. */ (*io.close)(&ctx); E_RETURN(6); diff --git a/src/fmsio.h b/src/fmsio.h index 67ae2c3..35e3dc2 100644 --- a/src/fmsio.h +++ b/src/fmsio.h @@ -16,6 +16,10 @@ testbed platforms, in support of the nation's exascale computing imperative. */ +/** @file fmsio.h + FMS file I/O functions. + Header file added in version: v0.2. */ + #ifndef FMS_IO_HEADER #define FMS_IO_HEADER #include @@ -28,14 +32,16 @@ extern "C" { @brief Writes the provided FmsDataCollection to a file. @param filename The name of the file to save. If the filename does not include an appropriate file extension, one may be added. -@param protocol The type of file to be saved. By default, the protocol - should be "ascii". If FMS is compiled with Conduit support then - the protocol can match the supported Conduit protocols, which - can include: "json", "yaml", "conduit_bin", "hdf5". +@param protocol The type of file to be saved. By default, the protocol should be + "ascii". If FMS is compiled with Conduit support then the + protocol can match the supported Conduit protocols, which can + include: "json", "yaml", "conduit_bin", "hdf5". @param dc The FMS object that will be written to the file. @return The function returns 0 on success and non-zero for failure. If Conduit support is enabled then a return value of 2 indicates the given protocol is unsupported by the Conduit runtime. + +Added in version: v0.2. */ int FmsIOWrite(const char *filename, const char *protocol, FmsDataCollection dc); @@ -43,17 +49,20 @@ int FmsIOWrite(const char *filename, const char *protocol, /** @brief Reads an FmsDataCollection from a file. @param filename The name of the file to read. -@param protocol The type of file to be read. By default, the protocol - should be "ascii". If FMS is compiled with Conduit support then - the protocol can match the supported Conduit protocols, which - can include: "json", "yaml", "conduit_bin", "hdf5". Adding a protocol - will help FMS and Conduit decide which method is appropriate for - reading the file. If Conduit support is enabled and protocol is NULL - an educated guess will be made for which protocol to use. +@param protocol The type of file to be read. By default, the protocol should be + "ascii". If FMS is compiled with Conduit support then the + protocol can match the supported Conduit protocols, which can + include: "json", "yaml", "conduit_bin", "hdf5". Adding a + protocol will help FMS and Conduit decide which method is + appropriate for reading the file. If Conduit support is enabled + and protocol is NULL an educated guess will be made for which + protocol to use. @param[out] dc The FMS object that was read from the file. @return The function returns 0 on success and non-zero for failure. If Conduit support is enabled then a return value of 2 indicates the given protocol is unsupported by the Conduit runtime. + +Added in version: v0.2. */ int FmsIORead(const char *filename, const char *protocol, FmsDataCollection *dc); From 80a6a18ea04a31b9410203e4d7beee56be018ba1 Mon Sep 17 00:00:00 2001 From: Veselin Dobrev Date: Thu, 19 Aug 2021 22:43:33 -0700 Subject: [PATCH 11/17] Fix compilation warning --- src/fmsio.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/fmsio.c b/src/fmsio.c index 15b6e1a..2fc44bd 100644 --- a/src/fmsio.c +++ b/src/fmsio.c @@ -3498,7 +3498,7 @@ FmsIOWrite(const char *filename, const char *protocol, FmsDataCollection dc) { /* "open" the file. */ if((*io.open)(&ctx, filename, "wt") == 0) { // FMS format version of this writer: 100 = v0.1 - const int fms_format_version = 100; + const FmsInt fms_format_version = 100; if((*io.add_int)(&ctx, "FMS", fms_format_version) != 0) { /* "close" the file. */ (*io.close)(&ctx); @@ -3595,7 +3595,7 @@ FmsIORead(const char *filename, const char *protocol, FmsDataCollection *dc) { FmsIODataCollectionInfo *dc_info; FmsIOConstructFmsIODataCollectionInfo(&dc_info); // FMS format version of this reader: 100 = v0.1 - const int fms_format_version = 100; + const FmsInt fms_format_version = 100; err = (*io.get_int)(&ctx, "FMS", &version); if(err != 0 || version != fms_format_version) { /* "close" the file. */ From a23352c176b5ea60967407d2f45cfb398a28b113 Mon Sep 17 00:00:00 2001 From: Veselin Dobrev Date: Thu, 19 Aug 2021 23:42:34 -0700 Subject: [PATCH 12/17] Some doxygen tweaks --- Doxyfile | 2 +- doc/build.md | 2 +- src/fms.h | 92 ++++++++++++++++++++++++++-------------------------- 3 files changed, 48 insertions(+), 48 deletions(-) diff --git a/Doxyfile b/Doxyfile index 305ea68..c4aed0f 100644 --- a/Doxyfile +++ b/Doxyfile @@ -2034,7 +2034,7 @@ PERLMOD_MAKEVAR_PREFIX = # C-preprocessor directives found in the sources and include files. # The default value is: YES. -ENABLE_PREPROCESSING = NO +ENABLE_PREPROCESSING = YES # If the MACRO_EXPANSION tag is set to YES, doxygen will expand all macro names # in the source code. If set to NO, only conditional compilation will be diff --git a/doc/build.md b/doc/build.md index 536d1ef..4d4bccc 100644 --- a/doc/build.md +++ b/doc/build.md @@ -60,4 +60,4 @@ cd build cmake -DFMS_DIR=*fms/install/prefix* .. make ./main -``` \ No newline at end of file +``` diff --git a/src/fms.h b/src/fms.h index bd69086..ed0d594 100644 --- a/src/fms.h +++ b/src/fms.h @@ -74,19 +74,19 @@ int FmsGetIntTypeFromName(const char * const name, FmsIntType *type); /// TODO: dox /** A mesh consists of: - * mesh domains - * mesh components, described in terms of the domains - * mesh tags (attributes), defined on components. + - mesh domains + - mesh components, described in terms of the domains + - mesh tags (attributes), defined on components. The mesh is also assigned a partition id, e.g. an MPI rank. */ typedef struct FmsMesh_private *FmsMesh; /// TODO: dox /** Domains describe sets of interconnected mesh entities: - * 0d-entities / vertices - * 1d-entities / edges - * 2d-entities / faces: triangles, quads - * 3d-entities / volumes / regions: tets, hexes, wedges, pyramids. + - 0d-entities / vertices + - 1d-entities / edges + - 2d-entities / faces: triangles, quads + - 3d-entities / volumes / regions: tets, hexes, wedges, pyramids. All entities in a domain are enumerated within the domain. @@ -213,18 +213,18 @@ enum { FMS_INVALID_DIM = 127 }; For FMS_HEXAHEDRON, the faces (sides), "ABCDEF", the edges, "abcdefghijkl" and the vertices, "01234567", are ordered as follows: - z y - | / 7--g--6 - |/ /| /| - *--x / l / k z=0 z=1 y=0 y=1 x=0 x=1 - h | f | bottom top front back left right - / 3-/c--2 2--c--3 7--g--6 4--e--5 6--g--7 7--h--4 5--f--6 - / / / / | | | | | | | | | | | | - 4--e--5 / b A d h B f i C j k D l l E i j F k - | d | b | | | | | | | | | | | | - i / j / 1--a--0 4--e--5 0--a--1 2--c--3 3--d--0 1--b--2 - |/ |/ - 0--a--1 + z y + | / 7--g--6 + |/ /| /| + +--x / l / k z=0 z=1 y=0 y=1 x=0 x=1 + h | f | bottom top front back left right + / 3-/c--2 2--c--3 7--g--6 4--e--5 6--g--7 7--h--4 5--f--6 + / / / / | | | | | | | | | | | | + 4--e--5 / b A d h B f i C j k D l l E i j F k + | d | b | | | | | | | | | | | | + i / j / 1--a--0 4--e--5 0--a--1 2--c--3 3--d--0 1--b--2 + |/ |/ + 0--a--1 For example, vertex "0" has coordinates (x,y,z)=(0,0,0), vertex "6" has coordinates (1,1,1), etc. @@ -388,61 +388,61 @@ int FmsGetMetaDataTypeFromName(const char * const name, FmsMetaDataType *type); /// TODO: dox /** A meta-data structure contains: - * a meta-data type (FmsMetaDataType) - * a meta-data subtype, e.g. FmsIntType, FmsScalarType; TODO: for FMS_STRING + - a meta-data type (FmsMetaDataType) + - a meta-data subtype, e.g. FmsIntType, FmsScalarType; TODO: for FMS_STRING type define FmsEncoding subtype - * a meta-data name (const char *) - * number of entries in the data array (FmsInt); the type of the entries in + - a meta-data name (const char *) + - number of entries in the data array (FmsInt); the type of the entries in the data array is based on the meta-data type and subtype, when subtype is applicable; in the case of FMS_STRING, the entries are of type char (or some other type depending on the FmsEncoding subtype when introduced) - * a data array (void *) + - a data array (void *) */ typedef struct FmsMetaData_private *FmsMetaData; /// TODO: dox /** A field-descriptor structure contains: - * a field-descriptor name - * an associated mesh component (FmsComponent) - * a descriptor-type (FmsFieldDescriptorType) - * if descriptor-type == "fixed-order": + - a field-descriptor name + - an associated mesh component (FmsComponent) + - a descriptor-type (FmsFieldDescriptorType) + - if descriptor-type == "fixed-order": - a field type (FmsFieldType) - a basis-type (FmsBasisType) - an order - * total number of DOFs + - total number of DOFs The degrees of freedom are ordered part-by-part of the associated mesh component. Within each part, the dofs are ordered as follows: - * first, all DOFs on all vertices ordered according to the local (to the + - first, all DOFs on all vertices ordered according to the local (to the part) enumeration of the vertices - * second, all DOFs on all edges ordered according to the local (to the part) + - second, all DOFs on all edges ordered according to the local (to the part) enumeration of the edges - * similarly, continue adding DOFs for all remaining entity types in the + - similarly, continue adding DOFs for all remaining entity types in the order used by FmsEntityType. */ typedef struct FmsFieldDescriptor_private *FmsFieldDescriptor; /// Discrete field data type. /** A field structure contains: - * a field name - * meta-data - e.g. time (FmsMetaData, can be NULL) - * a field-descriptor (FmsFieldDescriptor) - * number of vector components (FmsInt) - * a layout type, i.e. ordering for the vector components (FmsLayoutType) - * a scalar type (FmsScalarType) - * a data array of the given scalar type. + - a field name + - meta-data - e.g. time (FmsMetaData, can be NULL) + - a field-descriptor (FmsFieldDescriptor) + - number of vector components (FmsInt) + - a layout type, i.e. ordering for the vector components (FmsLayoutType) + - a scalar type (FmsScalarType) + - a data array of the given scalar type. */ typedef struct FmsField_private *FmsField; /// Data collection type: contains a mesh, discrete fileds, meta-data, etc. /** A data collection structure contains: - * a name (const char *) - * meta-data (FmsMetaData, can be NULL) - * a mesh (FmsMesh) - * number of field-descriptors (FmsInt) - * an array of field-descriptors (FmsFieldDescriptor *) - * number of fields (FmsInt) - * an array of fields (FmsField *) + - a name (const char *) + - meta-data (FmsMetaData, can be NULL) + - a mesh (FmsMesh) + - number of field-descriptors (FmsInt) + - an array of field-descriptors (FmsFieldDescriptor *) + - number of fields (FmsInt) + - an array of fields (FmsField *) */ typedef struct FmsDataCollection_private *FmsDataCollection; From 31ad69ebaf5ce7d358707949923c40017c5cfc69 Mon Sep 17 00:00:00 2001 From: Veselin Dobrev Date: Fri, 20 Aug 2021 18:54:59 -0700 Subject: [PATCH 13/17] Update doc/components.png for v0.2 --- doc/components.png | Bin 328623 -> 136015 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/doc/components.png b/doc/components.png index cb0bf80735dfdd3c6f913b4cd6e80caede0f2203..633ee75113e374619e96386c2d224bb9859ed9ca 100644 GIT binary patch literal 136015 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%0A44CMc6$-~Ej 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ℑ?qI8;0Cmg8u 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%0AuRJ48``7m!ULrUz<%!9Es77ENehc^7?80 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�J3oXIYUW=S`Lj&Phjmhk!PLm$1h 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

N5Be`ESK(^T24|z>%lyup57lf` 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§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%0AfFzf#hN1xqqphNU$QU8c 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 Xf<>Y;w(y% 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 From 39ece4b644407fea8d2564abec6aa515c2d239bb Mon Sep 17 00:00:00 2001 From: Tzanio Date: Tue, 24 Aug 2021 19:21:18 -0700 Subject: [PATCH 14/17] Updated Copyright to (c) 2021 --- CMakeLists.txt | 2 +- LICENSE | 2 +- README.md | 2 +- examples/CMakeLists.txt | 2 +- examples/demo_pumi_mfem/CMakeLists.txt | 2 +- examples/meshing/CMakeLists.txt | 2 +- examples/meshing/domains.c | 2 +- examples/meshing/hexes.c | 2 +- examples/meshing/quads.c | 2 +- src/CMakeLists.txt | 2 +- src/fms.c | 2 +- src/fms.h | 2 +- src/fmsio.c | 2 +- src/fmsio.h | 2 +- 14 files changed, 14 insertions(+), 14 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 7bb704c..33a0ff8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (c) 2017, Lawrence Livermore National Security, LLC. Produced at +# Copyright (c) 2021, Lawrence Livermore National Security, LLC. Produced at # the Lawrence Livermore National Laboratory. LLNL-CODE-734707. All Rights # reserved. See files LICENSE and NOTICE for details. # diff --git a/LICENSE b/LICENSE index e5236e5..2c413c6 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ BSD 2-Clause License -Copyright (c) 2017 Lawrence Livermore National Security, LLC. +Copyright (c) 2021 Lawrence Livermore National Security, LLC. All rights reserved. Redistribution and use in source and binary forms, with or without diff --git a/README.md b/README.md index 06773c8..c3b27e6 100644 --- a/README.md +++ b/README.md @@ -61,7 +61,7 @@ or by leaving a comment in the [issue tracker](https://github.com/CEED/FMS/issue The following copyright applies to each file in the CEED software suite, unless otherwise stated in the file: -> Copyright (c) 2017, Lawrence Livermore National Security, LLC. Produced at the +> Copyright (c) 2021, Lawrence Livermore National Security, LLC. Produced at the > Lawrence Livermore National Laboratory. LLNL-CODE-734707. All Rights reserved. See files LICENSE and NOTICE for details. diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index f118ca8..8c8194f 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (c) 2020, Lawrence Livermore National Security, LLC. Produced at +# Copyright (c) 2021, Lawrence Livermore National Security, LLC. Produced at # the Lawrence Livermore National Laboratory. LLNL-CODE-734707. All Rights # reserved. See files LICENSE and NOTICE for details. # diff --git a/examples/demo_pumi_mfem/CMakeLists.txt b/examples/demo_pumi_mfem/CMakeLists.txt index c46ee79..6f4f758 100644 --- a/examples/demo_pumi_mfem/CMakeLists.txt +++ b/examples/demo_pumi_mfem/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (c) 2020, Lawrence Livermore National Security, LLC. Produced at +# Copyright (c) 2021, Lawrence Livermore National Security, LLC. Produced at # the Lawrence Livermore National Laboratory. LLNL-CODE-734707. All Rights # reserved. See files LICENSE and NOTICE for details. # diff --git a/examples/meshing/CMakeLists.txt b/examples/meshing/CMakeLists.txt index 147ed32..1833669 100644 --- a/examples/meshing/CMakeLists.txt +++ b/examples/meshing/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (c) 2020, Lawrence Livermore National Security, LLC. Produced at +# Copyright (c) 2021, Lawrence Livermore National Security, LLC. Produced at # the Lawrence Livermore National Laboratory. LLNL-CODE-734707. All Rights # reserved. See files LICENSE and NOTICE for details. # diff --git a/examples/meshing/domains.c b/examples/meshing/domains.c index 52c54a2..2b29804 100644 --- a/examples/meshing/domains.c +++ b/examples/meshing/domains.c @@ -1,5 +1,5 @@ /* - Copyright (c) 2020, Lawrence Livermore National Security, LLC. Produced at + Copyright (c) 2021, Lawrence Livermore National Security, LLC. Produced at the Lawrence Livermore National Laboratory. LLNL-CODE-734707. All Rights reserved. See files LICENSE and NOTICE for details. diff --git a/examples/meshing/hexes.c b/examples/meshing/hexes.c index 54a8d38..a610c18 100644 --- a/examples/meshing/hexes.c +++ b/examples/meshing/hexes.c @@ -1,5 +1,5 @@ /* - Copyright (c) 2020, Lawrence Livermore National Security, LLC. Produced at + Copyright (c) 2021, Lawrence Livermore National Security, LLC. Produced at the Lawrence Livermore National Laboratory. LLNL-CODE-734707. All Rights reserved. See files LICENSE and NOTICE for details. diff --git a/examples/meshing/quads.c b/examples/meshing/quads.c index 58167a1..d8e3faa 100644 --- a/examples/meshing/quads.c +++ b/examples/meshing/quads.c @@ -1,5 +1,5 @@ /* - Copyright (c) 2020, Lawrence Livermore National Security, LLC. Produced at + Copyright (c) 2021, Lawrence Livermore National Security, LLC. Produced at the Lawrence Livermore National Laboratory. LLNL-CODE-734707. All Rights reserved. See files LICENSE and NOTICE for details. diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 523ebb8..bacf1ec 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (c) 2020, Lawrence Livermore National Security, LLC. Produced at +# Copyright (c) 2021, Lawrence Livermore National Security, LLC. Produced at # the Lawrence Livermore National Laboratory. LLNL-CODE-734707. All Rights # reserved. See files LICENSE and NOTICE for details. # diff --git a/src/fms.c b/src/fms.c index 9a9c278..23eb65e 100644 --- a/src/fms.c +++ b/src/fms.c @@ -1,5 +1,5 @@ /* - Copyright (c) 2017, Lawrence Livermore National Security, LLC. Produced at + Copyright (c) 2021, Lawrence Livermore National Security, LLC. Produced at the Lawrence Livermore National Laboratory. LLNL-CODE-734707. All Rights reserved. See files LICENSE and NOTICE for details. diff --git a/src/fms.h b/src/fms.h index ed0d594..7dd6cdd 100644 --- a/src/fms.h +++ b/src/fms.h @@ -1,5 +1,5 @@ /* - Copyright (c) 2017, Lawrence Livermore National Security, LLC. Produced at + Copyright (c) 2021, Lawrence Livermore National Security, LLC. Produced at the Lawrence Livermore National Laboratory. LLNL-CODE-734707. All Rights reserved. See files LICENSE and NOTICE for details. diff --git a/src/fmsio.c b/src/fmsio.c index 2fc44bd..62afdee 100644 --- a/src/fmsio.c +++ b/src/fmsio.c @@ -1,5 +1,5 @@ /* - Copyright (c) 2020, Lawrence Livermore National Security, LLC. Produced at + Copyright (c) 2021, Lawrence Livermore National Security, LLC. Produced at the Lawrence Livermore National Laboratory. LLNL-CODE-734707. All Rights reserved. See files LICENSE and NOTICE for details. diff --git a/src/fmsio.h b/src/fmsio.h index 35e3dc2..bce6615 100644 --- a/src/fmsio.h +++ b/src/fmsio.h @@ -1,5 +1,5 @@ /* - Copyright (c) 2020, Lawrence Livermore National Security, LLC. Produced at + Copyright (c) 2021, Lawrence Livermore National Security, LLC. Produced at the Lawrence Livermore National Laboratory. LLNL-CODE-734707. All Rights reserved. See files LICENSE and NOTICE for details. From 8ee63e0e6551f08372f7b8de5560d711dda48ef6 Mon Sep 17 00:00:00 2001 From: Tzanio Date: Tue, 24 Aug 2021 19:32:31 -0700 Subject: [PATCH 15/17] Added a CHANGELOG --- CHANGELOG | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 CHANGELOG diff --git a/CHANGELOG b/CHANGELOG new file mode 100644 index 0000000..16def8a --- /dev/null +++ b/CHANGELOG @@ -0,0 +1,22 @@ + ███████ ███ ███ ███████ + ██ ████ ████ ██ + █████ ██ ████ ██ ███████ + ██ ██ ██ ██ ██ + ██ ██ ██ ███████ + + CEED's high-order Field and Mesh Specification + + +Version 0.2, released on Aug 27, 2021 +===================================== + +- Added support for writing and reading FmsDataCollections both in ASCII and + binary format via Conduit. + +- Added regression and code styling. + + +Version 0.1, released on Jul 8, 2018 +==================================== + +- Initial release. From 43fc4947eb07d07b8bf8cc97c1da2d671070bd63 Mon Sep 17 00:00:00 2001 From: Veselin Dobrev Date: Fri, 10 Sep 2021 12:01:28 -0700 Subject: [PATCH 16/17] Update release date in CHANGELOG. Mention FMS file support in VisIt. --- CHANGELOG | 4 +++- README.md | 6 +++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 16def8a..b0403bc 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -7,12 +7,14 @@ CEED's high-order Field and Mesh Specification -Version 0.2, released on Aug 27, 2021 +Version 0.2, released on Sep 10, 2021 ===================================== - Added support for writing and reading FmsDataCollections both in ASCII and binary format via Conduit. +- Visualization for FMS files is available in VisIt v3.2, visit.llnl.gov. + - Added regression and code styling. diff --git a/README.md b/README.md index c3b27e6..2616287 100644 --- a/README.md +++ b/README.md @@ -16,6 +16,9 @@ solutions and meshes, as those depicted below, as well as non-standard finite elements, such as Nedelec and Raviart-Thomas elements. See the [FMS documentation](doc/fms.md) for more details. +Initial support for the FMS file formats is available in +[VisIt](https://visit.llnl.gov/) version 3.2. + ![High-order mesh and solution](doc/triple-pt-2x2.png) The following diagram illustrates the current and planned components of FMS. @@ -42,7 +45,8 @@ exchange and high-order visualization and data analysis. ## Building -You can get started with the default build configuration using the command line listed below. Checkout the [build documentation](doc/build.md) for more info. +You can get started with the default build configuration using the command line +listed below. Checkout the [build documentation](doc/build.md) for more info. ```console mkdir build From 52a1000c3e4b5a701ac170886d87094ebf097ab7 Mon Sep 17 00:00:00 2001 From: Tzanio Date: Fri, 10 Sep 2021 12:42:25 -0700 Subject: [PATCH 17/17] Update README --- README.md | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 2616287..e97369d 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,17 @@ -# FMS: CEED's high-order Field and Mesh Specification + ███████ ███ ███ ███████ + ██ ████ ████ ██ + █████ ██ ████ ██ ███████ + ██ ██ ██ ██ ██ + ██ ██ ██ ███████ + + CEED's high-order Field and Mesh Specification + [![License](https://img.shields.io/badge/License-BSD%202--Clause-orange.svg)](https://opensource.org/licenses/BSD-2-Clause) [![Documentation](https://codedocs.xyz/CEED/FMS.svg)](https://codedocs.xyz/CEED/FMS/) +[![Build and Test (GH Actions)](https://github.com/CEED/FMS/actions/workflows/build-and-test.yaml/badge.svg?branch=master)](https://github.com/CEED/FMS/actions?query=workflow%3Abuild-and-test) +[![Build and Test (GH Actions)](https://github.com/CEED/FMS/actions/workflows/check-style.yaml/badge.svg?branch=master)](https://github.com/CEED/FMS/actions?query=workflow%3Acheck-style) + ## High-Order Data Description