# HydroGeoSphere/Selecting Faces
## Allow internal faces

Causes grok to define internal faces, which cut through elements.
By default, only the external faces (6 orthogonal faces for 8-node blocks and 5 faces for 6-node prisms) are defined for the mesh.
The following instructions are used to alter the set of chosen faces:

## Clear chosen faces

All faces in the domain are flagged as not chosen. This is recommended if you are unsure of which faces are chosen due to previously issued instructions.

## Choose faces all

All faces in the domain will be chosen. This is useful if you wish to assign a property to all faces in the grid. Rarely used.

## Choose faces x plane

* x1 x-coordinate of the plane.
* ptol Distance from the plane.
Faces within distance ptol of the plane defined by the equation x = x1 will be chosen. This command is particularly useful when assigning boundary conditions to a specific face of a rectangular domain.

## Choose faces y plane

As above but for the y-plane.

## Choose faces z plane

As above but for the z-plane.

## Choose faces 3pt plane

* x1, y1, z1 xyz-coordinate of the first point.
* x2, y2, z2 xyz-coordinate of the second point.
* x3, y3, z3 xyz-coordinate of the third point.
* ptol Distance from the plane.
Faces within distance ptol of the plane defined by the 3 points will be chosen. This allows you to choose planes of faces with an arbitrary orientation, and is particularly useful for setting up a set of sloping fractures.

## Choose faces 3pt plane bounded

* x1, y1, z1 xyz-coordinate of the first point.
* x2, y2, z2 xyz-coordinate of the second point.
* x3, y3, z3 xyz-coordinate of the third point.
* ptol Distance from the plane.
* x4, x5 x-range of the block.
* y4, y5 y-range of the block.
* z4, z5 z-range of the block.
Faces within distance ptol of the plane defined by the 3 points and within the rectangular block defined by the 3 ranges will be chosen.

## Choose faces block

* x1, x2 x-range of the block.
* y1, y2 y-range of the block.
* z1, z2 z-range of the block.
Faces whose centroids are within the rectangular block defined by the 3 ranges are chosen. Note that the values given for one, two or all of the ranges can be identical and in that case, the block will collapse to a plane, line or point respectively.

## Choose faces block by layer

* x1, x2 x-range of the block.
* y1, y2 y-range of the block.
* z1, z2 z-range of the block.
* nlaybot, nlaytop Bottom and top element layer numbers.
Faces whose centroids are within the rectangular block which is defined by the 3 coordinate ranges, and which lie within the element layers defined by nlaybot and nlaytop are chosen. These layer numbers do not correspond to those given during grid generation but are simply defined by numbering each sheet of elements from 1 (bottom) to nz-1 (top) where nz is the number of sheets of nodes (2-D meshes) making up the grid.
This instruction is designed for grids that are regular in x and y, but which have a variable z for a given element layer, and can be used if the top and bottom elevations of a 3-D element layer vary spatially.
Note that the values given for one, two or all of the ranges can be identical and in that case, the block will collapse to a plane, line or point respectively.

## Choose faces sheet

* nsheet_bot,nsheet_top Bottom and top sheet numbers.
Faces which are between the two specified sheets (inclusive) and are not oriented perpendicular to the sheet will be chosen.

## Choose faces top

All faces in the top sheet of the domain will be chosen.

## Choose faces top block

* x1, x2 x-range of the block.
* y1, y2 y-range of the block.
* z1, z2 z-range of the block.
Faces in the top layer whose centroids are within the rectangular block defined by the 3 ranges are chosen. Note that the values given for one, two or all of the ranges can be identical and in that case, the block will collapse to a plane, line or point respectively.

## Choose faces bottom

All faces in the bottom sheet of the domain will be chosen.

## Choose faces front

Faces on the front of the domain will be chosen. This instruction can only be applied to meshes composed of block elements. Front faces are parallel to the xz-coordinate plane and have small y-coordinates.

## Choose faces back

Faces on the back of the domain will be chosen. This instruction can only be applied to meshes composed of block elements. Back faces are parallel to the xz-coordinate plane and have large y-coordinates.

## Choose faces left

Faces on the left side of the domain will be chosen. This instruction can only be applied to meshes composed of block elements. Left side faces are parallel to the yz-coordinate plane and have small x-coordinates.

## Choose faces right

Faces on the right side of the domain will be chosen. This instruction can only be applied to meshes composed of block elements. Right side faces are parallel to the yz-coordinate plane and have large x-coordinates.

## Choose faces top gb

* fname Name of the GRID BUILDER chosen elements file gb_prefix.echos.description.
Faces flagged as .TRUE. in the file, are in the top sheet and are not oriented perpendicular to the sheet are chosen.

## Choose faces top for chosen elements

Faces are chosen if they are in the top sheet and the 3-D element they belong to is chosen.

## Choose faces gb

* fname Name of the GRID BUILDER chosen elements file gb_prefix.echos.description.
* nsheet_bot,nsheet_top Bottom and top sheet numbers.
Faces flagged as .TRUE. in the file, that are between the bottom and top sheets (inclusive), and that are not oriented perpendicular to the sheet are chosen.

## Choose faces vertical from gb nodes

* fname Name of the GRID BUILDER chosen nodes file gb_prefix.nchos.description.
* nsheet_bot,nsheet_top Bottom and top sheet numbers.
This instruction is intended for use with meshes that are generated from GRID BUILDER 2-D meshes, and is used to choose faces that are oriented perpendicular to the mesh.
If a node is chosen in the 2-D mesh, then the nodes in the 3-D mesh that have the same xy-coordinate (i.e. that fall in the same column of nodes as the 2-D node) and between the top and bottom sheets will be chosen. A face is then chosen if all of its four nodes are chosen.

## Choose horizontal faces on layer

* nlayer Element layer number.
* x1, x2 The x-range of the block.
* y1, y2 The y-range of the block.
Horizontal faces which are in the layer of elements numbered nlayer and within the rectangular block which is defined by the x- and y-ranges are chosen. This instruction can be used to select horizontal faces (e.g. to make fractures) when the elevation of a given layer of nodes is irregular.

## Choose faces stairway

* x1, y1, z1 xyz-coordinates of the first point.
* x2, y2, z2 xyz-coordinates of the second point.
* x3, y3, z3 xyz-coordinates of the third point.
Horizontal and vertical faces of an inclined plane that is defined by three points are chosen. This instruction is mainly designed for verification purpose of modelling results using inclined fractures. Note that if using this instruction, fracture velocities are multiplied by a correction factor that accounts for the longer path that contaminants have to travel from node to node.

## Choose fracture faces block

* x1, x2 x-range of the block.
* y1, y2 y-range of the block.
* z1, z2 z-range of the block.
Faces which are fracture elements and whose centroids are within the rectangular block defined by the 3 ranges are chosen. Note that the values given for one, two or all of the ranges can be identical and in that case, the block will collapse to a plane, line or point respectively.

## Choose face by nodes

* n1, n2, n3, n4 Node numbers of the face to be chosen.
The rectangular face which is made up of the 4 given nodes will be chosen.

## Clear chosen faces by nodes

As above except the face will be cleared (i.e. not chosen).

## Choose faces horizontal circle

* x_mid, y_mid, z_mid xy-coordinates of the centre of the circle and elevation of the circle.
* radius Radius of the circle.
* ptol Vertical tolerance.
Faces within a vertical distance ptol of elevation z_mid, and within the circle with centre x_mid, y_mid and radius radius are chosen. This allows you to choose faces in a domain that has a circular ground-plan.

## Write chosen faces

* fname Name of the file to which the chosen face information will be written.
Setting up complex fracture networks with combinations of choose face instructions can be very time consuming in grok and this step does not need to be repeated as long as the grid structure remains the same. This instruction is intended to be used in conjunction with the following instruction.

## Write chosen faces and host element numbers

* fname Name of the file to which the chosen face and host element information will be written.
For each currently chosen face, this instruction writes the face number and associated 3-D element numbers. If the second element number is zero, the face is on the outside of the 3-D domain.

## Read chosen faces

* fname Name of the file from which the chosen face information will be read.
If you want only those faces read from the file to be chosen then make sure to issue the instruction clear chosen faces before you use read chosen faces. If not, the results will be merged with the currently chosen set of faces. This could be useful if you want to apply a certain set of fracture material properties to more than one group of faces at a time.

## Echo chosen faces

Causes the current set of chosen face numbers to be written to the prefixo.eco file.