Speaker
Description
When modelling fluid flow in porous media, invasion percolation is a widely employed approach to determine how two immiscible fluids distribute in the pore structure of the medium. In the invasion percolation model, an invading fluid (e.g. water) displaces the defending fluid (e.g. oil or air) when its capillary pressure exceeds the pores’ threshold capillary pressure. This approach is often applied in pore-network modelling, wherein the pore network is a simplified representation of a pore structure, consisting of pore bodies and pore throats, each assigned geometric and physical properties that influence fluid movement.
Invasion percolation can be simulated with or without pore trapping. During the simulation, each pore receives an invasion step that indicates when it becomes invaded, and these invasion steps allow the identification of trapped pores. Trapping happens when a pore filled with defending fluid becomes surrounded by pores filled with invading fluid or other trapped pores, and it is no longer accessible for invasion. Applying trapping results in a more realistic fluid distribution, although it adds more computational and algorithmic complexity.
Once the invasion is complete, the search for trapped pores begins. The classical trapping algorithm requires repeatedly checking connectivity to the outlet from the very first invasion step to the last, re-evaluating the network many times. This repeated connectivity testing is the main source of the high computational cost. On the other hand, Masson [1] introduced a more efficient algorithm that runs the trapping analysis in reverse order, starting from the final invasion step and moving backward. In this approach, a pore becomes trapped when all its neighboring pores are either invaded or already identified as trapped. If at least one neighbor remains connected to the outlet, the pore is accessible for invasion and cannot be marked as trapped. This approach does not require repeated global connectivity checks, and the runtime efficiency improves from O(N²) to O(N).
The present work adapts and extends Masson’s algorithm so that it can be applied to pore-network models. In particular, it accounts for three major differences: 1) both pore bodies and pore throats may become trapped, meaning the algorithm must treat both elements consistently, 2) the network is unstructured, and pore bodies may connect to several throats with no regular pattern, and 3) multiple pores can share the same invasion step because several elements may fill simultaneously.
To implement these modifications, the weighted adjacency matrix defined over pore bodies is reformulated as an unweighted matrix spanning all pore bodies and throats, making it suitable for backward connectivity tracking and allowing pore throats to be treated as potentially trapped as well. Additionally, a disjoint-set (union–find) data structure is used to efficiently label and track trapped clusters. This structure avoids repeated full-network searches and ensures that trapped regions are identified consistently.
For a pore network containing approximately 440,000 pores, the modified algorithm achieves about an 85% reduction in computational cost compared with the classical method. This improvement highlights the algorithm’s suitability for large, unstructured pore-network simulations where efficient trapping detection is essential.
| References | Masson, Y. (2016). A fast two-step algorithm for invasion percolation with trapping. Computers & Geosciences, 90, 41-48. https://doi.org/10.1016/j.cageo.2016.02.003 |
|---|---|
| Country | Belgium |
| Student Awards | I would like to submit this presentation into the InterPore Journal Student Paper Award. |
| Acceptance of the Terms & Conditions | Click here to agree |








