Welcome to bleqt’s documentation!

bleqt is a c++ program with qt5 GUI for one dimensional two phase flow simulation in hydraulic fractures.

Note

This project is under active development.

Contents

Task description

Let’s consider the cylindrical part of reservoir with horizontal well and transverse hydraulic fracture inside. The well is cylindrical pipe with radius \(r_w\) and lenght 2L. The fracture is a circle with radius equals to reservoir radius. Both reservoir and fracture are saturated with fluid.

_images/domain.svg

The geometry of reservoir and fracture as follows:

  • R – reservoir radius, m;

  • L – cylindr half height, m;

  • \(r_w -\) well radius, m;

  • \(\delta -\) fracture half thickness, m.

Reservoir and fluid properties:

  • k – reservoir permeability, m2;

  • \(k_f -\) fracture permeability, m2;

  • \(m_f -\) fracture porosity,

  • \(\mu -\) fluid viscosity, Pa*s.

The domain bounds are follows: \(\Gamma_B -\) side face of cylindrical reservoir, \(\Gamma_T -\) bearing faces of cylindrical reservoir, \(\Gamma_w -\) wellbore, \(\Gamma_f -\) fracture/reservoir bound, \(\Gamma_w^f -\) fracture/well bound.

Note

Fracture permeability and porosity are constant values.

The rate of hydraulically fractured horizontal well need to be defined.

Equations

Domain is a cylinder \(D = [rw, R] * [0, 2\pi] * [-L, L]\), which includes fracture \(D_f = [rw, R] * [0, 2\pi] * [-\delta, \delta]\).

Reservoir:
  • pressure:
    \[\text{div}(u) = 0, \;\;\; u = -\sigma(\boldsymbol{x}, s) \cdot \triangledown p, \;\;\; \sigma = k(\boldsymbol{x}) / \mu(s).\]

here \(\boldsymbol{x}\) is a point, \(\mu(s) -\) fluid viscosity, \(u -\) flow rate, \(s -\) (water) saturation, \(k -\) - permeability, \(\sigma -\) transmissibility of fluid.

Functions \(\mu(s), f(s)\) defined from relative permeability degree functions

\[\begin{split}\dfrac{1}{\mu(s)} = \dfrac{\phi(s)}{\mu_w}, \;\;\; \phi(s) = k_w(s) + k_{\mu} k_o(s), \;\;\; k_{\mu} = \dfrac{\mu_w}{\mu_o}, \\ k_w(s) = s^N, \;\;\; k_o(s) = \left(1-s\right)^N.\end{split}\]

here \(k_w -\) relative permeability of water, \(k_o -\) relative permeability of oil, \(\mu_w -\) water viscosity, \(\mu_o -\) oil viscosity.

Note

Note that irreducible water and oil saturations are equal to 0.

  • saturation:
    \[s = const.\]
Fracture:

Let us define average value over pressure variables

(1)\[\left<\cdot\right>_f = \dfrac{1}{2\delta} \int_{-\delta}^{\delta} \left(\cdot\right)dz.\]
  • pressure:
    (2)\[\text{div}(u_f) = 0, \;\;\; u_f = -\sigma_f(s_f) \cdot \triangledown p_f, \;\;\; \sigma_f = k_f / \mu(s).\]

here \(u_f -\) flow rate in fracture, \(s -\) (water) saturation, \(k_f -\) constant fracture permeability.

Assume that

\[<u_f>_r \approx -\dfrac{k_f}{\mu}\triangledown <p_f>.\]

If we integrate equation (2) from \(-\delta\) to \(\delta\) using (1) and consider that we get (average signs \(<>\) are gone)

(3)\[\triangledown_r u_f + \dfrac{1}{2\delta} \left.u_z\right|_{\Gamma_f(-\delta)}^{\Gamma_f(\delta)} = 0.\]

The last member in (3) defines the flow from reservoir to fracture from bounds \(\Gamma_f(-\delta), \Gamma_f(\delta)\).

  • saturation:
    (4)\[m_f \dfrac{\partial s_f}{\partial t} + \triangledown_r \left(f(s_f)u_f\right) + \dfrac{1}{2\delta} \left.\left(f(s)u_z\right)\right|_{\Gamma_f(-\delta)}^{\Gamma_f(\delta)} = 0, \;\;\; f(x) = \dfrac{k_w(x)}{\phi(x)},\]

    here \(f(x) -\) Backley-Leverette function.

Conditions:
  • boundary:
    \[\begin{split}\Gamma_w^f \in [r_w, rw]*[0,2\pi]*[-\delta, \delta]: p = p_w, \\ \Gamma_T \in [r_w, R]*[0, 2\pi]*[\pm L,\pm L]: p = p_c, \\ \Gamma_w \in [r_w, rw]*[0,2\pi]*[-L, L]/[-\delta, \delta]: u_n = -\sigma \dfrac{\partial p}{\partial n} = 0, \\ \Gamma_B \in [R, R]*[0, 2\pi]*[-L, L]: u_n = 0, \\ \Gamma_f \in [R, R]*[0, 2\pi]*[\pm \delta, \pm \delta]: p = p_f, u = u_f, s = s_0.\end{split}\]
  • initial:
    \[\begin{split}s = s_0 = const, \\ s_f = s_f^0.\end{split}\]
Well flow rate:
  • from fract to well:
    \[q = \int_{\Gamma_w^f} u_f d\Gamma = 4\pi r_w \delta u_f.\]
  • from reservoir to fract:
    \[q = \int_{\Gamma_T} u d\Gamma.\]

Dimensionless

The following dimensionless parameters will be defined:

\[\begin{split}\bar{p} = \dfrac{p - p_c}{p_c - p_w}, \\ \bar{r, z} = \dfrac{r, z}{R}, \\ \bar{u} = \dfrac{u}{u_0}, u_0 = \dfrac{k}{\mu_w}\dfrac{p_c - p_w}{R}, \\ \bar{u_f} = \dfrac{u_f}{u_f^0}, u_f^0 = \dfrac{k_f}{\mu_w}\dfrac{p_c - p_w}{R}, \\ \bar{t} = \dfrac{t}{t_0}, t_0 = \dfrac{m_f R}{u_f^0}, \\ \bar{q} = \dfrac{q}{q_0}, q_0 = R^2 u_f^0.\end{split}\]

After applying dimensionless variables equation for pressure in reservoir will not change it’s form.

Equations for pressure and saturation in fracture become (dimensionless sign is gone)

  • pressure:
    \[\triangledown_r u_f + \dfrac{1}{2M} \left.u_z\right|_{\Gamma_f(-\delta)}^{\Gamma_f(\delta)} = 0, \;\;\; M = \dfrac{\delta k_f}{R k}.\]
  • saturation:
    \[\dfrac{\partial s_f}{\partial t} + \triangledown_r \left(f(s_f)u_f\right) + \dfrac{1}{2M} \left.\left(f(s)u_z\right)\right|_{\Gamma_f(-\delta)}^{\Gamma_f(\delta)} = 0.\]