HT-coupled RTES Benchmark between FALCON and TOUGH

Problem Statement

Reservoir Thermal Energy Storage (RTES), also called Geological Thermal Energy Storage (GeoTES) or Aquifer Thermal Energy Storage (ATES), is the concept of injecting hot fluid into the subsurface formation for energy storage and extracting it for later use. This example provides a comparison between FALCON and the TOUGH3 code for the heat transfer and fluid flow coupled problems and can be used as an example for TOUGH users on how to setup FALCON simulations

Figure 1: Model set up comparison between TOUGH and FALCON for the Lower Tuscaloosa formation.

The Lower Tuscaloosa formation located at the Cranfield site was chosen as the storage site. Figure 1 shows the geometry and boundary conditions for the two models built for the TOUGH and FALCON solvers, respectively. The formation thickness is about 24 m and is located at a depth of 3000 m. Given the symmetry of the 5-spot well configuration, a 1/8 TOUGH model and a quarter FALCON model were built. Note the TOUGH is a finite difference method (FDM) based solver while FALCON is a finite element method based solver, the quarter FALCON model has a better convergence rate. The cap-/bed-rock layers of the TOUGH model were replaced by undrained flow boundary conditions and an analytical solution for heat conduction. While cap-/bed-rocks were explicitly simulated in the FALCON model with both no-flux of heat and fluid applied to the top and bottom surfaces. All the side surfaces for both the FALCON and TOUGH models are symmetrical boundaries.

A typical RTES operation of injection-storage-extraction-rest seasonal cycles were simulated. During the injection season, we inject hot fluid with a constant injection temperature of 180 degrees C into the injection well and extract fluid from the production well at the same fixed rate of 3 kg/s. During the extraction season, we inject cold fluid with the same temperature as the formation initial temperature To = 126 degree C into the injection well and extract fluid from the production well at the same fixed rate of 3 kg/s. No fluid injection or extraction is conducted during the storage and rest seasons. For this problem, we detail the the input file of FALCON int the following section, and the input file for TOUGH3 can be downloaded here.

FALCON Input File & Results

Figure 1 also shows the permeability profile logged from one well of the Lower Tuscaloosa Sandstone formation. The horizontal and vertical porosity and permeability data were obtained from Doughty and Freifeld (2013) and averaged over the zone of interest and discretized into 20 layers. For the first FALCON simulation, the material section of the input file is

[Materials<<<{"href": "../syntax/Materials/index.html"}>>>]
  [./internal_energy_aquifer]
    type = PorousFlowMatrixInternalEnergy<<<{"description": "This Material calculates the internal energy of solid rock grains, which is specific_heat_capacity * density * temperature.  Kernels multiply this by (1 - porosity) to find the energy density of the porous rock in a rock-fluid system", "href": "../source/materials/PorousFlowMatrixInternalEnergy.html"}>>>
    specific_heat_capacity<<<{"description": "Specific heat capacity of the rock grains (J/kg/K)."}>>> = 920.0
    density<<<{"description": "Density of the rock grains"}>>> = 2600.0
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = 'caps layer_1 layer_2 layer_3 layer_4 layer_5 layer_6 layer_7 layer_8 layer_9 layer_10 layer_11 layer_12 layer_13 layer_14 layer_15 layer_16 layer_17 layer_18 layer_19 layer_20'
  [../]
  [./thermal_conductivity_aquifer]
    type = PorousFlowThermalConductivityIdeal<<<{"description": "This Material calculates rock-fluid combined thermal conductivity by using a weighted sum.  Thermal conductivity = dry_thermal_conductivity + S^exponent * (wet_thermal_conductivity - dry_thermal_conductivity), where S is the aqueous saturation", "href": "../source/materials/PorousFlowThermalConductivityIdeal.html"}>>>
    dry_thermal_conductivity<<<{"description": "The thermal conductivity of the rock matrix when the aqueous saturation is zero"}>>> = '2.51 0 0  0 2.51 0  0 0 2.51'
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = 'caps layer_1 layer_2 layer_3 layer_4 layer_5 layer_6 layer_7 layer_8 layer_9 layer_10 layer_11 layer_12 layer_13 layer_14 layer_15 layer_16 layer_17 layer_18 layer_19 layer_20'
  [../]

  [./porosity_caps]
    type = PorousFlowPorosityConst<<<{"description": "This Material calculates the porosity assuming it is constant", "href": "../source/materials/PorousFlowPorosityConst.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = caps
    porosity<<<{"description": "The porosity (assumed indepenent of porepressure, temperature, strain, etc, for this material).  This should be a real number, or a constant monomial variable (not a linear lagrange or other kind of variable)."}>>> = 0.01
  [../]
  [./permeability_caps]
    type = PorousFlowPermeabilityConst<<<{"description": "This Material calculates the permeability tensor assuming it is constant", "href": "../source/materials/PorousFlowPermeabilityConst.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = caps
    permeability<<<{"description": "The permeability tensor (usually in m^2), which is assumed constant for this material"}>>> = '1E-18 0 0   0 1E-18 0   0 0 1E-18'
  [../]

  [./porosity_layer_1]
    type = PorousFlowPorosity<<<{"description": "This Material calculates the porosity PorousFlow simulations", "href": "../source/materials/PorousFlowPorosity.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_1
    porosity_zero<<<{"description": "The porosity at zero volumetric strain and reference temperature and reference effective porepressure and reference chemistry.  This must be a real number or a constant monomial variable (not a linear lagrange or other type of variable)"}>>> = 0.143
    fluid<<<{"description": "If true, porosity will be a function of effective porepressure"}>>> = true
    biot_coefficient<<<{"description": "Biot coefficient"}>>> = 0.8
    reference_porepressure<<<{"description": "Reference porepressure (only used if fluid=true)"}>>> = ${pp_ini_bc}
    solid_bulk<<<{"description": "Bulk modulus of the drained porous solid skeleton (only used if fluid=true)"}>>> = 1.5E8
  [../]
  [./permeability_layer_1]
    type = PorousFlowPermeabilityConst<<<{"description": "This Material calculates the permeability tensor assuming it is constant", "href": "../source/materials/PorousFlowPermeabilityConst.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_1
    permeability<<<{"description": "The permeability tensor (usually in m^2), which is assumed constant for this material"}>>> = '.8130E-15 0 0   0 .8130E-15 0   0 0 .3160E-15'
  [../]

  [./porosity_layer_2]
    type = PorousFlowPorosity<<<{"description": "This Material calculates the porosity PorousFlow simulations", "href": "../source/materials/PorousFlowPorosity.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_2
    porosity_zero<<<{"description": "The porosity at zero volumetric strain and reference temperature and reference effective porepressure and reference chemistry.  This must be a real number or a constant monomial variable (not a linear lagrange or other type of variable)"}>>> = 0.158
    fluid<<<{"description": "If true, porosity will be a function of effective porepressure"}>>> = true
    biot_coefficient<<<{"description": "Biot coefficient"}>>> = 0.8
    reference_porepressure<<<{"description": "Reference porepressure (only used if fluid=true)"}>>> = ${pp_ini_bc}
    solid_bulk<<<{"description": "Bulk modulus of the drained porous solid skeleton (only used if fluid=true)"}>>> = 1.5E8
  [../]
  [./permeability_layer_2]
    type = PorousFlowPermeabilityConst<<<{"description": "This Material calculates the permeability tensor assuming it is constant", "href": "../source/materials/PorousFlowPermeabilityConst.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_2
    permeability<<<{"description": "The permeability tensor (usually in m^2), which is assumed constant for this material"}>>> = '.3460E-14 0 0   0 .3460E-14 0   0 0 .1350E-14'
  [../]

  [./porosity_layer_3]
    type = PorousFlowPorosity<<<{"description": "This Material calculates the porosity PorousFlow simulations", "href": "../source/materials/PorousFlowPorosity.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_3
    porosity_zero<<<{"description": "The porosity at zero volumetric strain and reference temperature and reference effective porepressure and reference chemistry.  This must be a real number or a constant monomial variable (not a linear lagrange or other type of variable)"}>>> = 0.176
    fluid<<<{"description": "If true, porosity will be a function of effective porepressure"}>>> = true
    biot_coefficient<<<{"description": "Biot coefficient"}>>> = 0.8
    reference_porepressure<<<{"description": "Reference porepressure (only used if fluid=true)"}>>> = ${pp_ini_bc}
    solid_bulk<<<{"description": "Bulk modulus of the drained porous solid skeleton (only used if fluid=true)"}>>> = 1.5E8
  [../]
  [./permeability_layer_3]
    type = PorousFlowPermeabilityConst<<<{"description": "This Material calculates the permeability tensor assuming it is constant", "href": "../source/materials/PorousFlowPermeabilityConst.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_3
    permeability<<<{"description": "The permeability tensor (usually in m^2), which is assumed constant for this material"}>>> = '.1120E-13 0 0   0 .1120E-13 0   0 0 .4390E-14'
  [../]

  [./porosity_layer_4]
    type = PorousFlowPorosity<<<{"description": "This Material calculates the porosity PorousFlow simulations", "href": "../source/materials/PorousFlowPorosity.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_4
    porosity_zero<<<{"description": "The porosity at zero volumetric strain and reference temperature and reference effective porepressure and reference chemistry.  This must be a real number or a constant monomial variable (not a linear lagrange or other type of variable)"}>>> = 0.188
    fluid<<<{"description": "If true, porosity will be a function of effective porepressure"}>>> = true
    biot_coefficient<<<{"description": "Biot coefficient"}>>> = 0.8
    reference_porepressure<<<{"description": "Reference porepressure (only used if fluid=true)"}>>> = ${pp_ini_bc}
    solid_bulk<<<{"description": "Bulk modulus of the drained porous solid skeleton (only used if fluid=true)"}>>> = 1.5E8
  [../]
  [./permeability_layer_4]
    type = PorousFlowPermeabilityConst<<<{"description": "This Material calculates the permeability tensor assuming it is constant", "href": "../source/materials/PorousFlowPermeabilityConst.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_4
    permeability<<<{"description": "The permeability tensor (usually in m^2), which is assumed constant for this material"}>>> = '.1920E-13 0 0   0 .1920E-13 0   0 0 .1400E-13'
  [../]

  [./porosity_layer_5]
    type = PorousFlowPorosity<<<{"description": "This Material calculates the porosity PorousFlow simulations", "href": "../source/materials/PorousFlowPorosity.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_5
    porosity_zero<<<{"description": "The porosity at zero volumetric strain and reference temperature and reference effective porepressure and reference chemistry.  This must be a real number or a constant monomial variable (not a linear lagrange or other type of variable)"}>>> = 0.166
    fluid<<<{"description": "If true, porosity will be a function of effective porepressure"}>>> = true
    biot_coefficient<<<{"description": "Biot coefficient"}>>> = 0.8
    reference_porepressure<<<{"description": "Reference porepressure (only used if fluid=true)"}>>> = ${pp_ini_bc}
    solid_bulk<<<{"description": "Bulk modulus of the drained porous solid skeleton (only used if fluid=true)"}>>> = 1.5E8
  [../]
  [./permeability_layer_5]
    type = PorousFlowPermeabilityConst<<<{"description": "This Material calculates the permeability tensor assuming it is constant", "href": "../source/materials/PorousFlowPermeabilityConst.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_5
    permeability<<<{"description": "The permeability tensor (usually in m^2), which is assumed constant for this material"}>>> = '.5500E-14 0 0   0 .5500E-14 0   0 0 .3900E-14'
  [../]

  [./porosity_layer_6]
    type = PorousFlowPorosity<<<{"description": "This Material calculates the porosity PorousFlow simulations", "href": "../source/materials/PorousFlowPorosity.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_6
    porosity_zero<<<{"description": "The porosity at zero volumetric strain and reference temperature and reference effective porepressure and reference chemistry.  This must be a real number or a constant monomial variable (not a linear lagrange or other type of variable)"}>>> = 0.185
    fluid<<<{"description": "If true, porosity will be a function of effective porepressure"}>>> = true
    biot_coefficient<<<{"description": "Biot coefficient"}>>> = 0.8
    reference_porepressure<<<{"description": "Reference porepressure (only used if fluid=true)"}>>> = ${pp_ini_bc}
    solid_bulk<<<{"description": "Bulk modulus of the drained porous solid skeleton (only used if fluid=true)"}>>> = 1.5E8
  [../]
  [./permeability_layer_6]
    type = PorousFlowPermeabilityConst<<<{"description": "This Material calculates the permeability tensor assuming it is constant", "href": "../source/materials/PorousFlowPermeabilityConst.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_6
    permeability<<<{"description": "The permeability tensor (usually in m^2), which is assumed constant for this material"}>>> = '.1770E-13 0 0   0 .1770E-13 0   0 0 .1190E-13'
  [../]

  [./porosity_layer_7]
    type = PorousFlowPorosity<<<{"description": "This Material calculates the porosity PorousFlow simulations", "href": "../source/materials/PorousFlowPorosity.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_7
    porosity_zero<<<{"description": "The porosity at zero volumetric strain and reference temperature and reference effective porepressure and reference chemistry.  This must be a real number or a constant monomial variable (not a linear lagrange or other type of variable)"}>>> = 0.24
    fluid<<<{"description": "If true, porosity will be a function of effective porepressure"}>>> = true
    biot_coefficient<<<{"description": "Biot coefficient"}>>> = 0.8
    reference_porepressure<<<{"description": "Reference porepressure (only used if fluid=true)"}>>> = ${pp_ini_bc}
    solid_bulk<<<{"description": "Bulk modulus of the drained porous solid skeleton (only used if fluid=true)"}>>> = 1.5E8
  [../]
  [./permeability_layer_7]
    type = PorousFlowPermeabilityConst<<<{"description": "This Material calculates the permeability tensor assuming it is constant", "href": "../source/materials/PorousFlowPermeabilityConst.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_7
    permeability<<<{"description": "The permeability tensor (usually in m^2), which is assumed constant for this material"}>>> = '.9110E-13 0 0   0 .9110E-13 0   0 0 .8870E-13'
  [../]

  [./porosity_layer_8]
    type = PorousFlowPorosity<<<{"description": "This Material calculates the porosity PorousFlow simulations", "href": "../source/materials/PorousFlowPorosity.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_8
    porosity_zero<<<{"description": "The porosity at zero volumetric strain and reference temperature and reference effective porepressure and reference chemistry.  This must be a real number or a constant monomial variable (not a linear lagrange or other type of variable)"}>>> = 0.26
    fluid<<<{"description": "If true, porosity will be a function of effective porepressure"}>>> = true
    biot_coefficient<<<{"description": "Biot coefficient"}>>> = 0.8
    reference_porepressure<<<{"description": "Reference porepressure (only used if fluid=true)"}>>> = ${pp_ini_bc}
    solid_bulk<<<{"description": "Bulk modulus of the drained porous solid skeleton (only used if fluid=true)"}>>> = 1.5E8
  [../]
  [./permeability_layer_8]
    type = PorousFlowPermeabilityConst<<<{"description": "This Material calculates the permeability tensor assuming it is constant", "href": "../source/materials/PorousFlowPermeabilityConst.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_8
    permeability<<<{"description": "The permeability tensor (usually in m^2), which is assumed constant for this material"}>>> = '.1390E-12 0 0   0 .1390E-12 0   0 0 .1290E-12'
  [../]

  [./porosity_layer_9]
    type = PorousFlowPorosity<<<{"description": "This Material calculates the porosity PorousFlow simulations", "href": "../source/materials/PorousFlowPorosity.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_9
    porosity_zero<<<{"description": "The porosity at zero volumetric strain and reference temperature and reference effective porepressure and reference chemistry.  This must be a real number or a constant monomial variable (not a linear lagrange or other type of variable)"}>>> = 0.285
    fluid<<<{"description": "If true, porosity will be a function of effective porepressure"}>>> = true
    biot_coefficient<<<{"description": "Biot coefficient"}>>> = 0.8
    reference_porepressure<<<{"description": "Reference porepressure (only used if fluid=true)"}>>> = ${pp_ini_bc}
    solid_bulk<<<{"description": "Bulk modulus of the drained porous solid skeleton (only used if fluid=true)"}>>> = 1.5E8
  [../]
  [./permeability_layer_9]
    type = PorousFlowPermeabilityConst<<<{"description": "This Material calculates the permeability tensor assuming it is constant", "href": "../source/materials/PorousFlowPermeabilityConst.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_9
    permeability<<<{"description": "The permeability tensor (usually in m^2), which is assumed constant for this material"}>>> = '.2120E-12 0 0   0 .2120E-12 0   0 0 .2000E-12'
  [../]

  [./porosity_layer_10]
    type = PorousFlowPorosity<<<{"description": "This Material calculates the porosity PorousFlow simulations", "href": "../source/materials/PorousFlowPorosity.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_10
    porosity_zero<<<{"description": "The porosity at zero volumetric strain and reference temperature and reference effective porepressure and reference chemistry.  This must be a real number or a constant monomial variable (not a linear lagrange or other type of variable)"}>>> = 0.27
    fluid<<<{"description": "If true, porosity will be a function of effective porepressure"}>>> = true
    biot_coefficient<<<{"description": "Biot coefficient"}>>> = 0.8
    reference_porepressure<<<{"description": "Reference porepressure (only used if fluid=true)"}>>> = ${pp_ini_bc}
    solid_bulk<<<{"description": "Bulk modulus of the drained porous solid skeleton (only used if fluid=true)"}>>> = 1.5E8
  [../]
  [./permeability_layer_10]
    type = PorousFlowPermeabilityConst<<<{"description": "This Material calculates the permeability tensor assuming it is constant", "href": "../source/materials/PorousFlowPermeabilityConst.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_10
    permeability<<<{"description": "The permeability tensor (usually in m^2), which is assumed constant for this material"}>>> = '.1630E-12 0 0   0 .1630E-12 0   0 0 .1580E-12'
  [../]

  [./porosity_layer_11]
    type = PorousFlowPorosity<<<{"description": "This Material calculates the porosity PorousFlow simulations", "href": "../source/materials/PorousFlowPorosity.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_11
    porosity_zero<<<{"description": "The porosity at zero volumetric strain and reference temperature and reference effective porepressure and reference chemistry.  This must be a real number or a constant monomial variable (not a linear lagrange or other type of variable)"}>>> = 0.23
  [../]
  [./permeability_layer_11]
    type = PorousFlowPermeabilityConst<<<{"description": "This Material calculates the permeability tensor assuming it is constant", "href": "../source/materials/PorousFlowPermeabilityConst.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_11
    permeability<<<{"description": "The permeability tensor (usually in m^2), which is assumed constant for this material"}>>> = '.7700E-13 0 0   0 .7700E-13 0   0 0 .5990E-13'
  [../]

  [./porosity_layer_12]
    type = PorousFlowPorosity<<<{"description": "This Material calculates the porosity PorousFlow simulations", "href": "../source/materials/PorousFlowPorosity.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_12
    porosity_zero<<<{"description": "The porosity at zero volumetric strain and reference temperature and reference effective porepressure and reference chemistry.  This must be a real number or a constant monomial variable (not a linear lagrange or other type of variable)"}>>> = 0.306
    fluid<<<{"description": "If true, porosity will be a function of effective porepressure"}>>> = true
    biot_coefficient<<<{"description": "Biot coefficient"}>>> = 0.8
    reference_porepressure<<<{"description": "Reference porepressure (only used if fluid=true)"}>>> = ${pp_ini_bc}
    solid_bulk<<<{"description": "Bulk modulus of the drained porous solid skeleton (only used if fluid=true)"}>>> = 1.5E8
  [../]
  [./permeability_layer_12]
    type = PorousFlowPermeabilityConst<<<{"description": "This Material calculates the permeability tensor assuming it is constant", "href": "../source/materials/PorousFlowPermeabilityConst.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_12
    permeability<<<{"description": "The permeability tensor (usually in m^2), which is assumed constant for this material"}>>> = '.2880E-12 0 0   0 .2880E-12 0   0 0 .2880E-12'
  [../]

  [./porosity_layer_13]
    type = PorousFlowPorosity<<<{"description": "This Material calculates the porosity PorousFlow simulations", "href": "../source/materials/PorousFlowPorosity.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_13
    porosity_zero<<<{"description": "The porosity at zero volumetric strain and reference temperature and reference effective porepressure and reference chemistry.  This must be a real number or a constant monomial variable (not a linear lagrange or other type of variable)"}>>> = .285
    fluid<<<{"description": "If true, porosity will be a function of effective porepressure"}>>> = true
    biot_coefficient<<<{"description": "Biot coefficient"}>>> = 0.8
    reference_porepressure<<<{"description": "Reference porepressure (only used if fluid=true)"}>>> = ${pp_ini_bc}
    solid_bulk<<<{"description": "Bulk modulus of the drained porous solid skeleton (only used if fluid=true)"}>>> = 1.5E8
  [../]
  [./permeability_layer_13]
    type = PorousFlowPermeabilityConst<<<{"description": "This Material calculates the permeability tensor assuming it is constant", "href": "../source/materials/PorousFlowPermeabilityConst.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_13
    permeability<<<{"description": "The permeability tensor (usually in m^2), which is assumed constant for this material"}>>> = '.2130E-12 0 0   0 .2130E-12 0   0 0 .2040E-12'
  [../]

  [./porosity_layer_14]
    type = PorousFlowPorosity<<<{"description": "This Material calculates the porosity PorousFlow simulations", "href": "../source/materials/PorousFlowPorosity.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_14
    porosity_zero<<<{"description": "The porosity at zero volumetric strain and reference temperature and reference effective porepressure and reference chemistry.  This must be a real number or a constant monomial variable (not a linear lagrange or other type of variable)"}>>> = .155
    fluid<<<{"description": "If true, porosity will be a function of effective porepressure"}>>> = true
    biot_coefficient<<<{"description": "Biot coefficient"}>>> = 0.8
    reference_porepressure<<<{"description": "Reference porepressure (only used if fluid=true)"}>>> = ${pp_ini_bc}
    solid_bulk<<<{"description": "Bulk modulus of the drained porous solid skeleton (only used if fluid=true)"}>>> = 1.5E8
  [../]
  [./permeability_layer_14]
    type = PorousFlowPermeabilityConst<<<{"description": "This Material calculates the permeability tensor assuming it is constant", "href": "../source/materials/PorousFlowPermeabilityConst.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_14
    permeability<<<{"description": "The permeability tensor (usually in m^2), which is assumed constant for this material"}>>> = '.1080E-13 0 0   0 .1080E-13 0   0 0 .2190E-15'
  [../]

  [./porosity_layer_15]
    type = PorousFlowPorosity<<<{"description": "This Material calculates the porosity PorousFlow simulations", "href": "../source/materials/PorousFlowPorosity.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_15
    porosity_zero<<<{"description": "The porosity at zero volumetric strain and reference temperature and reference effective porepressure and reference chemistry.  This must be a real number or a constant monomial variable (not a linear lagrange or other type of variable)"}>>> = .299
    fluid<<<{"description": "If true, porosity will be a function of effective porepressure"}>>> = true
    biot_coefficient<<<{"description": "Biot coefficient"}>>> = 0.8
    reference_porepressure<<<{"description": "Reference porepressure (only used if fluid=true)"}>>> = ${pp_ini_bc}
    solid_bulk<<<{"description": "Bulk modulus of the drained porous solid skeleton (only used if fluid=true)"}>>> = 1.5E8
  [../]
  [./permeability_layer_15]
    type = PorousFlowPermeabilityConst<<<{"description": "This Material calculates the permeability tensor assuming it is constant", "href": "../source/materials/PorousFlowPermeabilityConst.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_15
    permeability<<<{"description": "The permeability tensor (usually in m^2), which is assumed constant for this material"}>>> = '.2660E-12 0 0   0 .2660E-12 0   0 0 .2330E-12'
  [../]

  [./porosity_layer_16]
    type = PorousFlowPorosity<<<{"description": "This Material calculates the porosity PorousFlow simulations", "href": "../source/materials/PorousFlowPorosity.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_16
    porosity_zero<<<{"description": "The porosity at zero volumetric strain and reference temperature and reference effective porepressure and reference chemistry.  This must be a real number or a constant monomial variable (not a linear lagrange or other type of variable)"}>>> = .334
    fluid<<<{"description": "If true, porosity will be a function of effective porepressure"}>>> = true
    biot_coefficient<<<{"description": "Biot coefficient"}>>> = 0.8
    reference_porepressure<<<{"description": "Reference porepressure (only used if fluid=true)"}>>> = ${pp_ini_bc}
    solid_bulk<<<{"description": "Bulk modulus of the drained porous solid skeleton (only used if fluid=true)"}>>> = 1.5E8
  [../]
  [./permeability_layer_16]
    type = PorousFlowPermeabilityConst<<<{"description": "This Material calculates the permeability tensor assuming it is constant", "href": "../source/materials/PorousFlowPermeabilityConst.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_16
    permeability<<<{"description": "The permeability tensor (usually in m^2), which is assumed constant for this material"}>>> = '.4230E-12 0 0   0 .4230E-12 0   0 0 .4110E-12'
  [../]

  [./porosity_layer_17]
    type = PorousFlowPorosity<<<{"description": "This Material calculates the porosity PorousFlow simulations", "href": "../source/materials/PorousFlowPorosity.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_17
    porosity_zero<<<{"description": "The porosity at zero volumetric strain and reference temperature and reference effective porepressure and reference chemistry.  This must be a real number or a constant monomial variable (not a linear lagrange or other type of variable)"}>>> = .32
    fluid<<<{"description": "If true, porosity will be a function of effective porepressure"}>>> = true
    biot_coefficient<<<{"description": "Biot coefficient"}>>> = 0.8
    reference_porepressure<<<{"description": "Reference porepressure (only used if fluid=true)"}>>> = ${pp_ini_bc}
    solid_bulk<<<{"description": "Bulk modulus of the drained porous solid skeleton (only used if fluid=true)"}>>> = 1.5E8
  [../]
  [./permeability_layer_17]
    type = PorousFlowPermeabilityConst<<<{"description": "This Material calculates the permeability tensor assuming it is constant", "href": "../source/materials/PorousFlowPermeabilityConst.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_17
    permeability<<<{"description": "The permeability tensor (usually in m^2), which is assumed constant for this material"}>>> = '.3560E-12 0 0   0 .3560E-12 0   0 0 .3300E-12'
  [../]

  [./porosity_layer_18]
    type = PorousFlowPorosity<<<{"description": "This Material calculates the porosity PorousFlow simulations", "href": "../source/materials/PorousFlowPorosity.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_18
    porosity_zero<<<{"description": "The porosity at zero volumetric strain and reference temperature and reference effective porepressure and reference chemistry.  This must be a real number or a constant monomial variable (not a linear lagrange or other type of variable)"}>>> = .294
    fluid<<<{"description": "If true, porosity will be a function of effective porepressure"}>>> = true
    biot_coefficient<<<{"description": "Biot coefficient"}>>> = 0.8
    reference_porepressure<<<{"description": "Reference porepressure (only used if fluid=true)"}>>> = ${pp_ini_bc}
    solid_bulk<<<{"description": "Bulk modulus of the drained porous solid skeleton (only used if fluid=true)"}>>> = 1.5E8
  [../]
  [./permeability_layer_18]
    type = PorousFlowPermeabilityConst<<<{"description": "This Material calculates the permeability tensor assuming it is constant", "href": "../source/materials/PorousFlowPermeabilityConst.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_18
    permeability<<<{"description": "The permeability tensor (usually in m^2), which is assumed constant for this material"}>>> = '.2420E-12 0 0   0 .2420E-12 0   0 0 .2360E-12'
  [../]

  [./porosity_layer_19]
    type = PorousFlowPorosity<<<{"description": "This Material calculates the porosity PorousFlow simulations", "href": "../source/materials/PorousFlowPorosity.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_19
    porosity_zero<<<{"description": "The porosity at zero volumetric strain and reference temperature and reference effective porepressure and reference chemistry.  This must be a real number or a constant monomial variable (not a linear lagrange or other type of variable)"}>>> = .279
    fluid<<<{"description": "If true, porosity will be a function of effective porepressure"}>>> = true
    biot_coefficient<<<{"description": "Biot coefficient"}>>> = 0.8
    reference_porepressure<<<{"description": "Reference porepressure (only used if fluid=true)"}>>> = ${pp_ini_bc}
    solid_bulk<<<{"description": "Bulk modulus of the drained porous solid skeleton (only used if fluid=true)"}>>> = 1.5E8
  [../]
  [./permeability_layer_19]
    type = PorousFlowPermeabilityConst<<<{"description": "This Material calculates the permeability tensor assuming it is constant", "href": "../source/materials/PorousFlowPermeabilityConst.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_19
    permeability<<<{"description": "The permeability tensor (usually in m^2), which is assumed constant for this material"}>>> = '.2050E-12 0 0   0 .2050E-12 0   0 0 .1310E-12'
  [../]

  [./porosity_layer_20]
    type = PorousFlowPorosity<<<{"description": "This Material calculates the porosity PorousFlow simulations", "href": "../source/materials/PorousFlowPorosity.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_20
    porosity_zero<<<{"description": "The porosity at zero volumetric strain and reference temperature and reference effective porepressure and reference chemistry.  This must be a real number or a constant monomial variable (not a linear lagrange or other type of variable)"}>>> = .071
    fluid<<<{"description": "If true, porosity will be a function of effective porepressure"}>>> = true
    biot_coefficient<<<{"description": "Biot coefficient"}>>> = 0.8
    reference_porepressure<<<{"description": "Reference porepressure (only used if fluid=true)"}>>> = ${pp_ini_bc}
    solid_bulk<<<{"description": "Bulk modulus of the drained porous solid skeleton (only used if fluid=true)"}>>> = 1.5E8
  [../]
  [./permeability_layer_20]
    type = PorousFlowPermeabilityConst<<<{"description": "This Material calculates the permeability tensor assuming it is constant", "href": "../source/materials/PorousFlowPermeabilityConst.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_20
    permeability<<<{"description": "The permeability tensor (usually in m^2), which is assumed constant for this material"}>>> = '.2700E-16 0 0   0 .2700E-16 0   0 0 .1000E-17 '
  [../]
[]
(examples/rtes_benchmark/Cranfield_HT_season_caps_water_oldboundary_coarse.i)

The green dash-dotted lines in Figure 2 show the predicted pore pressure and temperature evolution of 1 year cycle at the injection and extraction wells. As compared to the TOUGH prediction marked as black lines, the predicted pore pressure of FALCON simulation significantly exceeds the TOUGH prediction. A careful comparison between the two input files, we found that the FALCON simulatuion used a constant porosity and permeability, while the TOUGH simulation used a pore compressibility of 3 GPa^-1. The pore compressibility implentation in FALCON is different from TOUGH, the reader can refer the porosity theory for details. The updated material section is listed in the following, where a Biot coefficient of 0.8 and a bulk modulus of 150 MPa were used:

[Materials<<<{"href": "../syntax/Materials/index.html"}>>>]
  [./internal_energy_aquifer]
    type = PorousFlowMatrixInternalEnergy<<<{"description": "This Material calculates the internal energy of solid rock grains, which is specific_heat_capacity * density * temperature.  Kernels multiply this by (1 - porosity) to find the energy density of the porous rock in a rock-fluid system", "href": "../source/materials/PorousFlowMatrixInternalEnergy.html"}>>>
    specific_heat_capacity<<<{"description": "Specific heat capacity of the rock grains (J/kg/K)."}>>> = 920.0
    density<<<{"description": "Density of the rock grains"}>>> = 2600.0
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = 'caps layer_1 layer_2 layer_3 layer_4 layer_5 layer_6 layer_7 layer_8 layer_9 layer_10 layer_11 layer_12 layer_13 layer_14 layer_15 layer_16 layer_17 layer_18 layer_19 layer_20'
  [../]
  [./thermal_conductivity_aquifer]
    type = PorousFlowThermalConductivityIdeal<<<{"description": "This Material calculates rock-fluid combined thermal conductivity by using a weighted sum.  Thermal conductivity = dry_thermal_conductivity + S^exponent * (wet_thermal_conductivity - dry_thermal_conductivity), where S is the aqueous saturation", "href": "../source/materials/PorousFlowThermalConductivityIdeal.html"}>>>
    dry_thermal_conductivity<<<{"description": "The thermal conductivity of the rock matrix when the aqueous saturation is zero"}>>> = '2.51 0 0  0 2.51 0  0 0 2.51'
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = 'caps layer_1 layer_2 layer_3 layer_4 layer_5 layer_6 layer_7 layer_8 layer_9 layer_10 layer_11 layer_12 layer_13 layer_14 layer_15 layer_16 layer_17 layer_18 layer_19 layer_20'
  [../]

  [./porosity_caps]
    type = PorousFlowPorosityConst<<<{"description": "This Material calculates the porosity assuming it is constant", "href": "../source/materials/PorousFlowPorosityConst.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = caps
    porosity<<<{"description": "The porosity (assumed indepenent of porepressure, temperature, strain, etc, for this material).  This should be a real number, or a constant monomial variable (not a linear lagrange or other kind of variable)."}>>> = 0.01
  [../]
  [./permeability_caps]
    type = PorousFlowPermeabilityConst<<<{"description": "This Material calculates the permeability tensor assuming it is constant", "href": "../source/materials/PorousFlowPermeabilityConst.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = caps
    permeability<<<{"description": "The permeability tensor (usually in m^2), which is assumed constant for this material"}>>> = '1E-18 0 0   0 1E-18 0   0 0 1E-18'
  [../]

  [./porosity_layer_1]
    type = PorousFlowPorosity<<<{"description": "This Material calculates the porosity PorousFlow simulations", "href": "../source/materials/PorousFlowPorosity.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_1
    porosity_zero<<<{"description": "The porosity at zero volumetric strain and reference temperature and reference effective porepressure and reference chemistry.  This must be a real number or a constant monomial variable (not a linear lagrange or other type of variable)"}>>> = 0.143
    fluid<<<{"description": "If true, porosity will be a function of effective porepressure"}>>> = true
    biot_coefficient<<<{"description": "Biot coefficient"}>>> = 0.8
    reference_porepressure<<<{"description": "Reference porepressure (only used if fluid=true)"}>>> = ${pp_ini_bc}
    solid_bulk<<<{"description": "Bulk modulus of the drained porous solid skeleton (only used if fluid=true)"}>>> = 1.5E8
  [../]
  [./permeability_layer_1]
    type = PorousFlowPermeabilityConst<<<{"description": "This Material calculates the permeability tensor assuming it is constant", "href": "../source/materials/PorousFlowPermeabilityConst.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_1
    permeability<<<{"description": "The permeability tensor (usually in m^2), which is assumed constant for this material"}>>> = '.8130E-15 0 0   0 .8130E-15 0   0 0 .3160E-15'
  [../]

  [./porosity_layer_2]
    type = PorousFlowPorosity<<<{"description": "This Material calculates the porosity PorousFlow simulations", "href": "../source/materials/PorousFlowPorosity.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_2
    porosity_zero<<<{"description": "The porosity at zero volumetric strain and reference temperature and reference effective porepressure and reference chemistry.  This must be a real number or a constant monomial variable (not a linear lagrange or other type of variable)"}>>> = 0.158
    fluid<<<{"description": "If true, porosity will be a function of effective porepressure"}>>> = true
    biot_coefficient<<<{"description": "Biot coefficient"}>>> = 0.8
    reference_porepressure<<<{"description": "Reference porepressure (only used if fluid=true)"}>>> = ${pp_ini_bc}
    solid_bulk<<<{"description": "Bulk modulus of the drained porous solid skeleton (only used if fluid=true)"}>>> = 1.5E8
  [../]
  [./permeability_layer_2]
    type = PorousFlowPermeabilityConst<<<{"description": "This Material calculates the permeability tensor assuming it is constant", "href": "../source/materials/PorousFlowPermeabilityConst.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_2
    permeability<<<{"description": "The permeability tensor (usually in m^2), which is assumed constant for this material"}>>> = '.3460E-14 0 0   0 .3460E-14 0   0 0 .1350E-14'
  [../]

  [./porosity_layer_3]
    type = PorousFlowPorosity<<<{"description": "This Material calculates the porosity PorousFlow simulations", "href": "../source/materials/PorousFlowPorosity.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_3
    porosity_zero<<<{"description": "The porosity at zero volumetric strain and reference temperature and reference effective porepressure and reference chemistry.  This must be a real number or a constant monomial variable (not a linear lagrange or other type of variable)"}>>> = 0.176
    fluid<<<{"description": "If true, porosity will be a function of effective porepressure"}>>> = true
    biot_coefficient<<<{"description": "Biot coefficient"}>>> = 0.8
    reference_porepressure<<<{"description": "Reference porepressure (only used if fluid=true)"}>>> = ${pp_ini_bc}
    solid_bulk<<<{"description": "Bulk modulus of the drained porous solid skeleton (only used if fluid=true)"}>>> = 1.5E8
  [../]
  [./permeability_layer_3]
    type = PorousFlowPermeabilityConst<<<{"description": "This Material calculates the permeability tensor assuming it is constant", "href": "../source/materials/PorousFlowPermeabilityConst.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_3
    permeability<<<{"description": "The permeability tensor (usually in m^2), which is assumed constant for this material"}>>> = '.1120E-13 0 0   0 .1120E-13 0   0 0 .4390E-14'
  [../]

  [./porosity_layer_4]
    type = PorousFlowPorosity<<<{"description": "This Material calculates the porosity PorousFlow simulations", "href": "../source/materials/PorousFlowPorosity.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_4
    porosity_zero<<<{"description": "The porosity at zero volumetric strain and reference temperature and reference effective porepressure and reference chemistry.  This must be a real number or a constant monomial variable (not a linear lagrange or other type of variable)"}>>> = 0.188
    fluid<<<{"description": "If true, porosity will be a function of effective porepressure"}>>> = true
    biot_coefficient<<<{"description": "Biot coefficient"}>>> = 0.8
    reference_porepressure<<<{"description": "Reference porepressure (only used if fluid=true)"}>>> = ${pp_ini_bc}
    solid_bulk<<<{"description": "Bulk modulus of the drained porous solid skeleton (only used if fluid=true)"}>>> = 1.5E8
  [../]
  [./permeability_layer_4]
    type = PorousFlowPermeabilityConst<<<{"description": "This Material calculates the permeability tensor assuming it is constant", "href": "../source/materials/PorousFlowPermeabilityConst.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_4
    permeability<<<{"description": "The permeability tensor (usually in m^2), which is assumed constant for this material"}>>> = '.1920E-13 0 0   0 .1920E-13 0   0 0 .1400E-13'
  [../]

  [./porosity_layer_5]
    type = PorousFlowPorosity<<<{"description": "This Material calculates the porosity PorousFlow simulations", "href": "../source/materials/PorousFlowPorosity.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_5
    porosity_zero<<<{"description": "The porosity at zero volumetric strain and reference temperature and reference effective porepressure and reference chemistry.  This must be a real number or a constant monomial variable (not a linear lagrange or other type of variable)"}>>> = 0.166
    fluid<<<{"description": "If true, porosity will be a function of effective porepressure"}>>> = true
    biot_coefficient<<<{"description": "Biot coefficient"}>>> = 0.8
    reference_porepressure<<<{"description": "Reference porepressure (only used if fluid=true)"}>>> = ${pp_ini_bc}
    solid_bulk<<<{"description": "Bulk modulus of the drained porous solid skeleton (only used if fluid=true)"}>>> = 1.5E8
  [../]
  [./permeability_layer_5]
    type = PorousFlowPermeabilityConst<<<{"description": "This Material calculates the permeability tensor assuming it is constant", "href": "../source/materials/PorousFlowPermeabilityConst.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_5
    permeability<<<{"description": "The permeability tensor (usually in m^2), which is assumed constant for this material"}>>> = '.5500E-14 0 0   0 .5500E-14 0   0 0 .3900E-14'
  [../]

  [./porosity_layer_6]
    type = PorousFlowPorosity<<<{"description": "This Material calculates the porosity PorousFlow simulations", "href": "../source/materials/PorousFlowPorosity.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_6
    porosity_zero<<<{"description": "The porosity at zero volumetric strain and reference temperature and reference effective porepressure and reference chemistry.  This must be a real number or a constant monomial variable (not a linear lagrange or other type of variable)"}>>> = 0.185
    fluid<<<{"description": "If true, porosity will be a function of effective porepressure"}>>> = true
    biot_coefficient<<<{"description": "Biot coefficient"}>>> = 0.8
    reference_porepressure<<<{"description": "Reference porepressure (only used if fluid=true)"}>>> = ${pp_ini_bc}
    solid_bulk<<<{"description": "Bulk modulus of the drained porous solid skeleton (only used if fluid=true)"}>>> = 1.5E8
  [../]
  [./permeability_layer_6]
    type = PorousFlowPermeabilityConst<<<{"description": "This Material calculates the permeability tensor assuming it is constant", "href": "../source/materials/PorousFlowPermeabilityConst.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_6
    permeability<<<{"description": "The permeability tensor (usually in m^2), which is assumed constant for this material"}>>> = '.1770E-13 0 0   0 .1770E-13 0   0 0 .1190E-13'
  [../]

  [./porosity_layer_7]
    type = PorousFlowPorosity<<<{"description": "This Material calculates the porosity PorousFlow simulations", "href": "../source/materials/PorousFlowPorosity.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_7
    porosity_zero<<<{"description": "The porosity at zero volumetric strain and reference temperature and reference effective porepressure and reference chemistry.  This must be a real number or a constant monomial variable (not a linear lagrange or other type of variable)"}>>> = 0.24
    fluid<<<{"description": "If true, porosity will be a function of effective porepressure"}>>> = true
    biot_coefficient<<<{"description": "Biot coefficient"}>>> = 0.8
    reference_porepressure<<<{"description": "Reference porepressure (only used if fluid=true)"}>>> = ${pp_ini_bc}
    solid_bulk<<<{"description": "Bulk modulus of the drained porous solid skeleton (only used if fluid=true)"}>>> = 1.5E8
  [../]
  [./permeability_layer_7]
    type = PorousFlowPermeabilityConst<<<{"description": "This Material calculates the permeability tensor assuming it is constant", "href": "../source/materials/PorousFlowPermeabilityConst.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_7
    permeability<<<{"description": "The permeability tensor (usually in m^2), which is assumed constant for this material"}>>> = '.9110E-13 0 0   0 .9110E-13 0   0 0 .8870E-13'
  [../]

  [./porosity_layer_8]
    type = PorousFlowPorosity<<<{"description": "This Material calculates the porosity PorousFlow simulations", "href": "../source/materials/PorousFlowPorosity.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_8
    porosity_zero<<<{"description": "The porosity at zero volumetric strain and reference temperature and reference effective porepressure and reference chemistry.  This must be a real number or a constant monomial variable (not a linear lagrange or other type of variable)"}>>> = 0.26
    fluid<<<{"description": "If true, porosity will be a function of effective porepressure"}>>> = true
    biot_coefficient<<<{"description": "Biot coefficient"}>>> = 0.8
    reference_porepressure<<<{"description": "Reference porepressure (only used if fluid=true)"}>>> = ${pp_ini_bc}
    solid_bulk<<<{"description": "Bulk modulus of the drained porous solid skeleton (only used if fluid=true)"}>>> = 1.5E8
  [../]
  [./permeability_layer_8]
    type = PorousFlowPermeabilityConst<<<{"description": "This Material calculates the permeability tensor assuming it is constant", "href": "../source/materials/PorousFlowPermeabilityConst.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_8
    permeability<<<{"description": "The permeability tensor (usually in m^2), which is assumed constant for this material"}>>> = '.1390E-12 0 0   0 .1390E-12 0   0 0 .1290E-12'
  [../]

  [./porosity_layer_9]
    type = PorousFlowPorosity<<<{"description": "This Material calculates the porosity PorousFlow simulations", "href": "../source/materials/PorousFlowPorosity.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_9
    porosity_zero<<<{"description": "The porosity at zero volumetric strain and reference temperature and reference effective porepressure and reference chemistry.  This must be a real number or a constant monomial variable (not a linear lagrange or other type of variable)"}>>> = 0.285
    fluid<<<{"description": "If true, porosity will be a function of effective porepressure"}>>> = true
    biot_coefficient<<<{"description": "Biot coefficient"}>>> = 0.8
    reference_porepressure<<<{"description": "Reference porepressure (only used if fluid=true)"}>>> = ${pp_ini_bc}
    solid_bulk<<<{"description": "Bulk modulus of the drained porous solid skeleton (only used if fluid=true)"}>>> = 1.5E8
  [../]
  [./permeability_layer_9]
    type = PorousFlowPermeabilityConst<<<{"description": "This Material calculates the permeability tensor assuming it is constant", "href": "../source/materials/PorousFlowPermeabilityConst.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_9
    permeability<<<{"description": "The permeability tensor (usually in m^2), which is assumed constant for this material"}>>> = '.2120E-12 0 0   0 .2120E-12 0   0 0 .2000E-12'
  [../]

  [./porosity_layer_10]
    type = PorousFlowPorosity<<<{"description": "This Material calculates the porosity PorousFlow simulations", "href": "../source/materials/PorousFlowPorosity.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_10
    porosity_zero<<<{"description": "The porosity at zero volumetric strain and reference temperature and reference effective porepressure and reference chemistry.  This must be a real number or a constant monomial variable (not a linear lagrange or other type of variable)"}>>> = 0.27
    fluid<<<{"description": "If true, porosity will be a function of effective porepressure"}>>> = true
    biot_coefficient<<<{"description": "Biot coefficient"}>>> = 0.8
    reference_porepressure<<<{"description": "Reference porepressure (only used if fluid=true)"}>>> = ${pp_ini_bc}
    solid_bulk<<<{"description": "Bulk modulus of the drained porous solid skeleton (only used if fluid=true)"}>>> = 1.5E8
  [../]
  [./permeability_layer_10]
    type = PorousFlowPermeabilityConst<<<{"description": "This Material calculates the permeability tensor assuming it is constant", "href": "../source/materials/PorousFlowPermeabilityConst.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_10
    permeability<<<{"description": "The permeability tensor (usually in m^2), which is assumed constant for this material"}>>> = '.1630E-12 0 0   0 .1630E-12 0   0 0 .1580E-12'
  [../]

  [./porosity_layer_11]
    type = PorousFlowPorosity<<<{"description": "This Material calculates the porosity PorousFlow simulations", "href": "../source/materials/PorousFlowPorosity.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_11
    porosity_zero<<<{"description": "The porosity at zero volumetric strain and reference temperature and reference effective porepressure and reference chemistry.  This must be a real number or a constant monomial variable (not a linear lagrange or other type of variable)"}>>> = 0.23
  [../]
  [./permeability_layer_11]
    type = PorousFlowPermeabilityConst<<<{"description": "This Material calculates the permeability tensor assuming it is constant", "href": "../source/materials/PorousFlowPermeabilityConst.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_11
    permeability<<<{"description": "The permeability tensor (usually in m^2), which is assumed constant for this material"}>>> = '.7700E-13 0 0   0 .7700E-13 0   0 0 .5990E-13'
  [../]

  [./porosity_layer_12]
    type = PorousFlowPorosity<<<{"description": "This Material calculates the porosity PorousFlow simulations", "href": "../source/materials/PorousFlowPorosity.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_12
    porosity_zero<<<{"description": "The porosity at zero volumetric strain and reference temperature and reference effective porepressure and reference chemistry.  This must be a real number or a constant monomial variable (not a linear lagrange or other type of variable)"}>>> = 0.306
    fluid<<<{"description": "If true, porosity will be a function of effective porepressure"}>>> = true
    biot_coefficient<<<{"description": "Biot coefficient"}>>> = 0.8
    reference_porepressure<<<{"description": "Reference porepressure (only used if fluid=true)"}>>> = ${pp_ini_bc}
    solid_bulk<<<{"description": "Bulk modulus of the drained porous solid skeleton (only used if fluid=true)"}>>> = 1.5E8
  [../]
  [./permeability_layer_12]
    type = PorousFlowPermeabilityConst<<<{"description": "This Material calculates the permeability tensor assuming it is constant", "href": "../source/materials/PorousFlowPermeabilityConst.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_12
    permeability<<<{"description": "The permeability tensor (usually in m^2), which is assumed constant for this material"}>>> = '.2880E-12 0 0   0 .2880E-12 0   0 0 .2880E-12'
  [../]

  [./porosity_layer_13]
    type = PorousFlowPorosity<<<{"description": "This Material calculates the porosity PorousFlow simulations", "href": "../source/materials/PorousFlowPorosity.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_13
    porosity_zero<<<{"description": "The porosity at zero volumetric strain and reference temperature and reference effective porepressure and reference chemistry.  This must be a real number or a constant monomial variable (not a linear lagrange or other type of variable)"}>>> = .285
    fluid<<<{"description": "If true, porosity will be a function of effective porepressure"}>>> = true
    biot_coefficient<<<{"description": "Biot coefficient"}>>> = 0.8
    reference_porepressure<<<{"description": "Reference porepressure (only used if fluid=true)"}>>> = ${pp_ini_bc}
    solid_bulk<<<{"description": "Bulk modulus of the drained porous solid skeleton (only used if fluid=true)"}>>> = 1.5E8
  [../]
  [./permeability_layer_13]
    type = PorousFlowPermeabilityConst<<<{"description": "This Material calculates the permeability tensor assuming it is constant", "href": "../source/materials/PorousFlowPermeabilityConst.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_13
    permeability<<<{"description": "The permeability tensor (usually in m^2), which is assumed constant for this material"}>>> = '.2130E-12 0 0   0 .2130E-12 0   0 0 .2040E-12'
  [../]

  [./porosity_layer_14]
    type = PorousFlowPorosity<<<{"description": "This Material calculates the porosity PorousFlow simulations", "href": "../source/materials/PorousFlowPorosity.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_14
    porosity_zero<<<{"description": "The porosity at zero volumetric strain and reference temperature and reference effective porepressure and reference chemistry.  This must be a real number or a constant monomial variable (not a linear lagrange or other type of variable)"}>>> = .155
    fluid<<<{"description": "If true, porosity will be a function of effective porepressure"}>>> = true
    biot_coefficient<<<{"description": "Biot coefficient"}>>> = 0.8
    reference_porepressure<<<{"description": "Reference porepressure (only used if fluid=true)"}>>> = ${pp_ini_bc}
    solid_bulk<<<{"description": "Bulk modulus of the drained porous solid skeleton (only used if fluid=true)"}>>> = 1.5E8
  [../]
  [./permeability_layer_14]
    type = PorousFlowPermeabilityConst<<<{"description": "This Material calculates the permeability tensor assuming it is constant", "href": "../source/materials/PorousFlowPermeabilityConst.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_14
    permeability<<<{"description": "The permeability tensor (usually in m^2), which is assumed constant for this material"}>>> = '.1080E-13 0 0   0 .1080E-13 0   0 0 .2190E-15'
  [../]

  [./porosity_layer_15]
    type = PorousFlowPorosity<<<{"description": "This Material calculates the porosity PorousFlow simulations", "href": "../source/materials/PorousFlowPorosity.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_15
    porosity_zero<<<{"description": "The porosity at zero volumetric strain and reference temperature and reference effective porepressure and reference chemistry.  This must be a real number or a constant monomial variable (not a linear lagrange or other type of variable)"}>>> = .299
    fluid<<<{"description": "If true, porosity will be a function of effective porepressure"}>>> = true
    biot_coefficient<<<{"description": "Biot coefficient"}>>> = 0.8
    reference_porepressure<<<{"description": "Reference porepressure (only used if fluid=true)"}>>> = ${pp_ini_bc}
    solid_bulk<<<{"description": "Bulk modulus of the drained porous solid skeleton (only used if fluid=true)"}>>> = 1.5E8
  [../]
  [./permeability_layer_15]
    type = PorousFlowPermeabilityConst<<<{"description": "This Material calculates the permeability tensor assuming it is constant", "href": "../source/materials/PorousFlowPermeabilityConst.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_15
    permeability<<<{"description": "The permeability tensor (usually in m^2), which is assumed constant for this material"}>>> = '.2660E-12 0 0   0 .2660E-12 0   0 0 .2330E-12'
  [../]

  [./porosity_layer_16]
    type = PorousFlowPorosity<<<{"description": "This Material calculates the porosity PorousFlow simulations", "href": "../source/materials/PorousFlowPorosity.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_16
    porosity_zero<<<{"description": "The porosity at zero volumetric strain and reference temperature and reference effective porepressure and reference chemistry.  This must be a real number or a constant monomial variable (not a linear lagrange or other type of variable)"}>>> = .334
    fluid<<<{"description": "If true, porosity will be a function of effective porepressure"}>>> = true
    biot_coefficient<<<{"description": "Biot coefficient"}>>> = 0.8
    reference_porepressure<<<{"description": "Reference porepressure (only used if fluid=true)"}>>> = ${pp_ini_bc}
    solid_bulk<<<{"description": "Bulk modulus of the drained porous solid skeleton (only used if fluid=true)"}>>> = 1.5E8
  [../]
  [./permeability_layer_16]
    type = PorousFlowPermeabilityConst<<<{"description": "This Material calculates the permeability tensor assuming it is constant", "href": "../source/materials/PorousFlowPermeabilityConst.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_16
    permeability<<<{"description": "The permeability tensor (usually in m^2), which is assumed constant for this material"}>>> = '.4230E-12 0 0   0 .4230E-12 0   0 0 .4110E-12'
  [../]

  [./porosity_layer_17]
    type = PorousFlowPorosity<<<{"description": "This Material calculates the porosity PorousFlow simulations", "href": "../source/materials/PorousFlowPorosity.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_17
    porosity_zero<<<{"description": "The porosity at zero volumetric strain and reference temperature and reference effective porepressure and reference chemistry.  This must be a real number or a constant monomial variable (not a linear lagrange or other type of variable)"}>>> = .32
    fluid<<<{"description": "If true, porosity will be a function of effective porepressure"}>>> = true
    biot_coefficient<<<{"description": "Biot coefficient"}>>> = 0.8
    reference_porepressure<<<{"description": "Reference porepressure (only used if fluid=true)"}>>> = ${pp_ini_bc}
    solid_bulk<<<{"description": "Bulk modulus of the drained porous solid skeleton (only used if fluid=true)"}>>> = 1.5E8
  [../]
  [./permeability_layer_17]
    type = PorousFlowPermeabilityConst<<<{"description": "This Material calculates the permeability tensor assuming it is constant", "href": "../source/materials/PorousFlowPermeabilityConst.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_17
    permeability<<<{"description": "The permeability tensor (usually in m^2), which is assumed constant for this material"}>>> = '.3560E-12 0 0   0 .3560E-12 0   0 0 .3300E-12'
  [../]

  [./porosity_layer_18]
    type = PorousFlowPorosity<<<{"description": "This Material calculates the porosity PorousFlow simulations", "href": "../source/materials/PorousFlowPorosity.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_18
    porosity_zero<<<{"description": "The porosity at zero volumetric strain and reference temperature and reference effective porepressure and reference chemistry.  This must be a real number or a constant monomial variable (not a linear lagrange or other type of variable)"}>>> = .294
    fluid<<<{"description": "If true, porosity will be a function of effective porepressure"}>>> = true
    biot_coefficient<<<{"description": "Biot coefficient"}>>> = 0.8
    reference_porepressure<<<{"description": "Reference porepressure (only used if fluid=true)"}>>> = ${pp_ini_bc}
    solid_bulk<<<{"description": "Bulk modulus of the drained porous solid skeleton (only used if fluid=true)"}>>> = 1.5E8
  [../]
  [./permeability_layer_18]
    type = PorousFlowPermeabilityConst<<<{"description": "This Material calculates the permeability tensor assuming it is constant", "href": "../source/materials/PorousFlowPermeabilityConst.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_18
    permeability<<<{"description": "The permeability tensor (usually in m^2), which is assumed constant for this material"}>>> = '.2420E-12 0 0   0 .2420E-12 0   0 0 .2360E-12'
  [../]

  [./porosity_layer_19]
    type = PorousFlowPorosity<<<{"description": "This Material calculates the porosity PorousFlow simulations", "href": "../source/materials/PorousFlowPorosity.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_19
    porosity_zero<<<{"description": "The porosity at zero volumetric strain and reference temperature and reference effective porepressure and reference chemistry.  This must be a real number or a constant monomial variable (not a linear lagrange or other type of variable)"}>>> = .279
    fluid<<<{"description": "If true, porosity will be a function of effective porepressure"}>>> = true
    biot_coefficient<<<{"description": "Biot coefficient"}>>> = 0.8
    reference_porepressure<<<{"description": "Reference porepressure (only used if fluid=true)"}>>> = ${pp_ini_bc}
    solid_bulk<<<{"description": "Bulk modulus of the drained porous solid skeleton (only used if fluid=true)"}>>> = 1.5E8
  [../]
  [./permeability_layer_19]
    type = PorousFlowPermeabilityConst<<<{"description": "This Material calculates the permeability tensor assuming it is constant", "href": "../source/materials/PorousFlowPermeabilityConst.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_19
    permeability<<<{"description": "The permeability tensor (usually in m^2), which is assumed constant for this material"}>>> = '.2050E-12 0 0   0 .2050E-12 0   0 0 .1310E-12'
  [../]

  [./porosity_layer_20]
    type = PorousFlowPorosity<<<{"description": "This Material calculates the porosity PorousFlow simulations", "href": "../source/materials/PorousFlowPorosity.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_20
    porosity_zero<<<{"description": "The porosity at zero volumetric strain and reference temperature and reference effective porepressure and reference chemistry.  This must be a real number or a constant monomial variable (not a linear lagrange or other type of variable)"}>>> = .071
    fluid<<<{"description": "If true, porosity will be a function of effective porepressure"}>>> = true
    biot_coefficient<<<{"description": "Biot coefficient"}>>> = 0.8
    reference_porepressure<<<{"description": "Reference porepressure (only used if fluid=true)"}>>> = ${pp_ini_bc}
    solid_bulk<<<{"description": "Bulk modulus of the drained porous solid skeleton (only used if fluid=true)"}>>> = 1.5E8
  [../]
  [./permeability_layer_20]
    type = PorousFlowPermeabilityConst<<<{"description": "This Material calculates the permeability tensor assuming it is constant", "href": "../source/materials/PorousFlowPermeabilityConst.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_20
    permeability<<<{"description": "The permeability tensor (usually in m^2), which is assumed constant for this material"}>>> = '.2700E-16 0 0   0 .2700E-16 0   0 0 .1000E-17 '
  [../]
[]
(examples/rtes_benchmark/Cranfield_HT_season_caps_water_oldboundary_coarse.i)

The blue dotted lines show the FALCON prediction with updated input file. The pore pressure at both the injection and extraction wells match each other perfectly. However, the temperature prediction at the extraction well still has significant discrepancy during the storage season as shown in Figure 2. With a careful examination of the two input files, we found this is due to the boundary condition setup of the two wells. The TOUGH solver is based on FDM, and the two wells were realized by two columns of elements with extremly high permeability. While line sinks were used for the FALCON simulations. Following the same boundary treatment as the TOUGH model, two columns of elements were selcted as different blocks as compared to the formation. The material input for these two blocks are

[Materials<<<{"href": "../syntax/Materials/index.html"}>>>]
  [./internal_energy_aquifer]
    type = PorousFlowMatrixInternalEnergy<<<{"description": "This Material calculates the internal energy of solid rock grains, which is specific_heat_capacity * density * temperature.  Kernels multiply this by (1 - porosity) to find the energy density of the porous rock in a rock-fluid system", "href": "../source/materials/PorousFlowMatrixInternalEnergy.html"}>>>
    specific_heat_capacity<<<{"description": "Specific heat capacity of the rock grains (J/kg/K)."}>>> = 920.0
    density<<<{"description": "Density of the rock grains"}>>> = 2600.0
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = 'inj_well ext_well caps layer_1 layer_2 layer_3 layer_4 layer_5 layer_6 layer_7 layer_8 layer_9 layer_10 layer_11 layer_12 layer_13 layer_14 layer_15 layer_16 layer_17 layer_18 layer_19 layer_20'
  [../]
  [./thermal_conductivity_aquifer]
    type = PorousFlowThermalConductivityIdeal<<<{"description": "This Material calculates rock-fluid combined thermal conductivity by using a weighted sum.  Thermal conductivity = dry_thermal_conductivity + S^exponent * (wet_thermal_conductivity - dry_thermal_conductivity), where S is the aqueous saturation", "href": "../source/materials/PorousFlowThermalConductivityIdeal.html"}>>>
    dry_thermal_conductivity<<<{"description": "The thermal conductivity of the rock matrix when the aqueous saturation is zero"}>>> = '2.51 0 0  0 2.51 0  0 0 2.51'
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = 'inj_well ext_well caps layer_1 layer_2 layer_3 layer_4 layer_5 layer_6 layer_7 layer_8 layer_9 layer_10 layer_11 layer_12 layer_13 layer_14 layer_15 layer_16 layer_17 layer_18 layer_19 layer_20'
  [../]
  [./porosity_well]
    type = PorousFlowPorosityConst<<<{"description": "This Material calculates the porosity assuming it is constant", "href": "../source/materials/PorousFlowPorosityConst.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = 'inj_well ext_well'
    porosity<<<{"description": "The porosity (assumed indepenent of porepressure, temperature, strain, etc, for this material).  This should be a real number, or a constant monomial variable (not a linear lagrange or other kind of variable)."}>>> = 0.299
  [../]
  [./permeability_well]
    type = PorousFlowPermeabilityConst<<<{"description": "This Material calculates the permeability tensor assuming it is constant", "href": "../source/materials/PorousFlowPermeabilityConst.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = 'inj_well ext_well'
    permeability<<<{"description": "The permeability tensor (usually in m^2), which is assumed constant for this material"}>>> = '.2660E-12 0 0   0 .2660E-12 0   0 0 .2330E-09'
  [../]

  [./porosity_caps]
    type = PorousFlowPorosityConst<<<{"description": "This Material calculates the porosity assuming it is constant", "href": "../source/materials/PorousFlowPorosityConst.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = caps
    porosity<<<{"description": "The porosity (assumed indepenent of porepressure, temperature, strain, etc, for this material).  This should be a real number, or a constant monomial variable (not a linear lagrange or other kind of variable)."}>>> = 0.01
  [../]
  [./permeability_caps]
    type = PorousFlowPermeabilityConst<<<{"description": "This Material calculates the permeability tensor assuming it is constant", "href": "../source/materials/PorousFlowPermeabilityConst.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = caps
    permeability<<<{"description": "The permeability tensor (usually in m^2), which is assumed constant for this material"}>>> = '1E-18 0 0   0 1E-18 0   0 0 1E-18'
  [../]

  [./porosity_layer_1]
    type = PorousFlowPorosity<<<{"description": "This Material calculates the porosity PorousFlow simulations", "href": "../source/materials/PorousFlowPorosity.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_1
    porosity_zero<<<{"description": "The porosity at zero volumetric strain and reference temperature and reference effective porepressure and reference chemistry.  This must be a real number or a constant monomial variable (not a linear lagrange or other type of variable)"}>>> = 0.143
    fluid<<<{"description": "If true, porosity will be a function of effective porepressure"}>>> = true
    biot_coefficient<<<{"description": "Biot coefficient"}>>> = 0.8
    reference_porepressure<<<{"description": "Reference porepressure (only used if fluid=true)"}>>> = ${pp_ini_bc}
    solid_bulk<<<{"description": "Bulk modulus of the drained porous solid skeleton (only used if fluid=true)"}>>> = 1.5E8
  [../]
  [./permeability_layer_1]
    type = PorousFlowPermeabilityConst<<<{"description": "This Material calculates the permeability tensor assuming it is constant", "href": "../source/materials/PorousFlowPermeabilityConst.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_1
    permeability<<<{"description": "The permeability tensor (usually in m^2), which is assumed constant for this material"}>>> = '.8130E-15 0 0   0 .8130E-15 0   0 0 .3160E-15'
  [../]

  [./porosity_layer_2]
    type = PorousFlowPorosity<<<{"description": "This Material calculates the porosity PorousFlow simulations", "href": "../source/materials/PorousFlowPorosity.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_2
    porosity_zero<<<{"description": "The porosity at zero volumetric strain and reference temperature and reference effective porepressure and reference chemistry.  This must be a real number or a constant monomial variable (not a linear lagrange or other type of variable)"}>>> = 0.158
    fluid<<<{"description": "If true, porosity will be a function of effective porepressure"}>>> = true
    biot_coefficient<<<{"description": "Biot coefficient"}>>> = 0.8
    reference_porepressure<<<{"description": "Reference porepressure (only used if fluid=true)"}>>> = ${pp_ini_bc}
    solid_bulk<<<{"description": "Bulk modulus of the drained porous solid skeleton (only used if fluid=true)"}>>> = 1.5E8
  [../]
  [./permeability_layer_2]
    type = PorousFlowPermeabilityConst<<<{"description": "This Material calculates the permeability tensor assuming it is constant", "href": "../source/materials/PorousFlowPermeabilityConst.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_2
    permeability<<<{"description": "The permeability tensor (usually in m^2), which is assumed constant for this material"}>>> = '.3460E-14 0 0   0 .3460E-14 0   0 0 .1350E-14'
  [../]

  [./porosity_layer_3]
    type = PorousFlowPorosity<<<{"description": "This Material calculates the porosity PorousFlow simulations", "href": "../source/materials/PorousFlowPorosity.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_3
    porosity_zero<<<{"description": "The porosity at zero volumetric strain and reference temperature and reference effective porepressure and reference chemistry.  This must be a real number or a constant monomial variable (not a linear lagrange or other type of variable)"}>>> = 0.176
    fluid<<<{"description": "If true, porosity will be a function of effective porepressure"}>>> = true
    biot_coefficient<<<{"description": "Biot coefficient"}>>> = 0.8
    reference_porepressure<<<{"description": "Reference porepressure (only used if fluid=true)"}>>> = ${pp_ini_bc}
    solid_bulk<<<{"description": "Bulk modulus of the drained porous solid skeleton (only used if fluid=true)"}>>> = 1.5E8
  [../]
  [./permeability_layer_3]
    type = PorousFlowPermeabilityConst<<<{"description": "This Material calculates the permeability tensor assuming it is constant", "href": "../source/materials/PorousFlowPermeabilityConst.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_3
    permeability<<<{"description": "The permeability tensor (usually in m^2), which is assumed constant for this material"}>>> = '.1120E-13 0 0   0 .1120E-13 0   0 0 .4390E-14'
  [../]

  [./porosity_layer_4]
    type = PorousFlowPorosity<<<{"description": "This Material calculates the porosity PorousFlow simulations", "href": "../source/materials/PorousFlowPorosity.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_4
    porosity_zero<<<{"description": "The porosity at zero volumetric strain and reference temperature and reference effective porepressure and reference chemistry.  This must be a real number or a constant monomial variable (not a linear lagrange or other type of variable)"}>>> = 0.188
    fluid<<<{"description": "If true, porosity will be a function of effective porepressure"}>>> = true
    biot_coefficient<<<{"description": "Biot coefficient"}>>> = 0.8
    reference_porepressure<<<{"description": "Reference porepressure (only used if fluid=true)"}>>> = ${pp_ini_bc}
    solid_bulk<<<{"description": "Bulk modulus of the drained porous solid skeleton (only used if fluid=true)"}>>> = 1.5E8
  [../]
  [./permeability_layer_4]
    type = PorousFlowPermeabilityConst<<<{"description": "This Material calculates the permeability tensor assuming it is constant", "href": "../source/materials/PorousFlowPermeabilityConst.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_4
    permeability<<<{"description": "The permeability tensor (usually in m^2), which is assumed constant for this material"}>>> = '.1920E-13 0 0   0 .1920E-13 0   0 0 .1400E-13'
  [../]

  [./porosity_layer_5]
    type = PorousFlowPorosity<<<{"description": "This Material calculates the porosity PorousFlow simulations", "href": "../source/materials/PorousFlowPorosity.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_5
    porosity_zero<<<{"description": "The porosity at zero volumetric strain and reference temperature and reference effective porepressure and reference chemistry.  This must be a real number or a constant monomial variable (not a linear lagrange or other type of variable)"}>>> = 0.166
    fluid<<<{"description": "If true, porosity will be a function of effective porepressure"}>>> = true
    biot_coefficient<<<{"description": "Biot coefficient"}>>> = 0.8
    reference_porepressure<<<{"description": "Reference porepressure (only used if fluid=true)"}>>> = ${pp_ini_bc}
    solid_bulk<<<{"description": "Bulk modulus of the drained porous solid skeleton (only used if fluid=true)"}>>> = 1.5E8
  [../]
  [./permeability_layer_5]
    type = PorousFlowPermeabilityConst<<<{"description": "This Material calculates the permeability tensor assuming it is constant", "href": "../source/materials/PorousFlowPermeabilityConst.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_5
    permeability<<<{"description": "The permeability tensor (usually in m^2), which is assumed constant for this material"}>>> = '.5500E-14 0 0   0 .5500E-14 0   0 0 .3900E-14'
  [../]

  [./porosity_layer_6]
    type = PorousFlowPorosity<<<{"description": "This Material calculates the porosity PorousFlow simulations", "href": "../source/materials/PorousFlowPorosity.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_6
    porosity_zero<<<{"description": "The porosity at zero volumetric strain and reference temperature and reference effective porepressure and reference chemistry.  This must be a real number or a constant monomial variable (not a linear lagrange or other type of variable)"}>>> = 0.185
    fluid<<<{"description": "If true, porosity will be a function of effective porepressure"}>>> = true
    biot_coefficient<<<{"description": "Biot coefficient"}>>> = 0.8
    reference_porepressure<<<{"description": "Reference porepressure (only used if fluid=true)"}>>> = ${pp_ini_bc}
    solid_bulk<<<{"description": "Bulk modulus of the drained porous solid skeleton (only used if fluid=true)"}>>> = 1.5E8
  [../]
  [./permeability_layer_6]
    type = PorousFlowPermeabilityConst<<<{"description": "This Material calculates the permeability tensor assuming it is constant", "href": "../source/materials/PorousFlowPermeabilityConst.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_6
    permeability<<<{"description": "The permeability tensor (usually in m^2), which is assumed constant for this material"}>>> = '.1770E-13 0 0   0 .1770E-13 0   0 0 .1190E-13'
  [../]

  [./porosity_layer_7]
    type = PorousFlowPorosity<<<{"description": "This Material calculates the porosity PorousFlow simulations", "href": "../source/materials/PorousFlowPorosity.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_7
    porosity_zero<<<{"description": "The porosity at zero volumetric strain and reference temperature and reference effective porepressure and reference chemistry.  This must be a real number or a constant monomial variable (not a linear lagrange or other type of variable)"}>>> = 0.24
    fluid<<<{"description": "If true, porosity will be a function of effective porepressure"}>>> = true
    biot_coefficient<<<{"description": "Biot coefficient"}>>> = 0.8
    reference_porepressure<<<{"description": "Reference porepressure (only used if fluid=true)"}>>> = ${pp_ini_bc}
    solid_bulk<<<{"description": "Bulk modulus of the drained porous solid skeleton (only used if fluid=true)"}>>> = 1.5E8
  [../]
  [./permeability_layer_7]
    type = PorousFlowPermeabilityConst<<<{"description": "This Material calculates the permeability tensor assuming it is constant", "href": "../source/materials/PorousFlowPermeabilityConst.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_7
    permeability<<<{"description": "The permeability tensor (usually in m^2), which is assumed constant for this material"}>>> = '.9110E-13 0 0   0 .9110E-13 0   0 0 .8870E-13'
  [../]

  [./porosity_layer_8]
    type = PorousFlowPorosity<<<{"description": "This Material calculates the porosity PorousFlow simulations", "href": "../source/materials/PorousFlowPorosity.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_8
    porosity_zero<<<{"description": "The porosity at zero volumetric strain and reference temperature and reference effective porepressure and reference chemistry.  This must be a real number or a constant monomial variable (not a linear lagrange or other type of variable)"}>>> = 0.26
    fluid<<<{"description": "If true, porosity will be a function of effective porepressure"}>>> = true
    biot_coefficient<<<{"description": "Biot coefficient"}>>> = 0.8
    reference_porepressure<<<{"description": "Reference porepressure (only used if fluid=true)"}>>> = ${pp_ini_bc}
    solid_bulk<<<{"description": "Bulk modulus of the drained porous solid skeleton (only used if fluid=true)"}>>> = 1.5E8
  [../]
  [./permeability_layer_8]
    type = PorousFlowPermeabilityConst<<<{"description": "This Material calculates the permeability tensor assuming it is constant", "href": "../source/materials/PorousFlowPermeabilityConst.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_8
    permeability<<<{"description": "The permeability tensor (usually in m^2), which is assumed constant for this material"}>>> = '.1390E-12 0 0   0 .1390E-12 0   0 0 .1290E-12'
  [../]

  [./porosity_layer_9]
    type = PorousFlowPorosity<<<{"description": "This Material calculates the porosity PorousFlow simulations", "href": "../source/materials/PorousFlowPorosity.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_9
    porosity_zero<<<{"description": "The porosity at zero volumetric strain and reference temperature and reference effective porepressure and reference chemistry.  This must be a real number or a constant monomial variable (not a linear lagrange or other type of variable)"}>>> = 0.285
    fluid<<<{"description": "If true, porosity will be a function of effective porepressure"}>>> = true
    biot_coefficient<<<{"description": "Biot coefficient"}>>> = 0.8
    reference_porepressure<<<{"description": "Reference porepressure (only used if fluid=true)"}>>> = ${pp_ini_bc}
    solid_bulk<<<{"description": "Bulk modulus of the drained porous solid skeleton (only used if fluid=true)"}>>> = 1.5E8
  [../]
  [./permeability_layer_9]
    type = PorousFlowPermeabilityConst<<<{"description": "This Material calculates the permeability tensor assuming it is constant", "href": "../source/materials/PorousFlowPermeabilityConst.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_9
    permeability<<<{"description": "The permeability tensor (usually in m^2), which is assumed constant for this material"}>>> = '.2120E-12 0 0   0 .2120E-12 0   0 0 .2000E-12'
  [../]

  [./porosity_layer_10]
    type = PorousFlowPorosity<<<{"description": "This Material calculates the porosity PorousFlow simulations", "href": "../source/materials/PorousFlowPorosity.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_10
    porosity_zero<<<{"description": "The porosity at zero volumetric strain and reference temperature and reference effective porepressure and reference chemistry.  This must be a real number or a constant monomial variable (not a linear lagrange or other type of variable)"}>>> = 0.27
    fluid<<<{"description": "If true, porosity will be a function of effective porepressure"}>>> = true
    biot_coefficient<<<{"description": "Biot coefficient"}>>> = 0.8
    reference_porepressure<<<{"description": "Reference porepressure (only used if fluid=true)"}>>> = ${pp_ini_bc}
    solid_bulk<<<{"description": "Bulk modulus of the drained porous solid skeleton (only used if fluid=true)"}>>> = 1.5E8
  [../]
  [./permeability_layer_10]
    type = PorousFlowPermeabilityConst<<<{"description": "This Material calculates the permeability tensor assuming it is constant", "href": "../source/materials/PorousFlowPermeabilityConst.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_10
    permeability<<<{"description": "The permeability tensor (usually in m^2), which is assumed constant for this material"}>>> = '.1630E-12 0 0   0 .1630E-12 0   0 0 .1580E-12'
  [../]

  [./porosity_layer_11]
    type = PorousFlowPorosity<<<{"description": "This Material calculates the porosity PorousFlow simulations", "href": "../source/materials/PorousFlowPorosity.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_11
    porosity_zero<<<{"description": "The porosity at zero volumetric strain and reference temperature and reference effective porepressure and reference chemistry.  This must be a real number or a constant monomial variable (not a linear lagrange or other type of variable)"}>>> = 0.23
  [../]
  [./permeability_layer_11]
    type = PorousFlowPermeabilityConst<<<{"description": "This Material calculates the permeability tensor assuming it is constant", "href": "../source/materials/PorousFlowPermeabilityConst.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_11
    permeability<<<{"description": "The permeability tensor (usually in m^2), which is assumed constant for this material"}>>> = '.7700E-13 0 0   0 .7700E-13 0   0 0 .5990E-13'
  [../]

  [./porosity_layer_12]
    type = PorousFlowPorosity<<<{"description": "This Material calculates the porosity PorousFlow simulations", "href": "../source/materials/PorousFlowPorosity.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_12
    porosity_zero<<<{"description": "The porosity at zero volumetric strain and reference temperature and reference effective porepressure and reference chemistry.  This must be a real number or a constant monomial variable (not a linear lagrange or other type of variable)"}>>> = 0.306
    fluid<<<{"description": "If true, porosity will be a function of effective porepressure"}>>> = true
    biot_coefficient<<<{"description": "Biot coefficient"}>>> = 0.8
    reference_porepressure<<<{"description": "Reference porepressure (only used if fluid=true)"}>>> = ${pp_ini_bc}
    solid_bulk<<<{"description": "Bulk modulus of the drained porous solid skeleton (only used if fluid=true)"}>>> = 1.5E8
  [../]
  [./permeability_layer_12]
    type = PorousFlowPermeabilityConst<<<{"description": "This Material calculates the permeability tensor assuming it is constant", "href": "../source/materials/PorousFlowPermeabilityConst.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_12
    permeability<<<{"description": "The permeability tensor (usually in m^2), which is assumed constant for this material"}>>> = '.2880E-12 0 0   0 .2880E-12 0   0 0 .2880E-12'
  [../]

  [./porosity_layer_13]
    type = PorousFlowPorosity<<<{"description": "This Material calculates the porosity PorousFlow simulations", "href": "../source/materials/PorousFlowPorosity.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_13
    porosity_zero<<<{"description": "The porosity at zero volumetric strain and reference temperature and reference effective porepressure and reference chemistry.  This must be a real number or a constant monomial variable (not a linear lagrange or other type of variable)"}>>> = .285
    fluid<<<{"description": "If true, porosity will be a function of effective porepressure"}>>> = true
    biot_coefficient<<<{"description": "Biot coefficient"}>>> = 0.8
    reference_porepressure<<<{"description": "Reference porepressure (only used if fluid=true)"}>>> = ${pp_ini_bc}
    solid_bulk<<<{"description": "Bulk modulus of the drained porous solid skeleton (only used if fluid=true)"}>>> = 1.5E8
  [../]
  [./permeability_layer_13]
    type = PorousFlowPermeabilityConst<<<{"description": "This Material calculates the permeability tensor assuming it is constant", "href": "../source/materials/PorousFlowPermeabilityConst.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_13
    permeability<<<{"description": "The permeability tensor (usually in m^2), which is assumed constant for this material"}>>> = '.2130E-12 0 0   0 .2130E-12 0   0 0 .2040E-12'
  [../]

  [./porosity_layer_14]
    type = PorousFlowPorosity<<<{"description": "This Material calculates the porosity PorousFlow simulations", "href": "../source/materials/PorousFlowPorosity.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_14
    porosity_zero<<<{"description": "The porosity at zero volumetric strain and reference temperature and reference effective porepressure and reference chemistry.  This must be a real number or a constant monomial variable (not a linear lagrange or other type of variable)"}>>> = .155
    fluid<<<{"description": "If true, porosity will be a function of effective porepressure"}>>> = true
    biot_coefficient<<<{"description": "Biot coefficient"}>>> = 0.8
    reference_porepressure<<<{"description": "Reference porepressure (only used if fluid=true)"}>>> = ${pp_ini_bc}
    solid_bulk<<<{"description": "Bulk modulus of the drained porous solid skeleton (only used if fluid=true)"}>>> = 1.5E8
  [../]
  [./permeability_layer_14]
    type = PorousFlowPermeabilityConst<<<{"description": "This Material calculates the permeability tensor assuming it is constant", "href": "../source/materials/PorousFlowPermeabilityConst.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_14
    permeability<<<{"description": "The permeability tensor (usually in m^2), which is assumed constant for this material"}>>> = '.1080E-13 0 0   0 .1080E-13 0   0 0 .2190E-15'
  [../]

  [./porosity_layer_15]
    type = PorousFlowPorosity<<<{"description": "This Material calculates the porosity PorousFlow simulations", "href": "../source/materials/PorousFlowPorosity.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_15
    porosity_zero<<<{"description": "The porosity at zero volumetric strain and reference temperature and reference effective porepressure and reference chemistry.  This must be a real number or a constant monomial variable (not a linear lagrange or other type of variable)"}>>> = .299
    fluid<<<{"description": "If true, porosity will be a function of effective porepressure"}>>> = true
    biot_coefficient<<<{"description": "Biot coefficient"}>>> = 0.8
    reference_porepressure<<<{"description": "Reference porepressure (only used if fluid=true)"}>>> = ${pp_ini_bc}
    solid_bulk<<<{"description": "Bulk modulus of the drained porous solid skeleton (only used if fluid=true)"}>>> = 1.5E8
  [../]
  [./permeability_layer_15]
    type = PorousFlowPermeabilityConst<<<{"description": "This Material calculates the permeability tensor assuming it is constant", "href": "../source/materials/PorousFlowPermeabilityConst.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_15
    permeability<<<{"description": "The permeability tensor (usually in m^2), which is assumed constant for this material"}>>> = '.2660E-12 0 0   0 .2660E-12 0   0 0 .2330E-12'
  [../]

  [./porosity_layer_16]
    type = PorousFlowPorosity<<<{"description": "This Material calculates the porosity PorousFlow simulations", "href": "../source/materials/PorousFlowPorosity.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_16
    porosity_zero<<<{"description": "The porosity at zero volumetric strain and reference temperature and reference effective porepressure and reference chemistry.  This must be a real number or a constant monomial variable (not a linear lagrange or other type of variable)"}>>> = .334
    fluid<<<{"description": "If true, porosity will be a function of effective porepressure"}>>> = true
    biot_coefficient<<<{"description": "Biot coefficient"}>>> = 0.8
    reference_porepressure<<<{"description": "Reference porepressure (only used if fluid=true)"}>>> = ${pp_ini_bc}
    solid_bulk<<<{"description": "Bulk modulus of the drained porous solid skeleton (only used if fluid=true)"}>>> = 1.5E8
  [../]
  [./permeability_layer_16]
    type = PorousFlowPermeabilityConst<<<{"description": "This Material calculates the permeability tensor assuming it is constant", "href": "../source/materials/PorousFlowPermeabilityConst.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_16
    permeability<<<{"description": "The permeability tensor (usually in m^2), which is assumed constant for this material"}>>> = '.4230E-12 0 0   0 .4230E-12 0   0 0 .4110E-12'
  [../]

  [./porosity_layer_17]
    type = PorousFlowPorosity<<<{"description": "This Material calculates the porosity PorousFlow simulations", "href": "../source/materials/PorousFlowPorosity.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_17
    porosity_zero<<<{"description": "The porosity at zero volumetric strain and reference temperature and reference effective porepressure and reference chemistry.  This must be a real number or a constant monomial variable (not a linear lagrange or other type of variable)"}>>> = .32
    fluid<<<{"description": "If true, porosity will be a function of effective porepressure"}>>> = true
    biot_coefficient<<<{"description": "Biot coefficient"}>>> = 0.8
    reference_porepressure<<<{"description": "Reference porepressure (only used if fluid=true)"}>>> = ${pp_ini_bc}
    solid_bulk<<<{"description": "Bulk modulus of the drained porous solid skeleton (only used if fluid=true)"}>>> = 1.5E8
  [../]
  [./permeability_layer_17]
    type = PorousFlowPermeabilityConst<<<{"description": "This Material calculates the permeability tensor assuming it is constant", "href": "../source/materials/PorousFlowPermeabilityConst.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_17
    permeability<<<{"description": "The permeability tensor (usually in m^2), which is assumed constant for this material"}>>> = '.3560E-12 0 0   0 .3560E-12 0   0 0 .3300E-12'
  [../]

  [./porosity_layer_18]
    type = PorousFlowPorosity<<<{"description": "This Material calculates the porosity PorousFlow simulations", "href": "../source/materials/PorousFlowPorosity.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_18
    porosity_zero<<<{"description": "The porosity at zero volumetric strain and reference temperature and reference effective porepressure and reference chemistry.  This must be a real number or a constant monomial variable (not a linear lagrange or other type of variable)"}>>> = .294
    fluid<<<{"description": "If true, porosity will be a function of effective porepressure"}>>> = true
    biot_coefficient<<<{"description": "Biot coefficient"}>>> = 0.8
    reference_porepressure<<<{"description": "Reference porepressure (only used if fluid=true)"}>>> = ${pp_ini_bc}
    solid_bulk<<<{"description": "Bulk modulus of the drained porous solid skeleton (only used if fluid=true)"}>>> = 1.5E8
  [../]
  [./permeability_layer_18]
    type = PorousFlowPermeabilityConst<<<{"description": "This Material calculates the permeability tensor assuming it is constant", "href": "../source/materials/PorousFlowPermeabilityConst.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_18
    permeability<<<{"description": "The permeability tensor (usually in m^2), which is assumed constant for this material"}>>> = '.2420E-12 0 0   0 .2420E-12 0   0 0 .2360E-12'
  [../]

  [./porosity_layer_19]
    type = PorousFlowPorosity<<<{"description": "This Material calculates the porosity PorousFlow simulations", "href": "../source/materials/PorousFlowPorosity.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_19
    porosity_zero<<<{"description": "The porosity at zero volumetric strain and reference temperature and reference effective porepressure and reference chemistry.  This must be a real number or a constant monomial variable (not a linear lagrange or other type of variable)"}>>> = .279
    fluid<<<{"description": "If true, porosity will be a function of effective porepressure"}>>> = true
    biot_coefficient<<<{"description": "Biot coefficient"}>>> = 0.8
    reference_porepressure<<<{"description": "Reference porepressure (only used if fluid=true)"}>>> = ${pp_ini_bc}
    solid_bulk<<<{"description": "Bulk modulus of the drained porous solid skeleton (only used if fluid=true)"}>>> = 1.5E8
  [../]
  [./permeability_layer_19]
    type = PorousFlowPermeabilityConst<<<{"description": "This Material calculates the permeability tensor assuming it is constant", "href": "../source/materials/PorousFlowPermeabilityConst.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_19
    permeability<<<{"description": "The permeability tensor (usually in m^2), which is assumed constant for this material"}>>> = '.2050E-12 0 0   0 .2050E-12 0   0 0 .1310E-12'
  [../]

  [./porosity_layer_20]
    type = PorousFlowPorosity<<<{"description": "This Material calculates the porosity PorousFlow simulations", "href": "../source/materials/PorousFlowPorosity.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_20
    porosity_zero<<<{"description": "The porosity at zero volumetric strain and reference temperature and reference effective porepressure and reference chemistry.  This must be a real number or a constant monomial variable (not a linear lagrange or other type of variable)"}>>> = .071
    fluid<<<{"description": "If true, porosity will be a function of effective porepressure"}>>> = true
    biot_coefficient<<<{"description": "Biot coefficient"}>>> = 0.8
    reference_porepressure<<<{"description": "Reference porepressure (only used if fluid=true)"}>>> = ${pp_ini_bc}
    solid_bulk<<<{"description": "Bulk modulus of the drained porous solid skeleton (only used if fluid=true)"}>>> = 1.5E8
  [../]
  [./permeability_layer_20]
    type = PorousFlowPermeabilityConst<<<{"description": "This Material calculates the permeability tensor assuming it is constant", "href": "../source/materials/PorousFlowPermeabilityConst.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = layer_20
    permeability<<<{"description": "The permeability tensor (usually in m^2), which is assumed constant for this material"}>>> = '.2700E-16 0 0   0 .2700E-16 0   0 0 .1000E-17 '
  [../]
[]
(examples/rtes_benchmark/Cranfield_HT_season_caps_water_newboundary_coarse.i)

The injection and extraction points were only located at the top of those two columns, they were realized by using DiracKernels. See the following input file section for detail:

[DiracKernels<<<{"href": "../syntax/DiracKernels/index.html"}>>>]
  [./summer_injection_P]
    type = PorousFlowPolyLineSink<<<{"description": "Approximates a polyline sink by using a number of point sinks with given weighting whose positions are read from a file.  NOTE: if you are using PorousFlowPorosity that depends on volumetric strain, you should set strain_at_nearest_qp=true in your GlobalParams, to ensure the nodal Porosity Material uses the volumetric strain at the Dirac quadpoints, and can therefore be computed", "href": "../source/dirackernels/PorousFlowPolyLineSink.html"}>>>
    fluid_phase<<<{"description": "The fluid phase whose pressure (and potentially mobility, enthalpy, etc) controls the flux to the line sink.  For p_or_t=temperature, and without any use_*, this parameter is irrelevant"}>>> = 0
    variable<<<{"description": "The name of the variable that this residual object operates on"}>>> = porepressure
    SumQuantityUO<<<{"description": "User Object of type=PorousFlowSumQuantity in which to place the total outflow from the line sink for each time step."}>>> = fluid_mass_in_inc
    line_base<<<{"description": "Line base point x,y,z coordinates.  This is the same format as a single-line point_file. Note this is only used if there is no point file specified."}>>> = '1 -9.99 -9.99 3.6'
    line_length<<<{"description": "Line length.  Note this is only used if there is only one point in the point_file."}>>> = ${well_length}
    line_direction<<<{"description": "Line direction.  Note this is only used if there is only one point in the point_file."}>>> = '0 0 1'
    use_mobility<<<{"description": "Multiply the flux by the fluid mobility"}>>> = false
    p_or_t_vals<<<{"description": "Tuple of pressure (or temperature) values.  Must be monotonically increasing."}>>> = '-1e9 1e9'
    fluxes<<<{"description": "Tuple of flux values (measured in kg.m^-1.s^-1 if no 'use_*' are employed).  These flux values are multiplied by the line-segment length to achieve a flux in kg.s^-1.  A piecewise-linear fit is performed to the (p_or_t_vals,flux) pairs to obtain the flux at any arbitrary pressure (or temperature).  If a quad-point pressure is less than the first pressure value, the first flux value is used.  If quad-point pressure exceeds the final pressure value, the final flux value is used.  This flux is OUT of the medium: hence positive values of flux means this will be a SINK, while negative values indicate this flux will be a SOURCE."}>>> = '-${inj_ext_flux} -${inj_ext_flux}'
  [../]
  [./summer_injection_T]
    type = EnthalpySink
    fluid_phase = 0
    variable = temperature
    SumQuantityUO = heat_enthalpy_in_inc
    line_base = '1 -9.99 -9.99 3.6'
    line_length = ${well_length}
    line_direction = '0 0 1'
    pressure = porepressure
    T_in = 453.15
    fp = tabulated_water
    p_or_t_vals = '-1e9 1e9'
    fluxes = '-${inj_ext_flux} -${inj_ext_flux}'
  [../]
  [./summer_production_P]
    type = PorousFlowPolyLineSink<<<{"description": "Approximates a polyline sink by using a number of point sinks with given weighting whose positions are read from a file.  NOTE: if you are using PorousFlowPorosity that depends on volumetric strain, you should set strain_at_nearest_qp=true in your GlobalParams, to ensure the nodal Porosity Material uses the volumetric strain at the Dirac quadpoints, and can therefore be computed", "href": "../source/dirackernels/PorousFlowPolyLineSink.html"}>>>
    fluid_phase<<<{"description": "The fluid phase whose pressure (and potentially mobility, enthalpy, etc) controls the flux to the line sink.  For p_or_t=temperature, and without any use_*, this parameter is irrelevant"}>>> = 0
    variable<<<{"description": "The name of the variable that this residual object operates on"}>>> = porepressure
    SumQuantityUO<<<{"description": "User Object of type=PorousFlowSumQuantity in which to place the total outflow from the line sink for each time step."}>>> = fluid_mass_out_inc
    line_base<<<{"description": "Line base point x,y,z coordinates.  This is the same format as a single-line point_file. Note this is only used if there is no point file specified."}>>> = '1 9.99 9.99 3.6'
    line_length<<<{"description": "Line length.  Note this is only used if there is only one point in the point_file."}>>> = ${well_length}
    line_direction<<<{"description": "Line direction.  Note this is only used if there is only one point in the point_file."}>>> = '0 0 1'
    use_mobility<<<{"description": "Multiply the flux by the fluid mobility"}>>> = false
    p_or_t_vals<<<{"description": "Tuple of pressure (or temperature) values.  Must be monotonically increasing."}>>> = '-1e9 1e9'
    fluxes<<<{"description": "Tuple of flux values (measured in kg.m^-1.s^-1 if no 'use_*' are employed).  These flux values are multiplied by the line-segment length to achieve a flux in kg.s^-1.  A piecewise-linear fit is performed to the (p_or_t_vals,flux) pairs to obtain the flux at any arbitrary pressure (or temperature).  If a quad-point pressure is less than the first pressure value, the first flux value is used.  If quad-point pressure exceeds the final pressure value, the final flux value is used.  This flux is OUT of the medium: hence positive values of flux means this will be a SINK, while negative values indicate this flux will be a SOURCE."}>>> = '${inj_ext_flux} ${inj_ext_flux}'
  [../]
  [./summer_production_T]
    type = PorousFlowPolyLineSink<<<{"description": "Approximates a polyline sink by using a number of point sinks with given weighting whose positions are read from a file.  NOTE: if you are using PorousFlowPorosity that depends on volumetric strain, you should set strain_at_nearest_qp=true in your GlobalParams, to ensure the nodal Porosity Material uses the volumetric strain at the Dirac quadpoints, and can therefore be computed", "href": "../source/dirackernels/PorousFlowPolyLineSink.html"}>>>
    fluid_phase<<<{"description": "The fluid phase whose pressure (and potentially mobility, enthalpy, etc) controls the flux to the line sink.  For p_or_t=temperature, and without any use_*, this parameter is irrelevant"}>>> = 0
    variable<<<{"description": "The name of the variable that this residual object operates on"}>>> = temperature
    SumQuantityUO<<<{"description": "User Object of type=PorousFlowSumQuantity in which to place the total outflow from the line sink for each time step."}>>> = heat_enthalpy_out_inc
    line_base<<<{"description": "Line base point x,y,z coordinates.  This is the same format as a single-line point_file. Note this is only used if there is no point file specified."}>>> = '1 9.99 9.99 3.6'
    line_length<<<{"description": "Line length.  Note this is only used if there is only one point in the point_file."}>>> = ${well_length}
    line_direction<<<{"description": "Line direction.  Note this is only used if there is only one point in the point_file."}>>> = '0 0 1'
    use_mobility<<<{"description": "Multiply the flux by the fluid mobility"}>>> = false
    use_enthalpy<<<{"description": "Multiply the flux by the fluid enthalpy"}>>> = true
    p_or_t_vals<<<{"description": "Tuple of pressure (or temperature) values.  Must be monotonically increasing."}>>> = '-1e9 1e9'
    fluxes<<<{"description": "Tuple of flux values (measured in kg.m^-1.s^-1 if no 'use_*' are employed).  These flux values are multiplied by the line-segment length to achieve a flux in kg.s^-1.  A piecewise-linear fit is performed to the (p_or_t_vals,flux) pairs to obtain the flux at any arbitrary pressure (or temperature).  If a quad-point pressure is less than the first pressure value, the first flux value is used.  If quad-point pressure exceeds the final pressure value, the final flux value is used.  This flux is OUT of the medium: hence positive values of flux means this will be a SINK, while negative values indicate this flux will be a SOURCE."}>>> = '${inj_ext_flux} ${inj_ext_flux}'
  [../]
  [./winter_injection_P]
    type = PorousFlowPolyLineSink<<<{"description": "Approximates a polyline sink by using a number of point sinks with given weighting whose positions are read from a file.  NOTE: if you are using PorousFlowPorosity that depends on volumetric strain, you should set strain_at_nearest_qp=true in your GlobalParams, to ensure the nodal Porosity Material uses the volumetric strain at the Dirac quadpoints, and can therefore be computed", "href": "../source/dirackernels/PorousFlowPolyLineSink.html"}>>>
    fluid_phase<<<{"description": "The fluid phase whose pressure (and potentially mobility, enthalpy, etc) controls the flux to the line sink.  For p_or_t=temperature, and without any use_*, this parameter is irrelevant"}>>> = 0
    variable<<<{"description": "The name of the variable that this residual object operates on"}>>> = porepressure
    SumQuantityUO<<<{"description": "User Object of type=PorousFlowSumQuantity in which to place the total outflow from the line sink for each time step."}>>> = fluid_mass_in_inc
    line_base<<<{"description": "Line base point x,y,z coordinates.  This is the same format as a single-line point_file. Note this is only used if there is no point file specified."}>>> = '1 -9.99 -9.99 3.6'
    line_length<<<{"description": "Line length.  Note this is only used if there is only one point in the point_file."}>>> = ${well_length}
    line_direction<<<{"description": "Line direction.  Note this is only used if there is only one point in the point_file."}>>> = '0 0 1'
    use_mobility<<<{"description": "Multiply the flux by the fluid mobility"}>>> = false
    p_or_t_vals<<<{"description": "Tuple of pressure (or temperature) values.  Must be monotonically increasing."}>>> = '-1e9 1e9'
    fluxes<<<{"description": "Tuple of flux values (measured in kg.m^-1.s^-1 if no 'use_*' are employed).  These flux values are multiplied by the line-segment length to achieve a flux in kg.s^-1.  A piecewise-linear fit is performed to the (p_or_t_vals,flux) pairs to obtain the flux at any arbitrary pressure (or temperature).  If a quad-point pressure is less than the first pressure value, the first flux value is used.  If quad-point pressure exceeds the final pressure value, the final flux value is used.  This flux is OUT of the medium: hence positive values of flux means this will be a SINK, while negative values indicate this flux will be a SOURCE."}>>> = '-${inj_ext_flux} -${inj_ext_flux}'
  [../]
  [./winter_injection_T]
    type = EnthalpySink
    fluid_phase = 0
    variable = temperature
    SumQuantityUO = heat_enthalpy_in_inc
    line_base = '1 -9.99 -9.99 3.6'
    line_length = ${well_length}
    line_direction = '0 0 1'
    pressure = porepressure
    T_in = 399.15
    fp = tabulated_water
    p_or_t_vals = '-1e9 1e9'
    fluxes = '-${inj_ext_flux} -${inj_ext_flux}'
  [../]
  [./winter_production_P]
    type = PorousFlowPolyLineSink<<<{"description": "Approximates a polyline sink by using a number of point sinks with given weighting whose positions are read from a file.  NOTE: if you are using PorousFlowPorosity that depends on volumetric strain, you should set strain_at_nearest_qp=true in your GlobalParams, to ensure the nodal Porosity Material uses the volumetric strain at the Dirac quadpoints, and can therefore be computed", "href": "../source/dirackernels/PorousFlowPolyLineSink.html"}>>>
    fluid_phase<<<{"description": "The fluid phase whose pressure (and potentially mobility, enthalpy, etc) controls the flux to the line sink.  For p_or_t=temperature, and without any use_*, this parameter is irrelevant"}>>> = 0
    variable<<<{"description": "The name of the variable that this residual object operates on"}>>> = porepressure
    SumQuantityUO<<<{"description": "User Object of type=PorousFlowSumQuantity in which to place the total outflow from the line sink for each time step."}>>> = fluid_mass_out_inc
    line_base<<<{"description": "Line base point x,y,z coordinates.  This is the same format as a single-line point_file. Note this is only used if there is no point file specified."}>>> = '1 9.99 9.99 3.6'
    line_length<<<{"description": "Line length.  Note this is only used if there is only one point in the point_file."}>>> = ${well_length}
    line_direction<<<{"description": "Line direction.  Note this is only used if there is only one point in the point_file."}>>> = '0 0 1'
    use_mobility<<<{"description": "Multiply the flux by the fluid mobility"}>>> = false
    p_or_t_vals<<<{"description": "Tuple of pressure (or temperature) values.  Must be monotonically increasing."}>>> = '-1e9 1e9'
    fluxes<<<{"description": "Tuple of flux values (measured in kg.m^-1.s^-1 if no 'use_*' are employed).  These flux values are multiplied by the line-segment length to achieve a flux in kg.s^-1.  A piecewise-linear fit is performed to the (p_or_t_vals,flux) pairs to obtain the flux at any arbitrary pressure (or temperature).  If a quad-point pressure is less than the first pressure value, the first flux value is used.  If quad-point pressure exceeds the final pressure value, the final flux value is used.  This flux is OUT of the medium: hence positive values of flux means this will be a SINK, while negative values indicate this flux will be a SOURCE."}>>> = '${inj_ext_flux} ${inj_ext_flux}'
  [../]
  [./winter_production_T]
    type = PorousFlowPolyLineSink<<<{"description": "Approximates a polyline sink by using a number of point sinks with given weighting whose positions are read from a file.  NOTE: if you are using PorousFlowPorosity that depends on volumetric strain, you should set strain_at_nearest_qp=true in your GlobalParams, to ensure the nodal Porosity Material uses the volumetric strain at the Dirac quadpoints, and can therefore be computed", "href": "../source/dirackernels/PorousFlowPolyLineSink.html"}>>>
    fluid_phase<<<{"description": "The fluid phase whose pressure (and potentially mobility, enthalpy, etc) controls the flux to the line sink.  For p_or_t=temperature, and without any use_*, this parameter is irrelevant"}>>> = 0
    variable<<<{"description": "The name of the variable that this residual object operates on"}>>> = temperature
    SumQuantityUO<<<{"description": "User Object of type=PorousFlowSumQuantity in which to place the total outflow from the line sink for each time step."}>>> = heat_enthalpy_out_inc
    line_base<<<{"description": "Line base point x,y,z coordinates.  This is the same format as a single-line point_file. Note this is only used if there is no point file specified."}>>> = '1 9.99 9.99 3.6'
    line_length<<<{"description": "Line length.  Note this is only used if there is only one point in the point_file."}>>> = ${well_length}
    line_direction<<<{"description": "Line direction.  Note this is only used if there is only one point in the point_file."}>>> = '0 0 1'
    use_mobility<<<{"description": "Multiply the flux by the fluid mobility"}>>> = false
    use_enthalpy<<<{"description": "Multiply the flux by the fluid enthalpy"}>>> = true
    p_or_t_vals<<<{"description": "Tuple of pressure (or temperature) values.  Must be monotonically increasing."}>>> = '-1e9 1e9'
    fluxes<<<{"description": "Tuple of flux values (measured in kg.m^-1.s^-1 if no 'use_*' are employed).  These flux values are multiplied by the line-segment length to achieve a flux in kg.s^-1.  A piecewise-linear fit is performed to the (p_or_t_vals,flux) pairs to obtain the flux at any arbitrary pressure (or temperature).  If a quad-point pressure is less than the first pressure value, the first flux value is used.  If quad-point pressure exceeds the final pressure value, the final flux value is used.  This flux is OUT of the medium: hence positive values of flux means this will be a SINK, while negative values indicate this flux will be a SOURCE."}>>> = '${inj_ext_flux} ${inj_ext_flux}'
  [../]
[]
(examples/rtes_benchmark/Cranfield_HT_season_caps_water_newboundary_coarse.i)

Note the above Dirac Kernels were activated partially to realize the injection-storage-extraction-rest operation cycle, a control block in the input file was used to realize that as

[Controls<<<{"href": "../syntax/Controls/index.html"}>>>]
  [summer_injection]
    type = ConditionalFunctionEnableControl<<<{"description": "Control for enabling/disabling objects when a function value is true", "href": "../source/controls/ConditionalFunctionEnableControl.html"}>>>
    conditional_function<<<{"description": "The function to give a true or false value"}>>> = inj_function_summer
    enable_objects<<<{"description": "A list of object tags to enable."}>>> = 'DiracKernels::summer_injection_P DiracKernels::summer_injection_T DiracKernels::summer_production_P DiracKernels::summer_production_T'
  []
  [winter_injection]
    type = ConditionalFunctionEnableControl<<<{"description": "Control for enabling/disabling objects when a function value is true", "href": "../source/controls/ConditionalFunctionEnableControl.html"}>>>
    conditional_function<<<{"description": "The function to give a true or false value"}>>> = inj_function_winter
    enable_objects<<<{"description": "A list of object tags to enable."}>>> = 'DiracKernels::winter_injection_P DiracKernels::winter_injection_T DiracKernels::winter_production_P DiracKernels::winter_production_T'
  []
[]
(examples/rtes_benchmark/Cranfield_HT_season_caps_water_newboundary_coarse.i)

With these modification, the FALCON predicted results, shown as red dashed lines in in Figure 2, match well with the TOUGH prediction (black solid lines). We conclude that FALCON is a robust solver to simulate thermo-hydraulic coupled problems. The readers can refer Jin et al. (2022) for detialed discussion of the benchmark study.

Figure 2: Comparison of pressure and temperature evolutions at the injection and production wells with a year of injection-storage-extraction-rest cycle with different boundary conditions and model set-ups. For the benchmark study, we used a constant injection temperature at 180 degree C, and the injection starts at the beginning of the simulation.

Acknowledgement

The author would like to acknowledge Christine Doughty at the Lawrence Berkeley National Laboratory for performing TOUGH simulations and providing the corresponding input file.

References

  1. Christine Doughty and Barry M Freifeld. Modeling co2 injection at cranfield, mississippi: investigation of methane and temperature effects. Greenhouse Gases: Science and Technology, 3(6):475–490, 2013.[BibTeX]
  2. W. Jin, T. Atkinson, G. Neupane, T. McLing, C. Doughty, Spycher, N., P. Dobson, and R. Smith. Influence of mechanical deformation and mineral dissolution/precipitation on reservoir thermal energy storage. In 56th US Rock Mechanics/Geomechanics Symposium. OnePetro, 2022.[BibTeX]