The output is the most application-dependent part. I recognize that almost every application of the grid generator will use own output functions.
On the other hand, some parameters necessary for output operations will be common for many output operations. Thus, for the output control I have designed a set of control parameters which may be used for different output operations. I hope that a sufficient number of the necessary control possibilities are realized in this way.
The parameters which allow to modify the output are defined in ibgoutput.h. If you want to change the default settings of these parameters, there are two functions you have to change:
The dummy realizations of these functions you can find in ibgcontrol.c. Use the file ibgoutput.c as a pattern how to initialize and set the parameters.
Let's describe now some of these parameters.
See ibgoutput.h and ibgoutput.c for other parameters not described here. I hope the comments given there are sufficient.
In almost any case, not all of the grid cells created by the IBG grid generator are necessary. Different parts of the grid may be useful in different applications resp. different output devices.
ibgOutputType[ibgSegmentType t] defines the dimension of the parts of the grid selected for the output. Thus,
ibgOutputType[ibgSRegion] = ibgTrue; ibgOutputType[ibgSFace] = ibgFalse;defines that the inner cells (region cells, codimension 0) have to be selected, but the boundary face cells not.
Defines the codimension (segment type) of the segments used in the other ibgOS...-parameters (ibgOSSegment, ibgOSMode and so on).
If you want all boundary cells of a region r, you have to choose
ibgOutputType[ibgSFace] = ibgTrue; ibgOSType = ibgSRegion; ibgOSMode = ibgOSModOne; ibgOSSegment = r;
But if you want a single boundary face f, you have to choose
ibgOutputType[ibgSFace] = ibgTrue; ibgOSType = ibgSFace; ibgOSMode = ibgOSModOne; ibgOSSegment = f;
Remark that in above cases only boundary cells will be selected.