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