1 #ifndef _H5BLOCK_H_ 2 #define _H5BLOCK_H_ 3 4 #ifdef __cplusplus 5 extern "C" { 6 #endif 7 8 /*! 9 Include read/write call variants for different data types and 10 field dimensions. 11 */ 12 #include "H5BlockReadWrite.h" 13 14 #define H5BLOCK_FIELD_ORIGIN_NAME "__Origin__" 15 #define H5BLOCK_FIELD_SPACING_NAME "__Spacing__" 16 17 /*! 18 Interface for block structured field data. 19 */ 20 VTKH5PART_EXPORT 21 h5part_int64_t 22 H5BlockDefine3DFieldLayout ( 23 H5PartFile *f, 24 const h5part_int64_t i_start, 25 const h5part_int64_t i_end, 26 const h5part_int64_t j_start, 27 const h5part_int64_t j_end, 28 const h5part_int64_t k_start, 29 const h5part_int64_t k_end 30 ); 31 32 VTKH5PART_EXPORT 33 h5part_int64_t 34 H5BlockDefine3DChunkDims ( 35 H5PartFile *f, 36 const h5part_int64_t i, 37 const h5part_int64_t j, 38 const h5part_int64_t k 39 ); 40 41 VTKH5PART_EXPORT 42 h5part_int64_t 43 H5BlockGet3DChunkDims( 44 H5PartFile *f, 45 const char *field_name, 46 h5part_int64_t *dims 47 ); 48 49 VTKH5PART_EXPORT 50 h5part_int64_t 51 H5Block3dGetPartitionOfProc ( 52 H5PartFile *f, 53 const h5part_int64_t proc, 54 h5part_int64_t *i_start, 55 h5part_int64_t *i_end, 56 h5part_int64_t *j_start, 57 h5part_int64_t *j_end, 58 h5part_int64_t *k_start, 59 h5part_int64_t *k_end 60 ); 61 62 VTKH5PART_EXPORT 63 h5part_int64_t 64 H5Block3dGetReducedPartitionOfProc ( 65 H5PartFile *f, 66 h5part_int64_t proc, 67 h5part_int64_t *i_start, 68 h5part_int64_t *i_end, 69 h5part_int64_t *j_start, 70 h5part_int64_t *j_end, 71 h5part_int64_t *k_start, 72 h5part_int64_t *k_end 73 ); 74 75 VTKH5PART_EXPORT 76 h5part_int64_t 77 H5Block3dGetProcOf ( 78 H5PartFile *f, 79 h5part_int64_t i, 80 h5part_int64_t j, 81 h5part_int64_t k 82 ); 83 84 VTKH5PART_EXPORT 85 h5part_int64_t 86 H5BlockGetNumFields ( 87 H5PartFile *f 88 ); 89 90 VTKH5PART_EXPORT 91 h5part_int64_t 92 H5BlockGetFieldInfo ( 93 H5PartFile *f, 94 const h5part_int64_t idx, 95 char *name, 96 const h5part_int64_t len_name, 97 h5part_int64_t *grid_rank, 98 h5part_int64_t *grid_dims, 99 h5part_int64_t *field_rank, 100 h5part_int64_t *type 101 ); 102 103 VTKH5PART_EXPORT 104 h5part_int64_t 105 H5BlockGetFieldInfoByName ( 106 H5PartFile *f, 107 const char *field_name, 108 h5part_int64_t *grid_rank, 109 h5part_int64_t *grid_dims, 110 h5part_int64_t *field_rank, 111 h5part_int64_t *type 112 ); 113 114 VTKH5PART_EXPORT 115 h5part_int64_t 116 H5Block3dGetFieldOrigin ( 117 H5PartFile *f, 118 const char *field_name, 119 h5part_float64_t *x_origin, 120 h5part_float64_t *y_origin, 121 h5part_float64_t *z_origin 122 ); 123 124 VTKH5PART_EXPORT 125 h5part_int64_t 126 H5Block3dSetFieldOrigin ( 127 H5PartFile *f, 128 const char *field_name, 129 const h5part_float64_t x_origin, 130 const h5part_float64_t y_origin, 131 const h5part_float64_t z_origin 132 ); 133 134 VTKH5PART_EXPORT 135 h5part_int64_t 136 H5Block3dGetFieldSpacing ( 137 H5PartFile *f, 138 const char *field_name, 139 h5part_float64_t *x_spacing, 140 h5part_float64_t *y_spacing, 141 h5part_float64_t *z_spacing 142 ); 143 144 VTKH5PART_EXPORT 145 h5part_int64_t 146 H5Block3dSetFieldSpacing ( 147 H5PartFile *f, 148 const char *field_name, 149 const h5part_float64_t x_spacing, 150 const h5part_float64_t y_spacing, 151 const h5part_float64_t z_spacing 152 ); 153 154 VTKH5PART_EXPORT 155 h5part_int64_t 156 H5BlockWriteFieldAttrib ( 157 H5PartFile *f, 158 const char *field_name, 159 const char *attrib_name, 160 const h5part_int64_t attrib_type, 161 const void *attrib_value, 162 const h5part_int64_t attrib_nelem 163 ); 164 165 VTKH5PART_EXPORT 166 h5part_int64_t 167 H5BlockWriteFieldAttribString ( 168 H5PartFile *f, 169 const char *field_name, 170 const char *attrib_name, 171 const char *attrib_value 172 ); 173 174 VTKH5PART_EXPORT 175 h5part_int64_t 176 H5BlockGetNumFieldAttribs ( 177 H5PartFile *f, 178 const char *field_name 179 ); 180 181 VTKH5PART_EXPORT 182 h5part_int64_t 183 H5BlockGetFieldAttribInfo ( 184 H5PartFile *f, 185 const char *field_name, 186 const h5part_int64_t attrib_idx, 187 char *attrib_name, 188 const h5part_int64_t len_of_attrib_name, 189 h5part_int64_t *attrib_type, 190 h5part_int64_t *attrib_nelem 191 ); 192 193 VTKH5PART_EXPORT 194 h5part_int64_t 195 H5BlockReadFieldAttrib ( 196 H5PartFile *f, 197 const char *field_name, 198 const char *attrib_name, 199 void *attrib_value 200 ); 201 202 VTKH5PART_EXPORT 203 h5part_int64_t 204 H5BlockHasFieldData ( 205 H5PartFile *f 206 ); 207 208 209 #ifdef __cplusplus 210 } 211 #endif 212 213 #endif 214