zone - Specify zones to be processed
zone {zone|zone range} [limit xmin xmax ymin ymax zmin zmax] |
zone | Specifies the zone (block) to which subsequent
subset
and surface commands apply.
All subset
and surface
commands following a zone command up to the next
zone command specify the parts of the zone to be included
in subsequent processing.
If no subset
or surface
commands appear, then the default subset(s) will be used.
The default subsets are those defined by
subset and
surface commands
that occur before the first zone command.
| ||
---|---|---|---|
zone range | Specifies the zone range to which only the default subsets apply.
Any subset commands specified after the zone range command apply
only to the last zone!
The range format is
n [to|thru|through] m
where n is a zone number and m is a zone number
or the keyword last.
Note that to use the last keyword a grid or flow file must
be opened and that the zone list does not change when a new file
is opened.
| ||
limit xmin xmax ymin ymax zmin zmax | |||
Specifies the zone list generated is restricted to zones that fall within the specified min-max box. The units of xmin, xmax, etc., are in the length units that was in effect at the time of the command. Note that a grid file must be opened and that the zone list does not change when a new file is opened. |
Example 1
zone 1 ! Select zone 1 subset k all i all j 1 ! Applies to zone 1 subset k all i all j last ! Applies to zone 1 zone 3 ! Select zone 3 subset j all k all i 1 ! Applies to zone 3 list ! Do a command on the above
Example 2
subset k all i all j 1 ! Create a default subset zone 1 ! Select zone 1, j = 1 zone 3 ! Select zone 3, i = 1 subset j all k all i 1 ! Applies to zone 3 zone 4 to last ! Select zones 4 to last, j = 1 for ! all zones artis output test iris4 ! Initiate processing
In Example 2 a default subset is defined (the j = 1 surface). Since no subset commands are included in the scope of zones 1 and 4, the default subset will be used. The default subset will not be used in zone 3 since a subset command was specified in its scope.
Example 3
unit inches ! Set current length units to inches zone 1 to last limit -1.0 1.0 -5.0 5.0 1.0 2.0 ! Set range to all zones, but only ! process those within specified ! limits
See Also: The subset and surface commands for how to define subsets; the clear command for how to clear the subset list; the show command to determine the current units.
subset - Specify a subset of a zone to be processed
subset range1 range2 range3 |
range | Specifies a coordinate direction and indices to be included in the
subset.
The format of range is:
{i|j|k|u} indices [; indices ...]The coordinate direction or subset type (i, j, k for structured, u for unstructured) is selected by specifying i, j, k or u. indices specifies the indices and is of the form: start [,end [,incr]]last signifies the maximum value of the specified coordinate direction in the zone in which the subset appears and may be used in place of end. all is an alternative form of 1,last and may be used in place of the start and end values. incr is assumed to be 1 if not specified. Only one range specification is allowed for unstructured grids. |
---|
The subset command specifies a portion of the input files to be included in subsequent processing. All three coordinate directions must appear exactly once, one in each range. The order of appearance of the coordinate directions in the range's is important as we will see shortly.
Some CFPOST commands process lines of data (e.g.: genplot), some expect surfaces (e.g.: artis, cfdfem, integrate) and some expect volumes (e.g.: plot3d). Since we are dealing with three-dimensional data, we must have a way to signify what coordinate direction is defining a desired line or what two coordinate directions define a surface. Furthermore, some functions require the definition of a normal vector.
In FORTRAN terminology we would define a line or a curve with:
DIMENSION A(IDIM)A surface would be defined as:
DIMENSION A(IDIM,JDIM)And a volume would be defined as:
DIMENSION A(IDIM,JDIM,KDIM)
That is, a surface can be considered as consisting of JDIM lines of IDIM points. Furthermore, a volume is KDIM surfaces consisting of JDIM lines of IDIM points.
Continuing the FORTRAN analogy, the components of range1 become IDIM, range2 become JDIM, and range3 become KDIM. Thus, for functions that require a curve, range1 defines the varying coordinate direction. For functions that require a surface range1 and range2 define the two varying coordinate directions.
Some functions, and the computation of some variables, require the knowledge of a normal direction. The normal direction coordinate is the coordinate specified in range3. The actual direction of the normal vector is computed by taking the cross product A × B where A is a vector increasing towards IDIM and B is a vector increasing towards JDIM.
Note: For 2-D solutions (KDIM = 1), you must always specify the k component of the subset to be "k all" rather than "k 1".
Example 1 - Defining lines
subset i 1,10 k 1 j 10 ! The first index must vary
For unstructured grids the indicies specify a range of points in the variable arrays to be considered as a one dimensional structured array.
Example 2 - Defining surfaces
subset k all i all j 1 ! Surface j = 1 subset i all k all j last ! Surface j = JMAX
Note that in these two cases, the order of specifying the first two coordinate directions was chosen so that the normal vector would be pointing into the control volume.
Unstructured surfaces must be defined using the surface command because there is no contiguous range of points which define a surface.
For a stack of surfaces, you simply enter:
subset j all k all i 1,11,2 ! A group of planes
Example 3 - Defining volumes
subset i all,2 j 1,11,2;15,last k 1;11;18;27
In the preceding example, every other point in the i direction is included. In the j direction every other point in the range 1 to 11 and every point from 15 to the end is included. In the k direction only points 1, 11, 18, and 27 are included.
See Also: The surface command for a simpler method to define subsets that are surfaces; the clear command for how to clear the subset list; the zone command for how to select the current zone.
surface - A simple way to define a surface subset
surface { {i|j|k} {1|last} [range1 [range2]] | u surface_number } |
{i|j|k} {1|last} | Specifies the computational coordinate and index of the surface
to be defined.
| ||
---|---|---|---|
[range1 [range2]] | Optionally specifies the computational coordinates and indices of the
portion of the surface to be included.
range is defined exactly like range in the
subset command
except that the indices must be specified so
that they are monotonically increasing.
If a computational coordinate range is omitted then all indices
for that coordinate direction are included.
| ||
u surface_number | Specifies the identifying number of the desired unstructured surface. |
The surface command is a simpler method for defining surface subsets for those commands that require surfaces as input. The advantage of this command over the subset command is that it will correctly order the coordinate indices so that the normal vector will automatically be directed into the volume.
For unstructured grids, a surface is identified by an integer surface identification number. The unstructured surface is defined by a range of cell faces. The points that define these faces are automatically extracted from the point list.
Examples
surface i 1 is the same as subset j all k all i 1
surface i last is the same as subset k all j all i last
surface j 1 is the same as subset k all i all j 1
surface j last is the same as subset i all k all j last
surface k 1 is the same as subset i all j all k 1
surface k last is the same as subset j all i all k last
surface k 1 j 1,10 is the same as subset i all j 1,10 k 1
See Also: The subset command for a more complete definition of ranges and normal vectors.
group - A simple way to use a named surface group
group groupname |
Surface groups can be defined with the cfpart utility and stored in the grid (.cgd) file. The group command can be used to reference the surface information stored under groupname. The primary advantage of using a surface group is to define a physical entity (i.e., wing) which is composed of multiple computational surfaces and may span multiple zones.
cut [at] {x|y|z} xyz | cut [at] x1 y1 z1 x2 y2 z2 x3 y3 z3 | cut [at] point px py pz vector vx vy vz |
The cut command defines a cutting plane that will be passed through all of the active subsets. The intersection points will be passed on to the command processor as the data to be processed. The cut command can only be used with certain commands such as genplot, genplot surface, integrate area and integrate flux. If the intersection is a plane, the resultant polygons will have their points ordered so that the points will be traversed in a counter-clockwise directions if the polygon is viewed from the side of the plane toward which the normal vector points.
Up to 192 cut/crinkle planes may be defined. The list of cut and crinkle planes can be cleared with the clear command.
There are three possible formats for the cut command, as follows:
cut [at] {x|y|z} xyz |
{x|y|z} xyz | Specifies the location of a plane that is normal to the specified coordinate axis. The value xyz must be specified in default length units. The normal vector will always be directed in the positive direction along the selected axis. |
---|
cut [at] x1 y1 z1 x2 y2 z2 x3 y3 z3 |
x1 y1 z1 x2 y2 z2 x3 y3 z3 | Specifies three points P1 = (x1,y1,z1), P2 = (x2,y2,z2), and P3 = (x3,y3,z3) that define a plane. The coordinate locations must be specified in default length units. The normal vector will be directed along the vector defined by the cross product (P2 − P1) × (P3 − P1). |
---|
cut [at] point px py pz vector vx vy vz |
point px py pz vector vx vy vz | Point and normal specification of a plane. px, py, and pz define a point on the plane and the base of a vector normal to the plane. vx, vy, and vz complete the definition of the normal vector N = (vx−px, vy−py, vz−pz). |
---|
Note: When cutting planes are being used with 2D data (KDIM = 1), all subsets must specify "k all" rather than "k 1".
Examples
Examples of the use of the cut command can be found in the descriptions of the genplot, genplot surface, integrate flux and integrate area commands.
See Also: The subset and surface commands for how to define subsets; the units command for how to define the default length unit; the genplot and integrate area commands for examples of use.
crinkle - Specify a crinkle plane
crinkle [at] {x|y|z} xyz | crinkle [at] x1 y1 z1 x2 y2 z2 x3 y3 z3 | crinkle [at] point px py pz vector vx vy vz |
The crinkle command defines a crinkle plane that will be passed through all of the active subsets. The options, etc., are the same as described previously for the cut command.
rake - Specify locations for interpolation
rake x xbeg[,xend,xinc] y ybeg[,yend,yinc] z zbeg[,zend,zinc] | rake line [begin] x1 y1 z1 [end] x2 y2 z2 [number] numpts | rake plane [llhc] x1 y1 z1 [ulhc] x2 y2 z2 [lrhc] x3 y3 z3 - [ndir] n [mdir] m | rake polar [center] xc yc zc [begin] x1 y1 z1 [end] x2 y2 z2 - [rings [{equal|centroid} area]] numring [rakes] numrake - [hub [radius] r0] [angle {full|half|angle}] | rake file filename [1D|2D|3D] | rake cgd filename.cgd |
The rake command specifies the interpolation points for the interpolate command. There are five possible formats for the rake command, as shown below. The first form of the command is used to generate a 2-D or 3-D rectangular grid of points. The second and third forms are used to generate a line or plane of points. The fourth form is used to generate a polar grid of points, like an engine face rake. The fifth form of the command is the most general and allows the user to define an arbitrary structured mesh of points.
Up to 128 rake commands may be specified. The rake list can be cleared with the clear command and displayed with the show command. All coordinate data must be entered in default length units.
rake x xbeg[,xend,xinc] y ybeg[,yend,yinc] z zbeg[,zend,zinc] |
rake line [begin] x1 y1 z1 [end] x2 y2 z2 [number] numpts |
[begin] x1 y1 z1 | Specifies the first endpoint of the line.
| ||
---|---|---|---|
[end] x2 y2 z2 | Specifies the second endpoint of the line.
| ||
[number] numpts | The number of grid points to be equally spaced along the line from (x1,y1,z1) to (x2,y2,z2). The number includes the end points. |
rake plane [llhc] x1 y1 z1 [ulhc] x2 y2 z2 [lrhc] x3 y3 z3 - [ndir] n [mdir] m |
[llhc] x1 y1 z1 | The coordinates of the lower left hand corner of the plane.
| ||
---|---|---|---|
[ulhc] x2 y2 z2 | The coordinates of the upper left hand corner of the plane.
| ||
[lrhc] x3 y3 z3 | The coordinates of the lower right hand corner of the plane.
| ||
[ndir] n | The number of grid points to be equally spaced along the line from
(x1,y1,z1) to (x2,y2,z2).
The number includes the end points.
| ||
[mdir] m | The number of grid points to be equally spaced along the line from (x1,y1,z1) to (x3,y3,z3). The number includes the end points. |
rake polar [center] xc yc zc [begin] x1 y1 z1 [end] x2 y2 z2 - [rings [{equal|centroid} area]] numring [rakes] numrake - [hub [radius] r0] [angle {full|half|angle}] |
[center] xc yc zc | Specifies the center point of a polar rake.
| ||
---|---|---|---|
[begin] x1 y1 z1 | Specifies an outer point of the first rake leg.
This is used with the center to compute the radius of the rake
that is used in the centroid area calculation.
| ||
[end] x2 y2 z2 | Defines another point that, when combined with the center
and begin points, specifies the plane in which the rake lies.
It also defines the ordering of the rakes, which proceed in the
direction defined by the vector going from the begin point
to the end point.
| ||
[rings [{equal|centroid} area]] numring | |||
Specifies the number of rings (points) to be generated.
If the equal area or centroid area parameter is
not specified, numring points will be uniformly distributed
in the radial direction starting at the hub and proceeding to the
outer radius.
If the equal area parameter is specified, numring
points will be located at the edge of numring − 1
annuli whose areas are all identical.
In both cases there will be a point at the outer radius and
the hub radius.
If centroid area is specified, the points will be at the
centroid of numring annuli, each of which as the same area.
| |||
[rakes] numrake | Specifies the number of rake legs to be generated.
The rake legs are distributed uniformly in the circumferential
direction.
Includes the first and last legs.
For a 360-degree rake the first and last legs are the same;
thus nine legs will be spaced 45 degrees apart.
| ||
[hub [radius] r0] | The radius of the hub.
| ||
[angle {full|half|angle}] | The subtended angle of the rake. |
rake file filename [1D|2D|3D] |
filename | The name of a file that contains the interpolation points.
The file defines one or more computational lines, planes,
or volumes, each of which will become a zone in the output file
created by the
interpolate
command.
Single points may also be defined by creating a curve with only
a single point.
The format of the file is defined in the section
"rake file Format."
| ||
---|---|---|---|
[1D|2D|3D] | The format of the rake file depends on the dimensionality of the data. See "rake file Format" for details. |
rake cgd filename.cgd |
filename.cgd | The name of a common grid (.cgd) file to be used as the rake file interpolation points. If the rake cgd file is unstructured, then the interpolated solution will be unstructured too. |
---|
Examples
A detailed example of the use of the rake command may be found in the description of the interpolate command.
See Also: The interpolate command for how to retrieve function information at specified spatial locations; the units command for how to define the default length unit.
bledge - Create an interpolation file of the boundary layer edge
bledge [surface] [maxdist dist] [normal] output intfile [overwrite] |
dist | The maximum distance allowed for the edge of the boundary layer.
Any points further from the surface will have their iblank
value set to zero so they will not be displayed or used.
| ||
---|---|---|---|
normal | The normal option causes two planes normal to the wall
to be output.
This is useful for programs that need to integrate normal to the wall.
| ||
intfile | The name of a file that the boundary layer interpolation points
are written to.
The file is ready to be used by the
interpolate
command using the read keyword.
| ||
overwrite | The overwrite option causes the output file to be overwritten if it exists. The default is to terminate if the output file exists. |
The bledge command calculates the boundary layer edge, based on the method specified in the boundary layer command, in the current subset normal direction, and creates an interpolation surface of the boundary layer edge. The actual surface and the boundary layer surface are stored an interpolation file which may be used by the interpolate command to create a common file grid and flow file (.cgf).
Example A detailed example of the bledge command may be found under the interpolate command.
See Also: The interpolate command for how to retrieve function information at specified spatial locations.
blgrid - Create a normal grid interpolation file
blgrid output intfile [npoints n] [distance d] - [tandist first_spacing last_spacing] |
intfile | The name of a file that the generated normal grid points
are written to.
The file is a 3D eagle file which can be used by the
interpolate
command.
| ||
---|---|---|---|
npoints n | Causes n points to be placed on the lines generated normal
to the surface.
The default is 21.
| ||
distance d | The distance, in current length units, to grow normal to the surface.
The default is 1.
| ||
tandist first_spacing last_spacing | A hyperbolic tangent distribution is placed on the lines normal to the surface, instead of an equal arc distribution, with the specified end spacing. If the spacing is zero, then spacing for that endpoint will float. |
The blgrid command generates a volume grid from surface subsets by growing normal to the surface be the specified distance. This command is used to generate grids to calculate boundary layer properties such as displacement thickness. This is important when the original grid file is not very orthogonal to the surface since large errors in the boundary layer properties can occur in this situation. The volume grid is stored in a 3D eagle file which may be used by the interpolate command to create a common file grid and flow file (.cgf).
Example
grid fbdy.cgd solution fbdy.cfl units in zone 1 surf j 1 blgrid output fbdy.egl npoints 11 distance 1.0 tandist 0.01 0.0 clear all units mks ! Note that the units in the eagle file generated by ! blgrid are mks rake file fbdy.egl 3D zone 1 interpolate cgf fbdy.cgf gridunits in ! Make the grid units inches ! in the .cgf file clear all grid fbdy.cgf solution fbdy.cgf units in zone 1 surf k 1 ! All surfaces are k 1 in the new grid var delta* ! Use default edge search criteria list output delta.lis
See Also: The interpolate command for how to retrieve function information at specified spatial locations; the rake command for specifying rakes.
Last updated 15 Nov 2011