Berkeley Lab
Bringing Science Solutions to the World

TOUGH Pre- and Post-Processors

The TOUGH simulators solve the governing equations of nonisothermal multiphase flow and transport in fractured porous media. Input to and output from the simulator occurs through ASCII text files. No graphical interfaces are part of the TOUGH distribution, and only minimal support for model setup and mesh generation is built into the simulators.

The following describes external software tools for pre- and postprocessing TOUGH input and output files. Some are web-based tools, some have been made available for free download, others are licensed and available for purchase. Certain TOUGH-related pre- and postprocessors are available from commercial software developers; they are listed here for completeness, without explicit endorsement from LBNL.

LBNL Licensed Software


WinGridder is a Windows-based graphical mesh generator for TOUGH, developed by Lehua Pan at LBNL. It allows the generation and visualization of complex, unstructured finite volume meshes, which may internal boundaries, include fault offsets, boreholes, etc.

Web-Based Tools


Calculates properties of real gases.


Creates simple Cartesian or radial meshes and assign box-shaped or cylindrical material domains, respectively.


toughio-dash relies on the open-source Python library toughio for the backend, and Plotly Dash for the frontend. It aims to simplify setting up TOUGH simulations by providing a user-friendly graphical user interface. For more advance processing capabilities, the user is invited to use the Python library toughio.

Free Software

The following pre- and postprocessing software can be downloaded for free.


AMESH Generates irregular TOUGH meshes using Voronoi tesselation in a 2D plane and projection into the third dimension.


etype, written by Jerry Fairley, is a PERL script that calculates e-type (pointwise) estimates of mean and variance for point quantities at spatially referenced locations, for example, averages from Monte Carlo simulations.


EXT extracts data from a TOUGH2 output file for visualization with Tecplot.


FLAC2TOUGH is a Matlab script that translates FLAC3D input files into TOUGH2 input files; by Antonio Rinaldi.


iT2_jEdit, written by Joseph Doetsch, highlights the iTOUGH2 syntax when using jEdit.


MESH_FLAC2TOUGH converts a mesh created by FLAC3D into a TOUGH2 mesh; by Laura Blanco Martin.


MeshMaker is a stand-alone mesh generator for two-dimensional radially symmetric (r,z) meshes, and one-, two-, and three-dimensional rectilinear (Cartesian) grids in (x,y,z); see Manual.


Steinar is a pre- and postprocessor for TOUGH2 meshes, developed by Andri Arnaldsson of Vatnaskil Consulting Engineers, Reykjavik, Iceland.


T2CHK checks the relative permeability and capillary pressure curves set in the ROCKS or PRCAP blocks of TOUGH2 input file, and calculates the equilibrium liquid saturation about capillary pressure in each material.


T2ext, written by Jerry Fairley, is a PERL script to extract data from TOUGH2-MP file OUTPUT_DATA. Regardless of the dimensionality of the simulation, the output from T2ext is a space-delimited four or six column file, each line of which gives X,Y,Z,P (for a primary variable) or X,Y,Z,Fx,Fy,Fz (for a secondary variable). Users of GMT (Generic Mapping Tools) will find the output from T2ext is conveniently formatted for plotting with that program. Run T2ext -h for a description of all available options.


TMT2, written by Andrea Borgia, translates a MODFLOW grid created with GMS to a TOUGH2 grid, writing the blocks ELEME, CONNE, GENER, and INCON for various EOS modules (currently EOS1 – EOS5). It might work with MODFLOW GUIs, other than GMS, but it is not guaranteed nor have we tested it. Please send e-mail to Andrea Borgia with feedback. Also see the tutorial in the Tips & Tricks tab of the TOUGH User Forum.


toughio is an open-source library that provides tools to facilitate pre- and post-processing for TOUGH using the latest Python standards. It aims to make setting up of a TOUGH simulation user-friendly by relying on existing well-established Python packages, namely numpy, meshio and pyvista. (Link to the software; Link to the documentation)


TOUGH2Matlab extracts data from TOUGH2 output file for visualization with Matlab; by Antonio Rinaldi.

TOUGH Ancillary Code

TOUGH Ancillary Code includes the following:

  • MoveMesh (v1.0): Moves coordinates of TOUGH mesh
  • AddBound (v2.0): Deletes elements in a specified domain or replaces them with a single boundary element connected to all elements adjacent to that region. The region can be a box or polygonial prism.
  • Perm2Mesh (v1.0): Reads coordinates and log(permeability modifier) from a file and assigns them to TOUGH elements
  • AssignRock (v2.0): Assigns rock type name to all elements within a specified box or polygonial prism
  • CutCavity (v1.0): Cuts cavities of various shapes into 2D and 3D models
  • EOS9EOS3 (v1.0): Converts EOS9-SAVE file to EOS3-INCON file
  • DeleteElements (v2.0): Deletes elements and connections in specified region. The region can be a box, cylinder, material domain, or polygonial prism.
  • MINC2MESH (v1.0): Splits MINC into separate MESH files, one for each continuum, for subsequent EXT processing.

Commercial Software

The following commercial software packages are listed in alphabetical order for information only, i.e., without explicit endorsement from LBNL. Contact the vendor for detailed information about the capabilities and cost of the software.


Leapfrog supports the development of both conceptual and quantitative geological and numerical models.


mView supports pre- and postprocessing and visualization of TOUGH (and other numerical simulation software).


PetraSim is a graphical interface for pre- and postprocessing of TOUGH2, TOUGH2-MP, T2VOC, TMVOC, TOUGHREACT and TOUGH-Fx/HYDRATE models.


RE-Studio is a pre and post processor for TOUGH2. RE-Studio preprocessing includes editing TOUGH2 input files with continuous syntax checking, creation of GENER keywords from well trajectories and total well production/injection rates, and creation/modification of MESH and INCON from eclipse models (coming soon). RE-Studio Postprocessing includes 3D mesh visualization and time series plotting.


SKUA-GOCAD is a geomodelling solution providing the tools to create geologic models that honor the true structure and stratigraphy of reservoirs. SKUA-GOCAD offers pre and post processing capabilities for TOUGH2, allowing to export and import 3D geological grids in TOUGH format and facilitating transfer and iterations between geological models and TOUGH simulation for reliable production forecasts.

Other Software


LaGriT is a library of user callable tools that provide mesh generation, mesh optimization and dynamic mesh maintenance in two and three dimensions. It can write computational meshes in TOUGH2 format.


MULgeom is a graphical pre-processor for the AUTOUGH2 package. It can be used for preparing TOUGH2 model grids. MULgeom was developed at the Department of Engineering Science, University of Auckland, New Zealand.


MULgraph is a graphical interface for viewing the results of TOUGH2 models, developed at the Department of Engineering Science, University of Auckland, New Zealand.


PyTOUGH is a Python library for automating TOUGH2 simulations of subsurface fluid and heat flow, developed by Adrian Croucher at the Department of Engineering Science, University of Auckland, New Zealand.


TOUGH2GIS is a GIS-based pre-processor for TOUGH2 that allows the user to create locally refined unstructured (Voronoi) grids and to assign rock types to grid blocks. TOUGH2GIS is developed at the University of Bologna, Italy.


TOUGH2PATH is a software code that computes particle paths from TOUGH simulation results, developed at the University of Bologna, Italy.


TOUGH2Viewer is a 3D visualization software and post-processor for TOUGH2, developed by Stefano Bonduà, University of Bologna, Italy.


VORO2MESH is a tool for generating fully 3D Voronoi meshes for TOUGH, developed at the University of Bologna, Italy.