SU2
cgns_header.h
1 /*-------------------------------------------------------------------------
2 This software is provided 'as-is', without any express or implied warranty.
3 In no event will the authors be held liable for any damages arising from
4 the use of this software.
5 
6 Permission is granted to anyone to use this software for any purpose,
7 including commercial applications, and to alter it and redistribute it
8 freely, subject to the following restrictions:
9 
10 1. The origin of this software must not be misrepresented; you must not
11  claim that you wrote the original software. If you use this software
12  in a product, an acknowledgment in the product documentation would be
13  appreciated but is not required.
14 
15 2. Altered source versions must be plainly marked as such, and must not
16  be misrepresented as being the original software.
17 
18 3. This notice may not be removed or altered from any source distribution.
19 -------------------------------------------------------------------------*/
20 
21 #ifndef CGNS_HEADER_H
22 #define CGNS_HEADER_H
23 
24 #include <math.h> /* included for definition of HUGE */
25 #include "cgnstypes.h"
26 #include "cgns_io.h"
27 
28 typedef char char_33[33];
29 #ifdef CG_BUILD_BASESCOPE
30 typedef char char_66[66]; /* 32 + '/' + 32 + '\0' */
31 #else
32 typedef char char_66[33]; /* 32 + '\0' (caller's malloc compat issues) */
33 #endif
34 typedef char const cchar_33[33];
35 typedef cgsize_t cgsize6_t[6];
36 typedef int cgint3_t[3];
37 
38 #define MIN(a,b) (((a)<(b))?(a):(b))
39 #define MAX(a,b) (((a)>(b))?(a):(b))
40 
41 #define CGNS_DELETE_SHIFT(nchild, child, func_free) {\
42  for (n=0; n<parent->nchild && strcmp(parent->child[n].name,node_name); n++);\
43  if (n==parent->nchild) {\
44  cgi_error("Error in cg_delete: Can't find node '%s'",node_name);\
45  return 1;\
46  }\
47  func_free(&parent->child[n]);\
48  for (m=n+1; m<parent->nchild; m++) parent->child[m-1] = parent->child[m];\
49  if (--parent->nchild == 0) {\
50  free(parent->child);\
51  parent->child=0;\
52  }\
53 }
54 
55 #define CGNS_DELETE_CHILD(child, func_free) {\
56  if (parent->child) {\
57  func_free(parent->child);\
58  free(parent->child);\
59  }\
60  parent->child = 0;\
61 }
62 
63 #define ADDRESS4MULTIPLE(parent_type, nchild, child, child_type) {\
64  parent_type *parent = (parent_type *)posit->posit;\
65  child = 0;\
66  if (local_mode == CG_MODE_WRITE) {\
67  for (n=0; n<parent->nchild && strcmp(parent->child[n].name,given_name);n++);\
68  if (n==parent->nchild) {\
69  if (parent->nchild==0) parent->child = CGNS_NEW(child_type, 1);\
70  else parent->child = CGNS_RENEW(child_type,parent->nchild+1, parent->child);\
71  child = &parent->child[parent->nchild];\
72  parent->nchild++;\
73  } else {\
74  if (cg->mode == CG_MODE_WRITE) error1=1;\
75  else {\
76  parent_id = parent->id;\
77  child= &(parent->child[n]);\
78  }\
79  }\
80  } else if (local_mode == CG_MODE_READ) {\
81  if (given_no > parent->nchild || given_no<=0) error2=1;\
82  else child = &parent->child[given_no-1];\
83  }\
84 }
85 
86 #define ADDRESS4SINGLE_ALLOC(parent_type, child) {\
87  parent_type *parent = (parent_type *)posit->posit;\
88  child = &parent->child;\
89  parent_id = parent->id;\
90 }
91 
92 #define ADDRESS4SINGLE(parent_type, child, child_type, size) {\
93  parent_type *parent = (parent_type *)posit->posit;\
94  if (local_mode==CG_MODE_WRITE) {\
95  if (parent->child==0) parent->child = CGNS_NEW(child_type, size);\
96  else {\
97  if (cg->mode == CG_MODE_WRITE) error1=1;\
98  else parent_id = parent->id;\
99  }\
100  }\
101  child = parent->child;\
102 }
103 
104 #define NDESCRIPTOR(parent_type) {\
105  parent_type *parent = (parent_type *)posit->posit;\
106  (*ndescriptors)= parent->ndescr;\
107 }
108 
109 /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - *\
110  * Macros, moved from cgnslib.h *
111 \* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
112 
113 #define CGNS_NEW(type,size) (type *)cgi_malloc((size_t)(size),sizeof(type))
114 #define CGNS_RENEW(type,size,old) (type *)cgi_realloc(old,(size_t)(size)*sizeof(type))
115 #define CGNS_FREE(data) free(data);
116 
117 #define INVALID_ENUM(E,EMAX) ((int)(E)<0 || (int)(E)>=(EMAX))
118 
119 #define DEBUG_FILE 0
120 #define DEBUG_BASE 0
121 #define DEBUG_ZONE 0
122 #define DEBUG_SORT 0
123 #define DEBUG_ARRAY 0
124 #define DEBUG_SOL 0
125 #define DEBUG_HOLE 0
126 #define DEBUG_CONN 0
127 #define DEBUG_1TO1 0
128 #define DEBUG_BOCO 0
129 #define DEBUG_GOTO 0
130 #define DEBUG_FTOC 0
131 #define DEBUG_VERSION 0
132 #define DEBUG_LINKS 0
133 
134 #define SKIP_DATA 0
135 #define READ_DATA 1
136 
137 /*
138  * Internal Structures:
139  */
140 
141 /* Note that the link information held in these structs are only needed
142 ** until the CGNS file is written. At that point the ADF link mechanism
143 ** takes over and reading/modifying linked nodes is transparent to this
144 ** API.
145 */
146 typedef struct {
147  char *filename; /* filename to use for the link; empty if within file */
148  char *name_in_file; /* path of the node which the link will point to */
149 } cgns_link; /* V2.1 */
150 
151 typedef struct { /* Descriptor_t node */
152  char_33 name; /* name of ADF node */
153  double id; /* ADF ID number (address) of node */
154  cgns_link *link; /* link information */ /* V2.1 */
155  int in_link; /* set if child of a linked node */
156  char *text; /* Copy of Descriptor data */
157 } cgns_descr;
158 
159 /* CPEX 0033 */
160 typedef struct {
161  double id;
162  char_33 name;
163  char_66 family;
164 } cgns_famname;
165 
166 typedef struct { /* DimensionalUnits_t Node */
167  char_33 name; /* name of ADF node */
168  double id; /* ADF ID number (address) of node */
169  cgns_link *link; /* link information */ /* V2.1 */
170  int in_link; /* set if child of a linked node */
171  int nunits; /* number of units (5 or 8) */
172  CGNS_ENUMT(MassUnits_t) mass;
173  CGNS_ENUMT(LengthUnits_t) length;
174  CGNS_ENUMT(TimeUnits_t) time;
175  CGNS_ENUMT(TemperatureUnits_t) temperature;
176  CGNS_ENUMT(AngleUnits_t) angle;
177  CGNS_ENUMT(ElectricCurrentUnits_t) current;
178  CGNS_ENUMT(SubstanceAmountUnits_t) amount;
179  CGNS_ENUMT(LuminousIntensityUnits_t) intensity;
180 } cgns_units;
181 
182 typedef struct { /* DimensionalExponents_t Node */
183  char_33 name; /* name of ADF node */
184  double id; /* ADF ID number (address) of node */
185  cgns_link *link; /* link information */ /* V2.1 */
186  int in_link; /* set if child of a linked node */
187  char_33 data_type; /* type of data */
188  void *data; /* MassExponent, LengthExponent,
189  TimeExponent, TemperatureExponent, AngleExponent */
190  /* ElecCurrentExponent, MoleExponent, LumIntensityExponent */
191  int nexps; /* number of exponents written */
192 } cgns_exponent;
193 
194 typedef struct { /* DataConversion_t Node */
195  char_33 name; /* name of ADF node */
196  double id; /* ADF ID number (address) of node */
197  cgns_link *link; /* link information */ /* V2.1 */
198  int in_link; /* set if child of a linked node */
199  char_33 data_type; /* type of data */
200  void *data; /* ConversionScale, ConversionOffset */
202 
203 typedef struct { /* DataArray_t Node */
204  char_33 name; /* name of ADF node */
205  double id; /* ADF ID number (address) of node */
206  cgns_link *link; /* link information */ /* V2.1 */
207  int in_link; /* set if child of a linked node */
208  char_33 data_type; /* type of data */
209  int data_dim; /* number of dimensions */
210  cgsize_t dim_vals[12]; /* Size in each dimension */
211  void *data; /* data */
212  int ndescr; /* no of Descriptor_t nodes */
213  cgns_descr *descr; /* ptrs to in-memory copy of descr */
214  CGNS_ENUMT(DataClass_t) data_class; /* Class of data */
215  cgns_units *units; /* ptrs to in-memory copy of units */
216  cgns_exponent *exponents;/* ptrs to in-memory copy of exponents */
217  cgns_conversion *convert;/* ptrs to in-memory copy of convert */
218  cgsize_t range[2]; /* index range for currently stored data*/
219 } cgns_array;
220 
221 typedef struct { /* IndexArray/Range_t Node */
222  char_33 name; /* name of ADF node */
223  double id; /* ADF ID number (address) of node */
224  cgns_link *link; /* link information */ /* V2.1 */
225  int in_link; /* set if child of a linked node */
226  CGNS_ENUMT(PointSetType_t) type; /* PointList, PointRange, ... */
227  char_33 data_type; /* type of data */
228  cgsize_t npts; /* number of points to define the patch */
229  cgsize_t size_of_patch; /* nr of nodes or elements in patch */
230  void *data; /* data (only loaded in MODE_MODIFY */
231 } cgns_ptset; /* when version mismatch) */
232 
233 typedef struct cgns_user_data_s /* UserDefinedData_t Node */
234 {
235  char_33 name; /* name of ADF node */
236  double id; /* ADF ID number (address) of node */
237  cgns_link *link; /* link information */ /* V2.1 */
238  int in_link; /* set if child of a linked node */
239  int ndescr; /* no of Descriptor_t nodes */
240  cgns_descr *descr; /* ptrs to in-memory copy of descr */
241  int narrays; /* No of DataArray_t nodes */
242  cgns_array *array; /* ptrs to in-mem. copy of Data Arrays */
243  CGNS_ENUMT(DataClass_t) data_class; /* Class of data */
244  cgns_units *units; /* ptrs to in-memory copy of units */
245  CGNS_ENUMT(GridLocation_t) location;/* Grid location where data is recorded */
246  char_66 family_name; /* Family name */
247  int ordinal; /* option to specify a rank */
248  cgns_ptset *ptset; /* PointList, PointRange */
249  int nuser_data; /* number of user defined data nodes */
250  struct cgns_user_data_s *user_data; /* User defined data. */
251  /* CPEX 0034 */
252  int nfamname;
253  cgns_famname *famname;
254 } cgns_user_data; /* V2.1 */
255 
256 typedef struct { /* IntegralData_t Node */
257  char_33 name; /* name of ADF node */
258  double id; /* ADF ID number (address) of node */
259  cgns_link *link; /* link information */ /* V2.1 */
260  int in_link; /* set if child of a linked node */
261  int ndescr; /* no of Descriptor_t nodes */
262  cgns_descr *descr; /* ptrs to in-memory copy of descr */
263  int narrays; /* number of data arrays */
264  cgns_array *array; /* ptrs to in-memory copies of data_arrays */
265  CGNS_ENUMT(DataClass_t) data_class; /* Class of data */
266  cgns_units *units; /* ptrs to in-memory copy of units */
267  int nuser_data; /* number of user defined data nodes */ /* V2.1 */
268  cgns_user_data *user_data; /* User defined data. */ /* V2.1 */
269 } cgns_integral;
270 
271 typedef struct { /* DiscreteData_t Node */
272  char_33 name; /* name of ADF node */
273  double id; /* ADF ID number (address) of node */
274  cgns_link *link; /* link information */ /* V2.1 */
275  int in_link; /* set if child of a linked node */
276  int ndescr; /* no of Descriptor_t nodes */
277  cgns_descr *descr; /* ptrs to in-memory copy of descr */
278  cgns_ptset *ptset; /* PointList, PointRange */
279  CGNS_ENUMT(GridLocation_t) location;/* Grid location where data is recorded*/
280  int *rind_planes; /* No. of rind-planes on each zone face */
281  int narrays; /* number of data arrays */
282  cgns_array *array; /* ptrs to in-memory copies of data_arrays */
283  CGNS_ENUMT(DataClass_t) data_class; /* Class of data */
284  cgns_units *units; /* ptrs to in-memory copy of units */
285  int nuser_data; /* number of user defined data nodes */ /* V2.1 */
286  cgns_user_data *user_data; /* User defined data. */ /* V2.1 */
287 } cgns_discrete;
288 
289 typedef struct { /* ConvergenceHistory_t node */
290  char_33 name; /* name of ADF node */
291  double id; /* ADF ID number (address) of node */
292  cgns_link *link; /* link information */ /* V2.1 */
293  int in_link; /* set if child of a linked node */
294  int iterations; /* no of iterations */
295  int ndescr; /* no of Descriptor_t nodes */
296  cgns_descr *descr; /* ptrs to in-memory copy of descr */
297  cgns_descr *NormDefinitions; /* Document the norms */
298  int narrays; /* number of data arrays */
299  cgns_array *array; /* ptrs to in-memory copies of data_arrays */
300  CGNS_ENUMT(DataClass_t) data_class; /* Class of data */
301  cgns_units *units; /* ptrs to in-memory copy of units */
302  int nuser_data; /* number of user defined data nodes */ /* V2.1 */
303  cgns_user_data *user_data; /* User defined data. */ /* V2.1 */
304 } cgns_converg;
305 
306 typedef struct { /* ReferenceState_t node */
307  char_33 name; /* name of ADF node */
308  double id; /* ADF ID number (address) of node */
309  cgns_link *link; /* link information */ /* V2.1 */
310  int in_link; /* set if child of a linked node */
311  int ndescr; /* no of Descriptor_t nodes */
312  cgns_descr *descr; /* ptrs to in-memory copy of descr */
313  cgns_descr *StateDescription;/* ReferenceStateDescription */
314  int narrays; /* number of data arrays */
315  cgns_array *array; /* ptrs to in-memory copies of data_arrays */
316  CGNS_ENUMT(DataClass_t) data_class; /* Class of data */
317  cgns_units *units; /* ptrs to in-memory copy of units */
318  int nuser_data; /* number of user defined data nodes */ /* V2.1 */
319  cgns_user_data *user_data; /* User defined data. */ /* V2.1 */
320 } cgns_state;
321 
322 typedef struct { /* Gravity_t node */ /* V2.2 */
323  char_33 name; /* name of ADF node */
324  double id; /* ADF ID number (address) of node */
325  cgns_link *link; /* link information */
326  int in_link; /* set if child of a linked node */
327  int ndescr; /* no of Descriptor_t nodes */
328  cgns_descr *descr; /* ptrs to in-memory copy of descr */
329  int narrays; /* should be 0 or 1 */
330  cgns_array *vector; /* ptrs to in-memory copy of GravityVector */
331  CGNS_ENUMT(DataClass_t)data_class; /* Class of data */
332  cgns_units *units; /* ptrs to in-memory copy of units */
333  int nuser_data; /* number of user defined data nodes */
334  cgns_user_data *user_data; /* User defined data. */
335 } cgns_gravity;
336 
337 typedef struct { /* Axisymmetry_t node */ /* V2.2 */
338  char_33 name; /* name of ADF node */
339  double id; /* ADF ID number (address) of node */
340  cgns_link *link; /* link information */
341  int in_link; /* set if child of a linked node */
342  int ndescr; /* no of Descriptor_t nodes */
343  cgns_descr *descr; /* ptrs to in-memory copy of descr */
344  int narrays; /* should be 2, 3 or 4 */
345  cgns_array *array; /* ptrs to in-memory copy of data arrays*/
346  CGNS_ENUMT(DataClass_t) data_class; /* Class of data */
347  cgns_units *units; /* ptrs to in-memory copy of units */
348  int nuser_data; /* number of user defined data nodes */
349  cgns_user_data *user_data; /* User defined data. */
350 } cgns_axisym;
351 
352 typedef struct { /* RotatingCoordinates_t node */ /* V2.2 */
353  char_33 name; /* name of ADF node */
354  double id; /* ADF ID number (address) of node */
355  cgns_link *link; /* link information */
356  int in_link; /* set if child of a linked node */
357  int ndescr; /* no of Descriptor_t nodes */
358  cgns_descr *descr; /* ptrs to in-memory copy of descr */
359  int narrays; /* should be 2, 3 or 4 */
360  cgns_array *array; /* ptrs to in-memory copy of data arrays*/
361  CGNS_ENUMT(DataClass_t) data_class; /* Class of data */
362  cgns_units *units; /* ptrs to in-memory copy of units */
363  int nuser_data; /* number of user defined data nodes */
364  cgns_user_data *user_data; /* User defined data. */
365 } cgns_rotating;
366 
367 typedef struct { /* WallFunction_t node */ /* V2.2 */
368  char_33 name; /* name of ADF node */
369  double id; /* ADF ID number (address) of node */
370  cgns_link *link; /* link information */
371  int in_link; /* set if child of a linked node */
372  int ndescr; /* no of Descriptor_t nodes */
373  cgns_descr *descr; /* ptrs to in-memory copy of descr */
374  CGNS_ENUMT(WallFunctionType_t) type;/* Type of wall function */
375  int nuser_data; /* number of user defined data nodes */
376  cgns_user_data *user_data; /* User defined data. */
377 } cgns_bcwall;
378 
379 typedef struct { /* Area_t node */ /* V2.2 */
380  char_33 name; /* name of ADF node */
381  double id; /* ADF ID number (address) of node */
382  cgns_link *link; /* link information */
383  int in_link; /* set if child of a linked node */
384  int ndescr; /* no of Descriptor_t nodes */
385  cgns_descr *descr; /* ptrs to in-memory copy of descr */
386  CGNS_ENUMT(AreaType_t) type; /* type of area */
387  int narrays; /* should be 2 */
388  cgns_array *array; /* ptrs to in-memory copy of data arrays*/
389  int nuser_data; /* number of user defined data nodes */
390  cgns_user_data *user_data; /* User defined data. */
391 } cgns_bcarea;
392 
393 typedef struct { /* BCProperty_t node */ /* V2.2 */
394  char_33 name; /* name of ADF node */
395  double id; /* ADF ID number (address) of node */
396  cgns_link *link; /* link information */
397  int in_link; /* set if child of a linked node */
398  int ndescr; /* no of Descriptor_t nodes */
399  cgns_descr *descr; /* ptrs to in-memory copy of descr */
400  cgns_bcwall *bcwall; /* ptrs to in-memory copy of bcwall */
401  cgns_bcarea *bcarea; /* ptrs to in-memory copy of bcarea */
402  int nuser_data; /* number of user defined data nodes */
403  cgns_user_data *user_data; /* User defined data. */
404 } cgns_bprop;
405 
406 typedef struct { /* Periodic_t node */ /* V2.2 */
407  char_33 name; /* name of ADF node */
408  double id; /* ADF ID number (address) of node */
409  cgns_link *link; /* link information */
410  int in_link; /* set if child of a linked node */
411  int ndescr; /* no of Descriptor_t nodes */
412  cgns_descr *descr; /* ptrs to in-memory copy of descr */
413  int narrays; /* should be 3 */
414  cgns_array *array; /* ptrs to in-memory copy of data arrays*/
415  CGNS_ENUMT(DataClass_t) data_class; /* Class of data */
416  cgns_units *units; /* ptrs to in-memory copy of units */
417  int nuser_data; /* number of user defined data nodes */
418  cgns_user_data *user_data; /* User defined data. */
419 } cgns_cperio;
420 
421 typedef struct { /* AverageInterface_t node */ /* V2.2 */
422  char_33 name; /* name of ADF node */
423  double id; /* ADF ID number (address) of node */
424  cgns_link *link; /* link information */
425  int in_link; /* set if child of a linked node */
426  int ndescr; /* no of Descriptor_t nodes */
427  cgns_descr *descr; /* ptrs to in-memory copy of descr */
428  CGNS_ENUMT(AverageInterfaceType_t) type; /* type of interface */
429  int nuser_data; /* number of user defined data nodes */
430  cgns_user_data *user_data; /* User defined data. */
431 } cgns_caverage;
432 
433 typedef struct { /* GridConnectivityProperty_t */ /* V2.2 */
434  char_33 name; /* name of ADF node */
435  double id; /* ADF ID number (address) of node */
436  cgns_link *link; /* link information */
437  int in_link; /* set if child of a linked node */
438  int ndescr; /* no of Descriptor_t nodes */
439  cgns_descr *descr; /* ptrs to in-memory copy of descr */
440  cgns_cperio *cperio; /* ptrs to in-memory copy of cperio */
441  cgns_caverage *caverage;/* ptrs to in-memory copy of caverage */
442  int nuser_data; /* number of user defined data nodes */
443  cgns_user_data *user_data; /* User defined data. */
444 } cgns_cprop;
445 
446 typedef struct { /* xxx Model_t node */
447  char_33 name; /* name of ADF node */
448  double id; /* ADF ID number (address) of node */
449  cgns_link *link; /* link information */ /* V2.1 */
450  int in_link; /* set if child of a linked node */
451  CGNS_ENUMT(ModelType_t) type;
452  int ndescr; /* no of Descriptor_t nodes */
453  cgns_descr *descr; /* ptrs to in-memory copy of descr */
454  int narrays; /* No of DataArray_t nodes */
455  cgns_array *array; /* ptrs to in-mem. copy of Data Arrays */
456  CGNS_ENUMT(DataClass_t) data_class; /* Class of data */
457  cgns_units *units; /* ptrs to in-memory copy of units */
458  int *diffusion_model; /* only for turbulence model. */
459  int dim_vals; /* dim. value for diffusion_model */
460  int nuser_data; /* number of user defined data nodes */ /* V2.1 */
461  cgns_user_data *user_data; /* User defined data. */ /* V2.1 */
462 } cgns_model;
463 
464 typedef struct { /* GoverningEquations_t node */
465  char_33 name; /* name of ADF node */
466  double id; /* ADF ID number (address) of node */
467  cgns_link *link; /* link information */ /* V2.1 */
468  int in_link; /* set if child of a linked node */
469  CGNS_ENUMT(GoverningEquationsType_t) type;
470  int ndescr; /* no of Descriptor_t nodes */
471  cgns_descr *descr; /* ptrs to in-memory copy of descr */
472  int *diffusion_model;
473  int dim_vals; /* dim. value for diffusion_model */
474  int nuser_data; /* number of user defined data nodes */ /* V2.1 */
475  cgns_user_data *user_data; /* User defined data. */ /* V2.1 */
477 
478 typedef struct { /* FlowEquationSet_t Node */
479  char_33 name; /* name of ADF node */
480  double id; /* ADF ID number (address) of node */
481  cgns_link *link; /* link information */ /* V2.1 */
482  int in_link; /* set if child of a linked node */
483  int ndescr; /* no of Descriptor_t nodes */
484  cgns_descr *descr; /* ptrs to in-memory copy of descr */
485  int equation_dim; /* dimensionality of the governing equations */
486  cgns_governing *governing; /* ptrs to in-mem. copy of GoverningEquations */
487  cgns_model *gas; /* ptrs to in-mem. copy of GasModel */
488  cgns_model *visc; /* ptrs to in-mem. copy of ViscosityM. */
489  cgns_model *conduct; /* ptrs to in-mem. copy of ThermalCond. */
490  cgns_model *closure; /* ptrs to in-mem. copy of Turb.Closure */
491  cgns_model *turbulence; /* ptrs to in-mem. copy of TurbulenceM. */
492  cgns_model *relaxation; /* ptrs to in-mem. copy of ThermalRelaxation . */
493  cgns_model *chemkin; /* ptrs to in-mem. copy of ChemicalKinetics. */
494  CGNS_ENUMT(DataClass_t) data_class; /* Class of data */
495  cgns_units *units; /* ptrs to in-memory copy of units */
496  int nuser_data; /* number of user defined data nodes */ /* V2.1 */
497  cgns_user_data *user_data; /* User defined data. */ /* V2.1 */
498  cgns_model *elecfield; /* ptrs to in-mem. copy of EMElecFieldM. */
499  cgns_model *magnfield; /* ptrs to in-mem. copy of EMMagneticFieldM. */
500  cgns_model *emconduct; /* ptrs to in-mem. copy of EMConductivityM. */
502 
503 typedef struct { /* BCData_t node */
504  char_33 name; /* name of ADF node */
505  double id; /* ADF ID number (address) of node */
506  cgns_link *link; /* link information */ /* V2.1 */
507  int in_link; /* set if child of a linked node */
508  int ndescr; /* no of Descriptor_t nodes */
509  cgns_descr *descr; /* ptrs to in-memory copy of descr */
510  int narrays; /* no. of global data arrays */
511  cgns_array *array; /* ptrs to in-mem. copy of local data */
512  CGNS_ENUMT(DataClass_t) data_class; /* Class of data */
513  cgns_units *units; /* Dimensional Units */
514  int nuser_data; /* number of user defined data nodes */ /* V2.1 */
515  cgns_user_data *user_data; /* User defined data. */ /* V2.1 */
516 } cgns_bcdata;
517 
518 typedef struct { /* BCDataSet_t node */
519  char_33 name; /* name of ADF node */
520  double id; /* ADF ID number (address) of node */
521  cgns_link *link; /* link information */ /* V2.1 */
522  int in_link; /* set if child of a linked node */
523  int ndescr; /* no of Descriptor_t nodes */
524  cgns_descr *descr; /* ptrs to in-memory copy of descr */
525  CGNS_ENUMT(BCType_t) type;/* type of boco */
526  cgns_bcdata *dirichlet; /* ptrs to in-mem. copy of DirichletData*/
527  cgns_bcdata *neumann; /* ptrs to in-mem. copy of NeumannData */
528  cgns_state *state; /* ptrs to in-memory copies of Ref.state*/
529  CGNS_ENUMT(DataClass_t) data_class; /* Class of data */
530  cgns_units *units; /* Dimensional Units */
531  int nuser_data; /* number of user defined data nodes */ /* V2.1 */
532  cgns_user_data *user_data; /* User defined data. */ /* V2.1 */
533  CGNS_ENUMT(GridLocation_t) location;/* Grid location where data is recorded */
534  cgns_ptset *ptset; /* PointList, PointRange */
535 } cgns_dataset;
536 
537 typedef struct { /* Elements_t node */
538  char_33 name; /* name of ADF node */
539  double id; /* ADF ID number (address) of node */
540  cgns_link *link; /* link information */ /* V2.1 */
541  int in_link; /* set if child of a linked node */
542  int ndescr; /* no of Descriptor_t nodes */
543  cgns_descr *descr; /* ptrs to in-memory copy of descr */
544  CGNS_ENUMT(ElementType_t) el_type; /* element type */
545  int el_bound; /* nr of bound. el. if sorted, else 0 */
546  cgsize_t range[2]; /* index of first and last element */
547  int *rind_planes; /* No. of rind-elements */
548  cgns_array *connect; /* ElementConnectivity */
549  cgns_array *parelem; /* ParentElements */
550  cgns_array *parface; /* ParentElementsPosition */
551  int nuser_data; /* number of user defined data nodes */ /* V2.1 */
552  cgns_user_data *user_data; /* User defined data. */ /* V2.1 */
553 } cgns_section;
554 
555 typedef struct { /* BC_t node */
556  char_33 name; /* name of ADF node */
557  double id; /* ADF ID number (address) of node */
558  cgns_link *link; /* link information */ /* V2.1 */
559  int in_link; /* set if child of a linked node */
560  int ndescr; /* no of Descriptor_t nodes */
561  cgns_descr *descr; /* ptrs to in-memory copy of descr */
562  CGNS_ENUMT(GridLocation_t) location;/* Grid location */
563  CGNS_ENUMT(BCType_t) type; /* type of boco */
564  cgns_ptset *ptset; /* PointList, PointRange */
565  char_66 family_name; /* Family name for the bound. patch */
566  int *Nindex; /* Inward Normal Index */
567  double index_id; /* ADF ID number of InwardNormalIndex */
568  cgns_array *normal; /* Inward Normal List */
569  int ndataset; /* no of BCDataSet nodes */
570  cgns_dataset *dataset; /* ptrs to in-mem. copy of BCDataSet */
571  cgns_bprop *bprop; /* ptrs to in-mem. copy of BCProperty_t */ /* V2.2 */
572  cgns_state *state; /* ptrs to in-memory copies of Ref.state*/
573  CGNS_ENUMT(DataClass_t) data_class; /* Class of data */
574  cgns_units *units; /* Dimensional Units */
575  int ordinal; /* option to define a rank */
576  int nuser_data; /* number of user defined data nodes */ /* V2.1 */
577  cgns_user_data *user_data; /* User defined data. */ /* V2.1 */
578  /* CPEX 0034 */
579  int nfamname;
580  cgns_famname *famname;
581 } cgns_boco;
582 
583 typedef struct { /* ZoneBC_t node */
584  char_33 name; /* name of ADF node */
585  double id; /* ADF ID number (address) of node */
586  cgns_link *link; /* link information */ /* V2.1 */
587  int in_link; /* set if child of a linked node */
588  int ndescr; /* no of Descriptor_t nodes */
589  cgns_descr *descr; /* ptrs to in-memory copy of descr */
590  int nbocos; /* number of BC_t nodes */
591  cgns_boco *boco; /* ptrs to in-memory copies of bocos */
592  cgns_state *state; /* ptrs to in-memory copies of Ref.state*/
593  CGNS_ENUMT(DataClass_t) data_class; /* Class of data */
594  cgns_units *units; /* Dimensional Units */
595  int nuser_data; /* number of user defined data nodes */ /* V2.1 */
596  cgns_user_data *user_data; /* User defined data. */ /* V2.1 */
597 } cgns_zboco;
598 
599 typedef struct { /* OversetHoles_t node */
600  char_33 name; /* name of ADF node */
601  double id; /* ADF ID number (address) of node */
602  cgns_link *link; /* link information */ /* V2.1 */
603  int in_link; /* set if child of a linked node */
604  int ndescr; /* no of Descriptor_t nodes */
605  cgns_descr *descr; /* ptrs to in-memory copy of descr */
606  CGNS_ENUMT(GridLocation_t) location;/* Grid location */
607  int nptsets; /* Number of point-sets */
608  cgns_ptset *ptset; /* any no of PointList and/or PointRange*/
609  int nuser_data; /* number of user defined data nodes */ /* V2.1 */
610  cgns_user_data *user_data; /* User defined data. */ /* V2.1 */
611 } cgns_hole;
612 
613 typedef struct { /* GridConnectivity_t node */
614  char_33 name; /* name of ADF node */
615  double id; /* ADF ID number (address) of node */
616  cgns_link *link; /* link information */ /* V2.1 */
617  int in_link; /* set if child of a linked node */
618  int ndescr; /* no of Descriptor_t nodes */
619  cgns_descr *descr; /* ptrs to in-memory copy of descr */
620  CGNS_ENUMT(GridConnectivityType_t) type; /*Overset, Abutting or Abutting1to1*/
621  CGNS_ENUMT(GridLocation_t) location;/* Grid location */
622  cgns_ptset ptset; /* PointList or PointRange */
623  cgns_ptset dptset; /* PointListDonor or CellListDonor */
624  int narrays; /* should be 0 or 1 */
625  cgns_array *interpolants;/* InterpolantsDonor */
626  char_66 donor; /* donor name */
627  cgns_cprop *cprop; /* ptrs to in-memory copies of cprop */ /* V2.2 */
628  int ordinal; /* option to specify a rank */
629  int nuser_data; /* number of user defined data nodes */ /* V2.1 */
630  cgns_user_data *user_data; /* User defined data. */ /* V2.1 */
631 } cgns_conn;
632 
633 typedef struct { /* GridConnectivity1to1_t node */
634  char_33 name; /* name of ADF node */
635  double id; /* ADF ID number (address) of node */
636  cgns_link *link; /* link information */ /* V2.1 */
637  int in_link; /* set if child of a linked node */
638  int ndescr; /* no of Descriptor_t nodes */
639  cgns_descr *descr; /* ptrs to in-memory copy of descr */
640  int *transform; /* short form of transformation matrix */
641  cgns_ptset ptset; /* PointRange */
642  cgns_ptset dptset; /* PointRangeDonor */
643  char_66 donor; /* donor name */
644  int ordinal; /* option to specify a rank */
645  int nuser_data; /* number of user defined data nodes */ /* V2.1 */
646  cgns_user_data *user_data; /* User defined data. */ /* V2.1 */
647  cgns_cprop *cprop; /* ptrs to in-memory copies of cprop */
648 } cgns_1to1;
649 
650 typedef struct { /* ZoneGridConnectivity_t node */
651  char_33 name; /* name of ADF node */
652  double id; /* ADF ID number (address) of node */
653  cgns_link *link; /* link information */ /* V2.1 */
654  int in_link; /* set if child of a linked node */
655  int ndescr; /* no of Descriptor_t nodes */
656  cgns_descr *descr; /* ptrs to in-memory copy of descr */
657  int n1to1; /* number of GridConnectivity1to1 nodes */
658  cgns_1to1 *one21; /* ptrs to in-memory copies of one21 */
659  int nconns; /* number of GridConnectivity_t nodes */
660  cgns_conn *conn; /* ptrs to in-memory copies of conns */
661  int nholes; /* number of OversetHoles_t nodes */
662  cgns_hole *hole; /* ptrs to in-memory copies of holes */
663  int nuser_data; /* number of user defined data nodes */ /* V2.1 */
664  cgns_user_data *user_data; /* User defined data. */ /* V2.1 */
665 } cgns_zconn;
666 
667 typedef struct { /* FlowSolution_t node */
668  char_33 name; /* name of ADF node */
669  double id; /* ADF ID number (address) of node */
670  cgns_link *link; /* link information */ /* V2.1 */
671  int in_link; /* set if child of a linked node */
672  int ndescr; /* no of Descriptor_t nodes */
673  cgns_descr *descr; /* ptrs to in-memory copy of descr */
674  cgns_ptset *ptset; /* PointList, PointRange */
675  CGNS_ENUMT(GridLocation_t) location;/* Grid location type */
676  int *rind_planes; /* No. of rind-planes on each zone face */
677  int nfields; /* number of flow solution arrays */
678  cgns_array *field; /* ptrs to in-memory copies of sol.field*/
679  CGNS_ENUMT(DataClass_t) data_class; /* Class of data */
680  cgns_units *units; /* Dimensional Units */
681  int nuser_data; /* number of user defined data nodes */ /* V2.1 */
682  cgns_user_data *user_data; /* User defined data. */ /* V2.1 */
683 } cgns_sol;
684 
685 typedef struct { /* GridCoordinates_t node */
686  char_33 name; /* name of ADF node */
687  double id; /* ADF ID number (address) of node */
688  cgns_link *link; /* link information */ /* V2.1 */
689  int in_link; /* set if child of a linked node */
690  int ndescr; /* no of Descriptor_t nodes */
691  cgns_descr *descr; /* ptrs to in-memory copy of descr */
692  int *rind_planes; /* No. of rind-planes on each zone face */
693  int ncoords; /* number of coordinates arrays */
694  cgns_array *coord; /* ptrs to in-mem. copy of coord-arrays */
695  CGNS_ENUMT(DataClass_t) data_class; /* Class of data */
696  cgns_units *units; /* Dimensional Units */
697  int nuser_data; /* number of user defined data nodes */ /* V2.1 */
698  cgns_user_data *user_data; /* User defined data. */ /* V2.1 */
699 } cgns_zcoor;
700 
701 typedef struct { /* RigidGridMotion_t node */ /* V2.0 */
702  char_33 name; /* name of ADF node */
703  double id; /* ADF ID number (address) of node */
704  cgns_link *link; /* link information */ /* V2.1 */
705  int in_link; /* set if child of a linked node */
706  int ndescr; /* no of Descriptor_t nodes */
707  cgns_descr *descr; /* ptrs to in-memory copy of descr */
708  CGNS_ENUMT(RigidGridMotionType_t) type; /* type of rigid motion */
709  int narrays; /* no. of data arrays */
710  cgns_array *array; /* ptrs to in-mem. copy of local data */
711  CGNS_ENUMT(DataClass_t) data_class; /* Class of data */
712  cgns_units *units; /* Dimensional Units */
713  int nuser_data; /* number of user defined data nodes */ /* V2.1 */
714  cgns_user_data *user_data; /* User defined data. */ /* V2.1 */
715 } cgns_rmotion;
716 
717 typedef struct { /* ArbitraryGridMotion_t node */ /* V2.0 */
718  char_33 name; /* name of ADF node */
719  double id; /* ADF ID number (address) of node */
720  cgns_link *link; /* link information */ /* V2.1 */
721  int in_link; /* set if child of a linked node */
722  int ndescr; /* no of Descriptor_t nodes */
723  cgns_descr *descr; /* ptrs to in-memory copy of descr */
724  CGNS_ENUMT(ArbitraryGridMotionType_t) type;/* type of arbitrary motion */
725  CGNS_ENUMT(GridLocation_t) location;/* Grid location type */
726  int *rind_planes; /* No. of rind-planes on each zone face */
727  int narrays; /* no. of data arrays */
728  cgns_array *array; /* ptrs to in-mem. copy of misc. arrays */
729  CGNS_ENUMT(DataClass_t) data_class; /* Class of data */
730  cgns_units *units; /* Dimensional Units */
731  int nuser_data; /* number of user defined data nodes */ /* V2.1 */
732  cgns_user_data *user_data; /* User defined data. */ /* V2.1 */
733 } cgns_amotion;
734 
735 typedef struct { /* ZoneIterativeData_t node */ /* V2.0 */
736  char_33 name; /* name of ADF node */
737  double id; /* ADF ID number (address) of node */
738  cgns_link *link; /* link information */ /* V2.1 */
739  int in_link; /* set if child of a linked node */
740  int ndescr; /* no of Descriptor_t nodes */
741  cgns_descr *descr; /* ptrs to in-memory copy of descr */
742  int narrays; /* no. of data arrays */
743  cgns_array *array; /* ptrs to in-mem. copy of misc. arrays */
744  CGNS_ENUMT(DataClass_t) data_class; /* Class of data */
745  cgns_units *units; /* Dimensional Units */
746  int nuser_data; /* number of user defined data nodes */ /* V2.1 */
747  cgns_user_data *user_data; /* User defined data. */ /* V2.1 */
748 } cgns_ziter;
749 
750 typedef struct { /* BaseIterativeData_t node */ /* V2.0 */
751  char_33 name; /* name of ADF node */
752  double id; /* ADF ID number (address) of node */
753  cgns_link *link; /* link information */ /* V2.1 */
754  int in_link; /* set if child of a linked node */
755  int ndescr; /* no of Descriptor_t nodes */
756  cgns_descr *descr; /* ptrs to in-memory copy of descr */
757  int nsteps; /* NumberOfSteps */
758  int narrays; /* no. of data arrays */
759  cgns_array *array; /* ptrs to in-mem. copy of misc. arrays */
760  CGNS_ENUMT(DataClass_t) data_class; /* Class of data */
761  cgns_units *units; /* Dimensional Units */
762  int nuser_data; /* number of user defined data nodes */ /* V2.1 */
763  cgns_user_data *user_data; /* User defined data. */ /* V2.1 */
764 } cgns_biter;
765 
766 typedef struct { /* ZoneSubRegion_t Node */
767  char_33 name; /* name of ADF node */
768  double id; /* ADF ID number (address) of node */
769  cgns_link *link; /* link information */ /* V2.1 */
770  int in_link; /* set if child of a linked node */
771  int reg_dim; /* nr of indices to specify a node */
772  int ndescr; /* no of Descriptor_t nodes */
773  cgns_descr *descr; /* ptrs to in-memory copy of descr */
774  int narrays; /* no. of data arrays */
775  cgns_array *array; /* ptrs to in-mem. copy of misc. arrays */
776  cgns_ptset *ptset; /* PointList, PointRange */
777  cgns_descr *bcname; /* BC_t node name */
778  cgns_descr *gcname; /* GridConnectivity node name */
779  CGNS_ENUMT(DataClass_t) data_class; /* Class of data */
780  cgns_units *units; /* Dimensional Units */
781  CGNS_ENUMT(GridLocation_t) location;/* Grid location where data is recorded */
782  char_66 family_name; /* Family name */
783  int *rind_planes; /* No. of rind-planes on each zone face */
784  int nuser_data; /* number of user defined data nodes */
785  cgns_user_data *user_data; /* User defined data. */
786  /* CPEX 0034 */
787  int nfamname;
788  cgns_famname *famname;
789 } cgns_subreg;
790 
791 typedef struct { /* Zone_t Node */
792  char_33 name; /* name of ADF node */
793  double id; /* ADF ID number (address) of node */
794  cgns_link *link; /* link information */ /* V2.1 */
795  int in_link; /* set if child of a linked node */
796  CGNS_ENUMT(ZoneType_t) type; /* Structured or Unstructured */
797  int index_dim; /* nr of indices to specify a node */
798  cgsize_t *nijk; /* size of zone in vertex and cells */
799  int ndescr; /* no of Descriptor_t nodes */
800  cgns_descr *descr; /* ptrs to in-memory copy of descr */
801  int nzcoor; /* no of GridCoordinates_t nodes */ /* V2.0 */
802  cgns_zcoor *zcoor; /* ptrs to in-memory copies of coords */
803  int nsections; /* no of Elements_t nodes */
804  cgns_section *section; /* ptrs to in-memory copies of section */
805  char_66 family_name; /* family name of the unstr. zone */
806  int nsols; /* number of FlowSolution_t nodes */
807  cgns_sol *sol; /* ptrs to in-memory copies of sols */
808  int ndiscrete; /* number of DiscreteData_t nodes */
809  cgns_discrete *discrete;/* ptrs to in-memory copy of discrete */
810  int nintegrals; /* number of IntegralData_t nodes */
811  cgns_integral *integral;/* ptrs to in-memory copy of integral */
812  /* version 3.2 - multiple ZoneGridConnectivity_t */
813  int active_zconn; /* currently active zconn */
814  int nzconn; /* no of ZoneGridConnectivity_t nodes */
815  cgns_zconn *zconn; /* ptrs to in-mem. copy of ZoneGridConn.*/
816  cgns_zboco *zboco; /* ptrs to in-memory copies of ZoneBC */
817  cgns_state *state; /* ptrs to in-memory copies of Ref.state*/
818  CGNS_ENUMT(DataClass_t) data_class; /* Class of data */
819  cgns_units *units; /* Dimensional Units */
820  cgns_equations *equations;/* ptrs to in-mem. copy of FlowEqu. */
821  cgns_converg *converg; /* ptrs to in-mem. copy of Conv.Hist. */
822  int ordinal; /* option to assign a rank */
823  int nrmotions; /* number of RigidGridMotion_t nodes */ /* V2.0 */
824  cgns_rmotion *rmotion; /* ptrs to in-mem. copy of RigidGridMot.*/ /* V2.0 */
825  int namotions; /* number of ArbitraryGridMotion_t nodes*/ /* V2.0 */
826  cgns_amotion *amotion; /* ptrs to in-mem. copy of Arb.GridMot. */ /* V2.0 */
827  cgns_ziter *ziter; /* ptrs to in-mem. copies of ZoneIter. */ /* V2.0 */
828  int nuser_data; /* number of user defined data nodes */ /* V2.1 */
829  cgns_user_data *user_data; /* User defined data. */ /* V2.1 */
830  cgns_rotating *rotating;/* ptrs to in-memory copy of Rot. Coord.*/ /* V2.2 */
831  /* version 3.2 */
832  int nsubreg; /* num subregions */
833  cgns_subreg *subreg; /* subregion ptrs */
834  /* CPEX 0034 */
835  int nfamname;
836  cgns_famname *famname;
837 } cgns_zone;
838 
839 typedef struct { /* */
840  char_33 name; /* name of Geometry part */
841  double id; /* ADF ID */
842  cgns_link *link; /* link information */ /* V2.1 */
843  int in_link; /* set if child of a linked node */
844 } cgns_part;
845 
846 typedef struct { /* GeometryReference_t node */
847  char_33 name; /* name of ADF node */
848  double id; /* ADF ID number (address) of node */
849  cgns_link *link; /* link information */ /* V2.1 */
850  int in_link; /* set if child of a linked node */
851  int ndescr; /* no of Descriptor_t nodes */
852  cgns_descr *descr; /* ptrs to in-memory copy of descr */
853  char *file; /* name of geometry file */
854  char_33 format; /* name of geometry format */
855  int npart; /* number of geo. entities */
856  cgns_part *part; /* list of geometry entities */
857  int nuser_data; /* number of user defined data nodes */ /* V2.1 */
858  cgns_user_data *user_data; /* User defined data. */ /* V2.1 */
859 } cgns_geo;
860 
861 typedef struct { /* FamilyBC_t node */
862  char_33 name; /* name of ADF node */
863  double id; /* ADF ID number (address) of node */
864  cgns_link *link; /* link information */ /* V2.1 */
865  int in_link; /* set if child of a linked node */
866  CGNS_ENUMT(BCType_t) type;/* type of boco */
867  int ndataset; /* no of BCDataSet nodes */
868  cgns_dataset *dataset; /* ptrs to in-mem. copy of BCDataSet */
869 } cgns_fambc;
870 
871 typedef struct { /* Family_t node */
872  char_33 name; /* Family name & name of ADF node */
873  double id; /* ADF ID number (address) of node */
874  cgns_link *link; /* link information */ /* V2.1 */
875  int in_link; /* set if child of a linked node */
876  int ndescr; /* no of Descriptor_t nodes */
877  cgns_descr *descr; /* ptrs to in-memory copy of descr */
878  int nfambc; /* number of FamilyBC_t nodes */
879  cgns_fambc *fambc; /* FamilyBC */
880  int ngeos; /* no of GeometryReference_t nodes */
881  cgns_geo *geo; /* Geometry reference */
882  int ordinal; /* option to assign a rank */
883  int nuser_data; /* number of user defined data nodes */ /* V2.1 */
884  cgns_user_data *user_data; /* User defined data. */ /* V2.1 */
885  cgns_rotating *rotating;/* ptrs to in-memory copy of Rot. Coord.*/
886 /* CPEX 0033 */
887  int nfamname;
888  cgns_famname *famname;
889 } cgns_family;
890 
891 typedef struct { /* CGNSBase_t Node */
892  char_33 name; /* name of ADF node */
893  double id; /* ADF ID number (address) of node */
894  int cell_dim; /* highest cell dimension */
895  int phys_dim; /* nr of coordinates to specify a node */
896  int ndescr; /* no of Descriptor_t nodes */
897  cgns_descr *descr; /* ptrs to in-memory copy of descr */
898  int nzones; /* number of zones in base */
899  cgns_zone *zone; /* ptrs to in-memory copies of zones */
900  int nfamilies; /* number of families */
901  cgns_family *family; /* ptrs to in-memory copies of families */
902  cgns_state *state; /* ptrs to in-memory copies of Ref.state*/
903  CGNS_ENUMT(DataClass_t) data_class; /* Class of data */
904  cgns_units *units; /* Dimensional Units */
905  cgns_equations *equations; /* ptrs to in-mem. copy of FlowEqu. */
906  cgns_converg *converg; /* ptrs to in-mem. copy of Conv.Hist. */
907  int nintegrals; /* no of IntegralData_t nodes */
908  cgns_integral *integral;/* ptrs to in-mem. copy of integral data*/
909  cgns_biter *biter; /* ptrs to in-mem. copy of BaseIter. */ /* V2.0 */
910  CGNS_ENUMT(SimulationType_t) type; /* Simulation type */ /* V2.0 */
911  double type_id; /* ADF ID number of SimulationType_t */ /* V2.0 */
912  int nuser_data; /* number of user defined data nodes */ /* V2.1 */
913  cgns_user_data *user_data; /* User defined data. */ /* V2.1 */
914  cgns_gravity *gravity; /* ptrs to in-memory copy of gravity */ /* V2.2 */
915  cgns_axisym *axisym; /* ptrs to in-memory copy of Axisymmetry*/ /* V2.2 */
916  cgns_rotating *rotating;/* ptrs to in-memory copy of Rot. Coord.*/ /* V2.2 */
917 } cgns_base;
918 
919 typedef struct {
920  char *filename; /* name of file */
921  int filetype; /* type of file */
922  int version; /* version of the CGNS file * 1000 */
923  int cgio; /* index of I/O control */
924  double rootid; /* root ID of file */
925  int mode; /* reading or writing */
926  int file_number; /* external identifier */
927  int deleted; /* number of deleted nodes */
928  int added; /* number of added nodes */
929  char_33 dtb_version; /* ADF Database Version */
930  char_33 creation_date; /* creation date of the file */
931  char_33 modify_date; /* last modification date of the file */
932  char_33 adf_lib_version;/* ADF Library Version */
933  int nbases; /* number of bases in the file */
934  cgns_base *base; /* ptrs to in-memory copies of bases */
935 } cgns_file;
936 
937 typedef struct {
938  void *posit;
939  char label[33];
940  int index;
941  double id;
942 } cgns_posit;
943 
944 /* need some of these routines exported for CGNStools */
945 
946 #if defined(_WIN32) && defined(BUILD_DLL)
947 # define CGNSDLL _declspec(dllexport)
948 #else
949 # define CGNSDLL
950 #endif
951 
952 #ifdef __cplusplus
953 extern "C" {
954 #endif
955 
956 /*
957  * Extern variables
958  */
959 
960 extern cgns_file *cgns_files;
961 extern cgns_file *cg; /* current file */
962 extern int n_cgns_files;
963 extern int file_number_offset;
964 extern int CGNSLibVersion; /* CGNSLib Version number */
965 
966 /* goto stuff */
967 
968 extern cgns_posit *posit;
969 extern int posit_file, posit_base, posit_zone;
970 extern int posit_depth;
971 extern cgns_posit posit_stack[CG_MAX_GOTO_DEPTH+1];
972 
973 /*
974  * Internal Functions
975  */
976 
977 CGNSDLL void *cgi_malloc(size_t cnt,size_t size);
978 CGNSDLL void *cgi_realloc(void *old,size_t bytes);
979 
980 /* retrieve addresses of nodes who may have children */
981 CGNSDLL cgns_file *cgi_get_file (int file_number);
982 CGNSDLL cgns_base *cgi_get_base (cgns_file *cg, int B);
983 CGNSDLL cgns_zone *cgi_get_zone (cgns_file *cg, int B, int Z);
984 CGNSDLL cgns_family *cgi_get_family (cgns_file *cg, int B, int F);
985 CGNSDLL cgns_biter *cgi_get_biter (cgns_file *cg, int B);
986 CGNSDLL cgns_gravity *cgi_get_gravity(cgns_file *cg, int B);
987 CGNSDLL cgns_axisym *cgi_get_axisym (cgns_file *cg, int B);
988 CGNSDLL cgns_ziter *cgi_get_ziter (cgns_file *cg, int B, int Z);
989 CGNSDLL cgns_zcoor *cgi_get_zcoor (cgns_file *cg, int B, int Z, int C);
990 CGNSDLL cgns_zcoor *cgi_get_zcoorGC(cgns_file *cg, int B, int Z);
991 CGNSDLL cgns_array *cgi_get_coord (cgns_file *cg, int B, int Z, int C);
992 CGNSDLL cgns_section *cgi_get_section(cgns_file *cg, int B, int Z, int S);
993 CGNSDLL cgns_sol *cgi_get_sol (cgns_file *cg, int B, int Z, int S);
994 CGNSDLL cgns_array *cgi_get_field (cgns_file *cg, int B, int Z, int S, int F);
995 CGNSDLL cgns_zconn *cgi_get_zconnZC(cgns_file *cg, int B, int Z, int C);
996 CGNSDLL cgns_zconn *cgi_get_zconn (cgns_file *cg, int B, int Z);
997 CGNSDLL cgns_hole *cgi_get_hole (cgns_file *cg, int B, int Z, int I);
998 CGNSDLL cgns_conn *cgi_get_conn (cgns_file *cg, int B, int Z, int I);
999 CGNSDLL cgns_1to1 *cgi_get_1to1 (cgns_file *cg, int B, int Z, int I);
1000 CGNSDLL cgns_zboco *cgi_get_zboco (cgns_file *cg, int B, int Z);
1001 CGNSDLL cgns_boco *cgi_get_boco (cgns_file *cg, int B, int Z, int BC);
1002 CGNSDLL cgns_dataset *cgi_get_dataset(cgns_file *cg, int B, int Z, int BC, int DSet);
1003 CGNSDLL cgns_bcdata *cgi_get_bcdata (cgns_file *cg, int B, int Z, int BC, int Dset,
1004  CGNS_ENUMT(BCDataType_t) type);
1005 CGNSDLL cgns_model *cgi_get_model (cgns_file *cg, int B, int Z, char *model);
1006 CGNSDLL cgns_state *cgi_get_state (cgns_file *cg, int B, int Z, int ZBC, int BC, int Dset);
1007 CGNSDLL cgns_converg *cgi_get_converg(cgns_file *cg, int B, int Z);
1008 CGNSDLL cgns_equations *cgi_get_equations(cgns_file *cg, int B, int Z);
1009 CGNSDLL cgns_governing *cgi_get_governing(cgns_file *cg, int B, int Z);
1010 CGNSDLL cgns_integral *cgi_get_integral (cgns_file *cg, int B, int Z, int N);
1011 CGNSDLL cgns_discrete *cgi_get_discrete (cgns_file *cg, int B, int Z, int D);
1012 CGNSDLL cgns_rmotion *cgi_get_rmotion (cgns_file *cg, int B, int Z, int R);
1013 CGNSDLL cgns_amotion *cgi_get_amotion (cgns_file *cg, int B, int Z, int R);
1014 CGNSDLL cgns_rotating *cgi_get_rotating (cgns_file *cg, int B, int Z);
1015 CGNSDLL cgns_bprop *cgi_get_bprop (cgns_file *cg, int B, int Z, int BC);
1016 CGNSDLL cgns_cprop *cgi_get_cprop (cgns_file *cg, int B, int Z, int I);
1017 CGNSDLL cgns_subreg *cgi_get_subreg (cgns_file *cg, int B, int Z, int S);
1018 
1019 /* find position lead by the goto function */
1020 CGNSDLL int cgi_update_posit(int cnt, int *index, char **label);
1021 CGNSDLL int cgi_set_posit(int fn, int B, int n, int *index, char **label);
1022 CGNSDLL int cgi_posit_id(double *posit_id);
1023 CGNSDLL cgns_posit *cgi_get_posit();
1024 CGNSDLL int cgi_posit_index_dim();
1025 
1026 /* retrieve memory address of multiple patch children knowing their parent label
1027  (posit_label) and their parent memory address (posit) */
1028 cgns_descr *cgi_descr_address(int local_mode, int descr_no,
1029  char const *descr_name, int *ier);
1030 CGNS_ENUMT(DataClass_t) *cgi_dataclass_address(int local_mode, int *ier);
1031 cgns_units *cgi_units_address(int local_mode, int *ier);
1032 int *cgi_ordinal_address(int local_mode, int *ier);
1033 int *cgi_rind_address(int local_mode, int *ier);
1034 CGNS_ENUMT(GridLocation_t) *cgi_location_address(int local_mode, int *ier);
1035 cgns_conversion *cgi_conversion_address(int local_mode, int *ier);
1036 cgns_exponent *cgi_exponent_address(int local_mode, int *ier);
1037 cgns_integral *cgi_integral_address(int local_mode, int integral_no,
1038  char const *integral_name, int *ier);
1039 cgns_equations *cgi_equations_address(int local_mode, int *ier);
1040 cgns_state *cgi_state_address(int local_mode, int *ier);
1041 cgns_converg *cgi_converg_address(int local_mode, int *ier);
1042 cgns_governing *cgi_governing_address(int local_mode, int *ier);
1043 int *cgi_diffusion_address(int local_mode, int *ier);
1044 cgns_array *cgi_array_address(int local_mode, int array_no, char const *array_name, int *ier);
1045 cgns_model *cgi_model_address(int local_mode, char const *ModelLabel, int *ier);
1046 char *cgi_famname_address(int local_mode, int *ier);
1047 cgns_famname *cgi_multfam_address(int mode, int num, char const *name, int *ier);
1048 cgns_user_data *cgi_user_data_address(int local_mode, int given_no, char const *given_name, int *ier);
1049 cgns_rotating *cgi_rotating_address(int local_mode, int *ier);
1050 cgns_ptset *cgi_ptset_address(int local_mode, int *ier);
1051 cgns_dataset * cgi_bcdataset_address(int local_mode, int given_no,
1052  char const *given_name, int *ier);
1053 
1054 /* read CGNS file into internal database */
1055 int cgi_read();
1056 int cgi_read_base(cgns_base *base);
1057 int cgi_read_zone(cgns_zone *zone);
1058 int cgi_read_zonetype(double parent_id, char_33 parent_name, CGNS_ENUMT(ZoneType_t) *type);
1059 int cgi_read_family(cgns_family *family);
1060 int cgi_read_family_dataset(int in_link, double parent_id, int *ndataset,
1061  cgns_dataset **dataset);
1062 int cgi_read_family_name(int in_link, double parent_id, char_33 parent_name,
1063  char_33 family_name);
1064 int cgi_read_array(cgns_array *array, char *parent_label, double parent_id);
1065 int cgi_read_section(int in_link, double parent_id, int *nsections,
1066  cgns_section **section);
1067 int cgi_read_hole(cgns_hole *hole);
1068 int cgi_read_conn(cgns_conn *conn);
1069 int cgi_read_1to1(cgns_1to1 *one21);
1070 int cgi_read_one_ptset(int linked, double parent_id, cgns_ptset **ptset);
1071 int cgi_read_ptset(double parent_id, cgns_ptset *ptset);
1072 int cgi_read_string(double id, char_33 name, char **string_data);
1073 int cgi_read_boco(cgns_boco *boco);
1074  int cgi_read_location(double parent_id, char_33 parent_name, CGNS_ENUMT(GridLocation_t) *location);
1075 int cgi_read_state(int in_link, double parent_id, cgns_state **state);
1076 int cgi_read_converg(int in_link, double parent_id, cgns_converg **converg);
1077 int cgi_read_units(int in_link, double parent_id, cgns_units **units);
1078 int cgi_read_equations(int in_link, double parent_id,
1079  cgns_equations **equations);
1080 int cgi_read_model(int in_link, double parent_id, char *label,
1081  cgns_model **model);
1082 int cgi_read_conversion(int in_link, double parent_id,
1083  cgns_conversion **convert);
1084 int cgi_read_exponents(int in_link, double parent_id,
1085  cgns_exponent **exponents);
1086 int cgi_read_integral(int in_link, double parent_id, int *nintegrals,
1087  cgns_integral **integral);
1088 int cgi_read_discrete(int in_link, double parent_id, int *ndiscrete,
1089  cgns_discrete **discrete);
1090 int cgi_read_sol(int in_link, double parent_id, int *nsols, cgns_sol **sol);
1091 int cgi_read_zcoor(int in_link, double parent_id, int *nzcoor,
1092  cgns_zcoor **zcoor);
1093 int cgi_read_zconn(int in_link, double parent_id, int *nzconn, cgns_zconn **zconn);
1094 int cgi_read_zboco(int in_link, double parent_id, cgns_zboco **zboco);
1095 int cgi_read_dataset(int in_link, double parent_id, int *ndataset,
1096  cgns_dataset **dataset);
1097 int cgi_read_bcdata(cgns_bcdata *bcdata);
1098 int cgi_read_rind(double parent_id, int **rind_planes);
1099 int cgi_read_ordinal(double parent_id, int *ordinal);
1100 int cgi_read_DDD(int in_link, double parent_id, int *ndescr, cgns_descr **descr,
1101  CGNS_ENUMT(DataClass_t) *data_class, cgns_units **units);
1102 int cgi_read_rmotion(int in_link, double parent_id, int *nrmotions,
1103  cgns_rmotion **rmotion);
1104 int cgi_read_amotion(int in_link, double parent_id, int *namotions,
1105  cgns_amotion **amotion);
1106 int cgi_read_simulation(double parent_id, CGNS_ENUMT(SimulationType_t) *type, double *type_id);
1107 int cgi_read_biter(int in_link, double parent_id, cgns_biter **biter);
1108 int cgi_read_ziter(int in_link, double parent_id, cgns_ziter **ziter);
1109 int cgi_read_gravity(int in_link, double parent_id, cgns_gravity **gravity);
1110 int cgi_read_axisym(int in_link, double parent_id, cgns_axisym **axisym);
1111 int cgi_read_rotating(int in_link, double parent_id, cgns_rotating **rotating);
1112 int cgi_read_bprop(int in_link, double parent_id, cgns_bprop **bprop);
1113 int cgi_read_cprop(int in_link, double parent_id, cgns_cprop **cprop);
1114 int cgi_read_user_data(int in_link, double parent_id, int *nuser_data,
1115  cgns_user_data **user_data);
1116 int cgi_read_subregion(int in_link, double parent_id, int *nsubreg,
1117  cgns_subreg **subreg);
1118 cgns_link *cgi_read_link(double node_id);
1119 
1120 CGNSDLL int cgi_datasize(int Idim, cgsize_t *CurrentDim,
1121  CGNS_ENUMT(GridLocation_t) location,
1122  int *rind_planes, cgsize_t *DataSize);
1123 
1124 int cgi_read_node(double node_id, char_33 name, char_33 data_type,
1125  int *ndim, cgsize_t *dim_vals, void **data, int data_flag);
1126 CGNSDLL int cgi_get_nodes(double parent_id, char *label, int *nnodes, double **id);
1127 
1128 /* write ADF file from internal database */
1129 int cgi_write(int file_number);
1130 int cgi_write_zone(double parent_id, cgns_zone *zone);
1131 int cgi_write_family(double parent_id, cgns_family *family);
1132 int cgi_write_zcoor(double parent_id, cgns_zcoor *zcoor);
1133 int cgi_write_section(double parent_id, cgns_section *section);
1134 int cgi_write_sol(double parent_id, cgns_sol *sol);
1135 int cgi_write_zconn(double parent_id, cgns_zconn *zconn);
1136 int cgi_write_1to1(double parent_id, cgns_1to1 *one21);
1137 int cgi_write_conns(double parent_id, cgns_conn *conn);
1138 int cgi_write_holes(double parent_id, cgns_hole *hole);
1139 int cgi_write_zboco(double parent_id, cgns_zboco *zboco);
1140 int cgi_write_boco(double parent_id, cgns_boco *boco);
1141 int cgi_write_dataset(double parent_id, const char *label, cgns_dataset *dataset);
1142 int cgi_write_bcdata(double bcdata_id, cgns_bcdata *bcdata);
1143 int cgi_write_ptset(double id, char_33 name, cgns_ptset *ptset,
1144  int Ndim, void *ptset_ptr);
1145 int cgi_write_equations(double parent_id, cgns_equations *equations);
1146 int cgi_write_model(double parent_id, cgns_model *model);
1147 int cgi_write_state(double parent_id, cgns_state *state);
1148 int cgi_write_converg(double parent_id, cgns_converg *converg);
1149 int cgi_write_discrete(double parent_id, cgns_discrete *discrete);
1150 int cgi_write_integral(double parent_id, cgns_integral *integral);
1151 CGNSDLL int cgi_write_array(double parent_id, cgns_array *array);
1152 int cgi_write_rind(double parent_id, int *rind_planes, int idim);
1153 int cgi_write_units(double parent_id, cgns_units *units);
1154 int cgi_write_exponents(double parent_id, cgns_exponent *exponents);
1155 CGNSDLL int cgi_write_dataclass(double parent_id, CGNS_ENUMT(DataClass_t) data_class);
1156 int cgi_write_descr(double parent_id, cgns_descr *descr);
1157 CGNSDLL int cgi_write_ordinal(double parent_id, int ordinal);
1158 int cgi_write_rmotion(double parent_id, cgns_rmotion *rmotion);
1159 int cgi_write_amotion(double parent_id, cgns_amotion *amotion);
1160 int cgi_write_biter(double parent_id, cgns_biter *biter);
1161 int cgi_write_ziter(double parent_id, cgns_ziter *ziter);
1162 int cgi_write_gravity(double parent_id, cgns_gravity *gravity);
1163 int cgi_write_axisym(double parent_id, cgns_axisym *axisym);
1164 int cgi_write_rotating(double parent_id, cgns_rotating *rotating);
1165 int cgi_write_bprop(double parent_id, cgns_bprop *bprop);
1166 int cgi_write_cprop(double parent_id, cgns_cprop *cprop);
1167 int cgi_write_user_data(double parent_id, cgns_user_data *user_data);
1168 int cgi_write_link(double parent_id, char *name, cgns_link *link,
1169  double *node_id);
1170 
1171 CGNSDLL int cgi_new_node(double parent_id, char const *name, char const *label,
1172  double *node_id, char const *data_type,
1173  int ndim, cgsize_t const *dim_vals, void const *data);
1174 int cgi_new_node_partial(double parent_id, char const *name, char const *label,
1175  double *node_id, char const *data_type, int ndim,
1176  cgsize_t const *dim_vals, cgsize_t const *rmin, cgsize_t const *rmax,
1177  void const *data);
1178 int cgi_move_node(double old_id, double node_id, double new_id, cchar_33 node_name);
1179 int cgi_delete_node (double parent_id, double node_id);
1180 
1181 /* error handling */
1182 CGNSDLL void cgi_error(char *format, ...);
1183 CGNSDLL void cgi_warning(char *format, ...);
1184 CGNSDLL void cg_io_error(const char *routine_name);
1185 
1186 /* retrieve list number from list name */
1187 int cgi_GridLocation(char *GridLocationName, CGNS_ENUMT(GridLocation_t) *type);
1188 int cgi_GridConnectivityType(char *GridConnectivityName,
1189  CGNS_ENUMT(GridConnectivityType_t) *type);
1190 int cgi_PointSetType(char *PointSetName, CGNS_ENUMT(PointSetType_t) *type);
1191 int cgi_BCType(char *BCName, CGNS_ENUMT(BCType_t) *type);
1192 int cgi_DataClass(char *Name, CGNS_ENUMT(DataClass_t) *data_class);
1193 int cgi_MassUnits(char *Name, CGNS_ENUMT(MassUnits_t) *mass_unit);
1194 int cgi_LengthUnits(char *Name, CGNS_ENUMT(LengthUnits_t) *length_unit);
1195 int cgi_TimeUnits(char *Name, CGNS_ENUMT(TimeUnits_t) *time_unit);
1196 int cgi_TemperatureUnits(char *Name, CGNS_ENUMT(TemperatureUnits_t) *temperature_unit);
1197 int cgi_AngleUnits(char *Name, CGNS_ENUMT(AngleUnits_t) *angle_unit);
1198 int cgi_ElectricCurrentUnits(char *Name, CGNS_ENUMT(ElectricCurrentUnits_t) *unit);
1199 int cgi_SubstanceAmountUnits(char *Name, CGNS_ENUMT(SubstanceAmountUnits_t) *unit);
1200 int cgi_LuminousIntensityUnits(char *Name, CGNS_ENUMT(LuminousIntensityUnits_t) *unit);
1201 int cgi_GoverningEquationsType(char *Name, CGNS_ENUMT(GoverningEquationsType_t) *type);
1202 int cgi_ModelType(char *Name, CGNS_ENUMT(ModelType_t) *type);
1203 int cgi_ZoneType(char *Name, CGNS_ENUMT(ZoneType_t) *type);
1204 int cgi_RigidGridMotionType(char *Name, CGNS_ENUMT(RigidGridMotionType_t) *type);
1205 int cgi_ArbitraryGridMotionType(char *Name, CGNS_ENUMT(ArbitraryGridMotionType_t) *type);
1206 int cgi_SimulationType(char *Name, CGNS_ENUMT(SimulationType_t) *type);
1207 int cgi_WallFunctionType(char *Name, CGNS_ENUMT(WallFunctionType_t) *type);
1208 int cgi_AreaType(char *Name, CGNS_ENUMT(AreaType_t) *type);
1209 int cgi_AverageInterfaceType(char *Name, CGNS_ENUMT(AverageInterfaceType_t) *type);
1210 
1211 int cgi_zone_no(cgns_base *base, char *zonename, int *zone_no);
1212 
1213 /* miscelleneous */
1214 int cgi_sort_names(int n, double *ids);
1215 int size_of(char_33 adf_type);
1216 char *type_of(char_33 data_type);
1217 int cgi_check_strlen(char const * string);
1218 int cgi_check_strlen_x2(char const *string);
1219 int cgi_check_mode(char const * filename, int file_mode, int mode_wanted);
1220 const char *cgi_adf_datatype(CGNS_ENUMT(DataType_t) type);
1221 CGNSDLL CGNS_ENUMT(DataType_t) cgi_datatype(cchar_33 adf_type);
1222 int cgi_check_dimensions(int ndims, cglong_t *dims);
1223 int cgi_check_location(int dim, CGNS_ENUMT(ZoneType_t) type,
1224  CGNS_ENUMT(GridLocation_t) loc);
1225 CGNSDLL int cgi_read_int_data(double id, char_33 data_type, cgsize_t cnt, cgsize_t *data);
1226 int cgi_convert_data(cgsize_t cnt,
1227  CGNS_ENUMT(DataType_t) from_type, const void *from_data,
1228  CGNS_ENUMT(DataType_t) to_type, void *to_data);
1229 
1230 int cgi_add_czone(char_33 zonename, cgsize6_t range, cgsize6_t donor_range,
1231  int idim, int *ndouble, char_33 **Dzonename,
1232  cgsize6_t **Drange, cgsize6_t **Ddonor_range);
1233 
1234 void cgi_array_print(char *routine, cgns_array *array);
1235 
1236 cgsize_t cgi_element_data_size(CGNS_ENUMT(ElementType_t) type,
1237  cgsize_t nelems, const cgsize_t *connect);
1238 
1239 /* free memory */
1240 void cgi_free_file(cgns_file *cg);
1241 void cgi_free_base(cgns_base *base);
1242 void cgi_free_zone(cgns_zone *zone);
1243 void cgi_free_family(cgns_family *family);
1244 void cgi_free_fambc(cgns_fambc *fambc);
1245 void cgi_free_famname(cgns_famname *famname);
1246 void cgi_free_geo(cgns_geo *geo);
1247 void cgi_free_part(cgns_part *part);
1248 void cgi_free_zcoor(cgns_zcoor *zcoor);
1249 void cgi_free_section(cgns_section *section);
1250 void cgi_free_zboco(cgns_zboco *zboco);
1251 void cgi_free_zconn(cgns_zconn *zconn);
1252 void cgi_free_sol(cgns_sol *sol);
1253 void cgi_free_1to1(cgns_1to1 *one21);
1254 void cgi_free_hole(cgns_hole *hole);
1255 void cgi_free_conn(cgns_conn *conn);
1256 void cgi_free_boco(cgns_boco *boco);
1257 void cgi_free_dataset(cgns_dataset *dataset);
1258 void cgi_free_bcdata(cgns_bcdata *bcdata);
1259 void cgi_free_ptset(cgns_ptset *ptset);
1260 void cgi_free_equations(cgns_equations *equations);
1261 void cgi_free_governing(cgns_governing *governing);
1262 void cgi_free_model(cgns_model *model);
1263 void cgi_free_state(cgns_state *state);
1264 void cgi_free_converg(cgns_converg *converg);
1265 void cgi_free_discrete(cgns_discrete *discrete);
1266 void cgi_free_integral(cgns_integral *integral);
1267 void cgi_free_array(cgns_array *array);
1268 void cgi_free_convert(cgns_conversion *convert);
1269 void cgi_free_exponents(cgns_exponent *exponents);
1270 void cgi_free_units(cgns_units *units);
1271 void cgi_free_descr(cgns_descr *descr);
1272 void cgi_free_rmotion(cgns_rmotion *rmotion);
1273 void cgi_free_amotion(cgns_amotion *amotion);
1274 void cgi_free_biter(cgns_biter *biter);
1275 void cgi_free_ziter(cgns_ziter *ziter);
1276 void cgi_free_gravity(cgns_gravity *gravity);
1277 void cgi_free_axisym(cgns_axisym *axisym);
1278 void cgi_free_rotating(cgns_rotating *rotating);
1279 void cgi_free_bprop(cgns_bprop *bprop);
1280 void cgi_free_bcwall(cgns_bcwall *bcwall);
1281 void cgi_free_bcarea(cgns_bcarea *bcarea);
1282 void cgi_free_cprop(cgns_cprop *cprop);
1283 void cgi_free_cperio(cgns_cperio *cperio);
1284 void cgi_free_caverage(cgns_caverage *caverage);
1285 void cgi_free_link(cgns_link *link);
1286 void cgi_free_user_data(cgns_user_data *user_data);
1287 void cgi_free_subreg(cgns_subreg *subreg);
1288 
1289 #ifdef __cplusplus
1290 }
1291 #endif
1292 #endif
Definition: cgns_header.h:160
Definition: cgns_header.h:166
Definition: cgns_header.h:203
Definition: cgns_header.h:289
Definition: cgns_header.h:337
Definition: cgns_header.h:182
Definition: cgns_header.h:464
Definition: cgns_header.h:256
Definition: cgns_header.h:478
Definition: cgns_header.h:750
Definition: cgns_header.h:685
Definition: cgns_header.h:701
Definition: cgns_header.h:393
Definition: cgns_header.h:667
Definition: cgns_header.h:791
Definition: cgns_header.h:221
Definition: cgns_header.h:735
Definition: cgns_header.h:839
Definition: cgns_header.h:861
Definition: cgns_header.h:446
Definition: cgns_header.h:233
Definition: cgns_header.h:518
Definition: cgns_header.h:367
Definition: cgns_header.h:717
Definition: cgns_header.h:937
Definition: cgns_header.h:406
Definition: cgns_header.h:151
Definition: cgns_header.h:379
Definition: cgns_header.h:871
Definition: cgns_header.h:421
Definition: cgns_header.h:633
Definition: cgns_header.h:433
Definition: cgns_header.h:555
Definition: cgns_header.h:613
Definition: cgns_header.h:352
Definition: cgns_header.h:766
Definition: cgns_header.h:306
Definition: cgns_header.h:271
Definition: cgns_header.h:650
Definition: cgns_header.h:194
Definition: cgns_header.h:537
Definition: cgns_header.h:583
Definition: cgns_header.h:846
Definition: cgns_header.h:322
Definition: cgns_header.h:599
Definition: cgns_header.h:891
Definition: cgns_header.h:503
Definition: cgns_header.h:919
Kind of transition model (BAS-CAKMAKCIOGLU (BC) for Spalart-Allmaras).
Definition: option_structure.hpp:642