Forming a Triangulated Grid of a 3D Fracture Network

24
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 04 Sept 04

description

Forming a Triangulated Grid of a 3D Fracture Network. Dr Michael Robins UWA CWR Sept 04. 3-Phase NAPL Transport Model. Ref: D.Reynolds and B.Kueper 2001. Two dimensions. Fracture Networks. Three dimensions. Ref: Reynolds & Kueper 2003. Cross section of 3D Fracture Network. - PowerPoint PPT Presentation

Transcript of Forming a Triangulated Grid of a 3D Fracture Network

Page 1: Forming a Triangulated Grid of a 3D Fracture Network

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

Page 2: Forming a Triangulated Grid of a 3D Fracture Network

3-Phase NAPL Transport 3-Phase NAPL Transport ModelModel

Ref: D.Reynolds and B.Kueper 2001

Page 3: Forming a Triangulated Grid of a 3D Fracture Network

Fracture NetworksFracture Networks

Two dimensionsTwo dimensions Three dimensionsThree dimensions

Ref: Reynolds & Kueper 2003

Page 4: Forming a Triangulated Grid of a 3D Fracture Network

Cross section of 3D Fracture Cross section of 3D Fracture NetworkNetwork

Page 5: Forming a Triangulated Grid of a 3D Fracture Network

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

Page 6: Forming a Triangulated Grid of a 3D Fracture Network

Fracture network is formed Fracture network is formed by intersecting discsby intersecting discs

Page 7: Forming a Triangulated Grid of a 3D Fracture Network

Triangulation of a set of Triangulation of a set of verticesvertices

Page 8: Forming a Triangulated Grid of a 3D Fracture Network

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

Page 9: Forming a Triangulated Grid of a 3D Fracture Network

Triangulation of DiscsTriangulation of Discs

Delaunay TriangulationDelaunay Triangulation Conforming DelaunayConforming Delaunay angle and area limits angle and area limits

Page 10: Forming a Triangulated Grid of a 3D Fracture Network

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

Page 11: Forming a Triangulated Grid of a 3D Fracture Network

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

Page 12: Forming a Triangulated Grid of a 3D Fracture Network

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

Page 13: Forming a Triangulated Grid of a 3D Fracture Network

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

Page 14: Forming a Triangulated Grid of a 3D Fracture Network

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

Page 15: Forming a Triangulated Grid of a 3D Fracture Network

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

Page 16: Forming a Triangulated Grid of a 3D Fracture Network

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

Page 17: Forming a Triangulated Grid of a 3D Fracture Network

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

Page 18: Forming a Triangulated Grid of a 3D Fracture Network

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

Page 19: Forming a Triangulated Grid of a 3D Fracture Network

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’

θ

Page 20: Forming a Triangulated Grid of a 3D Fracture Network

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

Page 21: Forming a Triangulated Grid of a 3D Fracture Network

Triangulation with shared Triangulation with shared vertices:vertices:

ongoing workongoing work Delaunay Triangulation requires insertion of Delaunay Triangulation requires insertion of

Steiner points along intersections.Steiner points along intersections. Any such insertion must be shared.Any such insertion must be shared. The Delaunay and Constrained Delaunay The Delaunay and Constrained Delaunay

algorithms tend to work by successive refinementalgorithms tend 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

Page 22: Forming a Triangulated Grid of a 3D Fracture Network

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 – Python based visualization tooltool

VtkVtk – visualization toolkit – visualization toolkit Open source, used by Open source, used by MayaviMayavi

Page 23: Forming a Triangulated Grid of a 3D Fracture Network

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

Page 24: Forming a Triangulated Grid of a 3D Fracture Network

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.