-
Notifications
You must be signed in to change notification settings - Fork 89
Home
NOTE: This wiki is under construction.
The intention is to give an overview of PorePy, covering high-level functionality and capacities of the code as well as discussing lessons learned while developing the code. The aim is not to provide a how-to-use guide for the code; for that see the tutorials.
PorePy is a research code that is mainly developed at the Department of Mathematics at the University of Bergen. The code is aimed at simulation of multiphysics processes in fractured porous media. Specifically, the code is typically applied to
- Develop simulation technology for fractured porous media. This includes discretization methods and coupling schemes.
- Study processes that cannot be properly represented by standard simulation tools.
As a by-product of these two main use cases, a third main research topic is: 3. Develop design principles for simulation software for mixed-dimensional multiphysics problems.
The main strengths of PorePy are:
- Natural representation of variables and processes in fracture networks, and on the fracture-matrix interface.
- Semi-automatic construction of meshes that conform to fracture networks.
- Discretization methods for flow, deformation, transport and frictional fracture deformation.
- Flexibility in combining discretizations and constitutive relations in the matrix and in the fracture network.
Other notable features are:
- Simple functionality for fracture propagation (newly added, use with care).
- Extensive functionality for computational geometry.
- Automatic differentiation. Under active improvement.
- No native support for linear and non-linear solvers. This will be improved in the near future.
- Few standardized setups are available; mostly, the user is responsible for specifying problems and discretizations. The exception is the hierarchy of models for mechanics, poromechanics and thermo-poromechanics, all coupled with fracture deformation.
PorePy cannot be expected to function as a black box tool for general multiphysics problems. While simple flow and transport problems can be solved relatively straightforwardly, more complex problems will likely require diving into parts of the source code. This is partly due to lack of resources from the developer side, but it also reflects that these are difficult problems for which robust and standardized setups cannot be defined.