Below the main features of the developed computer code are summarized:

  •     The solver is based on the discrete fracture model;
  •     The model for flow is based on the Darcy flow and for the transport on the advection-dispersion equation with reaction;
  •     The rock (3D entities), the fractures (2D entities), the fracture intersections (pipes - 1D entities) and pipe intersections (0D entities), have been implemented and coupled in a 3D code;
  •     The numerical approach used is the boundary element method (BEM) with domain decomposition for the flow and boundary element - dual reciprocity method multi domain approach (BE DRM-MD) for the transport;
  •     The computer code is implemented in such way that many sub-domains with different geometries properties can exist in a singe model;
  •     The way in which the scheme is implemented offers unique flexibility to decide whether certain sub-domain, 3D or 2D, would be discretized on the boundary only, or would be dizcretized by volume;
  •     Manual or automatic fracture intersection detection is implemented;
  •     Automatic 3D block merging and detection is implemented;
  •     Automatic time step selection is implemented;
  •     The code is linked to the commercial package GID for pre- and post-processing;
  •     The code shows high accuracy and capability to integrate geometry with small details inside large-scale models.

Figure 1 shows the way that matrix blocks, fractures and fracture intersections interact. Fractures can be modelled as 2D or 3D entities.

coupling.jpg
Figure 1. Coupling of matrix blocks, fractures and fractures intersections

The following solvers and pre-conditioners for sparse system of equations were implemented:
Direct solvers:

    
      LU (Gauss + Pivoting + dropping technique to keep the sparsity pattern )
      Iterative Solvers (Sparskit):
          
            GMRES – FGMRES – PGMRES CG
               
                  FOM
               
                  BICG
    
      Preconditioners:
         
            ILUT, ILTP, ILUT(n)
                
                  MC64
                
                  Physical and Geometrical Scaling

Figure 2. shows different possibilities available for representing 3D porous volumes. The 3D sub-domains can either be discretised by volume using linear or quadratic tetrahedrons or hexahedrons, or can be discretized over the surface of the volume.
shapefunctions.jpg
Figure 2. Various possibilities for discretization of porous blocks