Geothermal Modeling in Complex Geological Systems with the ComPASS Code
Résumé
Deep geothermal systems often lie in complex geological settings, with multi-scale geological structures that exert a dominant control on convective processes and the transfer of geothermal heat. Methods based on the implicit description of geometrical objects offer an efficient framework to quickly build structural models of such contexts with the occurrence of discontinuities like faults and fractures. Yet, when it comes to discretizing such models the implicit nature of surfaces make volume meshing a non-trivial task and the results are unstructured polyhedral meshes. Over the last few years, much progress has been made towards the consistent and robust discretization of diffusion processes in porous media. These research efforts resulted in several numerical schemes designed with a sound mathematical basis and able to deal with subsurface spatial heterogeneities (permeability variations, anisotropies…) and general polyhedral meshes. We introduce hereafter the ComPASS platform, an open source initiative that aims at building a geotermal simulation platform relying on one such scheme and recent numerical techniques. The current code is able to handle compositional multiphase Darcy flows, relying on a Coats type formulation, coupled to the conductive and convective transfers of energy. Simulations can be run on unstructured meshes including complex networks of fractures with intersecting, immersed and non immersed fractures. Flow inside the fractures is modelled with a so called hybrid-dimensional model, using a 2D model in the fractures that can have variable apertures and permeability and is coupled with 3D transfers in the matrix. The physics is discretized using a fully implicit time integration combined with the Vertex Approximate Gradient (VAG) finite volume scheme which is adapted to polyhedral meshes and anisotropic heterogeneous media. The fully coupled systems are assembled and solved in parallel using the PETSc library and can be run on large computing clusters. An efficient preconditioner is implemented to solve the linear systems at each time step and each Newton type iteration of the simulation. A high level interface to describe the simulation contexts is provided by the Python language, whereas the core routine are written in Fortran and C++. The paper will review the theoretical foundations and the current architecture of the code. Then it will present applications examples and present the current development roadmap.
Origine | Fichiers produits par l'(les) auteur(s) |
---|