CFD Modelling of Flow Through Porous Media with Governing Euqations

What is Porous Media and its Applications?

  • Porous media refers to materials or structures that have interconnected voids, pores, or cavities within a solid matrix. These voids can range in size from nanometers to millimeters or even larger.
  • Porous media are commonly found in various natural and engineered systems and play a significant role in fields such as fluid dynamics, heat transfer, geology, biology, and engineering.

Frontiers | Modeling Longitudinal Dispersion in Variable Porosity Porous Media: Control of Velocity Distribution and Microstructures

Types of Porous Media

Porous media can be categorized into different types based on their structure and characteristics:

  1. Natural Porous Media:
    • Many natural materials exhibit porous characteristics, such as rocks, soils, sand, and sediment.
    • Geological formations like aquifers, where water is stored and flows, are examples of natural porous media.
  2. Artificial Porous Media:
    • These are materials intentionally created with a porous structure for specific purposes, like filtration, catalysis, and insulation.
    • Examples include foam materials, ceramics, and certain types of engineered materials.

natual porous materials

Application of Porous Media

Porous media play a crucial role in various processes:

  • Fluid Flow:
    • Porous media influence how fluids (liquids or gases) flow through them due to their permeability and porosity.
    • This has applications in groundwater flow, oil reservoir engineering, and more.
    • The behavior of fluids within porous media is typically described using mathematical models based on Darcy’s law, Forchheimer’s equation, and other equations that relate pressure, velocity, porosity, and permeability
  • Heat Transfer:
    • The presence of pores affects heat transfer processes such as conduction, convection, and radiation.
    • Applications include insulation materials, heat exchangers, and cooling systems.
  • Filtration and Separation:
    • Porous media can act as filters by allowing the passage of some substances while blocking others.
    • Applications range from water purification to industrial processes.
  • Chemical Reactions:
    • Porous structures are used in catalytic processes, where reactants flow through the pores and interact with catalytic surfaces, enhancing reaction rates.
  • Biological Systems:
    • Porous media are found in biological tissues, bones, and cellular structures, affecting transport processes like nutrient exchange and fluid movement.
  • Acoustics and Sound Absorption:
    • Porous materials can absorb sound waves due to the complex interaction between air and solid phases within the pores.
  • Computational simulations, as well as experimental techniques, are commonly used to study and understand the behavior of fluids and other substances within porous media.

Governing Equations for Porous Media

  • Porous media is modeled by attenuating the time derivative and by adding a sink term to the Navier-Stokes equations.

  • The value of γ should be between 0 and 1, where the latter is a complete porosity.
  • The source term in the above equation, Sii, consists of two parts, a viscous loss term, and an inertial loss term,
  • Therese terms are creating a pressure drop that is proportional to the velocity and velocity squared, respectively

  • This equation is known as the Darcy-Forchheimer equation. In the case of simple homogeneous porous media, it becomes

where Dij and Fij are represented as the scalars D and F. These source terms can also be modeled as a power law of the velocity magnitude, i.e

Darcy’s Law:

  • Darcy’s law relates the superficial fluid velocity to the pressure gradient in porous media.
  • It assumes that the flow is slow enough for inertia effects to be negligible.
  • The law is given by

Where, u is the superficial velocity of the fluid through the porous media.

    • μ is the dynamic viscosity of the fluid.
    • K is the intrinsic permeability tensor of the porous media.
    • ∇P is the pressure gradient.
    • ρ is the fluid density.
    • g is the gravitational acceleration

Forchheimer Equation

  • The Forchheimer equation extends Darcy’s law to account for the effects of inertial resistance in high-flow velocity situations.
  • It includes an additional term proportional to the square of the velocity

  • These equations describe the fluid flow behavior within porous media.
  • When implemented in a computational fluid dynamics (CFD) simulation, they allow you to predict how the fluid will behave as it moves through the porous structure.
  • Keep in mind that accurate modeling might require additional terms or modifications depending on the specific characteristics of the porous media and the flow conditions.

Simplified Darcy-Forchheimer Equation

-μ ∇²u + ρu ∇u = -∇p + ρg + β(1 – ε)u

In this equation:

    • μ is the dynamic viscosity of the fluid.
    • u is the fluid velocity vector.
    • ρ is the fluid density.
    • ∇²u is the Laplacian of velocity.
    • ∇u is the gradient of velocity.
    • p is the fluid pressure.
    • g is the acceleration due to gravity.
    • β is the Forchheimer coefficient (accounts for inertial effects).
    • ε is the porosity of the porous medium.
    • The Darcy-Forchheimer equation incorporates both the Darcy term (-μ ∇²u) which accounts for viscous resistance and the Forchheimer term (β(1 - ε)u) which accounts for inertial resistance. The inertial term becomes more significant as flow velocity increases, introducing non-linearity into the equation.
    • It’s important to note that this equation is a simplified model and assumes certain conditions such as steady-state flow, incompressible fluid, and isotropic porous media. Depending on the specific situation and assumptions, additional terms or modifications might be needed to accurately capture the behavior of flow through porous media. The choice of porous media model and equation might vary based on the level of detail required and the specific goals of your simulation.

Modeling of Porous Media

  • Explicit Porous Modeling:
    • You can model explicitly if you know the details of 3D models and fluid regions.
    • You must model  all fluid gaps in the solid region
    • This method is difficult
  • Implicit  Porous Modeling:
    • The following equations and numerical sets in FLUENT or OpenFOAM are given only for implicit modeling of the porous medium.
    • We do not account for the features of fluid flows in porous gaps in solids.
    • This is a simplest way of modeling porous blocks in CFD solvers

CFD Modeling in FLUENT  for Porous Media Model

  • ANSYS FLUENT is one of the popular CFD solvers used for numerical simulation of a variety of engineering problems
  • Governing equations and model setup are explained below. However, the basic set up like the selection of turbulent flow and heat transfer is the same for porous media flows.
  • A basic set of CFD simulations is explained in the previous steps. A difference only in cell zone conditions for media modeling

Governing Equation

  • FLUENT numerically solves the standard energy transport equation in porous media regions with modifications to the conduction (diffusion) flux and the transient terms only.
  • In the porous medium, the conduction flux uses an effective conductivity and the transient term includes the thermal inertia of the solid region on the medium:

  • Porous media are modeled by the addition of a momentum source term to the standard fluid flow equations. The source term is composed of two parts
    • Darcy Loss (viscous Term)
    • Inertial Loss

source term in momentum equation in porous medium

  • You can also model  source term based on a power law of the velocity magnitude if you know mathematical power law with coefficient

Effective Conductivity (viscous Diffusivity)

  • The equation for effective thermal conductivity (Keff) in the porous medium is given below
  •  it  is computed in this solver by the volume average of the fluid conductivity and the solid conductivity

  • The fluid thermal conductivity kf and the solid thermal conductivity Ks can be computed via user-defined functions.
  • Note: The anisotropic effective thermal conductivity can also be specified via user-defined functions.
  • In this case, the isotropic contributions from the fluid, γKf, are added to the diagonal elements of the solid anisotropic thermal conductivity matrix

Steps in CFD Modeling in FLUENT

  • Modeling porous media in a CFD solver (ANSYS FLUENT ) involves simulating fluid flow through a medium with a complex structure of interconnected voids and solid matrix.
  • Here are the general steps to perform a Computational Fluid Dynamics (CFD) simulation of porous media using ANSYS FLUENT:

Geometry and Meshing:

  • Import or create the porous media geometry in ANSYS Design Modeler or other CAD software.
  • Create the porous region by specifying the solid matrix and voids.
  • Generate a suitable mesh. You might use structured or unstructured meshing techniques. Ensure finer mesh resolution near the porous region for accurate results.

Physics Setup:

  • Set up the fluid properties (density, viscosity, etc.) and boundary conditions (inlet, outlet, walls, etc.) for the surrounding fluid.
  • Define the porous media properties, which include porosity, permeability, and inertial resistance coefficients.
  • Specify the fluid-solid interaction parameters, such as Forchheimer’s coefficients, which account for non-Darcy flow effects.

Solver Setup:

  • Choose a solver type, often the Pressure-Based solver for incompressible flows.
  • Define solution controls, such as convergence criteria, time step, and maximum iterations.
  • Configure turbulence modeling if relevant (k-epsilon, k-omega, etc.).

Boundary Conditions:

  • Define fluid properties (density, viscosity, etc.) and boundary conditions (inlet, outlet, walls) for the fluid.
  • Decide on the turbulence model if applicable (e.g., k-epsilon, k-omega).
  • For porous media, you may need to set specific conditions at the porous surface (velocity inlet or pressure outlet, depending on the scenario).
    • Porous media properties like porosity
    • Permeability
    • inertial resistance coefficients

Turbulence Model

  • If you are using one of the turbulence models, you can suppress the effect of turbulence in a porous region by setting the turbulent contribution to viscosity, μt, equal to zero for laminar flow .
  • When you choose this option, the CFD solver will transport the inlet turbulence quantities through the medium, but their effect on the fluid mixing and momentum will be ignored.

Defining the Porous Zone

  • In Cell Zone Conditions select porous media
  • To use either a superficial or physical velocity in the porous medium simulation.
  • Note the velocity is set to Superficial Velocity in the default setup

Define the coordinate System

  • Cartesian
  • Curvilinear
  • Conical
    • To use a conical coordinate system (e.g., for an annular, conical filter element),
    • Define  Cone Half Angle (the angle between the cone’s axis and its surface,
    • To use a cylindrical coordinate system, set the Cone Half Angle to 0.
    • Specify the Cone Axis Vector and Point on Cone Axis. The cone axis is specified as being in the direction of the Cone Axis Vector (unit vector), and passing through the Point on Cone Axis.
    • The cone axis may or may not pass through the origin of the coordinate system.


Define the direction vectors.

  • To use a Cartesian coordinate system, simply specify the Direction-1 Vector and, for 3D, the Direction-2 Vector. The unspecified direction will be determined as described above. These direction vectors correspond to the principle axes of the porous media.
  • For some CFD problems in which the principal (x,y,z) axes of the porous medium are not aligned with the coordinate axes of the domain, you may not know a priori the direction vectors of the porous medium.
  • In such cases, the plane tool in 3D (or the line tool in 2D) can help you to determine these direction vectors.


Define the Parameter for Viscous and Inertial Resistance

  • Define the porous media zone and specify its properties like porosity and permeability.
  • Choose the appropriate porous media model. FLUENT provides various options, including the Darcy-Forchheimer model.
    • Define the porous region or zones in your domain.
    • Specify the porous media model you want to use (e.g., Darcy-Forchheimer, Ergun equation).
  • Input properties like porosity, permeability, and inertial coefficients


Simulation and Post-processing

  1. Solution and Convergence:
    • Run the simulation and monitor convergence. Inspect residuals and other convergence indicators.
    • Adjust solver settings and relaxation factors as needed to achieve convergence.
  2. Post-Processing:
    • Analyze simulation results using FLUENT’s post-processing tools.
    • Visualize flow patterns, pressure distribution, and any other variables of interest.
    • Extract quantitative data, such as pressure drop across the porous media.
  3. Validation and Sensitivity Analysis:
    • Compare simulation results with experimental or theoretical data to validate the model.
    • Perform sensitivity analyses by varying porous media properties to understand their impact on the simulation outcome.
  4. Iterate and Refine:
    • If necessary, refine the mesh, adjust boundary conditions, or modify model parameters based on the validation and sensitivity analysis results.
    • Repeat the simulation and post-processing steps until satisfactory agreement is achieved.

Porous Media Modeling in OpenFOAM

  • A basic understanding of OpenFOAM is given in the previous post. CFD engineers or researchers must refer source code and tutorials in OpenFOAM libraries

Source Code

  • The porous media source files in OpenFOAM-2.1.1
  • Thes are located in the following directory:


  • The porousMedia folder contains the following files:

• porousZones.H

• porousZones.C

• porousZone.H

• porousZone.C

• porousZonesTemplates.C

• porousZoneTemplates.C

  • Implementation of governing equation in OpenFOAM

Structure of the OpenFOAM ® porous multiphase toolbox. | Download Scientific Diagram

Solver in OpenFOAM

  • rhoPorousSimpleFoam solver, which is based on the rhoSimpleFoam solver as the name indicates.
  • It is a steady-state solver for turbulent flow of compressible fluids with implicit or explicit porosity treatment. The implicit porosity solver is supposed to be more robust and is needed if the resistances are large, heavily anisotropic or not aligned with the global coordinates.
  • The rhoPorousSimpleFoam solver is located in the following directory: $FOAM_SOLVERS/compressible/rhoPorousSimpleFoam


  • There we find a Make folder and the following files:


• initConvergenceCheck.H

• convergenceCheck.H

• createFields.H

• UEqn.H

• pEqn.H

• hEqn.H

Tutorials on Porous Media in Open FOAM

  • There are two tutorials using rhoPorousSimpleFoam included in OpenFoam-2.1
  • They are located in the following directory: $FOAM_TUTORIALS/rhoPorousSimpleFoam

  • The following examples are shown below for porous zone modeling in OpenFOAM

Steps for Porous media modeling  in OpenFOAM

  • Modeling flow through porous media in OpenFOAM involves utilizing its capabilities to simulate complex fluid flow phenomena in porous structures.
  • OpenFOAM provides various solvers and tools to handle such simulations. Here’s an overview of the steps to perform porous media modeling in OpenFOAM:
  1. Geometry and Meshing:
    • Create or import the geometry of your porous media in a suitable format (STL, OpenFOAM’s native format, etc.).
    • Generate a mesh that accurately represents the porous structure. This might involve structured, unstructured, or even adaptive meshing techniques.
  2. Fluid and Porous Media Properties:
    • Define the fluid properties (density, viscosity) and boundary conditions for the surrounding fluid.
    • Specify the properties of the porous media, including porosity, permeability, and inertial coefficients.
  3. Solver Selection:
    • Choose an appropriate solver for your simulation. OpenFOAM offers solvers like simpleFoam, pisoFoam, and more advanced options like interFoam for multiphase flows.
  4. Boundary Conditions:
    • Apply suitable boundary conditions at inlet, outlet, and other relevant surfaces.
    • For porous media, set up the conditions at the porous interface to reflect the desired flow behavior.
  5. Porous Media Model:
    • Select the porous media model that fits your case. OpenFOAM provides several options like DarcyForchheimer, Ergun, and more. You might also customize the model based on your requirements.
  6. Solver Setup:
    • Configure solver settings, time stepping, convergence criteria, and numerical discretization schemes.
    • Specify the porous media properties and model parameters in your solver setup.
  7. Solution Initialization:
    • Initialize the solution using appropriate methods, such as zero initialization, previous solution, or other suitable methods.
  8. Solution and Convergence:
    • Run the simulation and monitor the convergence. Check residuals and adjust solver settings if needed.
    • Utilize OpenFOAM’s built-in post-processing tools to track the progress of the solution.
  9. Post-Processing:
    • Visualize and analyze simulation results using OpenFOAM’s post-processing utilities.
    • Extract data on velocity, pressure, and other variables within the porous media.
  10. Validation and Optimization:
    • Validate your results by comparing them to experimental data or theoretical predictions.
    • Perform sensitivity analyses or optimization studies by varying porous media properties and other parameters.
  11. Documentation and Reporting:
    • Document your simulation setup, assumptions, and results thoroughly.
    • Create comprehensive reports detailing the methodology, findings, and insights from your simulation.



  • Each case can have specific requirements or considerations, so it’s important to refer to ANSYS FLUENT documentation and literature related to porous media simulations for more detailed guidance.
  • OpenFOAM is a highly versatile and customizable tool, and the steps may vary depending on the specific solver, porous media model, and geometry you’re working with.
  • Refer to OpenFOAM’s documentation, forums, and literature related to porous media simulations for more specific guidance and examples.


  1.  Jacob, Modeling of Phenomenon of Flow in Porous Media, Springer (2018)
  2. Chalmers University, Open FOAM for Porous Media Modeling:
  3. ANSYS FLUENT guide for porus Media modeling
  4. Open FOAM source code for porosity 

Leave a Comment