TOUGH4 User Manual
  • Quick Entry to Keywords for Data Input
  • 1️⃣INTRODUCTION
    • About TOUGH
    • TOUGH Development History
    • TOUGH4 Implementation
    • Scope and Methodology
  • 2️⃣WHAT IS NEW IN TOUGH4
  • 3️⃣CODE COMPILATION AND INSTALLATION
    • Setup for Compilation
    • Code Compilation
      • 1. Compilation of TOUGH4 using Visual Studio
      • 2. Compilation of TOUGH4 on Linux-like platform
    • Installation
    • Running the Executable for Simulations
  • 4️⃣GOVERNING EQUATIONS
    • Mass-Balance Equation
    • Accumulation Terms
    • Flux Terms
    • Sink and Source Terms
    • Virtual Node Well Treatment
    • Semi-Analytical Conductive Heat Exchange
    • Drift Model
    • Non-Darcy Flow
  • 5️⃣NUMERICAL METHOD
    • Space and Time Discretization
    • Interface Weighting Schemes
    • Initial and Boundary Conditions
      • Initial Conditions and Restarting
      • Neumann Boundary Conditions
      • Dirichlet Boundary Conditions
      • Atmospheric Boundary Conditions
      • Constant Temperature Boundary Conditions
    • Parallel computing schemes
    • Linear Solvers
    • Python Functions
      • Relative Permeability
      • Capillary Pressure
      • Initial Condition Calculation
      • Fetching Output Data
      • Fetching Thermophysical Property Data From NIST Webbook
      • Coupling With Third-Party Software
  • 6️⃣SOFTWARE ARCHITECTURE
    • Program Design
    • Data Structure
    • Linear Equation Setup
  • 7️⃣PROCESS MODELING
    • EOS1
    • EOS2
    • EOS3
    • EOS4
    • EOS6
    • EOS7
    • EOS9
    • ECO2
    • EWASG
    • TMVOC
    • Tracers/Decay Chain
    • Biodegradation Reaction
    • Wellbore Flow
    • Non-Darcy Flow
    • Enhanced Coal Bed Methane
  • 8️⃣PREPARATION OF MODEL INPUT
    • Input Formatting
    • Keywords and Input Data
      • TITLE
      • BIODG
      • CBMDA
      • CHEMP
      • COFT
      • CONNE
      • COUPL
      • DIFFU
      • ELEME
      • ENDCY
      • ENDFI
      • FLAC
      • FNIST
      • FOFT
      • FORCH
      • GASES
      • GENER
      • GOFT
      • HYSTE
      • INCON
      • INDOM
      • MESHM
      • MODDE
      • MOMOP
      • MULTI
      • OUTPU
      • PARAM
      • ROCKS
      • ROFT
      • RPCAP
      • SELEC
      • SOLVR
      • SPAVA
      • TIMBC
      • TIMES
      • TRACR
      • WELLB
    • Inputs for Initial Conditions
      • EOS1
      • EOS2
      • EOS3
      • EOS4
      • EOS6
      • EOS7
      • EOS9
      • ECO2
      • EWASG
      • TMVOC
    • Geometry Data
      • General Concepts
      • MESHMaker
      • Multiple-continuum processing
    • Inputs for MESHMaker
      • Generation of radially symmetric grids
        • RADII
        • EQUID
        • LOGAR
        • LAYER
      • Generation of rectilinear grids
      • MINC processing for fractured media
    • Adjustment of Computing Parameters at Run-time
  • 9️⃣OUTPUTS
  • 🔟VALIDATION AND APPLICATION EXAMPLES
    • EOS1
      • Problem 1 - Code Demonstration
      • Problem 2 - Heat Sweep in a Vertical Fracture (rvf)
      • Problem 3 - Five-spot Geothermal Production/Injection (rfp)
      • Problem 4 - Coupled Wellbore Flow (r1q)
      • Problem 5 - Five-Spot Geothermal Production/Injection under extremely high temperature
    • EOS2
      • Problem 1 -Five-spot Geothermal Production/Injection (rfp)
    • EOS3
      • Problem 1 - Code Demonstration (eos3p1)
      • Problem 2 - 1D TH Problem with Heating and Gas Source (by Guanlong Guo)
      • Problem 3 - Heat Pipe in Cylindrical Geometry (rhp)
      • Problem 4 - 3D Thermal Consolidation Test, Coupling with FLAC3D Simulator (by Guanlong Guo)
    • EOS4
      • Problem 1 - Code Demonstration (eos4p1)
      • Problem 2 - Heat Pipe in Cylindrical Geometry (rhp)
    • EOS6
      • Problem 1-Validation with EOS2
      • Problem 2-Noble Gas Transport
    • EOS7
      • Problem 1-Multiphase and Nonisothermal Processes in a System with Variable Salinity (rf1)
      • Problem 2-Thermal and Tracer Diffusion (EOS7R/rdif7)
      • Problem 3-Contamination of an Aquifer from VOC Vapors in the Vadose Zone (EOS7R/rdica)
      • Problem 4-Density, Viscosity, Solubility, and Enthalpy of Real Gas Mixtures (EOS7C/SAM7C1)
      • Problem 5-CO2 Injection into a Depleted Gas Reservoir (EOS7C2/SAM7C2)
      • Problem 6- CO2 Injection into a Saturated System (EOS7C/SAM7C3)
      • Problem 7-Density, Viscosity, and Enthalpy of Real Gas Mixtures (EOS7CA/SAM7CA1)
      • Problem 8-CO2 Injection into a Shallow Vadose Zone (EOS7CA/SAM7CA2)
      • Problem 9-Non-Isothermal Compressed Air Energy Storage in Reservoir (by Julien Mouli-Castillo)
    • EOS9
      • Page 1
    • ECO2
      • Problem 1-Demonstration of Initialization Options (ECO2N/rtab)
      • Problem 2-Radial Flow from a CO2 Injection Well (ECO2N/rcc3)
      • Problem 3-CO2 Discharge Along a Fault Zone (ECO2N/r1dv)
      • Problem 4-CO2 Injection into a 2-D Layered Brine Formation (ECO2N/rtp7)
      • Problem 5-Upflow of CO2 along a Deep Fault Zone (ECO2M/r1d)
      • Problem 6-Migration of a CO2 Plume in a Sloping Aquifer, Intersected by a Fault (ECO2M/rwaf)
      • Problem 7-GCS/GHE with a double-porosity reservoir (Case6_50kg_DP/ECO2NV2)
    • EWASG
      • Problem 1 - Brine Density Calculation (dnh)
      • Problem 2 - Production from a Geothermal Reservoir with Hypersaline Brine and CO2 (rhbc)
    • TMVOC
      • Problem 1-Initialization of Different Phase Conditions (r7c)
      • Problem 2-1-D Buckley-Leverett Flow (rblm)
      • Problem 3-Diffusion of components (rdif2)
      • Problem 4-Steam Displacement of a NAPL in a Laboratory Column (rtcem)
      • Problem 5-Steam Displacement of a Benzene-Toluene Mixture in a Laboratory Column (rbt)
      • Problem 6 -Air Displacement of a NAPL from a Laboratory Column (rad)
      • Problem 7-NAPL Spill in the Unsaturated Zone (r2dl)
    • T4.Well
      • Problem 1-Steady-state two-phase flow upward
      • Problem 2-Non-isothermal CO2 flow through a wellbore initially full of water
  • CONCLUSION REMARKS
  • REFERENCES
  • ACKNOWLEDGEMENT
  • Appendix
    • ☑️A: RELATIVE PERMEABILITY FUNCTIONS
      • IRP=1 Linear function
      • IRP=2 Power function
      • IRP=3 Corey's curves
      • IRP=4 Grant's curve
      • IRP=5 Perfectly mobile
      • IRP=6 Fatt and Klikoff function
      • IRP=7 van Genuchten-Mualem Model
      • IRP=8 Verma function
      • IRP=10 Modified Brooks-Corey Model
      • IRP=11 Modified van Genuchten Model
      • IRP=12 Regular hysteresis
      • IRP=13 Simple hysteresis
      • IRP=31 Three phase perfectly mobile
      • IRP=32 Modified Stone's first 3-phase method
      • IRP=33 Three-phase Parker's function
      • IRP=34 Alternative Stone 3-phase
      • IRP=35 Power-law function
      • IRP=36 Faust for two-phase Buckley-Leverett problem
      • IRP=37 Another alternative to Stone function
      • IRP=40 Table lookup
      • IRP=41 User-Defined relative permeability function
    • ☑️B: CAPILLARY PRESSURE FUNCTIONS
      • ICP=1 Linear function
      • ICP=2 Function of Pickens
      • ICP=3 TRUST capillary pressure
      • ICP=4 Milly’s function
      • ICP=6 Leverett’s function
      • ICP=7 van Genuchten function
      • ICP=8 No capillary pressure
      • ICP=10 Modified Brooks-Corey Model
      • ICP=11 Modified van Genuchten Model
      • ICP=12 Regular hysteresis
      • ICP=13 Simple hysteresis
      • ICP=31 Parker et al 3-phase function
      • ICP=32 Parker 3-phase function, alternative 1
      • ICP=33 Parker 3-phase function, alternative 2
      • ICP=34 Parker 3-phase function, alternative 3
      • ICP=40 Table lookup
      • ICP=41 User-Defined capillary pressure function
    • ☑️C: ADDITIONAL PROGRAM OPTIONS
    • ☑️D: DESCRIPTION OF FRACTURED FLOW
      • Multiple Continuum Approaches
      • Active Fracture Modle
Powered by GitBook
On this page
  1. INTRODUCTION

TOUGH4 Implementation

THOUGH was first developed about 40 years ago. However, its software architecture and data structure remain almost the same and without significant improvements. The rapid advancement of hardware, software, and computing platforms has made it challenging for TOUGH to fully harness the capabilities of modern computer technology. Despite the development of numerous process modeling modules, a lack of consistency and occasional overlap between these modules persists, and additional modules for different gas and gas mixtures are still highly expected. In addition, sharing modeling functionalities among different EOS (equation of state) modules remains a complex endeavor.

TOUGH4 re-engineers and expands TOUGH into a more general simulator by taking advantage of using the hybrid parallel computing hardware and using well-known third-party software libraries. TOUGH4 V1.0 has a completely modular structure, follows the tenets of Object-Oriented Programming (OOP), employs hybrid task based and data based parallel parallelism, and uses the standard data storage format for linear equation systems. It is designed with excellent extensibility for future development and great flexibility for adding any new process modeling capabilities. Besides inheriting all the user features from TOUGH3, it also adds many new features. The new simulator allows you to accommodate any number of EOS modules into a single executable. TOUGH4 simulations can be run in parallel with MPI, OPENMP, GPU or combination of any of them based on the computer hardware used and user preferences. The new version of the code is developed about 90% in Fortran and 10% in C++.

TOUGH4 retains all process modeling functionalities of TOUGH3, but it has completely reorganized the EOS modules. Most modules still use the same name, even though their modeling capabilities have significantly changed. The most important changes include: (1) EOS1 allowing water in supercritical conditions; (2) A new module named EO6 for any user specified gas simulation; (3) EOS7, EOS7R, EOS7C, EOS7CA are combined into a single EOS7 module; (4) ECO2N, ECO2M, ECO2N V2 are combined into a single ECO2 module; (5) EWASG are extended into allowing multiple gases and multiple salts. Several key process modeling capabilities have been generalized and can be used in any EOS modules, including (1) wellbore modeling; (2) simulation of decay chains, tracers, or solvents; (3) simulation of biodegradation reactions; (4) non-Darcy flow simulation using the Forchheimer equation; (5) simulation of gas/tracer absorption (such as coalbed methane or shale gas) using the extended Langmuir isotherm. Table 1 lists all modules implemented in TOUGH4 and their modeling capabilities.

Table 1. Fluid property modules for TOUGH4.

Module

EOS1

EOS2

water, CO2, tracers

EOS3

water, air, tracers

EOS4

water, air, with vapor pressure lowering, tracers

EOS6

EOS7

EOS9

variably-saturated isothermal flow according to Richards’ equation, tracers

EWASG

TMVOC

water, water-soluble volatile organic chemicals, non-condensible gases, Tracers

ECO2

water, NaCl, CO2, tracers, including phase change among aqueous, supercritical and gaseous CO2

1. Wellbore simulation is allowed for any EOS modules.

2. Biodegradation reaction processes are allowed for any EOS modules.

3. Tracers can be radionuclides or solvents with user designed parent-daughter relationship; can be in user specified phase. Tracer absorption can also be simulated. Handling the tracers may be slightly different in some EOS modules. The maximum number of tracers is 5.

4. Maximum number of gases is 4.

5. Any gas with thermophysical properties provided by NIST Chemistry WebBook or other resources.

6. Non-Darcy's flow is allowed in any media.

7. Absorption of gas/tracer using the extended Langmuir isotherm in any media can be included in the model.

The present report provides a summary of the new features, discussions of the improvements in user features, data structure, software architecture, and process modeling capabilities over the previous versions. The mathematical models, numerical methods, module specific methods are discussed. This report also presents a quick start of using TOUGH4. It provides guides for compilation, installation, preparation of input files, and running simulations. Discussion of the input file formatting is also presented, most of which remains compatible with TOUGH3. To make this report self-contained for input file preparation, we include much of the material that was covered in the TOUGH3 user’s guide (Jung et al., 2018). Details of the mathematical models, numerical methods, module specific methods and testing examples can be found online.

TOUGH4, the latest addition to the TOUGH family of codes, is derived from many of its predecessors. Table 2 lists the main codes and their key contributors. TOUGH4 itself was developed by Keni Zhang.

Table 2. The most important codes that TOUGH4 is based on.

Name of the Codes

Key Contributor

What are the contributions to TOUGH4

TOUGH2

Karstan Pruess

General idea of the TOUGH simulation

TOUGH3

Yoojin Jung

The user features (input/output and more)

TOUGH+

George Moridis

Language style, data structure, and some user features

TOUGH2-MP

Keni Zhang

MPI parallelism

EOS7C, EOS7CA

Curt Odenburg

EOS7

TMVOC

Karsten Pruess

TMVOC

ECO2N, ECO2M

Karsten Pruess

ECO2

ECO2N V2.0

Lehua Pan

ECO2

TMVOCBio

Alfredo Battistelli

Biodegradation reactions

T2Well

Lehuan Pan

Wellbore simulation

ITOUGH2

Stefan Finsterle

Supercritical water simulation, non-Darcy's flow

TOUGH2/Hysteresis

Chris Doughty

Hysteresis function for capillary pressure and relative permeability

GPSFLOW

Keni Zhang

Hybrid parallel computing, data structure, new TOUGH software architecture, third-party linear solver interfaces

EWASG

Alfredo Battistelli

EWASG

GasEOS

George Moridis

Real Gas properties for gas mixture

EOS7C-ECBM

Stephen Webb

Gas/tracer absorption using the extended Langmuir isotherm

PreviousTOUGH Development HistoryNextScope and Methodology

Last updated 2 months ago

Capabilities

water, water2, tracers , sub/supercritical condition

water, user specified gas , tracers

water, brine, gases , tracers

water, salts, non-condensible gases

1️⃣
1,2,6,7^{1,2,6,7}1,2,6,7
3^33
5^55
4^44
4^44