Skip to content

Commit

Permalink
reads svm header
Browse files Browse the repository at this point in the history
  • Loading branch information
Mike Park authored and Mike Park committed Apr 27, 2021
1 parent 40d38b2 commit 80dc175
Show file tree
Hide file tree
Showing 3 changed files with 67 additions and 0 deletions.
3 changes: 3 additions & 0 deletions src/ref_import.c
Expand Up @@ -24,6 +24,7 @@

#include "ref_endian.h"
#include "ref_malloc.h"
#include "ref_part.h"

#define VTK_LINE (3)
#define VTK_TRIANGLE (5)
Expand Down Expand Up @@ -1475,6 +1476,8 @@ REF_STATUS ref_import_by_extension(REF_GRID *ref_grid_ptr, REF_MPI ref_mpi,
} else if (strcmp(&filename[end_of_string - 5], ".grid") == 0) {
RSS(ref_import_i_like_cfd_grid(ref_grid_ptr, ref_mpi, filename),
"I Like CFD grid failed");
} else if (strcmp(&filename[end_of_string - 4], ".avm") == 0) {
RSS(ref_part_avm(ref_grid_ptr, ref_mpi, filename), "avm failed");
} else {
printf("%s: %d: %s %s\n", __FILE__, __LINE__,
"input file name extension unknown", filename);
Expand Down
60 changes: 60 additions & 0 deletions src/ref_part.c
Expand Up @@ -1390,6 +1390,62 @@ static REF_STATUS ref_part_bin_ugrid(REF_GRID *ref_grid_ptr, REF_MPI ref_mpi,
return REF_SUCCESS;
}

REF_STATUS ref_part_avm(REF_GRID *ref_grid_ptr, REF_MPI ref_mpi,
const char *filename) {
REF_GRID ref_grid;
REF_BOOL verbose = REF_TRUE;
FILE *file;
REF_INT dim;

RSS(ref_grid_create(ref_grid_ptr, ref_mpi), "create grid");
ref_grid = *ref_grid_ptr;

file = NULL;
if (ref_mpi_once(ref_mpi)) {
int i, length, magic, revision, meshes, precision;
char letter;
file = fopen(filename, "r");
if (NULL == (void *)file) printf("unable to open %s\n", filename);
RNS(file, "unable to open file");
length = 6;
for (i = 0; i < length; i++) {
REIS(1, fread(&letter, sizeof(letter), 1, file), "letter");
if (verbose) printf("%c", letter);
}
if (verbose) printf("\n");
REIS(1, fread(&magic, sizeof(magic), 1, file), "dim");
if (verbose) printf("%d magic\n", magic);
REIS(1, magic, "magic");
REIS(1, fread(&revision, sizeof(revision), 1, file), "dim");
if (verbose) printf("%d revision\n", revision);
REIS(2, revision, "revision");
REIS(1, fread(&meshes, sizeof(meshes), 1, file), "dim");
if (verbose) printf("%d meshes\n", meshes);
REIS(1, meshes, "meshes");
length = 128;
for (i = 0; i < length; i++) {
REIS(1, fread(&letter, sizeof(letter), 1, file), "letter");
if (verbose) printf("%c", letter);
}
if (verbose) printf("\n");
REIS(1, fread(&precision, sizeof(precision), 1, file), "dim");
if (verbose) printf("%d precision\n", precision);
REIS(2, precision, "precision");
REIS(1, fread(&dim, sizeof(dim), 1, file), "dim");
if (verbose) printf("%d dim\n", dim);
RAS(2 <= dim && dim <= 3, "dim");
REIS(1, fread(&length, sizeof(length), 1, file), "dim");
if (verbose) printf("%d description length\n", length);
for (i = 0; i < length; i++) {
REIS(1, fread(&letter, sizeof(letter), 1, file), "dim");
if (verbose) printf("%c", letter);
}
if (verbose) printf("\n");
}
if (ref_grid_once(ref_grid)) REIS(0, fclose(file), "close file");
return REF_SUCCESS;
}

static REF_STATUS ref_part_metric_solb(REF_NODE ref_node,
const char *filename) {
REF_MPI ref_mpi = ref_node_mpi(ref_node);
Expand Down Expand Up @@ -2708,6 +2764,10 @@ REF_STATUS ref_part_by_extension(REF_GRID *ref_grid_ptr, REF_MPI ref_mpi,
RSS(ref_part_meshb(ref_grid_ptr, ref_mpi, filename), "meshb failed");
return REF_SUCCESS;
}
if (end_of_string > 4 && strcmp(&filename[end_of_string - 4], ".avm") == 0) {
RSS(ref_part_avm(ref_grid_ptr, ref_mpi, filename), "avm failed");
return REF_SUCCESS;
}
printf("%s: %d: %s %s\n", __FILE__, __LINE__,
"input file name extension unknown", filename);
RSS(REF_FAILURE, "unknown file extension");
Expand Down
4 changes: 4 additions & 0 deletions src/ref_part.h
Expand Up @@ -79,6 +79,10 @@ REF_STATUS ref_part_metric(REF_NODE ref_node, const char *filename);
REF_STATUS ref_part_scalar(REF_GRID ref_grid, REF_INT *ldim, REF_DBL **scalar,
const char *filename);

/* call from ref_import */
REF_STATUS ref_part_avm(REF_GRID *ref_grid_ptr, REF_MPI ref_mpi,
const char *filename);

END_C_DECLORATION

#endif /* REF_PART_H */

0 comments on commit 80dc175

Please sign in to comment.