42
Visualisation of Unstructured and Uncorrelated Three-Dimensional Data. Final Year Environmental Engineering Thesis Fergus Bennett 24 th November 2006 Supervisor: Dr David Reynolds The University of Western Australia School of Environmental Systems Engineering

Visualisation of Unstructured and Uncorrelated Three ... · visualisation of the fractured rock network consisting of the isosurfaces of the hydraulic head gradient within each fracture

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Visualisation of Unstructured and Uncorrelated Three ... · visualisation of the fractured rock network consisting of the isosurfaces of the hydraulic head gradient within each fracture

Visualisation of Unstructured and Uncorrelated

Three-Dimensional Data.

Final Year Environmental Engineering Thesis

Fergus Bennett

24th November 2006

Supervisor: Dr David Reynolds

The University of Western Australia

School of Environmental Systems Engineering

Page 2: Visualisation of Unstructured and Uncorrelated Three ... · visualisation of the fractured rock network consisting of the isosurfaces of the hydraulic head gradient within each fracture

2

Abstract

Unstructured data may serve its purpose for information dissemination as an output

from a program, but it is not structured in a clean and consistent fashion for use as a

data source. To make use of unstructured three-dimensional data some form of

connectivity must be identified to correlate the data. With the use of irregular

triangular interpolation specifically suited to unstructured data points in a three-

dimensional plane, the unstructured data from a fractured rock network simulator can

be visualised as a three-dimensional isosurface representative of the domain for which

the data was initially modelled.

Fractured rock networks are of particular interest to hydro geologists because of the

complex ways in which fluid flows within the networks and the consequent transport

of solutes from a possible contamination source. Empirical analyses of fractured

networks are typically unreliable because of the difficulty in sampling individual

fractures on large scales. However, fractures often have predictable statistical

properties such as size and positioning, so data derived from cores, tracers and

pumping tests can be analysed statistically to simulate fracture systems and the fluid

flow within them.

MAFIC (Matrix and Fracture Interaction Code) is a three-dimensional fractured

media flow and solute transport simulator, which is a module of the FRACMAN suite

of software developed by Golder Associates Incorporated. MAFIC uses discrete

fracture network software technology and employs a triangular finite element method

to solve for flow and transport within fracture networks and outputs hydrological data

for each node in the three-dimensional domain. The difficulty in visualising the data

still remains, with many programs failing to interpret the unstructured output data and

requiring restructuring of the data to interpolate it and create a visualisation. The

recently released open source version of IBM’s Data Explorer (OpenDX) contains

several interpolation and visualisation modules specifically developed for

unstructured data.

The scope of this project is to examine the input and output data, used by the MAFIC

fractured rock simulator to model a real fractured rock network, and prepare the data

Page 3: Visualisation of Unstructured and Uncorrelated Three ... · visualisation of the fractured rock network consisting of the isosurfaces of the hydraulic head gradient within each fracture

3

in a form that OpenDX can interpret, in order to create a three-dimensional

visualisation of the fractured rock network consisting of the isosurfaces of the

hydraulic head gradient within each fracture. Data preparation will consist of utilising

the program MATLAB to correlate the data and then using OpenDX to interpolate the

data and map the two-dimensional isosurfaces of the three-dimensional fracture

network. The visualisation of a fractured rock network can then be visually analysed

revealing additional information not discernable from looking at a set of data alone.

Acknowledgements

I would like to thank the following people for their assistance:

Dr. David Reynolds for his guidance and knowledge of the modelling of fractured

rock networks.

Nic Matich for technical support with MATLAB programming for data preparation

and import into OpenDX.

Chris Pelkie from the OpenDX online user forum for support with visualisation loops

in OpenDX.

Shaan Pawley’s previous work in her 2002 final year environmental engineering

thesis ~ Influence of Fracture Geometry on Pumping well Capture.

Page 4: Visualisation of Unstructured and Uncorrelated Three ... · visualisation of the fractured rock network consisting of the isosurfaces of the hydraulic head gradient within each fracture

4

Table of Contents 1 Introduction 6

2 Literature Review 8

2.1 Fractured Rock 8

2.2 Fluid Transport in Fractures 10

2.3 Contaminant Transport in Fractures 12

2.4 Discrete Fracture Approach 13

2.5 Visualisation of Fractures 15

3 Approach 18

3.1 Data Preparation 18

3.2 Data Input 20

3.3 Interpolation of Irregular Data 21

3.4 Isosurface Iteration 23

4 Results and Discussion 25

4.1 Initial Observations 25

4.2 Network Connections 27

4.3 Improvements 29

5 Conclusions 30

Glossary 31

References 32

Page 5: Visualisation of Unstructured and Uncorrelated Three ... · visualisation of the fractured rock network consisting of the isosurfaces of the hydraulic head gradient within each fracture

5

Table of Figures

2.1.1 Fracture modes 8

3.3.1 Scattered data points in a fracture plane 21

3.3.2 Delaunay triangulation of scattered data 22

3.3.3 Isosurface of changing hydraulic head 22

4.1.1: Top view of fracture network. 25

4.1.2: Bottom view of fracture network. 26

4.2.1: High head side of fracture network. 27

4.2.2: Low head side of fracture network. 27

4.2.3: Identifying flow paths 28

4.2.4: Low flow areas. 28

Table of Appendices

Appendix A: MATLAB program 34

Appendix B: OpenDX General File 37

Appendix C: OpenDX Loop Macro 38

Appendix D: OpenDX Main Visualisation Program 39

Appendix E – Sample Node Data 40

Appendix F – Sample Element Data 41

Appendix G – Sample Prepared Data 42

Page 6: Visualisation of Unstructured and Uncorrelated Three ... · visualisation of the fractured rock network consisting of the isosurfaces of the hydraulic head gradient within each fracture

6

1.0 Introduction Fractured Rock networks are important in engineering, geotechnical, and

hydrogeological practice. They can act as a hydraulic conductor, providing pathways

for fluid flow or barriers that can prevent flow across them. Many petroleum, gas,

geothermal, and water supply reservoirs can be found in fractured rock. Fractures can

control the transport of chemical contaminants into and through the subsurface. The

application of fracture characterization and fluid flow analysis in engineering,

geotechnical, and hydrogeological practice involves three key points. Fractures that

are significant hydraulic conductors or barriers need to be identified, located, and

characterised, the flow and transport occurring in fracture systems needs to be

understood, and the changes in fracture rock networks need to be predicted and

controlled.

Due to fractured rock networks being a phenomenon that occurs inside large volumes

of rock and often below the ground it is extremely difficult to measure and observe

the processes occurring within them. Data collected in the field describing the shape,

size, orientation and hydrological properties of fractures can be used to create a

model. Finite element models that simulate a fractured rock network are made up of a

web of data nodes representative of the network. Then using defined hydrological

relationships and field data, the hydrological parameters at each node can be

calculated. This process is computationally expensive and large volumes of data are

created. The data is also unstructured in that the spacing between each data node is

not uniform because the simulator reduces the computation expense by optimising the

use of only important nodes.

Most programs that visualise data require it to be in a structured format otherwise they

must restructure the data by averaging it over a uniform grid attributing values to each

grid. However this process does not preserve the original data values and can distort

the accuracy of the image. It is proposed in this study that the visualisation of

unstructured data can be achieved with the program OpenDX. An original method

will need to be developed to overcome the problems encountered with other

visualisation programs. In addition to this, the data available is uncorrelated in that it

does not define the connectivity between the three dimensional data points, so

Page 7: Visualisation of Unstructured and Uncorrelated Three ... · visualisation of the fractured rock network consisting of the isosurfaces of the hydraulic head gradient within each fracture

7

visualising this data in its current state only produces a mess of data. It is proposed in

this study that determining a way to correlate the data provided by the simulator will

make visualisation possible.

In this study the particular focus for the visualisation is to be able to identify each

fracture within the network. An additional variable attributed to the fracture planes is

the hydraulic head, which is represented as an isosurface of changing colours

according to the hydraulic head at that point in the fracture. The visualised

combination of the fractured rock network and the changing head within it, is a

powerful tool in identifying the flow pathways of fluid and contaminants through the

network of fractured rock.

Page 8: Visualisation of Unstructured and Uncorrelated Three ... · visualisation of the fractured rock network consisting of the isosurfaces of the hydraulic head gradient within each fracture

8

2.0 Literature Review

2.1 Fractured Rock

A fracture can be defined as any non-sedimentary mechanical discontinuity in a solid

rock formation, thought to represent a surface or zone of mechanical failure. All rocks

in the earth's crust are fractured to some extent. Fractures are formed in response to

stress, which arises due to the weight of the earth's crust, high fluid pressures, tectonic

forcing, or thermal loading. As a result of this fractures occur at a variety of scales,

from microscopic to continental. It is thought that chemical processes and corrosion

may also play an important role in the failure process. However, the predominant

cause of the creation and behaviour of fractures is controlled by the relative opposing

motion of rock on either side of the fracture plane. (Natural Fractures 2006 online)

Fractures can be specified according to Fracture Mode, which is a form of

nomenclature that is purely descriptive since a combination of factors may have led to

its formation. Mode I Fractures are created when the fracture wall is displaced normal

to the plane of the fracture. In the case of a joint the fracture walls are separated

leaving a void as opposed to a compaction band where the fracture walls are

compressed together crushing the rock structure. In both these cases a conduit for

fluid flow is formed bounded by the surrounding fracture wall that is relatively

impermeable. Mode II and Mode III fractures are formed from the fracture wall being

displaced in a direction parallel to the plane of fracture. These fracture types are

commonly referred to as faults and are caused by horizontal slipping and tearing of

rock layers (Natural Fractures 2006 online). Fracture Modes are shown in figure 2.1.1

Figure 2.1.1: Fracture Modes (Natural Fractures 2006 online)

Page 9: Visualisation of Unstructured and Uncorrelated Three ... · visualisation of the fractured rock network consisting of the isosurfaces of the hydraulic head gradient within each fracture

9

Different types of fractures can form in different orientations relative to the earth

stresses that prevailed during the time of fracturing. Correctly identifying fracture

types is essential for predicting the orientations of fracture networks and enabling the

building of fluid flow and solute transport models because different types of fractures

have different fluid flow properties. Particular types of fractures only form in specific

rock types or in specific geologic environments so by understanding the geological

properties of an area by examining core samples and nearby outcrops, the nature of

the fractured rock network can be better understood. Some types of fractures have

particular shape and size distributions in different types of rock and obey particular

spacing laws, which can be used in the building of models

Tracer tests and hydraulic tests are used to investigate the interconnectivity of fracture

networks, and also provide an insight into the solute transport and chemical reactions

occurring within in the fracture network. A conceptual model describing the

behaviour of the system is chosen in order to numerically estimate properties. The

natural gradient tracer test uses the natural fluid flow of the system to transport an

injected amount of passive tracer, which can be monitored by a grid of wells situated

down the hydraulic gradient from the source. For convergent/divergent tracer tests an

artificial flow field is created through the extraction or injection of water into a well.

During the convergent tracer test a tracer is injected into a nearby well and then water

is extracted from the monitoring well to determine flow properties. During the

divergent tracer test the tracer is introduced into the well being injected with water

and the surrounding wells are monitored for the arrival of the tracer. A two well tracer

test involves the pumping of water out of one well to be injected into another nearby

well. Once steady state is achieved the tracer is introduced into the injection well and

the extraction well is monitored for the arrival of the tracer.

Fracture characterisation by gathering information from sources such as core samples

and tracer tests enable the construction of a conceptual model. Accurately

characterised fractures result in a more useful model and a better understanding of

fluid and solute transport within them. The accurate prediction of dominant flow

pathways and contaminant transport is important for planning things such as

remediation of the contaminated area or the construction of pumping and observation

wells. Accurate predictions will therefore save time and money.

Page 10: Visualisation of Unstructured and Uncorrelated Three ... · visualisation of the fractured rock network consisting of the isosurfaces of the hydraulic head gradient within each fracture

10

2.2 Fluid Transport in Fractures

It has been determined experimentally that fluid transport in porous media obeys

Darcy’s Law for low fluid velocities as described in equation 2.2

Q = k.A . (Pb – Pa) µ L

The total fluid flow, Q in units of volume per time, is equal to the product of the

permeability of the porous medium, k, the cross sectional area of flow, A, and the

pressure drop, Pb – Pa, from the origin to the destination, all divided by the viscosity,

µ and the length the pressure drop is taking place over, L. A negative sign is required

because fluid flows from high pressure to low pressure, therefore if a change in

pressure is negative then the flow will be positive.

However our understanding of fluid transport in fractured porous media is less well

understood and more difficult to verify experimentally. The actual fluid flow in a

fracture is dependant on the individual properties of a fracture which are difficult to

determine. Consequently, fractures are commonly described by the parallel plate

model, where the fracture is conceptualised as two smooth parallel plates of infinite

extent and not in contact, thereby creating a fracture plane between the plates. (Snow

1969; Brown 1989). The steady state solution of the Navier-Stokes equations for one

dimensional laminar flow between two parallel plates gives the Cubic Law as shown

in equation 2.3.

Q = b3 . (Pb – Pa) 12µ L

The total flow, Q, in units of volume per time is equal to the product of the cubed

distance between the plates, b, and the pressure drop, Pb – Pa, from the origin to the

destination, all divided by the 12 times the viscosity, µ and the length the pressure

drop is taking place over, L

The parallel plate model however, is over simplified since fractures are not perfectly

smooth plates separated by a constant aperture and the fracture wall actually has an

Page 11: Visualisation of Unstructured and Uncorrelated Three ... · visualisation of the fractured rock network consisting of the isosurfaces of the hydraulic head gradient within each fracture

11

imperfect surface (Brown 1989). Additionally, portions of the fracture wall may be in

close contact and not represented accurately by a continuous unimpeded aperture.

Investigations have shown that the parallel plate model assuming uniform aperture is

only valid for low pressure gradients in the case of a uniformly open fracture (Tsang

1984). The Cubic Law can be modified to incorporate surface roughness by including

a friction factor (Witherspoon et al, 1980) as shown in equation 2.4.

Q = 1 b3 . (Pb – Pa) f 12µ L

Equation 2.4 is only valid for conditions of low tortuosity where the fluid pathways

remain parallel with the hydraulic gradient. It has been shown through theoretical

investigation that a large fraction of small apertures combined with high fracture

roughness resulting in high flow path tortuosity, that the flow is reduced by several

orders of magnitude from what is estimated by the parallel plate method (Tsang

1984). The flow in this case was found to be well described by the Reynolds Equation

which is a particular form of the Navier-Stokes Equation for steady state flow in an

incompressible fluid between two stationary planes (Brown 1987) shown in equation

2.5.

� . ( d3(x, y) . Δp(x ,y) ) = 0 12µ

Where d(x, y) is the local thickness of the fluid layer and p(x, y) is the local hydraulic

pressure. Use of the Reynolds equation is more complicated than the Cubic Law

approach, however it offers a better representation of fluid flow. Accurate knowledge

of the fracture properties such as aperture distribution and tortuosity are required in

order to select the appropriate method suited for the modelling requirements.

Page 12: Visualisation of Unstructured and Uncorrelated Three ... · visualisation of the fractured rock network consisting of the isosurfaces of the hydraulic head gradient within each fracture

12

2.3 Contaminant Transport in Fractures

The transport of contaminant within fractured rock environments works under a

similar process to what occurs in porous media. The processes of advection,

adsorption, diffusion, dispersion and chemical reactions all play a part in transport and

retardation of solutes. In fractured rock networks the fractures act as the pathways for

contaminant transport with the dominant processes being advection and dispersion.

The rock media containing relatively immobile water, can store contaminant mainly

through the process of diffusion. Understanding and measuring these processes is

useful in determining the migration of contaminant plumes within a fracture network.

(Fetter 1994)

Advection is the bulk movement of a fluid from one location to another. Contaminant

present in a fluid is passively carried by the advection movement of the fluid causing

a mass transport of contaminant. In fractured rock networks different hydraulic

gradients may be present in different parts of the network, which makes it difficult to

predict the rates of advection. Consequently contaminants located in some parts of the

network may be isolated to small pockets of high concentration while other are

diluted as they are transported along stronger flow pathways. (Fetter 1994)

Dispersion is the process of spreading or dilution of a contaminant while advection is

occurring in fractures, as a result of the friction caused by the surface of the fracture

walls, which are by nature close together, combined with the tortuous path caused by

varying aperture size and blocked areas of the fracture. A plume of contaminant will

be spread normal to the direction of the flow as well as along the direction of the flow

as a result of some flow paths being longer than others. (Fetter 1994)

A large concentration gradient between a fracture and rock media can result in

contaminant diffusing into the rock media. Diffusion is further enhanced through

adsorption of contaminant to the fracture wall increasing the rate of diffusion. This

represents an attenuation mechanism that reduces contaminant mass in the primary

flow channels because the rock media effectively lowers the concentration of

contaminant in the fracture. However trapped contaminant may continue to pollute

the fracture network for longer after the initial plume has transported through it.

(Freeze and Cherry 1979).

Page 13: Visualisation of Unstructured and Uncorrelated Three ... · visualisation of the fractured rock network consisting of the isosurfaces of the hydraulic head gradient within each fracture

13

2.4 Discrete Fracture Approach

The discrete fracture approach is a conceptual model of fluid flow through fractured

rock networks and was used to simulate the data that was visualised in this study. In

this approach each individual fracture is modelled separately. The location, size,

orientation, aperture distribution and termination percentage are required to model the

fracture or an alternative method is to measure the statistics governing the distribution

of each feature can be measured and a representative realisation with the same

properties can be created. The selection of method depends largely on the knowledge

of the fracture geometry and properties, the quality of the input data and availability

of computational power. For example in the case where little is known about the

actual fracture network geometry but quality input data has been obtained then a

representative realisation must be used.

An investigation into the importance of knowing fracture network geometry when

predicting mass transport with the discrete feature approach was conducted by

Anderrson and Thunvik (1986). They concluded that knowing fracture geometry

reduced the uncertainty in comparison to cases where fracture geometry information

was not available. Partial knowledge of the main fracture geometry also reduced

uncertainty when manipulating alternative realisations, however knowledge of the

bulk permeability of the fracture network was found to be more useful than collection

of additional geometric data.

A boundary element procedure was developed by Elsworth (1986) to reduce the

required computational effort to define a fracture network. The procedure simulated

transient flow through a statistically assembled structure of fractures represented as

Poisson discs of constant aperture, however it was only capable of handling fractures

with constant or average aperture properties. Anderrson and Dverstorp (1987)

developed a similar model to investigate flow through a network of discrete fractures

in a three dimensional domain. The advantages of this model was a more realistic

fracture generation system and the ability of the model to identify and disregard

fractures not required in solving the flow regime, in order to optimise the

computational requirement.

Page 14: Visualisation of Unstructured and Uncorrelated Three ... · visualisation of the fractured rock network consisting of the isosurfaces of the hydraulic head gradient within each fracture

14

A model for a discrete fracture system, which took into account channelling effects

for the investigation of fracture flow in a granite uranium mine, was developed by

Cacas et al (1990). The model assumed that flow in the fractures was not uniformly

distributed over the entire fracture plain but was limited to set channels. The nodes of

the fracture network are consequently located in the centre of the fracture planes as

opposed to the intersections between fractures. Flow between fractures is then

modelled according to flow bonds between the nodes of connected fractures, which

meet at the fracture intersection. Each bond is equivalent to the set of flow channels

connecting to intersecting fractures. This over simplifies the fracture system and

calibration with hydraulic conductivity from field tests is required.

The discrete fracture software known as MAFIC used to simulate the data, which was

visualised in this study, was developed by Golder Associates Incorporated. MAFIC

simulates transient flow and transport through a three dimensional network of

triangular finite elements. Flow models incorporating networks of discrete fractures

provide more realistic simulations of steady state flow and solute transport in

fractured rock (Miller et al). MAFIC takes position and hydrological data at each node

and defines a connectivity between each node in the form of triangular elements. The

flow relationship between elements is defined and once some hydrological conditions

obtained from field data are inputted, then flow between each connected element in

the fracture network can be calculated.

The output from the MAFIC simulator contains the solved hydrological parameters at

each node. However, the output data is not correlated to the input data, making it

difficult to discern the link between the location of a node and its hydrological

parameters. This combined with the irregular spacing of the data nodes and the sheer

quantity of nodes makes interpretation of the data list as an information source

extremely difficult. Some form of remnant connectivity in the data form the finite

element process must be identified that links the unstructured data, so that it can be

visualised as a fracture network and not simply as a mess of scattered data points.

Page 15: Visualisation of Unstructured and Uncorrelated Three ... · visualisation of the fractured rock network consisting of the isosurfaces of the hydraulic head gradient within each fracture

15

2.5 Visualisation of fractures

Visualisation is the set of techniques used to turn a set of data into visual insight. The

aim of this is to give the data a meaningful representation by exploiting the powerful

discerning capabilities of the human eye, or to think of it a different way, to transform

something created and defined mathematically to something that is visually

comprehendible. Data can be displayed as a two or three dimensional image using

techniques such as colourisation of the surface to create an isosurface, animation and

spatial annotation to add information to the image and create an instant understanding

from multi-variable data.

Visualisation of fractures has two important outcomes. Firstly, a fracture network by

nature is a phenomenon that occurs within a volume of solid rock and most particular

fracture networks of interests are situated hidden beneath soil in the subsurface.

Obviously they cannot be physically viewed except by excavation of some suitable

sites, which will only reveal a slice through the network and often disrupts the

structure of the fractures. Characterisation of the fracture network allows conceptual

models to be created that represent what cannot be seen.

Secondly, a visualisation can display information that cannot be directly seen by

physically looking at a fracture. Additional information such an isosurface of

changing hydraulic head or a vector field of flow direction and intensity can reveal

properties of the fracture network that are not obviously apparent in data form but can

be quickly identified and interpreted visually.

Finite element models are inherently computationally expensive with large volumes

of data output being created. MAFIC is arguably the best fluid flow and solute

transport simulator currently available to the hydrogeology industry. However its

visualisation tools are limited so an alternative visualisation program had to be

considered. The MAFIC flow simulator prioritises and isolates nodes of significance,

reducing the computational expense. A consequence of this is that the unstructured

data is difficult to visualise because most programs must restructure the data by

interpolating to a uniform grid before an isosurface can be mapped. This study

investigated the use of the open source version of IBM’s Data Explorer referred to as

Page 16: Visualisation of Unstructured and Uncorrelated Three ... · visualisation of the fractured rock network consisting of the isosurfaces of the hydraulic head gradient within each fracture

16

OpenDX. OpenDX is fully programmable to allow the transformation and

manipulation of data specifically for the purpose of visualisation.

Although MATLAB has the computational power to deal with large data sets it is

lacking good visualisation tools. In order to achieve a higher level of image quality

and allow more interaction with the visualisation a specialist visualising program was

required. OpenDX is not well suited to large scale data manipulation so MATLAB

was still utilised for data preparation because its logical matrix operation tools are

ideal for correlating large data blocks.

OpenDX differs from many other types of programming software in that it uses a

graphical user interface as opposed to explicitly written code. Prewritten function

codes in the form of modules can be selected from a list and programs can be

constructed by linking these modules. If a module does not exist that performs the

desired function then combining simple building block modules together to form a

macro can satisfy most requirements. Most modules contain some amount of limited

programmability to specify it exact function. This simplification of programming is

useful when all the modules required are already present, however when a macro

needs to be created, unless the user has an extensive knowledge of the function and

application of every module it can be a difficult task selecting the building block

modules that best suit the situation.

OpenDX is well documented with definitions for each module and tutorials that walk

the user through simple examples. A list of sample programs that demonstrate various

features of OpenDX is also available and it is advisable that novices run each sample

program and inspect not only the image but the program string, import file and data

set that leads to the image creation. More complicated problems require a true

programmers mentality with the only difference being the user must use combinations

of prebuilt modules as opposed to writing actual code. For complicated problems it is

advisable to peruse the OpenDX online support forum for discussion on similar

problems or post a question and wait for a response.

Page 17: Visualisation of Unstructured and Uncorrelated Three ... · visualisation of the fractured rock network consisting of the isosurfaces of the hydraulic head gradient within each fracture

17

“Open Visualization Data Explorer is a visualization framework that gives users the

ability to apply advanced visualization and analysis techniques to their data. These

techniques can be applied to help users gain new insights into data from applications

in a wide variety of fields including science, engineering, medicine and business. Data

Explorer provides a full set of tools for manipulating, transforming, processing,

realizing, rendering and animating data and allow for visualization and analysis

methods based on points, lines, areas, volumes, images or geometric primitives in any

combination. Data Explorer is discipline-independent and easily adapts to new

applications and data. The integrated object-oriented graphical user interface is

intuitive to learn and easy to use.” (http://www.research.ibm.com/dx/)

Page 18: Visualisation of Unstructured and Uncorrelated Three ... · visualisation of the fractured rock network consisting of the isosurfaces of the hydraulic head gradient within each fracture

18

3.0 Approach

3.1 Data Preparation

Data preparation was required so that uncorrelated data could be converted to a form,

which could be easily inputted and interpreted by into the visualisation program

OpenDX. To create a visualisation of the changing hydraulic head in a fracture plane

the positional data and hydraulic head value was required. In addition to this the

fracture number identifying which fracture data belonged to would also be required

for large data lists containing many fractures within the three dimensional domain of

interest.

The data requiring visualisation in this study was a .MFT output file from MAFIC.

The file contained two sets of data; firstly a list of nodes with their corresponding

positional data and the hydrological parameters that MAFIC had solved for in the

simulation of which hydraulic head was the focus for this study, and secondly a list of

the elements used to represent the fractures in the simulator with their corresponding

three nodes located at the point of each finite element triangle and the fracture number

that the element was situated in. To simplify the data preparation process the .MFT

file was split into two separate text files called nodes.txt and elements.txt, which

corresponded to the first data block of nodal data and the second data block of

element data respectively. The data was also stripped of all header information

leaving clean blocks of data that could easily be loaded into MATLAB or Microsoft

EXCEL.

Initially it was useful to view the data files in Microsoft EXCEL, which enabled a

better understanding of the data. With the use of EXCEL’s column transformation

toolbox, several important traits of the data were identified that would be required to

correlate the data for input into OpenDX. In order to create a data list containing

positional data matched with the hydraulic head value and fracture that it belonged to,

a MATLAB program would need to be written to perform matrix operations to

correlate the two data sets. This was important since MAFIC data files may contain

hundreds of thousands of nodes spread over hundreds of fractures, so manually

correlating the data would be extremely time consuming and unnecessary.

Page 19: Visualisation of Unstructured and Uncorrelated Three ... · visualisation of the fractured rock network consisting of the isosurfaces of the hydraulic head gradient within each fracture

19

Rearranging the columns of the data in the element file so that each node mentioned

on an element corner was assigned a fracture number in which the element was

located, revealed that a node could exist in multiple fracture groups. In fact, the nodes

that repeated in multiple fractures were those situated along the intersection of two

fracture planes. With the knowledge that each group of nodes representing a fracture

plane created by the simulator was in a perfect two dimensional plane, and that nodes

that were situated on fracture plane intersections were required by both fracture

planes, it was decided that the data file that would be inputted into OpenDX would

need to be grouped according to fracture number with the inclusion of the repeated

nodes, which would only be discernable by different fracture number. This was

important because some fracture planes may contain a small number of nodes, or a

vital node with no close neighbours, and the omission of this data would dramatically

effect the visualisation of the fracture plane as an isosurface because the interpolation

between the data points would shift emphasis to other nodes. Additionally, because

these nodes occur on fracture intersections, the visualisation of the fracture network

would be less accurate because the isosurfaces of the intersecting fracture planes

would not match.

By understanding the required format the data would need to be in for input into

OpenDX and understanding the format of the output data from the simulator, the

MATLAB code could then be written to take the files nodes.txt and elements.txt and

create a single file of five columns; the first three columns containing the three-

dimensional positional data, the fourth column containing the hydraulic head used to

create the isosurface and the fifth column identifying the fracture the data belonged to.

The visualisation of the data could then be automated by programming a loop into

OpenDX to iterate the plot of each isosurface by fracture number.

The steps taken in the MATLAB program are as follows;

1. Load the elements.txt file and create a two column matrix containing the list of

nodes and what fracture they are present in, with excess repeated data

excluded.

Page 20: Visualisation of Unstructured and Uncorrelated Three ... · visualisation of the fractured rock network consisting of the isosurfaces of the hydraulic head gradient within each fracture

20

2. Load the nodes.txt file and assign the positional and head data to the

corresponding nodes in the list by matching the node numbers, resulting in a

six column matrix.

3. The matrix was then further simplified by excluding the column containing the

node number since it had served its purpose in correlating the two data sets.

4. The fracture groups although explicitly numbered were not numbered

consecutively from one to last, so this was done to simplify the iteration

process in the visualisation loop.

5. The correlated reformatted data was then outputted to a text file called

results_stripped.txt ready for OpenDX to import.

The code for MATLAB program used to correlate the data is shown in Appendix A.

3.2 Data Input

The General Array Importer in OpenDX uses a header file to describe the structure

and location of data to be imported. This file consists of keyword statements that

identify important characteristics about the data. Characteristics important to defining

the data for import include grid structure, format, and data type, and also contain the

path name of the file containing the data.

A header file can be created with the Data Prompter feature of OpenDX, which

prompts for the necessary information and creates header file. This method is

recommended in the OpenDX tutorial, however the process is not always straight

forward. An alternative approach was to open an existing header file with a text editor

and write in the keywords to describe the data. This method was preferred because

each keyword in the header file was directly set to the required parameters without an

over reliance on the automation of the Data Prompter which was not “user friendly”

as a result of OpenDX not being native to the Windows platform.

The header file is shown in Appendix B

Page 21: Visualisation of Unstructured and Uncorrelated Three ... · visualisation of the fractured rock network consisting of the isosurfaces of the hydraulic head gradient within each fracture

21

3.3 Interpolation of Irregular Data

The unstructured spacing of the data points within each fracture plane was inherited

from the finite element mesh used by the MAFIC simulator. Each element size and

orientation within the two dimensional plane was unique. Two options were available

to interpolate the data points within a fracture plane to create an isosurface. One

option was to restructure the data so that the scattered data points are interpolated onto

every position on a grid resulting in a structured grid of interpolated data points.

However, an inbuilt program module of OpenDX specifically designed for

interpolation directly between irregular data points was favoured over restructuring

the data.

The “Connect” module uses Delaunay triangulation involving Voronoi tessellation of

a plane to create triangle connections for a field of scattered positions, without

manipulating the existing data points. This process involves computational geometry,

whereby a set of points in a plane is triangulated such that no point is inside the

circumcircle of any triangle. Delaunay triangulations maximise the minimum angle of

all the angles of the triangles in the triangulation in order to avoid "sliver" triangles.

However, in awkwardly scattered data “sliver” triangles may still be unavoidable.

Figure 3.3.1 shows typical scattered spacing of the data points in a fracture plane

output by the MAFIC simulator.

Figure 3.3.1: Scattered data points in a fracture plane.

Page 22: Visualisation of Unstructured and Uncorrelated Three ... · visualisation of the fractured rock network consisting of the isosurfaces of the hydraulic head gradient within each fracture

22

Figure 3.2.2 shows the Delaunay triangulation utilised by the “Connect” module of

OpenDX to interpolate data points with irregular spacing to create a surface plane.

Figure 3.3.2: Delaunay triangulation of scattered data points.

Figure 3.2.3 shows an isosurface of changing hydraulic head that can be mapped

using the “AutoColor” module as a result of the interpolation.

Figure 3.3.3: Isosurface of changing hydraulic head

The OpenDX program used to create an isosurface of hydraulic head for a single

fracture is very simple. The basic programming string of modules is;

Import Connect AutoColor Image

Multiple fracture planes can be plotted to the same image using the “Collect” module

placed between “Autocolor” and “Image”. Then if separate text files of data for each

fracture group are created and imported in their own string, they can be inputted into

“Collect”, which can take up twenty separate inputs. This however, is not practical for

many fracture planes, necessitating the implementation of loop module.

Page 23: Visualisation of Unstructured and Uncorrelated Three ... · visualisation of the fractured rock network consisting of the isosurfaces of the hydraulic head gradient within each fracture

23

3.4 Isosurface Iteration

In order to iterate the plotting of isosurfaces of fracture planes a loop program had to

be written in OpenDX. The loop had to identify groups of data points specified by

fracture number. Then for each fracture group the data points were interpolated and an

isosurface resulting in a network of isosurfaces for every fracture plane in the data set

being plotted to one image.

A loop program can be created in OpenDX by combining several in built modules and

saving them as a macro. A macro is a higher level processing function that is

constructed from simpler ones. The macro can then be loaded into the OpenDX

toolbox and used as a separate module. In general a macro needs to be constructed so

that so that it receives a data input, performs some action on the data and then outputs

the data in its altered form.

The macro constructed for the iterative visualisation of fracture isosurfaces was

named FracMacro3 and is shown in Appendix C. When constructing a macro the file

can be saved as a normal .NET file however in order to use this file as a macro it must

be given a macro name. Then when a program needs to use that macro it must be

loaded by selecting the .NET file in the workspace, however it will appear in the

module list with the macro named it was assigned. The macro contains five key

elements;

1. The input takes the data, which has previously been imported in the main

program and designates the fracture number as the parameter to be iterated

using the “Mark” and “Unmark” modules.

2. The “ForEachN” module is a simple iteration program that takes as inputs an

initial value, final value and the step increase for each iteration. The initial

value is set to one for fracture group one, and the final value is set to the total

number of fracture groups, with a step size as one to cycle through each group.

3. “Mark” is then required to be set to the head data so that each fracture group

can be interpolated and mapped as an isosurface in a string similar to what is

Page 24: Visualisation of Unstructured and Uncorrelated Three ... · visualisation of the fractured rock network consisting of the isosurfaces of the hydraulic head gradient within each fracture

24

used for visualising a single fracture plane except that the output is passed to

the “Append” module.

4. The “Append” module passes each isosurface to be stored in the

“CollectMultiGrid” module, which collects each isosurface using the

“GetLocal” and “SetLocal” looping procedure, and stores it until every

fracture group has been interpolated.

5. The final collected set of isosurfaces is then output ready to be visualised in

the main program. Before output, the “Autocolor” module must be calibrated

to the global minimum and maximum head values to ensure the isosurfaces are

coloured on a uniform scale.

For the main the main program to work the created macro must be available in the

same workspace. The main program consists of an “Import” module, which calls to

the general file to import the data. Once again the correct file location of the general

needs to be entered. The data then passes through several identification modules to

ensure the macro recognises which data to perform its operations on. The output of

the macro then connects directly into an “Image” module, which graphs the fracture

network isosurfaces.

Within the image window options tab the view control interactor can be selected

which allows manipulation of the three dimensional image such as rotation and zoom.

Axes can also be added to display the dimensions of the image, and the background

colour can be modified to suit. To adjust the shading and colours of the isosurface the

“Autocolor” module in the macro must be calibrated and saved once the desired

image appearance has been reached.

Page 25: Visualisation of Unstructured and Uncorrelated Three ... · visualisation of the fractured rock network consisting of the isosurfaces of the hydraulic head gradient within each fracture

25

4.0 Results and Discussion 4.1 Initial Observations

The data set used in the creation of these particular visualisations was modelled from

a fractured rock approximately fifty meters square and ten meters deep. The head

values ranged from a minimum of –1.27 meters to a maximum of 9.76 meters. Flow

occurs from high head to low head. In these visualisations the red shading in the

fracture isosurfaces represent the highest head values, while the dark blue shading

represents the lowest head values. It is apparent that there is a definite hydraulic

gradient present with a head difference of approximately 11 meters from one side to

the other. However the gradient is not homogeneous across the network, revealing

that each individual fracture may have a slightly different gradient implying their

different hydrological characteristics. An area of note that is most visible in figure

4.1.1, which shows the top view of the fracture network, but is also visible in figure

4.2.1, which shows the underside of the fracture network, is the anomaly located in

the low head area of the isosurface. A circular region of particularly low head is

apparent. The location and shape of this low head area could be explained as a

pumping well that has penetrated the fracture rock network.

Figure 4.1.1: Top view of fracture network.

Page 26: Visualisation of Unstructured and Uncorrelated Three ... · visualisation of the fractured rock network consisting of the isosurfaces of the hydraulic head gradient within each fracture

26

Figure 4.1.2: Bottom view of fracture network.

Pumping water from a well in this location would immediately reduce the head in the

immediate area and over a prolonged period the hydraulic gradient imposed by

removing the water would draw water through fractures from further away. In this

situation observation wells may be been place in a grid penetrating the fracture

network. A tracer would be introduced to an observation well and the other

observation wells and pumping well would be monitored for the arrival of the tracer.

This process would be repeated for each observation well in order characterise and

simulate the network and calculate its hydrological properties. These visualisations

show in one picture what is otherwise represented purely in data form.

Page 27: Visualisation of Unstructured and Uncorrelated Three ... · visualisation of the fractured rock network consisting of the isosurfaces of the hydraulic head gradient within each fracture

27

4.2 Network Connections Figures 4.2.1 and 4.2.2 show a perspective view of the high and low head sides of the

fracture network respectively. Both figures show the connected nature of the network.

A contaminant introduced to any of the connected fractures at the red high head end

of the network will travel along flow paths defined by the fracture size, orientation

and points of intersection, driven by the hydraulic gradient.

Figure 4.2.1: High head side of fracture network.

Figure 4.2.2: Low head side of fracture network.

Page 28: Visualisation of Unstructured and Uncorrelated Three ... · visualisation of the fractured rock network consisting of the isosurfaces of the hydraulic head gradient within each fracture

28

The effect of advection and dispersion may mean that a localised points of

contamination may be transported to any number of sites in the blue low head

network area depending on the preferential flow paths available. Figure 4.2.3

highlights an area densely packed with fracture intersections. The introduction of a

contaminant to this area would result in transport along numerous fractures and

spreading across a larger area.

Figure 4.2.3: Identifying flow paths

Areas within the network exist that are not conducive to contaminant transport. If a

contaminant must move against the hydraulic gradient in order to gain access to an

intersection that will allow a flow path to lower head areas in the network then it will

likely be contained in that area. The protruding green tip of the triangular fracture in

figure 4.2.4 is such an area.

Figure 4.2.4: Low flow areas.

Page 29: Visualisation of Unstructured and Uncorrelated Three ... · visualisation of the fractured rock network consisting of the isosurfaces of the hydraulic head gradient within each fracture

29

4.3 Improvements

Due to the sometimes sparse and irregular spacing of data nodes within a fracture

plane and the low number of data numbers along intersections, a seamless three

dimensional isosurface is not always possible. This is because the data nodes near

intersections but not necessarily exactly on the intersections are not connected in

terms of the visualisation. I may be possible to use the “Autogrid” module in OpenDX

that would interpolate data nodes within a set radius. However, once again the

irregular spacing of data nodes would create a distorted image along fractures as a

result the interpolation averaging. If the data nodes were restructured with the

“Regrid” module prior to this interpolation then smoothing isosurface intersections

would be obtained however the value original data nodes would not be preserved.

Due to the large number of fractures each with similar isosurface colouring it is hard

to define the silhouette of each fracture. Additionally, some fractures are hidden

within the isosurface layers of other fractures. The solution to this would be to include

in the OpenDX visualisation program an interactive selector that allows the user to

specify which fractures to view and which to exclude. This would allow the user to

peel away obstructing layers to reveal otherwise hidden information. It was difficult

to determine how to implement the “Selector” module to allow this function so the

idea was abandoned although it should be possible.

This same visualisation process could be used to illustrate other parameters of

interest. MAFIC is capable of simulating solute transport within fractured networks.

Contaminant isosurfaces could be created along the same fracture networks revealing

the probable flow pathways and low flow areas. Time series data of contaminant

concentrations or hydraulic head values not at steady could be used to create an

animation. Because of the visualising power of OpenDX the creation of a complicated

fracture network visualisation can be achieved in a matter of seconds making

animations of large data sets possible. All that is needed is the time series data

because all the tools are already available in OpenDX.

Page 30: Visualisation of Unstructured and Uncorrelated Three ... · visualisation of the fractured rock network consisting of the isosurfaces of the hydraulic head gradient within each fracture

30

5.0 Conclusions

The evaluation of the OpenDX software as a visualisation tool produced successful

results. Prior to visualisation a MATLAB program had to be created to correlate the

data and establish connectivity by assigning which fracture plane each data node

belonged to. This program was designed to take variable data files so the results are

reproducible for simulations by MAFIC of other fractured rock networks. The

correlated data file was specifically formatted to be easily exported to OpenDX.

OpenDX had a ready built interpolation module that did not require restructuring the

scattered points. However, there was no ready built module to iterate the interpolation

of multiple data planes in the same image, so combining existing building block

modules created a loop macro. This macro can be calibrated to map fracture networks

with any number of fracture planes so it can be applied to other fractured rock

network simulations.

The engineering significance of this study was to provide a visualisation for an

important hydrogeological area of research. An original method was used to solve the

problem of visualising unstructured, uncorrelated three dimensional data. Prior to this

study the simulated data could not be accurately visualised. Large data sets of useful

but unrecognisable information can now be visually analysed. The images can be used

as an aid in understanding the fluid flow and contaminant transport within fractured

rock networks.

A continuation of this study would firstly include a refining of the OpenDX program

to allow the user to select which fractures to view and hide the rest. This would make

analyses of the fractured network simpler because of the large number of fractures

and the camouflaging of isosurfaces of similar colouring and the hiding of fractures in

the centre of the network. Secondly would be an application of this visualisation

process to time series data to create an animation of situations such as a migrating

contamination front through a fractured rock network

Page 31: Visualisation of Unstructured and Uncorrelated Three ... · visualisation of the fractured rock network consisting of the isosurfaces of the hydraulic head gradient within each fracture

31

Glossary Advection: The attraction and adhesion of a layer of ions from an aqueous solution to

the solid mineral surfaces with which it is in contact.

Advection: Bulk movement of fluids from one location to another.

Aperture: Spacing between fracture walls.

Discrete Fracture Network: A population of individual fractures considered acting

together as a hydrological and/or mechanical system.

Dispersion: Refers to the process of spreading and diluting during transport.

Fracture: Any discrete discontinuity, natural or induced, which provides a conduit

for movement of fluid.

Isosurface: A type of display that shows a 3D surface for a given value.

Macro: A mini-program, which will execute a series of commands in series.

Module: A separate and distinct unit of software that may be used as a component in

a system.

Tortuosity: Refers to a twisted or crooked flow path.

Visualisation: Graphical presentation of information.

Page 32: Visualisation of Unstructured and Uncorrelated Three ... · visualisation of the fractured rock network consisting of the isosurfaces of the hydraulic head gradient within each fracture

32

References

Andersson J. & Dverstorp, B. 1987, ‘Conditional simulations of fluid flow in three

dimensional networks of discrete fractures’,

Water Resources Research, vol. 23, no. 10, pp. 1876-1886

Andersson J. & Thunvik, R. 1986, ‘Predicting mass transport in discrete fracture

networks with the aid of geometrical field data’,

Water Resources Research, vol. 22, no. 13, pp. 1941-1950

Brown, S. R. 1987, ‘Fluid flow throgh rock joints: the effect of surface roughness’,

Journal of Geophysical Research, vol. 92, no. B2, pp. 1337-1347

Brown, S. R. 1989, ‘Transport poperties of fractures’,

Journal of Geophysical Research, vol. 94, no. B7, pp. 9429-9438

IBM Research 2006 [online resource]

http://www.research.ibm.com/dx/

Elsworth, D. 1987, ‘A boundary element-finite element procedure for porous and

fractured media flow’,

Water Resources Research, vol. 22, no. 4, pp. 551-560

Fetter, C. W. 1994, Applied Hydrogeology, 3rd edition,

Prentice Hall, Inc., New Jersey

Freeze, R. A. & Cherry, J. A. 1979, Groundwater,

Prentice Hall, Inc., New Jersey

MATLAB 2006, The Language of Technical Computing

MATLAB Documentation

Page 33: Visualisation of Unstructured and Uncorrelated Three ... · visualisation of the fractured rock network consisting of the isosurfaces of the hydraulic head gradient within each fracture

33

Miller, I., Lee, G., & Dershowitz, W. 1999, MAFIC, Matrix Fracture Interaction Code

With Heat and Solute Transport, User Documentation,

Version 1.6, Golder Associates Incorporated, Redmund, Washington

Natural Fractures 2006 [online resource]

http://www.naturalfractures.com

OpendDX Documentation [online resource]

http://www.opendx.org/

Pawley, S. 2002, ‘Influence of Fracture Geometry on Pumping Well Capture’,

Final Year Environmental Engineering Thesis, University of Western Australia

Snow, D. T. 1969, ‘Anisotropic permeability of fractured media’,

Water Resources Research, vol. 5, no. 6, pp. 1273-1289

Tsang, Y. W. 1984, ‘The effect of tortuosity on fluid flow in a single fracture’,

Water Resources Research, vol. 20, no. 9, pp 1209-1215

Witherspoon, P. A., Wang, J. S. Y., Iwai, K. & Gale, J. E. 1980, ‘Validity of Cubic

Law for fluid flow in a deformable rock fracture’,

Water resources Research, vol. 16, no. 6, pp. 1016-1024

Page 34: Visualisation of Unstructured and Uncorrelated Three ... · visualisation of the fractured rock network consisting of the isosurfaces of the hydraulic head gradient within each fracture

34

Appendices Appendix A: MATLAB code

% function result = processdata(str,str1)

%

% r = processdata('input.txt','output.txt')

%

% To use this function make sure that the matlab workspace is set to the

% directory that the files are found in (including the m file)

% Once that is done the following has to be input

%

% str = input file name (in quotations ie: 'elements.txt')

% str1 = output file name (in quotations ie: 'nodes.txt')

%

% An output file will be created in the same directory called results_stripped.txt

function result = processdata(str,str1);

data = load(str);

[m,n] = size(data);

% result is the nodes listed

result = zeros(m*3,2);

counter = 1;

counter2 = 1;

% m is the number of elements

for i = 1:m

% temp is the 3 nodes and fracture group number

temp = data(i,2:5);

for j = 1:3

% for the itteration get the size of the result file

[m1,n1] = size(result);

contains = false;

% loop through each node that has already been processed

for k = 1:m1

% if the node is there check if it has the same fracture number

if (result(k,1) == temp(j))

% does it have the same fracture number?

if (result(k,2) == temp(4))

% yes it does so it is already there

contains = true;

Page 35: Visualisation of Unstructured and Uncorrelated Three ... · visualisation of the fractured rock network consisting of the isosurfaces of the hydraulic head gradient within each fracture

35

else

% if not continue

end

end

end

% if it is not there then add it to the result file

if (contains == false)

result(counter,1) = temp(j);

result(counter,2) = temp(4);

counter = counter +1;

else

% reset the boolean counter

contains = false;

end

end

end

% sort the nodes

temp = sortrows(result,1);

% create a temporary matrix

temp1 = temp;

% find the size of the sorted results matrix

[m,n] = size(temp);

end

for i = 1:m

if (temp(i,1) == 0)

temp1 = temp(i+1:m,:);

else

end

end

result = temp1;

data = load(str1);

[m,n] = size(result);

% create the inital data list results.txt

for i = 1:m

result(i,3) = data(result(i),4);

result(i,4) = data(result(i),5);

result(i,5) = data(result(i),6);

result(i,6) = data(result(i),7);

end

save 'results.txt' result -ascii -tabs;

Page 36: Visualisation of Unstructured and Uncorrelated Three ... · visualisation of the fractured rock network consisting of the isosurfaces of the hydraulic head gradient within each fracture

36

% now renumber the fracture groups for results_stripped.txt

[m,n] = size(result);

fracturenumber = 0;

previousnumber = 0;

currentnumber = 1;

result = sortrows(result,2);

for i = 1:m

currentnumber = result(i,2);

if (currentnumber == previousnumber)

result(i,2)= fracturenumber;

else

previousnumber = currentnumber;

fracturenumber = fracturenumber + 1;

result(i,2)= fracturenumber;

end

end

% create the new data list results_stripped.txt

[m,n] = size(result);

temp = zeros(m,5);

temp(:,1) = result(:,3);

temp(:,2) = result(:,4);

temp(:,3) = result(:,5);

temp(:,4) = result(:,6);

temp(:,5) = result(:,2);

result = temp;

save 'results_stripped.txt' result -ascii -tabs;

Page 37: Visualisation of Unstructured and Uncorrelated Three ... · visualisation of the fractured rock network consisting of the isosurfaces of the hydraulic head gradient within each fracture

37

Appendix B: OpenDX General File

File name: fracimport (OpenDX General Import Header)

file = c:\work_directory\results_stripped.txt

points = 2999format = ascii

interleaving = field

majority = column

field = locations, head, frac

structure = 3-vector, scalar, scalar

type = float, float, float

end

NOTE: the correct work directory needs to be specified and results_stripped.txt must

also be present in the same directory.

Page 38: Visualisation of Unstructured and Uncorrelated Three ... · visualisation of the fractured rock network consisting of the isosurfaces of the hydraulic head gradient within each fracture

38

Appendix C: OpenDX Loop Macro

Filename: FracMacro3.net

Page 39: Visualisation of Unstructured and Uncorrelated Three ... · visualisation of the fractured rock network consisting of the isosurfaces of the hydraulic head gradient within each fracture

39

Appendix D: OpenDX Main Visualisation Program

Filename: FRACVIS.net

Page 40: Visualisation of Unstructured and Uncorrelated Three ... · visualisation of the fractured rock network consisting of the isosurfaces of the hydraulic head gradient within each fracture

40

Appendix E: Sample Node Data

NODE X Y Z Type H Q Grp

1 -2.80838728E+00 -2.65698013E+01 4.23138589E-01 0 1.00000E+01 1.56000E-08 0

2 -1.70186081E+01 -1.62911224E+01 6.55427694E-01 0 1.00000E+01 1.56000E-08 0

3 1.30717218E+00 -2.05590515E+01 -4.81269979E+00 0 1.00000E+01 1.56000E-08 0

4 -2.55627785E+01 3.81770563E+00 -1.95186067E+00 0 1.00000E+01 1.56000E-08 0

5 3.71534848E+00 -4.16427279E+00 -2.02689028E+00 0 1.00000E+01 1.56000E-08 0

6 -9.96503067E+00 -7.79342937E+00 -1.88954341E+00 0 1.00000E+01 1.56000E-08 0

7 -2.92794113E+01 1.28530684E+01 4.68929291E+00 0 1.00000E+01 1.56000E-08 0

8 -2.19489365E+01 -1.12140293E+01 3.94594979E+00 0 1.00000E+01 1.56000E-08 0

9 2.03384514E+01 1.13879318E+01 -3.55641663E-01 0 1.00000E+01 1.56000E-08 0

10 1.74209576E+01 2.49694538E+01 4.05256367E+00 0 1.00000E+01 1.56000E-08 0

11 1.85571766E+01 2.08556881E+01 -4.92415857E+00 0 1.00000E+01 1.56000E-08 0

12 1.89403915E+00 1.41446104E+01 -4.95640182E+00 0 1.00000E+01 1.56000E-08 0

13 -9.18111992E+00 1.06320903E-03 -4.98280907E+00 1 4.25840E+00 0.00000E+00 23

14 -1.17007198E+01 -1.77852001E+01 -4.99630260E+00 1 4.05170E+00 0.00000E+00 23

15 -1.42533178E+01 -3.25190086E+01 -2.25654864E+00 0 1.00000E+01 1.56000E-08 0

16 6.18040705E+00 -1.25203857E+01 -4.64635038E+00 0 1.00000E+01 1.56000E-08 0

17 -5.69331074E+00 4.61294413E+00 1.56532407E+00 0 1.00000E+01 1.56000E-08 0

18 -2.50754662E+01 1.40760708E+01 4.37644672E+00 0 1.00000E+01 1.56000E-08 0

19 -1.55534906E+01 -1.31767588E+01 -4.47266728E-01 0 1.00000E+01 1.56000E-08 0

20 1.58633244E+00 -1.74035397E+01 -2.33364582E+00 0 1.00000E+01 1.56000E-08 0

21 1.31380205E+01 2.34055653E+01 -2.37146020E+00 0 1.00000E+01 1.56000E-08 0

22 -1.71725082E+01 -1.56035061E+01 3.65702939E+00 0 1.00000E+01 1.56000E-08 0

Page 41: Visualisation of Unstructured and Uncorrelated Three ... · visualisation of the fractured rock network consisting of the isosurfaces of the hydraulic head gradient within each fracture

41

Appendix F – Sample Element Data

Elem. # Node1 Node2 Node3 frac. # set # Transmiss Storativ Aperture

1 25 164 165 4 1 1.00000E-06 1.00000E-04 6.85640E-05

2 161 162 171 4 1 1.00000E-06 1.00000E-04 6.85640E-05

3 161 162 170 4 1 1.00000E-06 1.00000E-04 6.85640E-05

4 161 171 173 4 1 1.00000E-06 1.00000E-04 6.85640E-05

5 161 170 173 4 1 1.00000E-06 1.00000E-04 6.85640E-05

6 162 169 170 4 1 1.00000E-06 1.00000E-04 6.85640E-05

7 162 167 171 4 1 1.00000E-06 1.00000E-04 6.85640E-05

8 163 171 173 4 1 1.00000E-06 1.00000E-04 6.85640E-05

9 163 165 171 4 1 1.00000E-06 1.00000E-04 6.85640E-05

10 163 166 173 4 1 1.00000E-06 1.00000E-04 6.85640E-05

11 164 165 167 4 1 1.00000E-06 1.00000E-04 6.85640E-05

12 165 167 171 4 1 1.00000E-06 1.00000E-04 6.85640E-05

13 166 168 172 4 1 1.00000E-06 1.00000E-04 6.85640E-05

14 166 172 173 4 1 1.00000E-06 1.00000E-04 6.85640E-05

15 26 869 870 7 1 1.00000E-06 1.00000E-04 1.86050E-05

16 26 866 870 7 1 1.00000E-06 1.00000E-04 1.86050E-05

17 61 178 785 7 1 1.00000E-06 1.00000E-04 1.86050E-05

18 61 693 864 7 1 1.00000E-06 1.00000E-04 1.86050E-05

19 61 174 175 7 1 1.00000E-06 1.00000E-04 1.86050E-05

20 61 785 864 7 1 1.00000E-06 1.00000E-04 1.86050E-05

21 61 175 178 7 1 1.00000E-06 1.00000E-04 1.86050E-05

22 62 862 868 7 1 1.00000E-06 1.00000E-04 1.86050E-05

23 62 130 862 7 1 1.00000E-06 1.00000E-04 1.86050E-05

Page 42: Visualisation of Unstructured and Uncorrelated Three ... · visualisation of the fractured rock network consisting of the isosurfaces of the hydraulic head gradient within each fracture

42

Appendix G – Sample Correlated Data

Filename: results_stripped.txt

X Y Z Head frac#

-1.1291000e+001 -1.1802000e+001 5.0000000e+000 3.7210000e+000 1.0000000e+000

-3.0780000e+000 -2.1686000e+001 3.5380000e+000 3.5780000e+000 1.0000000e+000

-2.7590000e+000 -1.6579000e+001 2.8210000e+000 3.7050000e+000 1.0000000e+000

-5.8460000e+000 -2.6422000e+001 5.0000000e+000 3.3770000e+000 1.0000000e+000

-6.7590000e+000 -1.4339000e+001 3.8430000e+000 3.6940000e+000 1.0000000e+000

-8.0200000e+000 -2.0583000e+001 5.0000000e+000 3.5660000e+000 1.0000000e+000

-4.9180000e+000 -2.8913000e+001 5.0000000e+000 3.3300000e+000 1.0000000e+000

-6.0700000e+000 -1.4725000e+001 3.6670000e+000 3.6910000e+000 1.0000000e+000

-4.8320000e+000 -2.9144000e+001 5.0000000e+000 3.3330000e+000 1.0000000e+000

9.1130000e+000 -2.3225000e+001 -2.1000000e-001 3.7640000e+000 1.0000000e+000

1.3620000e+000 -2.6515000e+001 2.6860000e+000 3.5390000e+000 1.0000000e+000

-4.3210000e+000 -2.1562000e+001 3.9240000e+000 3.5620000e+000 1.0000000e+000

-4.6000000e+000 -2.9062000e+001 5.0000000e+000 3.3370000e+000 1.0000000e+000

-2.6220000e+000 -2.8206000e+001 4.1740000e+000 3.4240000e+000 1.0000000e+000

2.3410000e+001 -1.7097000e+001 -5.0000000e+000 4.9810000e+000 2.0000000e+000

-6.1010000e+000 -2.7958000e+001 -5.0000000e+000 4.1190000e+000 2.0000000e+000

8.6480000e+000 -2.2510000e+001 -5.0000000e+000 4.5500000e+000 2.0000000e+000

4.2110000e+000 -2.4284000e+001 -4.9430000e+000 4.2490000e+000 2.0000000e+000

-7.4620000e+000 -2.8461000e+001 -5.0000000e+000 4.0790000e+000 2.0000000e+000

-7.3590000e+000 -2.8566000e+001 -4.9620000e+000 4.0080000e+000 2.0000000e+000

-1.5548000e+001 -3.1448000e+001 -5.0000000e+000 3.8430000e+000 2.0000000e+000

-1.4873000e+001 -3.3406000e+001 -4.4170000e+000 -7.6370000e-001 2.0000000e+000