1 Introduction

Fluid flow through rough-walled rock fracture remains an important subject of study in the field of applied geoscience. For a wide number of rock formations with low matrix permeability, fluid transport is possible solely via interconnected fracture networks. Crystalline rocks such as basalt or granite are a good example of low-permeable formations and are often encountered in such applications as geothermal energy extraction, radioactive waste disposal, or carbon capture and storage, where hydraulic permeability of the fracture system is of major importance.

In modeling of the fluid flow through fracture, most of the difficulties arise from the complex geometry of the problem. First, the surface of the rock joint itself already comprises roughness components of different wavelength. Moreover, since rock joints are subjected to considerable normal and shear stresses which lead to shear displacement and dilation, resulting fracture aperture distribution is even more complex, with multiple contact spots being present across the fracture plane. Modeling of the fluid flow through fracture can thus be subdivided in two distinct parts: (i) characterization of the fracture aperture, and (ii) numerical modeling of the fluid flow.

The issue of fracture aperture has been extensively studied over time, both for scanned fractured samples and synthetic self-affine (fractal) surfaces. Apart from the traditional vertical aperture used by, e.g., Brown (1987) or Zimmerman and Bodvarsson (1996), various other aperture metrics were developed, such as ball aperture (Mourzenko et al. 1995), true aperture normal to the fracture centerline (Ge 1997), segment-averaged aperture (Oron and Berkowitz 1998), or 3D Hausdorff distance (Finenko and Konietzky 2021). The main reason for this lies in the extreme sensitivity of the flowrate to the variations in the fracture aperture (\(Q \sim h^3\)), also known as the ‘cubic law’.

Exact analytical solution for the problem of the fluid flow through fracture exists only for its most simple approximation—the flow between infinite parallel plates, which can be considered a 2D case of the Poisseulle capillary flow. The solution for this case yields the ‘cubic law’ (Witherspoon et al. 1980): \(Q = -(w h^3 / 12 \mu ) \nabla p\), where w is the fracture width, h the distance between the plates (fracture aperture), \(\mu\) the fluid viscosity, and \(\nabla p\) the applied pressure gradient. Due to its simplicity, parallel plate model is still widely employed for the fracture flow modeling. Deviations from parallel plate model are related to: (i) fracture geometry and (ii) flow regime.

1.1 Geometry Constraints

Since real fracture surface is quite rough, linear flow pattern is transformed into curvilinear and tortuous. For mild deviations from the plane, replacing the fracture aperture h with its mean \(\bar{h}\) and employing different tortuousity corrections can still make sense—this was indeed the preferred path when the available computational power was scarce (for a comprehensive review, cf. Zimmerman and Bodvarsson (1996)). To account for the loss of transmissivity, the notion of hydraulic aperture \(h_H\) was introduced, with its value being back-calculated from the measured/modeled flowrate values via the cubic law.

Another approach was to assume validity of the local cubic law (LCL) over discrete segments of the fracture. In this case, the problem can be solved numerically via the Reynolds lubrication equation: \(\nabla \cdot [(h^3/12 \mu ) \nabla p] = 0\), where both aperture h(xy) and pressure p(xy) vary across the fracture plane. In this case, 3D fracture can essentially be viewed as a 2D grid with cells of variable aperture. Brown (1987) followed this approach for the self-affine fracture model. Range of applicability of the lubrication approximation is limited, since only smooth and gradual variations of aperture are possible. Another important finding by Brown (1987) was the flow channeling due to presence of aperture variations and contact spots.

Finally, numerical solution of Stokes equations allows to remove altogether the constraints on the geometry of the fracture imposed by the Reynolds lubrication approximation. Stokes equations describe the low-Re ‘creeping flow’ through arbitrary geometry: \(\mu \nabla ^{2} u = \nabla p,{\mkern 1mu} \nabla \cdot u = 0\). Here, the volume of the fracture has to be discretized by a proper 3D mesh. Mourzenko et al. (1995) compared numerical solutions for both 2D Reynolds equation and 3D Stokes equations for both Gaussian and self-affine fracture models, finding that Reynolds approximation from vertical aperture tends to overestimate the flowrate obtained via Stokes equations, with alternative aperture metric \(b_d\) providing a much better fit.

1.2 Flow Regime Constraints

Both Reynolds (LCL) and Stokes solutions are correct only for the \(Re \ll 1\), where viscous forces are dominant and inertial forces are negligible. With increasing Re inertial forces grow and in turn increase the flow resistance, and flow regime changes successively from fully viscous (Darcy) into first weak inertia and then strong inertia (Forchheimer) regime. Weak inertia regime, predicted numerically by Barrère (1990) and via perturbation analysis by Mei and Auriault (1991), holds for Re in the range of 1–10 and is characterized by the non-linear pressure drop being \(\sim u^3\), whereas for the strong inertia regime, non-linear pressure drop is \(\sim u^2\). With further increase of Re, we approach laminar–turbulent transition at \(Re = Re_\textrm{cr}\) and finally enter the turbulent domain.

In contrast with the fully viscous Darcy regime, adequate modeling of both weak inertia and strong inertia laminar flow regimes can only be achieved by solving full Navier–Stokes equations. This was first performed for the 2D case by Skjetne et al. (1999) and for 3D case by Zimmerman et al. (2004). Analyzing in detail the flow pattern of the laminar Forchheimer regime, which becomes sharply divided into (i) high-velocity flow tubes and (ii) low-velocity closed recirculation zones, Skjetne et al. pointed out the frequent separation and reattachment of the flow on the fracture asperities. Following that, Skjetne and Auriault (1999) identified the highly localized energy dissipation in the triple-deck region due to the interaction between the viscous boundary sublayer and the inviscid irrotational flow.

A number of following studies modeled laminar high-velocity flow by solving NSEs for the 2D case (Koyama et al. 2008; Crandall et al. 2010; Zou et al. 2015; Briggs et al. 2017) and for the 3D case (Wang et al. 2016; Zou et al. 2017), employing finite element (FEM), finite volume (FVM) of even lattice Boltzmann (LBM) codes. Two main limitations can still be discerned: (i) mesh dimensions for the 3D case and (ii) upper limit of the Re number, which is kept \(<Re_{\textrm{cr}}\) to remain in the laminar domain. For a 3D fracture model, both Zimmerman et al. (2004) and Zou et al. (2017) solved NSEs using FEM with mesh dimensions of \(25 \times 25\) mm, whereas Wang et al. (2016) employed LBM for a \(50 \times 25\) mm model. As opposed to the Reynolds approximation, for NSEs, the mesh has to be sufficiently resolved in z-direction; thin and stretched-out geometry of the fracture with its high aspect ratio (\(L_{x,y} \gg L_z\)), small-scale roughness and/or contact spots thus is in itself a quite difficult problem for the meshing. Reported Reynolds numbers vary from 50 (Skjetne et al. 1999; Wang et al. 2016) and 70 (Zimmerman et al. 2004) to 500 (Briggs et al. 2017) and 1000 (Zou et al. 2015), with 2D cases keeping clearly ahead of 3D due to far lower computational cost.

The issue of closed recirculation zones (eddies) in the laminar flow regime has to be addressed separately. Presence of such structures, whether stationary or non-stationary, can often be erroneously linked to the turbulence; nevertheless, in the related CFD application areas such as pipe or duct flows, those structures are quite common (e.g., elbow and backward-facing step), where separation bubble with closed recirculation is also present. ‘True’ turbulence at \(Re > Re_{\textrm{cr}}\) is characterized by the energy cascade involving eddies of different length scales from the large scale, which is roughly proportional to the model length, down to the Kolmogorov scale \(\eta\), where turbulent kinetic energy k is dissipated into heat by molecular viscosity.

To the best of our knowledge, no numerical simulation of turbulent flow in rock fracture (\(Re > Re_{\textrm{cr}}\)), whether 2D or 3D, has been reported to date. We therefore intend to perform a steady-state simulation of a turbulent incompressible flow for a 2D case, solving NSEs with an FVM code OpenFOAM. Turbulence modeling is implemented via Reynolds-averaged Navier–Stokes (RANS) technique, with several popular turbulence models being considered for this particular case based on their accuracy and efficiency, keeping in mind future application to a 3D fracture model.

2 Fracture Models

In general, two approaches to the generation of the fracture model can be discerned: (i) synthetic self-affine models and (ii) realistic models derived from the 3D surface scans of rock samples. We follow both paths, starting with synthetic models for calibration purposes and then proceeding to the realistic models.

2.1 Synthetic Models

Our synthetic model was constructed from a modified primary roughness model employed by Zou et al. (2015) which is in turn based on the 3D scan data of a \(10 \times 20\) cm granite sample by Koyama et al. (2008), where low-frequency primary ‘waviness’ was cleaned up from the high-frequency secondary roughness via wavelet decomposition of the original surface. Our rationale for the choice of the smooth primary surface as the starting point was among others the fact that the short-period secondary roughness can be easily constructed from the bandpass-filtered random noise. We also decided to squeeze the 20 cm model to 10 cm lengthto match our estimated length of the realistic 2D and 3D models and thus increase the reported low roughness (JRC = 0−2) of the original Koyama model. Following geometry modifications are then implemented:

Fully flat model: A flat smooth analogue to the synthetic model with \(h \!=\! \bar{h}\).

Constant-aperture models: Two curved constant-aperture synthetic models are constructed from the curved variable-aperture model by shifting either its upper or lower fracture surface by \(\Delta z \!=\! \bar{h}\).

Increasing roughness: For both curved and flat synthetic models we implement increasing wall roughness by adding a bandpass-filtered random noise, eliminating high-frequency roughness while preserving low-frequency waviness, with resulting \(\sigma \!=\! 0.024, 0.043, 0.1\) mm and relative roughness-to-aperture ratio \(\sigma /\bar{h} \!=\! 0.019, 0.034, 0.081\), respectively. Same noise pattern is applied to both upper and lower halves to imitate a ‘matching’ grain pattern, else both surfaces would intersect and require unrealistic increments in \(\Delta z\).

For all models, respective values of roughness metrics such as JRC and Grasselli 2D roughness parameter \(\mathrm {G_{2D}} \!=\! \theta _{\textrm{max}}^* / (C+1)_{\textrm{2D}}\) (Tatone and Grasselli 2010), as well as tortuosity \(\tau\) and aperture metrics hd, are listed in Table 1. Both \(\textrm{JRC}\) and \(\bar{h}\) of the curved model are higher than the values reported by Zou et al. (2015) and Koyama et al. (2008), which should be attributed to the lateral squeeze and surface picking errors, respectively. Figure 1 presents all synthetic models, together with a zoomed-in view of the first 1 cm of models with increasing roughness. Note the mild \(\sigma /\bar{h}\) ratio of the wide synthetic models.

2.2 Scan-Based Models

In the second approach, we construct our fracture model starting from the 3D scan of a fractured basalt sample, which is one of the crystalline rocks typical for HDR geothermal applications. Both halves of the fracture are scanned as STL surfaces, cropped to \(100 \times 50\) mm and aligned together to obtain a minimal Hausdorff distance as described in Finenko and Konietzky (2021); both fracture aperture metrics are distributed normally. Negative apertures are avoided via surface separation \(\Delta z\), keeping both halves barely touching each other, so that \(h_{\textrm{min}} \!=\! 0\).

Surface roughness of the initial 3D sample can be estimated via (i) joint roughness coefficient (JRC), using expression by Tatone and Grasselli (2010) for the sampling interval of 0.5 mm, calculated for each profile in x-direction, and (ii) Grasselli 3D roughness parameter \(\mathrm {G_{3D}} \!=\! \theta _{\textrm{max}}^* / (C+1)\) (Tatone and Grasselli 2009), which is calculated for analysis direction 0–\(360^{\circ }\). Following mean and \(\sigma\) values were obtained for upper (A) and lower (B) halves:

  1. A:

    \(\textrm{JRC} \!=\! \,17.546, \; \mathrm {G_{3D}} \!=\! 15.486, \; \sigma _{\textrm{JRC}} \!=\! 1.999, \; \sigma _\mathrm {G_{3D}} \!=\! \,0.597\)

  2. B:

    \(\textrm{JRC} \!=\!\, 17.543, \; \mathrm {G_{3D}} \!=\! 15.697, \; \sigma _{\textrm{JRC}} \!=\! 2.069, \; \sigma _\mathrm {G_{3D}} \!=\! \,0.615\)

Almost similar values for both A and B halves indicate that surface alignment step was performed correctly and surfaces nearly match.

Fig. 1
figure 1

2D synthetic fracture models with increasing roughness: flat (a), curved (b); smooth constant-aperture models from upper and lower surfaces, respectively (c). d Zoomed-in view of the first 1 cm of the curved models with random noise roughness

Next we select 3 different 2D profiles in x-direction, at \(y \!=\! 20, 35, 63\) mm. Their location was specifically chosen to avoid spots of full or near contact, since that would prevent 2D flow. However, strong aperture variations and both short-wave and long-wave roughness components are clearly present (Fig. 2). Following geometry modifications are then implemented:

Fully flat model: For testing and calibration purposes, we construct a flat smooth analogue to y20 profile with \(h \!=\! \bar{h}\).

Increasing shear displacement: for all three scan-based 2D profiles we implement increasing shear displacement of \(\Delta x \!=\! 0, 0.5, 1, 1.5, 2, 3\) mm; respective vertical shift \(\Delta z\) is obtained from the shifted full-size 3D model, so that aperture increase with shear is fully realistic instead of a simple rough estimate. While profiles y20 and y63 show a consistent aperture increase along the whole length, y35 profile has a single closing bottleneck causing \(d_{\textrm{min}}\) to actually decrease with shear.

Increasing roughness: For the ‘smoother’ y20 profile, we implement increasing wall roughness by adding a bandpass-filtered random noise with resulting \(\sigma \!=\! 0.024, 0.043, 0.1\) mm and relative roughness-to-aperture ratio \(\sigma /\bar{h} \!=\! 0.063, 0.113, 0.265\), respectively. Same noise pattern is applied to both upper and lower halves to imitate a ‘matching’ grain pattern.

Respective values of roughness metrics, such as JRC and Grasselli 2D roughness parameter \(\mathrm {G_{2D}}\) as well as tortuosity \(\tau\) and aperture metrics hd, are listed in Table 1. Both fracture aperture metrics are distributed normally, just as in the 3D case (Finenko and Konietzky 2021); note the differences in \(\sigma _h\) and \(\sigma _d\) for increasing roughness, and in \(d_{\textrm{min}}\) for different profiles. Figures 3 and 4 present all scan-based models for y20, y35 and y63 profiles, together with a zoomed-in view of the first 1 cm of y20 models with increasing roughness. Note the high \(\sigma /\bar{h}\) ratio of the realistic models compared to wide synthetic counterparts, shortening of the profile length with increasing \(\Delta x\), and closing bottleneck in profile y35.

Table 1 Geometry of the simulated 2D models: roughness metrics JRC, Grasselli \(\mathrm {G_{2D}}\), tortuosity \(\tau _{xz}\) (all are averaged from top and bottom surface values); vertical aperture h and 2D Hausdorff distance d (in mm)
Fig. 2
figure 2

Selected 2D profiles from the 3D scan: \(y \!=\! 20, 35, 63\) mm

Fig. 3
figure 3

a 2D fracture models based on y20 profile with increasing shear displacement \(\Delta x = 0, 0.5, 1, 2, 3\) mm, respectively. Model length (initially 10 cm) diminishes with increasing shear. b y20 fracture model with increasing roughness. c Zoomed-in view of the first 1 cm of the y20 model with random noise roughness

Fig. 4
figure 4

2D fracture models based on y35 (top) and y63 (bottom) profile with increasing shear displacement \(\Delta x = 0, 0.5, 1, 2, 3\) mm, respectively. Model length (initially 10 cm) diminishes with increasing shear

3 Flow Simulation

We model fluid flow with an open-source CFD toolbox OpenFOAM; we choose a velocity-driven implementation for ease of setting specific Re values, with pressure gradient \(\nabla p\) as output parameter. We then calculate the fracture permeability k and the Darcy friction factor f, with latter being the standard dimensionless parameter for the pipe/duct flows which connects pressure drop with the kinetic energy of the fluid via empirical Darcy–Weisbach equation

$$\begin{aligned} \frac{\Delta p}{L} = f \frac{\rho \hat{u}^2}{2 D_H}. \end{aligned}$$

For both laminar and turbulent flow regimes, we make a steady-state approximation and use a solver based on SIMPLE algorithm. Turbulent flow simulations follow RANS approach, with all turbulence length scales being modeled via turbulence models; laminar no-slip boundary conditions are then replaced by respective wall functions. Selection of the turbulence models was limited to the more computationally efficient one- and two-equation models, such as Spalart–Allmaras (SA), standard \(k{-}\epsilon\) (SKE), standard \(k{-}\omega\) (SKW), and Menter’s \(k{-}\omega\) SST models, which are all widely employed in various CFD applications.

Performed sensitivity analysis showed that relative error drops under \(1\%\) if i) the average aperture is sampled by at least 20–25 cells and ii) minimum aperture is sampled by at least 15–17 cells. Following this rule, all constructed 2D geometries were meshed with a uniform cell size of 10–30 µm, yielding meshes of \({\sim }400\) k cells.

4 Results and Discussion

4.1 Steady-State vs Transient Simulation

Fig. 5
figure 5

Steady-state vs transient simulation of a non-stationary laminar flow at \(Re = 2 \cdot 10^3\). Plots of pressure difference \(\Delta p\) for steady-state SIMPLE case (left) and transient PIMPLE case (right)

High-velocity flow in the fracture is per se a transient phenomenon involving constant flow separation and reattachment and vortex shedding, while presence of turbulence adds extra complexity to the problem. Fully detailed capture of such flow is attainable only via transient DNS or LES simulations, with their high to prohibitive computational cost. A much simpler and practical approach commonly employed in the computational fluid dynamics involves Reynolds-averaged Navier–Stokes equations (RANS) where random fluctuations caused by the turbulence are averaged in time. As a further simplification, a steady-state simulation can be suggested: transient effects of flow separation and vortex shedding are thus also disregarded, so that a fully time-averaged flow pattern is obtained. Following argument can be made in favor of steady-state assumption: random and rough geometry of the fracture results in a random number of bottlenecks, with each one of them acting as a vortex generator (turbulator). Vortices shed upstream are superimposed onto the downstream vortices; their cumulative effect should therefore be also averaged out in time, as opposed to a single vortex-shedding edge/step, where sharp oscillations may be present.

Steady-state simulation was compared against its transient counterpart for all flow regimes; while non-stationary laminar regime showed the largest fluctuations either in real-time steps (transient) or pseudo-time interactions (steady-state). However, as we calculate the average flowrate/pressure gradients (essentially imitating time-averaging for the laminar regime), these fluctuations give way to meaningful values. At \(Re \!=\!2000\) (Fig. 5), we obtain average values of \(\Delta p\) are 9.27 and 9.01 kPa (difference of \({\sim }3\%\)) with \(\sigma\) of 0.69 and 0.85 kPa (or \(7.4\%\) and \(9.4\%\)) for the steady-state and transient solvers, respectively. This test case thus confirms the viability of the chosen steady-state approach as a cost-effective alternative to the transient simulation.

With respect to the other flow regimes present in our simulated Re range, both stationary laminar (e.g., \(Re \!=\! 10^2\)) and Reynolds-averaged turbulent flow regimes have shown no fluctuations of the flowrate or pressure gradient whatsoever, meaning that steady-state approach can be applied to them without any limitations. As an example, for turbulent flow at \(Re \!=\! 10^4\), we get a fully converged solution with a steady-state solver and a stationary (barring the minimal numerical noise in the order of \(0.005\%\)) solution with transient solver; resulting \(\Delta p\) values are 140.15 and 140.25 kPa, respectively (difference of \(0.07\%\)). Naturally, the same rule applies to the stationary laminar flows.

4.2 Turbulence Model Comparison

Fig. 6
figure 6

Turbulence model comparison. Top: y20 flat model, friction factor (left) and permeability (right). Bottom: y20 curved model, friction factor (left) and permeability (right)

We test the performance of the four selected turbulence models on flat and curved y20 profiles. Respective wall functions for \(\nu _t, k, \omega , \varepsilon , \tilde{\nu }\) are employed at the fixed walls; for the case a fully resolved ’low-Re‘ reference (without wall functions) is simulated with SST model. Models were switched on throughout the whole Re range from 0.1 to \(10^6\).

Obtained results are presented in Fig. 6, with laminar data for both flat and curved y20 model added as a reference. All four turbulence models perform identically to laminar solution for \(Re < 10^2\); above it, the models are gradually switched on by the solver. SKE model is clearly inadequate for \(Re=200\)\(10^5\), where it differs not only from all other models but also from the laminar data for \(Re < 10^3\). Above \(Re=10^5\) SKE model joins up with the rest, with all models matching the Haaland scaling for smooth walls. SKW, SST, and SA models perform adequately throughout the whole Re range, with f values for SKW being slightly above, SA slightly below and SST in the middle. Again, these slight differences all but disappear upwards from \(Re = 5 \cdot 10^5\), with \(\sigma = 5.7\%\) between the models.

For the y20 curved model, same SKE hump is present, albeit a little less pronounced. For ’stable‘ models, divergence from laminar solution again starts at \(Re=10^3\); above \(Re=10^5\), the data are more widely spread, with SST model being closer to the SA, and SKW—to the SKE model. Naturally, since the geometry is not so primitive as in the flat case, different approaches to the calculation of the \(\nu _t\) lead to more differing results, with \(\sigma = 12.3\%\) between the models.

Perhaps the most surprising outcome is robust and accurate performance of the one-equation SA model, which is on par with two-equation SKW and SST models for our 2D rough fracture case. Bad performance of SKE model for near-wall turbulence in constrained geometries is a known issue in fluid dynamics (Pope 2000). Numerical stability of the SKE model is also insufficient compared to SKW and SA, requiring additional solution stabilisation adjustments. SKE model is thus not suitable for our application, while all three other models prove themselves to be quite flexible and numerically robust.

4.3 Flat and Constant-Aperture Models

Fig. 7
figure 7

Constant-aperture synthetic models built from lower (blue) and upper (green) fracture surfaces, friction factor (left) and permeability (right). Data for flat (black) and variable-aperture curved (red) models are added as reference; squares denote laminar, diamonds–turbulent (SKW model) solver regimes

Fig. 8
figure 8

Scan-based models: y20, y35, and y63 profiles comparison; data for y20-flat model (black) are added as a reference. Friction factor (left) and permeability (right). Squares denote laminar, diamonds–turbulent (SKW model) solver regimes

Fig. 9
figure 9

Flat and curvilinear models, increasing roughness: factor \(\xi\) describing deviations from parallel plate for fully viscous flow is plotted against relative roughness \(\sigma /\bar{h}\) (left) and wall tortuosity \(\tau\) (right)

Figure 7 shows synthetic constant-aperture curved models, together with the variable-aperture curved and flat models. Fully flat geometry is the only case that can be verified by the analytical solutions. Permeability obeys the Darcy flow regime \(k\, = \,{\text{const}}\) up to \(Re\, = \,10^{4}\), with \(k\,\sim \,h^{2}\). Darcy friction factor f is aperture-independent and follows both 96/Re scaling for the laminar and Haaland scaling for the turbulent flow regimes, respectively. For a flat model, the exact point of laminar–turbulent transition is unclear and depends on random disturbances in the flow; transition is clearly marked by sudden drop in k which only increases with growing Re.

All models with curvature deviate from the analytical scalings, variable-aperture even more so than both constant-aperture models. Both constant-aperture models are aligned together quite well up to \(Re\,\sim \,2000\) and strongly diverge in the turbulent regime, meaning that even slight differences in wall curvature add up to significant changes in kf despite identical \(\bar{h}\). Two effects can be discerned: (i) non-linear bending and (ii) vertical shift from the 96/Re scaling.

Uniform vertical shift in f(Re) even in the laminar mode is quite obscure; it is mirrored by k plots where fully viscous permeabilities at \(Re \!=\! 0\) of the rough flat or curved models do not match the \(k \!=\! h^2/12\) of the flat model. Given that all other factors remain unchanged the shift can only be caused by the curvature and/or roughness of the fracture geometry. Lomize (1951) and later Witherspoon et al. (1980) accounted for this vertical shift in kf by an additional factor \(\xi\)

$$\begin{aligned} Q \!=\! \frac{1}{\xi } \frac{w h^3}{12 \mu } \nabla p, \quad f \!=\! \frac{96}{Re} \xi , \quad \xi \!=\! 1 + 6 \left( \frac{\varepsilon }{h} \right) ^{1.5}. \end{aligned}$$

Lomize obtained empirical equations for \(\xi\) for flat models with different roughness types, stressing that curvilinear constant-aperture fractures are harder to fit and require further experiments. His empirical equation for \(\xi\) (given above) matches flat rough data following a minor adjustment: \(\xi \!=\! \tau + 6 (\varepsilon / h)^{1.5}\), where \(\tau \!=\! L/l\) is the wall tortuosity of the model. However, it is not applicable for any of our curvilinear models; e.g., for smooth (\(\varepsilon \!=\! 0\)) y20 model tortuosity correction \(\tau _{xz} \!=\! 1.047\) is not enough to compensate the total shift of \(\xi {\sim } 1.32\). In contrast, both curvilinear constant-aperture models of Lomize (1951) show no additional resistance and stay near the 96/Re ‘planar’ scaling.

The upward bend of f (or downward bend in k) in the laminar regime reflects the well-studied non-linearity, which is usually approximated by the Forchheimer equation. However, turbulent regime data upwards from the transition gap would not have such a perfect fit with Forchheimer parabolic curve for all presented model geometries. We address this issue with more detail in Sect. 4.8. For all models after laminar–turbulent transition at \(Re \!\sim \! 2000\), we see a complex S-curve which bears some similarity to the ‘hump–belly’ pattern in the experimental data by Nikuradse (1933) for the turbulent flow in rough pipes and Lomize (1951) for rough-walled fracture models. A thorough explanation of this pattern linking it to the turbulence energy spectra is presented in Gioia and Chakraborty (2006).

4.4 Scan-Based Models: Profile Comparison

Obtained data for the three scan-based profiles are presented in Fig. 8. Less rough y20 profile is noticeably more permeable (higher k, lower f), both in turbulent and laminar regimes. Difference in k and f between y20 and other two curved profiles is very pronounced, nearly equaling the difference between y20 curved and y20 flat analogue models. Compared with y20, more rough y35 and middle y63 profiles are virtually identical in the laminar and turbulent regimes; starting from \(Re=10^5\) ‘rougher’ y35 profile begins to outperform its ‘middle’ y63 counterpart—this divergence can only be attributed to the subtle geometry features which are dormant in the laminar and lower turbulent ranges, but begin to take their toll in the upper turbulent range, where a single feature (e.g., sharp edge or bottleneck) may produce stronger separation bubble and more \(\nu _t\), acting similar to a wing spoiler. Note that the divergence between ‘narrow’ realistic profiles with \(\bar{h} \! \sim \! 0.388\) mm is much less than that of the ‘wide’ synthetic constant-aperture profiles with \(\bar{h} \! \sim \! 1.248\) mm (Fig. 7)—constrained geometry leaves less possibilities for flow pattern disruptions even if the profile shapes are completely different and despite the abundant aperture variations.

4.5 Increasing Wall Roughness

Fig. 10
figure 10

Influence of increasing roughness, synthetic flat (top), synthetic curved (middle), and scan-based y20 (bottom) models: friction factor (left) and permeability (right). Squares denote laminar, diamonds–turbulent (SKW model) solver regimes

Increasing roughness was added to synthetic flat, curved, and scan-based y20 models shown in Fig. 10. Roughness-to-aperture ratios of synthetic flat model are equal to those of its curved counterpart due to identical \(\bar{h}\).

Obtained data can be related to the results of Nikuradse (1933) for the turbulent flow in flat pipe. Due to uniform wall roughness, Nikuradse used the \(\varepsilon /D\) ratio, where \(\varepsilon\) is the grain size and D the hydraulic diameter. Our random wall roughness can be partly related to that as \(\sigma /\bar{h} \!\sim \! 0.5 \varepsilon /D\). Roughest grain in Nikuradse’s experiment had \(\varepsilon /D \!=\! 0.033\); our roughness just begins at comparable values and extends much further, reflecting the difference between man-made coarse rusted pipes and naturally occurring rough-walled fractures. Eventually, for the roughest noise C model, it is hard to say whether we still deal with an extremely rough flat of an equivalent smooth curvilinear channel.

For the flat case, only the fully smooth model aligns with the laminar 96/Re scaling; already the noise level A with \(\sigma /\bar{h}\!=\!0.019\) begins to bend upwards in the upper laminar range, while noise B and C add to that the progressive vertical shift of the entire laminar curve. Laminar–turbulent gap is decreasing with increasing roughness. At higher Re values, turbulent f data clearly illustrate the transition from hydraulically smooth walls matching the Haaland equation to the fully hydraulically rough walls (noise C) matching the Re-independent (\(f\, = \,{\text{const}}\)) Strickler scaling employed in pipe flow studies. For a given Re number, wall is hydraulically smooth if asperity height is smaller than the viscous layer thickness, and vice versa. All f curves in the turbulent range exhibit the same ‘hump-belly’ pattern similar to the experimental data of Nikuradse (1933) which is missing in the ‘idealised’ Moody chart. Summarising, the absence of long-period ‘waviness’ results in a mostly ‘pipe-like’ behaviour.

For the curved models, both non-linear bending and upward shift are clearly present even for the fully smooth walls. Figure 9 shows plots of vertical shift factor \(\xi\) versus relative roughness \(\sigma/\bar{h}\) and wall tortuosity \(\tau\) for flat and curved synthetic and scan-based y20 profiles with increasing roughness; growth of \(\xi\) vs \(\sigma/\bar{h}\) is nearly quadratic. In Figure 10, note the shortening of the Darcy region with \(k\, = \,{\text{const}}\) in the k(Re) plots, showing that onset of non-linearity occurs at lower Re for rougher walls. Laminar–turbulent gap is much smaller than in the flat case in the ‘narrower’ y20 model and nearly absent in ‘wider’ synthetic model. For the latter, this gapless transition holds regardless of the added roughness, which implies that it is caused by the combination of long-period curvature and sufficient mean aperture; for the former, the gap diminishes with growing roughness. Roughest noise C data for both models show a fully hydraulically rough behaviour with \(f(Re)\, = \,{\text{const}}\) throughout the turbulent range. Particularly interesting is the noise C y20 data, where \(\sigma /\bar{h} \!=\!0.265\) is nearly 16 times larger than the roughest \(\varepsilon /D\) value used by Nikuradse: laminar f around the transition is actually higher than the turbulent one, so that the laminar–turbulent gap is negative. Extreme wall roughness leads to exaggerated undulation with constant flow detachment and abundant recirculation areas in the upper laminar regime; although turbulisation of the flow leads to a hydraulically rough behaviour from the very outset, it actually results in a more energy-efficient flow.

4.6 Increasing Shear Displacement

Fig. 11
figure 11

Influence of increasing shear for scan-based 2D models: y20 (top), y35 (middle), and y63 (bottom); friction factor (left) and permeability (right). Squares denote laminar, diamonds–turbulent (SKW model) solver regimes

Fig. 12
figure 12

Influence of increasing shear for scan-based 2D models. Minimal and mean Hausdorff aperture \(d_{\textrm{min}}, \bar{d}\) vs shear displacement \(\Delta x\) (1st row). Plots of permeability k vs shear displacement \(\Delta x\) for fixed Re. Laminar regime: \(Re = 10^2, 10^3\) (2nd row). Turbulent regime: \(Re = 10^3, 10^4\) (3rd row), \(Re = 10^5, 10^6\) (4th row)

We apply incremental shear displacement \(\Delta x \!=\! 0, 0.5, 1, 1.5, 2, 3\) mm to the scan-based y20, y35, and y63 profiles. Growing \(\Delta x\) increases \(\bar{h}\) (cf. Table 1) and fully viscous k increases as \({\sim }h^2\). However, this is the case only for y20 and y63 models, while y35 model sports a single closing bottleneck where \(h_{\textrm{min}}\) is actually decreasing with shear.

Obtained data are presented in Fig. 11. All three profiles show a clear laminar–turbulent gap at \(\Delta x \!=\! 0\) mm which vanishes with increasing shear, with a gapless transition (similar to the ‘wide’ synthetic model) starting from \(\Delta x \!=\! 1\) mm. In turbulent regime, all models behave as hydraulically smooth regardless of \(\Delta x\). Again, note the shortening of the Darcy region with \(k\, = \,{\text{const}}\) in the k(Re) plots, showing that the onset of non-linearity occurs at lower Re for larger shear displacements.

Just as their parent non-sheared profiles, all models exhibit both non-linear bending and vertical shift in f(Re) plots. Growing vertical shift in f seems counter-intuitive, since \(\bar{h}\) also increases with shear and the fracture should become more permeable. The explanation is that by definition \(f \!\sim \! \bar{h}\), meaning that flowrate gain (or \(\nabla p\) drop) must be significant enough to offset the growing \(\bar{h}\); this is apparently not the case for the rough-walled sheared fracture models. This issue is in full effect for a y35 profile with its closing bottleneck that is throttling the flow despite large nominal \(\bar{h}\); hence the largest f values.

Regarding the k(Re) plots, the gains in permeability from each consecutive shear step gradually decrease, in a way following the law of diminishing returns; y35 profile shows an actual decrease in k in full accordance with the bottleneck closure; for fully viscous (\(Re \!\sim \! 1\)) regime k for \(\Delta x \!=\! 3\) mm drops below the values for \(\Delta x \!=\! 1\)–2 mm almost to the level of \(\Delta x\, = \,0.5\) mm, while starting from \(Re \!\sim \! 10^3\) it drops even lower.

In Fig. 12, we present the \(k(\Delta x)\) plots for fixed Re. Top row shows both minimal \(d_{\textrm{min}}\) and mean \(\bar{d}\) Hausdorff apertures; it is obvious that any mean aperture metric will be largely insensitive to the bottlenecks, which are reflected quite well by the minimums of said metrics (cf. Table 1). Both y20 and y63 profiles open with shear, while y35 is closing between \(\Delta x \!=\!2\)–3 mm. The \(k(\Delta x)\) plots start from \(Re \!=\! 10^2\) as the plots for \(Re \!=\! 0.1\)\(10^1\) were fully identical to it and could be omitted. The sharpest change occurs between \(10^2\) and \(10^3\), which corresponds to the onset of non-linearity in Fig. 11. In the viscous Darcy regime before it, curves for opening y20 and y63 profiles are following the average aperture \(\bar{d}\), while in the inertial regime above it the stagnation of the minimal aperture \(d_{\textrm{min}}\) between \(\Delta x \!=\! 2\)–3 mm is reflected by the overall k. Turbulent regime data are mostly similar to the inertial laminar regime; in the upper turbulent range at \(Re \!=\! 10^5\)\(10^6\), we even observe an actual decrease in k for the y20 profile tied to the small decrease in \(d_{\textrm{min}}\). However, this rule does not hold for the closing y35 profile where k is consistently defined solely by the \(d_{\textrm{min}}\) throughout the Re range. Summarising, for the 2D geometry, a single closing bottleneck is quite sufficient to fully cancel out (and even reverse) all benefits of the aperture increase with shear.

Fig. 13
figure 13

2D tortuosity \(\tau _{xz}\) with increasing roughness and shear. Top: synthetic curved (left) and scan-based y20 (right) models with increasing roughness. Bottom: scan-based y20 (left) and y35 (right) models with increasing shear displacement \(\Delta x\). Squares denote laminar, diamonds–turbulent (SKW model) solver regimes

4.7 Streamline Tortuosity

Obtained velocity field \(\bar{u}\) was used to generate streamlines through the model, which were in turn employed to estimate the streamline tortuosity \(\tau\). In a 2D case, tortuosity component in xy-plane is always zero, so that \(\tau _{xyz} \!=\! \tau _{xz}\) is the sole component to be analyzed. Figure 13 presents the obtained data for synthetic curved and scan-based y20 models with increasing roughness, as well as for y20 and y35 models with increasing shear displacement. Tortuosities of the model walls are given in Table 1.

With increasing wall roughness, tortuosity of the fully viscous flow also increases, although it is always lower than the wall tortuosity, since fluid naturally prefers the most energy-efficient trajectory through the curves and bends of the fracture. This difference is \({\sim }20\%\) for narrow y20 model and reaches \(35\%\) for wider synthetic curved model, as larger aperture allows fluid to ‘cut corners’ more efficiently. Tortuosity is at its maximum for the fully viscous flow and steadily decreases with growing Re until the laminar–turbulent transition similarly to the non-linear drop in k; in turbulent regime, we observe an analogy to the ‘hump–belly’ pattern seen in the f(Re) plots. Most striking feature is the huge ‘blow up’ in tortuosity as the flow becomes non-stationary between \(Re \!=\! 10^2\)\(10^3\); this stationary–non-stationary transition occurs earlier for higher wall roughness.

For increasing shear displacement the \(\tau _{xz}(Re)\) curve shapes are mostly similar. Here, the tortuosity is decreasing with growing \(\Delta x\)–wider apertures of the sheared models give more room for the energy-efficient corner-cutting trajectory. Again, tortuosity is at its peak for fully viscous flow and gradually drops as inertial effects begin to take hold; ‘blow up’ in tortuosity marking the onset of non-stationary flow between \(Re \!=\! 10^2\)\(10^3\), which occurs earlier for larger shear displacements.

Fig. 14
figure 14

Forchheimer β fitting. 1st row: synthetic flat (left) and curved (right) models with increasing roughness. 2nd row: scan-based y20 model, increasing roughness (left) and increasing shear (right). 3rd row: scan-based y35 (left) and y63 (right) models with increasing shear. 4th row: laminar β for scan-based models vs increasing shear (left) and \(\bar{d}\) (right). Dashed lines denote fitting to laminar, dotted—to turbulent data

4.8 Forchheimer Beta Fitting

A quite common empirical parameter reflecting the non-linearity of the fracture flow is the Forchheimer coefficient β. First, we follow the convention from Zimmerman et al. (2004) (their Eq. 11) with \(\beta \!<\! 0\) and not the classical one with the second term expressed as \(\beta \rho \bar{u}^2\) where \(\beta \!>\! 0\).

Results for normalised permeability \(k_n\) are shown in Fig. 14. Each model was fitted with two β values for laminar and turbulent sections, respectively. All models could be fitted quite well in the laminar range. Curve fitting in the turbulent regime seems least successful for smoother and non-sheared models with distinctive laminar–turbulent gap, where β matches the lower turbulent range at \(Re \!=\!10^3\)\(10^4\) but underestimates the actual k in the upper turbulent range at \(Re \!>\! 10^5\) due to S-shaped bends in fk curves; surprisingly, some models in this range are quite close to the laminar β curves. Turbulent β are nearly always higher the laminar values (for this β convention). It is precisely the hydraulically rough models that can be fitted with a single \(\beta , k\) pair, while hydraulically smooth models clearly deviate from their fitting curves in the upper turbulent regime above \(Re \!\sim \! 10^4\).

Next, we follow the classical convention of the modified Forchheimer equation for the turbulent flow ( Chauveteau and Thirriot (1967)):

$$- \nabla p\, = \,\frac{\mu }{{k_{t} }}\bar{u} + \beta _{t} \rho \bar{u}^{2} ,$$

where \(k_t, \beta _t\) denote the permeability and Forchheimer coefficient for turbulent flow. Results are shown in Fig. 15: since both \(k_t, \beta _t\) are fitted, we plot absolute permeability k instead of \(k_n\). Smooth curvilinear synthetic and y20 models which were hard to fit with a single \(\beta\) and constant k could be fitted much easier in this piecewise fashion. Similar to the findings of Chauveteau and Thirriot (1967) and Skjetne and Auriault (1999), our fitted turbulent data also obey the \(k_t \!\le \! k\) and \(\beta _t \!\le \! \beta\) rule. Unfortunately, both parameters still have to be defined empirically for every fracture geometry.

Fig. 15
figure 15

Forchheimer \(\beta\) fitting, classical \(\rho \beta \bar{u}^2\) convention. Synthetic curved model (left), scan-based y20 model (right). Dashed lines denote fitting to laminar, dash-dotted—to turbulent data

4.9 Flow Field Analysis

Finally, we analyze the obtained flow fields, selecting only the most representative cases. Output parameters are velocity \(\bar{u}\) and pressure p for both laminar and turbulent regimes, as well as the turbulent quantities provided by the SKW turbulence model: turbulent viscosity \(\nu _t\), turbulence kinetic energy k, and its specific dissipation rate \(\omega\). Figures 16, 17, 18, 19, 20, 21, 22 and 23 present the data grouped by the fracture geometry and Re number; due to high aspect ratio \(l/\bar{h}\) of the models, we show the zoomed-in sections only.

Velocity plots showing the magnitude of the \(\bar{u}\) vector capture the flow pattern for different Re values. In fully viscous Darcy regime at \(Re \!=\! 0.1\) velocity profile is fully symmetric; at \(Re \!=\! 10^2\) inertial effects are strong enough to cause the distinctive pattern thin high-velocity flow tubes and closed recirculation zones first described by Skjetne et al. (1999), with asymmetric velocity profile. As we further increase Re, flow becomes non-stationary (albeit still laminar!), which gives rise to a very complex non-stationary flow pattern similar to the data by Zou et al. (2015) with undulating flow tubes and abundant vortex shedding. Note that geometries with added roughness show a much more intense vortex generation; while some of the vortices are non-stationary and are drifting downstream from its engendering geometry features, other are fully stationary, e.g., in every tooth of the sawlike roughness pattern of the noise C model. Turbulent regime data at \(Re \!=\! 10^3\) show the effects of Reynolds time-averaging; flow tube undulations and non-stationary drifting vortices are averaged out, making the stationary vortices in the teeth clearly visible. As Re increases to \(10^4\)\(10^5\), flow tubes are expanding (and becoming wider than in laminar inertial mode), reflecting the effect of turbulent diffusion. Smoother models allow for considerably wider flow tubes, while in the roughest model, flow tube is constrained to the energy-optimal trajectory; as the flow Re number is fixed this constriction of effective aperture available for fluid transport leads to an increase of the centerline velocity. Overall, the cumulative amount of energy lost by the fluid in all those detours along the sawlike walls is enormous, which is fully reflected by extreme f values. Effects of shear in Figs. 19, 20 are shown for the y35 model at \(\Delta x \!=\! 1,2,3\) mm supplemented by the fully opened y20 and y63 models for \(\Delta x \!=\! 3\) mm. Regardless of shear displacement velocity profile is symmetric for fully viscous flow, becoming asymmetric for inertial laminar regime at \(Re \!=\! 10^2\). For non-stationary flow, the singular bottleneck of y35 profile is unrivaled as vortex generator. Note the characteristic deflection and detachment of the high-velocity flow tubes at the sharp edges of fully opened fracture models which forms large separation bubbles unsuitable for fluid transport.

Regarding the turbulence parameter plots in Figs. 18, 21 and 23, we observe the recurring pattern of interplay between \(\nu _t, k, \omega\) and velocity \(\bar{u}\), with high-velocity flow tubes corresponding to lower \(k, \omega\) being bordered by the thin stripes (or jets) of very high \(k, \omega\) marking both high production and dissipation of the turbulence kinetic energy. Turbulence generated at every feature is carried downwind by the flow, forming swept-back plumes of high k and \(\nu _t\). Since \(\nu _t \!=\! k / \omega\), it takes into account high dissipation near the walls where \(\omega\) is high and \(\nu _t\) low; vice versa, \(\nu _t\) is higher along the main flow path and especially in the recirculation zones. For the fully sheared models, jets of high \(\omega\) highlight both their parent geometry features and the borders between detached flow tube and separation bubble filled with high k and \(\nu _t\). Increasing roughness leads to rapid increase in all turbulence parameters, making them for the smoother models seem almost non-existent due to chosen uniform scaling. Abundance of edgy features generates high amounts of \(\nu _t, k, \omega\); sawlike pattern is marked by ‘tooth vortices’ with high \(\nu _t\) at its centre and high \(\omega\) at its perimeter.

Finest details are examined in Fig. 22 presenting the streamline plots for the roughest y20 noise C model. At \(Re \!=\! 0.1\) where the flow is still fully viscous we already observe small recirculation zones at the tooth tips; note that although our streamline seeding method highlights the vortices in first two tips only, the rest are no different. For non-stationary flow at \(Re \!=\! 10^3\), vortices are highly unpredictable in shape and size; direction of the circulation is always away from the flow core, resembling the typical convective rolls in, e.g., mantle plumes or mushroom clouds. Turbulent flow data for \(Re \!=\! 3 \cdot 10^3\) again show the time-averaging of the non-stationary drifting vortices, while the stationary vortices in the sawtooth pattern remain quite consistent. Figure 23 shows the streamlines on top of the \(\nu _t, k, \omega\) plots for the same lower turbulent case to highlight their underlying connection: \(\omega\) marks the spoiler edges and flow tube–separation bubble boundaries, \(k, \nu _t\) are swept downwind by the flow, gathering up and dissipating in the recirculation zones.

5 Conclusions

Fig. 16
figure 16

2D scan-based y20 model, zoomed-in view, increasing roughness. Top to bottom: velocity plots for laminar flow regime, \(Re = 0.1\), \(10^2\), \(10^3\)

Fig. 17
figure 17

2D scan-based y20 model, zoomed-in view, increasing roughness. Top to bottom: velocity plots for turbulent flow regime, \(Re = 10^3\), \(5 \cdot 10^3\), \(10^5\)

Fig. 18
figure 18

2D scan-based y20 model, zoomed-in view, increasing roughness. Top to bottom: plots of turbulence parameters \(\nu _t, k, \omega\) for turbulent flow regime, \(Re = 10^5\)

Fig. 19
figure 19

2D scan-based models: y35 profile for \(\Delta x = 1, 2, 3\) mm; y20 and y63 profiles for \(\Delta x = 3\) mm. Top to bottom: velocity plots for laminar flow regime, \(Re = 0.1\), \(10^2\), \(10^3\)

Fig. 20
figure 20

2D scan-based models: y35 profile for \(\Delta x = 1, 2, 3\) mm; y20 and y63 profiles for \(\Delta x = 3\) mm. Top to bottom: velocity plots for turbulent flow regime, \(Re = 10^3\), \(5 \cdot 10^3\), \(10^5\)

Fig. 21
figure 21

2D scan-based models: y35 profile for \(\Delta x = 1, 2, 3\) mm; y20 and y63 profiles for \(\Delta x = 3\) mm. Top to bottom: plots of turbulence parameters \(\nu _t, k, \omega\) for turbulent flow regime, \(Re = 10^5\)

Fig. 22
figure 22

2D scan-based y20 model with maximum roughness (noise C), zoomed-in view, streamline plots overlaying the velocity field. Top to bottom: laminar flow regime, \(Re = 0.1, 10^3\), turbulent flow regime, \(Re = 3 \cdot 10^3\)

Fig. 23
figure 23

2D scan-based y20 model with maximum roughness (noise C), zoomed-in view, streamline plots overlaying the turbulence parameter fields \(\nu _t, k, \omega\). Turbulent flow regime, \(Re = 3 \cdot 10^3\)

We have presented the results of CFD simulations of both laminar and turbulent flow in 2D smooth and rough-walled flat and curvilinear fracture models, implementing both small-scale roughness and realistic shear displacement and dilation directly from the 3D scan-based model data. Our numerical data supplements and extends the experimental and numerical data from previous studies. We have obtained kf data over wide range of \(Re \!=\!0.1\)\(10^6\). With growing Re flow undergoes first stationary–non-stationary and then laminar–turbulent transitions, with the former occurring between \(Re \!\sim \! 10^2\)\(10^3\), depending on the roughness and shear displacement. Turbulent regime data indicate increasing negative effects of wall roughness and shear-induced bottlenecks, sharp edges or steps on the overall permeability. Added roughness and shear introduces vertical shift \(\xi\) which can be approximated by a modified empirical equation after (Lomize 1951) for the flat models. An additional factor depending on the curvature of the model not accounted for by the wall tortuosity \(\tau\) is present in curvilinear models. Nonlinearity in both laminar inertial and turbulent regimes can be fitted by Forchheimer β coefficient. Depending on whether the fracture is behaving as either hydraulically rough or smooth, a suitable fitting may be obtained either by a single or by two kβ pairs for laminar or turbulent regimes, respectively. Given the identified strong influence of roughness and curvature on the fracture permeability, inherent limitations of the 2D fracture models such as inability to account for contact spots and lateral aperture variations warrant further investigation of laminar and turbulent flow in full 3D fracture geometries.