DFNgen
2.0
DFN Model Generator
|
#include <structures.h>
Public Member Functions | |
Poly () | |
Public Attributes | |
int | numberOfNodes |
int | familyNum |
unsigned int | groupNum |
float | area |
double | xradius |
double | yradius |
float | aspectRatio |
double | translation [3] |
double | normal [3] |
double | boundingBox [6] |
double | aperture |
double * | vertices |
double | permeability |
bool | faces [6] |
bool | XYPlane |
bool | truncated |
std::vector< unsigned int > | intersectionIndex |
The Poly structre is used to create and store fracrures/polygons.
Definition at line 12 of file structures.h.
Poly::Poly | ( | ) |
Initializes many values to zero. (See implementation for details).
Definition at line 28 of file structures.cpp.
double Poly::aperture |
Aperture for the polygon/fracture. The aperture is set after DFN generation has completed (see assignAperture()).
Definition at line 66 of file structures.h.
float Poly::area |
Polygon area (Not calculated until after DFN generation has completed).
Definition at line 33 of file structures.h.
float Poly::aspectRatio |
Aspect ratio of polygon before fracture-domain truncation. Must be value greater than zero.
Definition at line 49 of file structures.h.
double Poly::boundingBox[6] |
The bounding box of the polygon. Set with createBoundingBox(). Index Key: [0]: x minimum, [1]: x maximum [2]: y minimum, [3]: y maximum [4]: z minimum, [5]: z maximum
Definition at line 62 of file structures.h.
bool Poly::faces[6] |
The faces array contains flags (true/false) which denote which sides, if any, the polygon is touching. True (not zero) - Polygon is touching a domain boundary. False (0) - Polygon is not touching a domain boundary. Index Key: [0]: -x face, [1]: +x face [2]: -y face, [3]: +y face [4]: -z face, [5]: +z face
Definition at line 84 of file structures.h.
int Poly::familyNum |
Contains the index of the 'shapeFamilies' array in main() from which the fracture was created from. If the polygon was created from user defined input, it will be marked (-2 for user-rect, and -1 for user ell. The stochastic shape family numbers start at 0 for the first family, and increase by 1 for each addition family. Families are in the same order which they are defined in the 'famProb' variable in the input file, starting with ellipse families, then rectangular families.
Definition at line 22 of file structures.h.
unsigned int Poly::groupNum |
Fracture cluster number which the fracture belongs to. This variable is used to keep track of fracture connectivity. When a fracture first intersects another fracture, it inherits its cluster group number (groupNum). If a fracture does not intersect any other fractures, it is given a new and unique cluster group number. When a fracture bridges two different clusters, all clusters are merged to be have the cluster group number of the first intersecting fracture.
Definition at line 30 of file structures.h.
std::vector<unsigned int> Poly::intersectionIndex |
List of indices to the permanent intersection array ('intPts' in main()) which belong to this polygon.
Definition at line 98 of file structures.h.
double Poly::normal[3] |
Polygon normal. This variable is set while building the polygon.
Definition at line 55 of file structures.h.
int Poly::numberOfNodes |
Number of nodes/vertices in the polygon.
Definition at line 14 of file structures.h.
double Poly::permeability |
Permiability for the polygon/fracture. Permeability is set after DFN generation has completed (see assignPermeability()).
Definition at line 74 of file structures.h.
double Poly::translation[3] |
Translation of polygon. This variable is set while building the polygon.
Definition at line 52 of file structures.h.
bool Poly::truncated |
True if the polygon has been truncated, false otherwise. This variable is used for re-translating polygons. If the polygon has been truncated, it must be re-built. Otherwise, it can simply be given a new translation.
Definition at line 95 of file structures.h.
double* Poly::vertices |
Double array for which hold the polygon's vertices. Vertices are stored in a 1-D array. e.g For n number of vertices, array will be: {x1, y1, z1, x2, y2, z2, ... , xn, yn, zn}
Definition at line 70 of file structures.h.
double Poly::xradius |
X-radius before fracture-domain truncation. In the case of rectangles, radius is 1/2 the width of the polygon.
X-radius is equal to the value generated from randum distributions or given by the user in the case of constant distributions and user-defined fractures.
Definition at line 40 of file structures.h.
bool Poly::XYPlane |
When writing intersection points and poly vertices to output, we need them to be entirely on the x-y plane. XYPlane is used for error checking. During intersection rotations, the polygon is rotated to the x-y plane and it's vertices are changed within the Poly structure. Errors will occur if the same polygon was to be rotated again because although the vertices are now on the x-y plane, the normal is still the normal of the polygon in its 3D space. This variable prevents this from happening.
Definition at line 91 of file structures.h.
double Poly::yradius |
Y-radius before fracture-domain truncation. In the case of rectangles, radius is 1/2 the width of the polygon.
Y-radius is equal to x-radius * aspect ratio (yradius = aspectRatio * xradius).
Definition at line 46 of file structures.h.