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. PROCESS MODELING

EOS9

PreviousEOS7NextECO2
  1. Description

This module considers variably saturated flow of a single aqueous phase, which consists of a water component and tracers, and neglects phase change effects. The thermophysical properties of water are assumed independent of tracer concentrations. Implicit in this approximation is the assumption that the tracer concentrations are small. The gas phase is treated as a passive bystander at constant pressure, and conditions are assumed to be isothermal. Thus, no mass balance equation for gas and no heat balance is needed, and only a single water mass balance equation is solved for each grid block if no tracer is included. This is very efficient numerically, making EOS9 the module of choice for problems for which the underlying approximations are applicable.

Liquid flow in EOS9 is described as follows:

∂∂tϕ Slρl= div[kkrlμlρl∇(Pl+ρlgz)]\dfrac{\partial}{\partial t}\phi\ S_l\rho_l=\ div\left[k\frac{k_{rl}}{\mu_l}\rho_l\nabla\left(P_l+\rho_lgz\right)\right]∂t∂​ϕ Sl​ρl​= div[kμl​krl​​ρl​∇(Pl​+ρl​gz)] (7-23)

where ϕ\phiϕ is porosity, SlS_lSl​ is water saturation, ρl\rho_lρl​is water density, k is absolute permeability, krlk_{rl}krl​is relative permeability to the aqueous phase, μl\mu_lμl​is water viscosity, PlP_lPl​is water pressure, g is acceleration of gravity, and z is defined positive upward. Neglecting variations in liquid phase density and viscosity, as is appropriate for (nearly) isothermal conditions, Eq. 7-23 simplifies to Richards’ equation (1931)

∂∂tθ= div[K∇h]\frac{\partial}{\partial t}\theta=\ div\left[K\nabla h\right]∂t∂​θ= div[K∇h] (7-24)

where θ=ϕSl\theta=\phi S_lθ=ϕSl​ is specific volumetric moisture content, K=kkrlρlgμlK=\frac{kk_{rl}\rho_lg}{\mu_l}K=μl​kkrl​ρl​g​ is hydraulic conductivity, and h=z+Pl/ρgh=z+P_l/\rho gh=z+Pl​/ρg is the hydraulic head. EOS9 can describe flow under partially saturated (0 < Sl < 1) as well as fully saturated conditions, and phase changes between the two.

  1. Specifications

A summary of EOS9 specifications is given in Table 12. The default number of mass component is 1. Simulation can only be run in isothermal. With only a single mass balance equation per grid block (not considering tracers), there is only a single primary thermodynamic variable. This is taken to be pressure for single-phase (saturated) conditions, and is water saturation for unsaturated conditions. A distinction between the two is made simply on the basis of the numerical value of the first primary variable, XlX_lXl​. If XlX_lXl​ < 1, this indicates that XlX_lXl​represents water saturation and conditions are unsaturated; if XlX_lXl​ is larger than a user-specified gas phase reference pressure (default Pgas=1.013×105PaP_{gas} = 1.013\times10^5 PaPgas​=1.013×105Pa), it is taken to be water pressure, and saturated conditions prevail. When phase changes between saturated and unsaturated conditions occur, the primary variable is switched, as follows. The numerical value of XlX_lXl​and its change during the Newton-Raphson iteration process is monitored. If XlX_lXl​ changes from being smaller than 1 to larger than 1, this indicates attainment of fully saturated conditions. In that case XlX_lXl​ is switched to pressure, and is initialized at a pressure slightly in excess of gas phase reference pressure as Xl=Pgas(1+ε)X_l=P_{gas}(1+\varepsilon)Xl​=Pgas​(1+ε), with ε=10−6\varepsilon=10^{-6}ε=10−6. If XlX_lXl​ changes from being larger than PgasP_{gas}Pgas​ to smaller than PgasP_{gas}Pgas​, this indicates a transition from fully to partially saturated conditions. XlX_lXl​is then switched to saturation, and is initialized as Xl=1−εX_l=1-\varepsilonXl​=1−ε. Actually, a transition from fully to partially saturated conditions is made only when XlX_lXl​ drops below Pgas(1−ε)P_{gas}(1-\varepsilon)Pgas​(1−ε); test calculations have shown that such a (small) finite-size window for phase change improves numerical stability and efficiency. If tracers exist, one additional primary variable is needed for each tracer. It always takes the tracer mass fraction in liquid water as the primary variable.

Table 12 Summary for EOS9

Specification
Parameters

Components

(1) Water

(2-6) Tracer1-Tracer5 (optional)

Phase condition and its state name and index

(1) Unsaturated, USA

(2) Saturated, SAT

Primary variables

Optional process modeling

Wellbore simulation, and Biodegradation reactions.

In EOS9, the thermophysical properties of water are taken at default reference conditions of P = 1.013×1051.013\times10^51.013×105 Pa, T = 15 ˚C. These defaults can be overwritten in a flexible manner by specifying appropriate data in a fictitious domain ‘REFCO’, as follows.

reference pressure: DROK of REFCO

reference temperature: POR of REFCO

liquid density: PER(1) of REFCO

liquid viscosity: PER(2) of REFCO

liquid compressibility: PER(3) of REFCO

Note that assignment of thermophysical data through a specially-named domain was set up just as a convenient way of providing floating-point parameters to the code. No volume elements (grid blocks) should be attached to domain ‘REFCO’, as the data in general will not correspond to reasonable hydrogeologic parameters. The above-mentioned defaults will be overwritten for any parameters for which a non-zero entry is provided in ‘REFCO’. This allows the generation of these parameters internally for user-defined (P, T); it also allows for directly assigning user-desired values as, e.g., ρliq\rho_{liq}ρliq​= 1000 kg/m3, μliq=10−3\mu_{liq}=10^{-3} μliq​=10−3Pa-s (=1 centipoise), etc.

In addition to specifying the primary thermodynamic variable on a default, domain, or grid block basis, EOS9 offers alternative ways of initializing flow problems. The primary variable may be entered as a negative number upon initialization, in which case it will be taken to denote capillary pressure, and will be internally converted to SlS_lSl​ in the initialization phase. EOS9 can also initialize a flow problem with gravity-capillary equilibrium, relative to a user-specified reference elevation zrefz_{ref}zref​ of the water table. This type of initialization will be engaged if the user enters a non-zero number in slot CWET in ROCKS domain ‘REFCO’, in which case CWET will be taken to denote the water table elevation zrefz_{ref}zref​, in units of meters. Water pressure atzrefz_{ref}zref​is taken equal to reference gas pressure, Pl(zref)=PgasP_l(z_{ref})=P_{gas}Pl​(zref​)=Pgas​, and is initialized as a function of grid block elevation according to P(z)=Pgas+(zref−z)ρgP(z)=P_{gas}+(z_{ref}-z)\rho gP(z)=Pgas​+(zref​−z)ρg. By convention, the z-axis is assumed to point upward. In order to use this facility, the z-coordinates (grid block elevations) must be specified in the ELEME-data, which will be done automatically if internal MESH generation is used.

In the assignment of gravity-capillary equilibrium as just discussed, water saturations at “sufficiently” high elevations above the water table may end up being smaller than the irreducible water saturation SlrS_{lr}Slr​specified in the relative permeability function, which may or may not be consistent with the physical behavior of the flow system. Users may optionally enforce that Sl=SlrS_l=S_{lr}Sl​=Slr​ in regions where the capillary pressure function would dictate that Sl<SlrS_l<S_{lr}Sl​<Slr​ . This is accomplished by entering an appropriate parameter in slot SPHT of ROCKS domain ‘REFCO’, and works as follows. The irreducible saturation SlrS_{lr}Slr​ will be taken to be parameter RP(int(SPHT)) of the relative permeability function. As an example, for the IRP = 7 relative permeability function, irreducible water saturation is the parameter RP(2); therefore, for IRP = 7 the user should specify SPHT = 2.0 in ‘REFCO’ to use this facility.

See

7️⃣
ROCKS
Table 25