Post on 18-Jan-2018
description
Forming a Forming a Triangulated Grid Triangulated Grid of a 3D Fracture of a 3D Fracture
Network Network Dr Michael Robins UWA CWR Dr Michael Robins UWA CWR
Sept 04Sept 04
3-Phase NAPL Transport 3-Phase NAPL Transport ModelModel
Ref: D.Reynolds and B.Kueper 2001
Fracture NetworksFracture Networks
Two dimensionsTwo dimensions Three dimensionsThree dimensions
Ref: Reynolds & Kueper 2003
Cross section of 3D Fracture Cross section of 3D Fracture NetworkNetwork
Representation of fractures Representation of fractures as discsas discs
position (x,y,z)position (x,y,z) radius rradius r orientation orientation
(u,v,w)(u,v,w) aperture aaperture a
(u,v,w)z
y
x
r
a
Fracture network is formed Fracture network is formed by intersecting discsby intersecting discs
Triangulation of a set of Triangulation of a set of verticesvertices
Delaunay TriangulationDelaunay Triangulation No vertices within circumcircle of No vertices within circumcircle of
trianglestriangles Many algorithms:Many algorithms:
Incremental refinementIncremental refinement Sweep lineSweep line Divide and conquerDivide and conquer
Good for numerical modelsGood for numerical models Constrained by Planar Straight Line Constrained by Planar Straight Line
GraphsGraphs Conform to angle or area restrictionsConform to angle or area restrictions
Triangulation of DiscsTriangulation of Discs
Delaunay TriangulationDelaunay Triangulation Conforming DelaunayConforming Delaunay angle and area limits angle and area limits
Triangulation of Triangulation of intersecting discsintersecting discs
Planar Straight Line Planar Straight Line GraphGraph Intersections must be Intersections must be
includedincluded Steiner points may be Steiner points may be
added along line added along line segmentssegments Added points must exist in Added points must exist in
bothboth intersected discs intersected discs
Constrained & conformingConstrained & conformingDelaunay triangulationDelaunay triangulation
Triangle data structuresTriangle data structures
Ref: J. R. Shewchuk, 2002
a
b c
VertexVertex positionposition
TriangleTriangle verticesvertices neighboursneighbours adjacent edgesadjacent edges
EdgeEdge colinear neighbourscolinear neighbours adjacent trianglesadjacent triangles
Triangles and EdgesTriangles and Edges handled or grasped handled or grasped
relative to several relative to several orientationsorientations
The Intersecting disc The Intersecting disc problemproblem
For a huge collection of seemingly randomlyFor a huge collection of seemingly randomlyoriented, sized and positioned discsoriented, sized and positioned discs
Form a triangulated network of verticesForm a triangulated network of verticesthat lie on the disks and intersectionsthat lie on the disks and intersections
Solution must suit parallel computationSolution must suit parallel computation
Novelty lies in the requirement that insertedNovelty lies in the requirement that insertedvertices along the intersection (Steinervertices along the intersection (Steinerpoints) must be present at correspondingpoints) must be present at correspondingplaces in both discsplaces in both discs
22½ Dimension ½ Dimension TriangulationTriangulation
A disc is a 12 sided polygon not a circleA disc is a 12 sided polygon not a circle Triangulation problem is 2 dimensionalTriangulation problem is 2 dimensional Discs are flat therefore intersections are Discs are flat therefore intersections are
striaghtstriaght Various overlaps but all intersect the Various overlaps but all intersect the
boundary of one disc or the otherboundary of one disc or the other Difficulty lies in identifying shared points Difficulty lies in identifying shared points
of intersecting discsof intersecting discs Work in 2D as much as possibleWork in 2D as much as possible
Robust ArithmeticRobust Arithmetic Calculations performed using floating pointCalculations performed using floating point Limited numerical precision of the computerLimited numerical precision of the computer The solution must be unambiguousThe solution must be unambiguous Problems are inconsistencies of data Problems are inconsistencies of data
structures and triangles, eg negative areas structures and triangles, eg negative areas etc.etc.
Shewchuk’s robust math routines perform Shewchuk’s robust math routines perform calculations to increasing precision until calculations to increasing precision until result is unambiguousresult is unambiguous
Discus – program to Discus – program to triangulate intersecting triangulate intersecting
discsdiscs Represent each disc as 2D verticesRepresent each disc as 2D vertices Shared vertices along intersectionsShared vertices along intersections
Represented as both 3D locationsRepresented as both 3D locations And corresponding points calculated in frame And corresponding points calculated in frame
of reference of each discof reference of each disc Shared vertices are tagged with the same Shared vertices are tagged with the same
id.id. By using separate 2D representations, all By using separate 2D representations, all
the triangulation difficulties are already the triangulation difficulties are already dealt with by Shewchuk’s algorithmsdealt with by Shewchuk’s algorithms
How to calculate the How to calculate the intersectionsintersections
foreach disc:determine a bounding box
sort all discs by: Lowest, Closest, Leftmost bounding point
Repeat with the first_disc remaining in the sorted list:
read discs while:disc.LowestClosestLeft > first_disc.HighestFarthestRight
foreach disc read: compare bounding boxes of disc with first_disc *
foreach intersecting boxes: check if the discs actually intersect
write out first_disc and its intersections
until all discs have been examined
* Avoid excessinve comparisions by keeping lists of previously considered pairings
Check if and where two Check if and where two specific discs intersectspecific discs intersect
calculate the line of intersection of the discs’ planes:from orientation norms and centre points
translate the line into the frame of reference of each disc
see if the line intersects and boundary segments of the disc:this yields 4 points (2 or 3 in degenerate cases)
determine the overlap and the two shared verticesor no intersection
create the Planar Straight Line Graph for each disc
Additional Additional considerationsconsiderations
Three discs intersect at a pointThree discs intersect at a point Additional shared vertex needs to be inserted Additional shared vertex needs to be inserted
into the PSLG of each discinto the PSLG of each disc Three discs intersect along a line and Three discs intersect along a line and
intersecting intersections may form acute intersecting intersections may form acute anglesangles Want to merge some shared vertices and Want to merge some shared vertices and
realign structures slightlyrealign structures slightly Tangential intersectionsTangential intersections
Can be considered as no connectionCan be considered as no connection Boundary of the domainBoundary of the domain
Post processing step to cut the triangulationPost processing step to cut the triangulation
Frame of reference for a Frame of reference for a discdisc
Arbitrarily formed by:Arbitrarily formed by: Shifting the disc to the originShifting the disc to the origin Rotating about the line z=0Rotating about the line z=0 Lie the disc flat in the xy planeLie the disc flat in the xy plane
Transform is unique for each discTransform is unique for each disc Disc then formed in xy Disc then formed in xy
coordinatescoordinates 12 vertices in 2D12 vertices in 2D
z
x
y
z’
x’y’
θ
Forming a 3D unstructured Forming a 3D unstructured grid of a fracture networkgrid of a fracture network
Transforming the private vertices of Transforming the private vertices of the discs into 3Dthe discs into 3D
Restore their connectivityRestore their connectivity Connect all the shared vertices Connect all the shared vertices
(already in 3D) to respective nodes(already in 3D) to respective nodes Note how the shared vertices Note how the shared vertices
provide the entire linkage of discs to provide the entire linkage of discs to each othereach other
Triangulation with shared Triangulation with shared vertices:vertices:
ongoing workongoing work Delaunay Triangulation requires insertion of Steiner Delaunay Triangulation requires insertion of Steiner
points along intersections.points along intersections. Any such insertion must be shared.Any such insertion must be shared. The Delaunay and Constrained Delaunay algorithms The Delaunay and Constrained Delaunay algorithms
tend to work by successive refinementtend to work by successive refinement
Postulate that insertion of shared vertices can be Postulate that insertion of shared vertices can be coordinated between separate triangulation coordinated between separate triangulation processesprocesses
The algorithm would seem to suit parallel The algorithm would seem to suit parallel implementationimplementation natural and reasonably minimal communication patternsnatural and reasonably minimal communication patterns
ToolsTools C language – C language – triangle.c, robust.ctriangle.c, robust.c and and mytriangle.cmytriangle.c
Python – a handy scripting languagePython – a handy scripting language Generating or manipulating data filesGenerating or manipulating data files Prototype algorithm developmentPrototype algorithm development
MayaviMayavi – Python based visualization tool – Python based visualization tool VtkVtk – visualization toolkit – visualization toolkit
Open source, used by Open source, used by MayaviMayavi
ConclusionConclusion Have determined the Have determined the
algorithm and algorithm and equationsequations
Partially implemented Partially implemented transforms and transforms and triangulationtriangulation
Data structures lead Data structures lead to difficulties to difficulties debuggingdebugging
Visualization tools are Visualization tools are proving usefulproving useful
BibliographyBibliography David A. Reynolds and Bernard H. Kueper, David A. Reynolds and Bernard H. Kueper, Multiphase flow and transport in Multiphase flow and transport in
fractured clay / sand sequencesfractured clay / sand sequences, J. Contaminant Hydrology 51(2001) pp. 41-62, , J. Contaminant Hydrology 51(2001) pp. 41-62, 20012001
David A. Reynolds and Bernard H. Kueper, David A. Reynolds and Bernard H. Kueper, Effective constitutive properties for Effective constitutive properties for dense nonaqueous phase liquid (DNAPL) migration in large fracture networks: A dense nonaqueous phase liquid (DNAPL) migration in large fracture networks: A computational studycomputational study, Water Resources Research, 39(9), 2003, Water Resources Research, 39(9), 2003
Jonathan Richard Shewchuk, Jonathan Richard Shewchuk, Delaunay Refinement Algorithms for Triangular Delaunay Refinement Algorithms for Triangular Mesh GenerationMesh Generation, Computational Geometry: Theory and Applications 22(1-3):21-, Computational Geometry: Theory and Applications 22(1-3):21-74, May 2002.74, May 2002.
Marshall Bern and David Eppstein, Marshall Bern and David Eppstein, Mesh Generation and Optimal TriangulationMesh Generation and Optimal Triangulation, , pp. 23-90 of Computing in Euclidean Geometry, Ding-Zhu Du and Frank Hwang pp. 23-90 of Computing in Euclidean Geometry, Ding-Zhu Du and Frank Hwang (editors), World Scientific, Singapore, 1992.(editors), World Scientific, Singapore, 1992.
Jim Ruppert, Jim Ruppert, A Delaunay Refinement Algorithm for Quality 2-Dimensional Mesh A Delaunay Refinement Algorithm for Quality 2-Dimensional Mesh GenerationGeneration, Journal of Algorithms 18(3):548-585, May 1995., Journal of Algorithms 18(3):548-585, May 1995.
L. Paul Chew, L. Paul Chew, Guaranteed-Quality Mesh Generation for Curved SurfacesGuaranteed-Quality Mesh Generation for Curved Surfaces, , Proceedings of the Ninth Annual Symposium on Computational Geometry (San Proceedings of the Ninth Annual Symposium on Computational Geometry (San Diego, California), pages 274-280, Association for Computing Machinery, May Diego, California), pages 274-280, Association for Computing Machinery, May 1993.1993.
Marshall Bern, David Eppstein, and John R. Gilbert, Marshall Bern, David Eppstein, and John R. Gilbert, Provably Good Mesh Provably Good Mesh GenerationGeneration, Journal of Computer and System Sciences 48(3):384-409, June 1994., Journal of Computer and System Sciences 48(3):384-409, June 1994.
Jonathan Richard Shewchuk, Jonathan Richard Shewchuk, Adaptive Precision Floating-Point Arithmetic and Adaptive Precision Floating-Point Arithmetic and Fast Robust Geometric PredicatesFast Robust Geometric Predicates, Discrete & Computational Geometry 18:305-, Discrete & Computational Geometry 18:305-363, 1997.363, 1997.