34 const char*coordinate_system)
38int nDims = H5Tget_nmembers(Point_hid_t);
44 nDims, dims, Point_hid_t, origin, spacing);
56 const char*coordinate_system)
60int nDims = H5Tget_nmembers(Point_hid_t);
66 nDims, dims, Point_hid_t, origin, spacing);
78 const char*coordinate_system)
87 end.
x = origin->
x + spacing->
x*(dims[0]-1);
88 end.
y = origin->
y + spacing->
y*(dims[1]-1);
89 end.
z = origin->
z + spacing->
z*(dims[2]-1);
91 center.
x = 0.5*(origin->
x + end.
x);
92 center.
y = 0.5*(origin->
y + end.
y);
93 center.
z = 0.5*(origin->
z + end.
z);
97 minmax[0].
x = origin->
x; minmax[0].
y = origin->
y; minmax[0].
z = origin->
z;
98 minmax[1].
x = end.
x; minmax[1].
y = end.
y; minmax[1].
z = end.
z;
115 const char*coordinate_system)
123 spacing.
x = (end->
x - start->
x) / (dims[0]-1);
124 spacing.
y = (end->
y - start->
y) / (dims[1]-1);
125 spacing.
z = (end->
z - start->
z) / (dims[2]-1);
127 center.
x = 0.5*(start->
x + end->
x);
128 center.
y = 0.5*(start->
y + end->
y);
129 center.
z = 0.5*(start->
z + end->
z);
136 minmax[0].
x = start->
x; minmax[0].
y = start->
y; minmax[0].
z = start->
z;
137 minmax[1].
x = end->
x; minmax[1].
y = end->
y; minmax[1].
z = end->
z;
151 const char*coordinate_system,
174 const char*coordinate_system,
178int i, component_count;
182int nDims = H5Tget_nmembers(Point_hid_t);
186 nDims, dims, Point_hid_t, origin, spacing))
193 va_start(vl, property_id);
196 for(i=0; i<nDims; i++)
198 hsize_t length = dims[i];
199 const void*dataPtr = va_arg(vl,
const void*);
204 if (!dataPtr)
continue;
207 name = H5Tget_member_name(Point_hid_t, i);
209 member_type = H5Tget_member_type(Point_hid_t, i);
213 H5Dclose(component_id);
247 const char*coordinate_system,
249 float*x,
float*y,
float*z)
260 if (!x && !y && !z) {
262 }
else if (z && !x && !y) {
276 const char*fieldname,
278 const void * dataPtr,
279 const char*coordinate_system, hid_t prop_id)
306 const char*fieldname,
308 const void ** dataPtr,
309 const char*coordinate_system,
321 if (!
F5Fwrites(f, fieldname, 3, dims, fieldtype, 0, dataPtr, property_id) )
337 const char*coordinate_system,
341 const char* fieldname;
345 int NumOfWrittenFields = 0;
356 va_start(vl, property_id);
362 fieldname = va_arg(vl,
const char*);
364 fieldtype = va_arg(vl, hid_t);
366 dataPtr = va_arg(vl,
const void*);
369 if ( (fieldname == NULL) || (dataPtr == NULL) )
373 F5Fwrite(f, fieldname, 3, dims, fieldtype, 0, dataPtr, property_id);
374 NumOfWrittenFields++;
383 return NumOfWrittenFields;
393 const char*coordinate_system,
397 const char* fieldname;
399 const void** dataPtr;
401 int NumOfWrittenFields = 0;
412 va_start(vl, property_id);
418 fieldname = va_arg(vl,
const char*);
420 fieldtype = va_arg(vl, hid_t);
422 dataPtr = va_arg(vl,
const void**);
425 if ( (fieldname == NULL) || (dataPtr == NULL) )
429 F5Fwrites(f, fieldname, 3, dims, fieldtype, 0, dataPtr, property_id);
430 NumOfWrittenFields++;
439 return NumOfWrittenFields;
450 const char*fieldname,
457 hid_t Field_id, attr_id, space_id;
461 Field_id = H5Dopen2(Representation_hid, fieldname, H5P_DEFAULT);
466 space_id = H5Dget_space(Field_id);
467 rank = H5Sget_simple_extent_dims(space_id, dims, NULL);
477 Field_id = H5Gopen2(Representation_hid, fieldname, H5P_DEFAULT);
480 space_id = H5Aget_space(attr_id);
481 rank = H5Sget_simple_extent_npoints(space_id);
483 H5Aread(attr_id, H5T_NATIVE_INT, UADims );
487 for(i=0; i<rank; i++)
500static herr_t search_extension(hid_t group_id,
const char *member_name,
void *operator_data)
502struct Dims*d = (
struct Dims*)operator_data;
503hid_t Rep_hid = H5Gopen2(group_id, member_name, H5P_DEFAULT);
505 F5printf(50,
"...search_extension()...");
537 H5Giterate(Top_id,
".", NULL, search_extension, &data);
550 const char*coordinate_system,
551 const hsize_t*sparse_idx_Ptr,
565 F5file_type(f, H5T_NATIVE_HSIZE), H5T_NATIVE_HSIZE, sparse_idx_Ptr,
584 const char*coordinate_system,
585 const hsize_t*sparse_idx_Ptr,
590 gridname, 1, coordinate_system);
607F5_API hid_t F5BgetUniformCartesianGridVertexData3D(hid_t SliceID,
609 const char*fieldname,
613hid_t G_id, T_id, R_id, D_id;
615 G_id = H5Gopen2(SliceID, gridname, H5P_DEFAULT);
618 printf(
"F5B: No Grid `%s'!\n", gridname);
626 printf(
"F5B: No Vertex information on Grid `%s'!\n", gridname);
630 R_id = H5Gopen2(T_id,
"Standard Cartesian Chart 3D", H5P_DEFAULT);
634 printf(
"F5B: No representation in the standard cartesian chart of Grid Vertices from `%s'!\n", gridname);
638 D_id = H5Dopen2(R_id, fieldname, H5P_DEFAULT);
642 printf(
"F5B: No Vertex dataset `%s' on Grid `%s'!\n", fieldname, gridname);
647hid_t space_id = H5Dget_space(D_id);
650int nD = H5Sget_simple_extent_dims(space_id, hdims, NULL);
hsize_t * F5B_permute_dimensions(hsize_t *target_dims, int rank, const hsize_t *source_dims, int perm_vector[FIBER_MAX_RANK], int perm_vector_size)
hid_t F5file_type(F5Path *fpath, hid_t fieldtype)
F5_API int F5Cset(F5Path *fpath, const char *fieldname, const char *content_type)
F5_API int F5Fset_range(F5Path *f, const char *fragment_name, const void *minmax)
F5_API int F5Fwrites(F5Path *fpath, const char *fieldname, int rank, hsize_t *dims, hid_t fieldtype, hid_t memtype, const void **dataPtr, hid_t property_id)
hid_t F5LTmake_enum_type(F5Path *fpath)
F5_point3f_t F5_vec3_point_t
#define FIBER_UNIFORMARRAY_DELTA_ATTRIBUTE
#define FIBER_HDF5_SPARSE
#define FIBER_UNIFORMARRAY_ELEMENTS_ATTRIBUTE
#define FIBER_UNIFORMARRAY_BASE_ATTRIBUTE
#define FIBER_HDF5_POINTS
#define FIBER_FIELD_DATASPACE_DIMENSIONS_ATTRIBUTE
#define FIBER_HDF5_POSITIONS_STRING
void F5I_add_field(F5Path *fpath, const char *fieldname)
#define F5printf(verbosity,...)
F5_API int F5Fwrite_linear(F5Path *fpath, const char *fieldname, int rank, hsize_t *dims, hid_t fieldtype, const void *base, const void *delta)
F5ErrorCode F5Fwrite(F5Path *fpath, const char *fieldname, int rank, hsize_t *dims, hid_t fieldtype, hid_t memtype, const void *dataPtr, hid_t property_id)
hid_t F5Lwrite(hid_t R_id, const char *fieldname, int dimension, const hsize_t *dims, hid_t fieldtype, hid_t memtype, const void *dataPtr, hid_t enum_type, hid_t dcpl_id)
int F5Lget_field_dimension_and_type(hid_t Representation_hid, const char *fieldname, hsize_t dims[FIBER_MAX_RANK], hid_t *type_id)
hid_t F5Lget_type(hid_t Field_hid, int FieldIDisGroup, hid_t fapl_id)
hid_t F5Lwrite1D(hid_t R_id, const char *fieldname, hsize_t nElements, hid_t fieldtype, hid_t memtype, const void *dataPtr, hid_t enum_type, hid_t property_id)
F5Path * F5Rcreate_cartesian_nD(hid_t File_id, double time, const char *gridname, int Dims, const char *coordinate_system)
F5Path * F5Rcreate_cartesian_3D(hid_t File_id, double time, const char *gridname, const char *coordinate_system)
hid_t F5Aopen_name(hid_t location, const char *name)
F5Path * F5Rcreate_curvilinear_cartesian3D(hid_t File_id, double time, const char *gridname, const F5_vec3_point_t *coords, hsize_t dims[3], const char *coordinate_system, hid_t property_id)
F5Path * F5Rcreate_rectilinear(hid_t File_id, double time, const char *gridname, const void *origin, const void *spacing, hsize_t *dims, const char *coordinate_system, hid_t property_id,...)
int F5get_extension(F5Path *grid, hsize_t dims[FIBER_MAX_RANK])
F5Path * F5Rcreate_rectilinear_cartesian3D(hid_t File_id, double time, const char *gridname, const F5_vec3_point_t *origin, const F5_vec3_float_t *spacing, hsize_t dims[3], const char *coordinate_system, hid_t property_id, float *x, float *y, float *z)
F5Path * F5Rcreate_uniform_cartesian3Dbbox(hid_t File_id, double time, const char *gridname, const F5_vec3_point_t *start, const F5_vec3_point_t *end, hsize_t dims[3], const char *coordinate_system)
int F5write_uniform_cartesian3Dvs(hid_t file_id, double time, const char *gridname, const F5_vec3_point_t *origin, const F5_vec3_float_t *spacing, hsize_t dims[3], const char *coordinate_system, hid_t property_id,...)
F5_API F5Path * F5Rcreate_uniform_sparse2(hid_t file_id, double time, const char *gridname, const F5_vec3_double_t *origin, const F5_vec3_double_t *spacing, hsize_t *dims, const char *coordinate_system, const hsize_t *sparse_idx_Ptr, hsize_t sparse_size, hid_t property_id)
F5Path * F5Fwrite_uniform_cartesian3Ds(hid_t file_id, double time, const char *gridname, const F5_vec3_point_t *origin, const F5_vec3_float_t *spacing, hsize_t dims[3], const char *fieldname, hid_t fieldtype, const void **dataPtr, const char *coordinate_system, hid_t property_id)
F5Path * F5Fwrite_uniform_cartesian3D(hid_t file_id, double time, const char *gridname, const F5_vec3_point_t *origin, const F5_vec3_float_t *spacing, hsize_t dims[3], const char *fieldname, hid_t fieldtype, const void *dataPtr, const char *coordinate_system, hid_t prop_id)
int F5write_uniform_cartesian3Dv(hid_t file_id, double time, const char *gridname, const F5_vec3_point_t *origin, const F5_vec3_float_t *spacing, hsize_t dims[3], const char *coordinate_system, hid_t property_id,...)
F5_API F5Path * F5Rcreate_uniform_sparse(hid_t file_id, double time, const char *gridname, const void *origin, const void *spacing, hsize_t *dims, const char *coordinate_system, const hsize_t *sparse_idx_Ptr, hsize_t sparse_size, hid_t property_id)
F5Path * F5Rcreate_uniform_cartesian3D(hid_t File_id, double time, const char *gridname, const F5_vec3_point_t *origin, const F5_vec3_float_t *spacing, hsize_t dims[3], const char *coordinate_system)
F5_ChartPrecisionTypes DoublePrecision
int perm_vector[FIBER_MAX_RANK]
F5_ChartPrecisionTypes SinglePrecision
ChartDomain_IDs * FileIDs
ChartDomain_IDs * myChart