# Introduction

PorousFlow may be used to simulate flow through 2D highly-permeable fractures. The fractures may exist as an isolated fracture network, for example, as a number of intersecting discs. Alternately, the fractures may exist as a fracture network that is embedded in a 3D "host" material that has lower permeability.

This page briefly discusses the common scenario of using 2D finite elements to simulate the fractures.

No modifications to Kernels, etc, are necessary, but you need to prescribe appropriate porosity, permeability, etc, to your fractures if they are embedded in a 3D "host" material.

# Creating the mesh

This is the difficult part. If you are simulating an isolated fracture network, the mesh needs to consist of quad or tri elements.

If you are simulating an embedded fracture network, the fractures need to be 2D quad or tri elements, that are connected to the host 3D elements. That is, your fracture elements need to share nodes with the 3D elements. Otherwise no fluid or heat will flow between the fractures and the host. The fractures need to be part of a separate subdomain (block). This is actually a requirement of the exodus format, but most importantly it allows you to correctly prescribe permeability, porosity, heat conductivity, etc.

# Prescribing correct properties to the embedded fracture elements

When the 2D fractures are embedded in a 3D "host", the blocks containing your 2D elements representing the fractures need to be prescribed the correct permeability, porosity, etc.

Consider the MOOSE residual for a single 3D element corresponding to the time derivative of the fluid mass. It is R_{3} = \int_{V} \frac{\partial}{\partial t} \phi\rho S \ . In this equation $$R_{3}$$$is the residual, with the "3" subscript indicating that this is a residual coming from a 3D element, and $$V$$$ is the volume of the element. The other notation is the same as in in the PorousFlow theory manual, viz, $$t$$$is time, $$\phi$$$ is porosity, $$\rho$$$is the fluid density, $$S$$$ is the fluid saturation.

Similarly, consider the MOOSE residual for a single 2D element corresponding to the time derivative of the fluid mass. It is R_{2} = \int_{A} \frac{\partial}{\partial t} \tilde{\phi}\rho S \ . Here $$\tilde{\phi}$$$has been used to emphasise that this "2D" porosity is not necessarily the same as the 3D porosity, $$\phi$$$.

When constructing the overall nonlinear residual, MOOSE will blindly sum all the residuals from the individual elements (ie, it'll sum a bunch of $$R_{3}$$$'s and a bunch of $$R_{2}$$$'s). We must choose $$\tilde{\phi}$$$correctly so that the contributions from $$R_{2}$$$ is weighted appropriately.

To do this, think of the 2D elements as being very thin 3D elements. Assume there is no dependence on the third direction, as is appropriate because the 3D element is very thin. Then in this situation R_{3} = a \int_{A} \frac{\partial}{\partial t} \phi\rho S \ , where $$a$$$is the thickness in the third direction. This immediately implies \tilde{\phi} = a\phi \ . Similar arguments may be made for the fluid flow or heat flow Kernels of PorousFlow (and indeed, the entire PDEs) and these result in equations such as \tilde{k}_{ij} = a k_{ij} \ , where $$k$$$ is the permeability tensor.

The tildered parameter values are those that should be used in the MOOSE input file, for the Material properties of the blocks associated to the 2D elements. For instance, suppose that a sample of the fractured material is experimentally measured to have porosity $$\phi=0.5$$$. Obviously this is a 3D result since it exists in real life. Suppose the fracture is known to have thickness 0.1m. Then when this fracture is represented as a 2D element in MOOSE it should be given porosity $$\tilde{\phi} = 0.1\times 0.5 = 0.05$$$ (with units of metres).