Finite Element Heat and Mass Transfer Code

FEHM is used to simulate groundwater and contaminant flow and transport in deep and shallow, fractured and un-fractured porous media. FEHM was created in the early 1970s to simulate geothermal and hot dry rock reservoirs and then used in studies of flow fields and mass transport in the saturated and unsaturated zones below the potential Yucca Mountain repository. Today FEHM is used to simulate groundwater and contaminant flow and transport in deep and shallow, fractured and un-fractured porous media throughout the US DOE complex. FEHM has proved to be a valuable asset on a variety of projects of national interest including Environmental Remediation of the Nevada Test Site, the LANL Groundwater Protection Program, geologic CO2 sequestration, Enhanced Geothermal Energy (EGS) programs, Oil and Gas production, Nuclear Waste Isolation, and Arctic Permafrost.

Subsurface physics has ranged from single fluid/single phase fluid flow when simulating basin scale groundwater aquifers to complex multi-fluid/multi-phase fluid flow that includes phase change with boiling and condensing in applications such as unsaturated zone surrounding nuclear waste storage facility or leakage of CO2/brine through faults or wellbores. The numerical method used in FEHM is the control volume method (CV) for fluid flow and heat transfer equations which allows FEHM to exactly enforce energy/mass conservation; while an option is available to use the finite element (FE) method for displacement equations to obtain more accurate stress calculations. In addition to these standard methods, an option to use FE for flow is available, as well as a simple Finite Difference scheme.


  • 3-dimensional complex geometries with unstructured grids
  • Saturated and unsaturated media
  • Simulation of production from gas hydrate reservoirs
  • Simulation of geothermal reservoirs
  • Non-isothermal, multi-phase flow of gas, water, oil
  • Non-isothermal, multi-phase flow of air, water
  • Non-isothermal, multi-phase flow of CO2, water
  • Multiple chemically reactive and sorbing tracers
  • Preconditioned conjugate gradient solution of coupled linear equations
  • Fully implicit, fully coupled Newton Raphson solution of nonlinear equations
  • Double porosity and double porosity/double permeability capabilities
  • Control volume (CV) and finite element method (FE) methods
  • Coupled geomechanics (THM) problems (fluid flow and heat transfer coupled with stress/deformation) including non-linear elastic and plastic deformation, nonlinear functional dependence of rock properties (e.g. permeability, porosity, Young's modulus) on pressure, temperature and damage/stress
Image link to first example graphic
Image link to first example graphic
Image link to first example graphic

FEHM Distribution and Documentation

Online Manuals


FEHM is open source and available for download.

Code at GitHub


Auxiliary FEHM Programs

FehmPyTests is a new test suite for FEHM developers to easily test new code and add new tests for existing or future functionality. FehmPyTests uses the Python unit test module and a general test method that can be called for each new test case. Future plans are to integrate FehmPyTests into the FEHM build and version control process.
PyFEHM is an open-source (LGPL 2.1) Python library that provides classes and methods to support a scripting environment for the subsurface heat and mass transfer, and geomechanics code FEHM. It is inspired by a similar library, PyTOUGH, available for use with the TOUGH2 family of codes.
FEHM.jl is a Julia interface for FEHM and is part of ZEM, an integrated open-source high-performance computational (HPC) framework for environmental management in Julia.
WALKABOUT performs random walk particle tracking simulations of solute transport based on groundwater flow solutions from FEHM. A typical workflow for Walkabout within the FEHM system would use LaGriT to generate unstructured grids. FEHM then provides a discretized representation of the steady-state flow field to Walkabout. Given this discrete solution, Walkabout then reconstructs a groundwater flow field, and performs the random walk particle tracking calculation.
PlumeCalc implements the Convolution-Based Particle Tracking (CBPT) method and requires auxiliary input information related to the flow and transport model as provided by FEHM.

Mesh Generation Software for writing FEHM files include:
LaGriT (LANL Grid Generation ToolBox) for creating and writing FEHM mesh and model setup files.
GRIDDER rectangular grid generator for creating and writing FEHM mesh files.

Software used with FEHM input and output files include:
AVS (Advanced Visual Systems)
GMV (General Mesh Viewer)

FEHM Applications

SOILVISION SVOFFICE 5/WR integrates user friendly front-end numerical analysis and visualization software with the FEHM Control Volume Finite Element solution engine. Hydrogeologists can perform groundwater flow analysis of large-scale, thin layer regional models and leverage capabilities such as double porosity / double permeability and non-isothermal multiphase modeling of water / vapor.
Modeling Gallery with assorted images from FEHM modeling projects.