Aquifer Boundary Condition¶
Overview¶
Aquifer boundary conditions allow simulating flow between the computational domain (the reservoir) and one or multiple aquifers. In GEOSX, we use a Carter-Tracy aquifer model parameterized in Aquifer tags of the FieldSpecifications XML input file blocks.
Aquifer model¶
An aquifer is a source of volumetric flow rate , where is the index of a face connecting the aquifer and the reservoir. We use a Carter-Tracy model in GEOSX to compute this volumetric flow rate.
Once is computed, the aquifer mass contribution is assembled and added to the mass conservation equations of the reservoir cell connected to face . The computation of depends on the sign of the volumetric flow rate .
The upwinding procedure is done as follows: if the sign of indicates that flow goes from the aquifer to the reservoir, the aquifer contribution to the conservation equation of component is:
where is the aquifer mass/molar water phase density and is the aquifer mass/molar fraction of component in the water phase. We assume that the aquifer is fully saturated with the water phase.
If the sign of indicates that flow goes from the reservoir into the aquifer, the aquifer contribution to the mass/molar conservation equation of component is computed as:
where is the number of fluid phases, is the reservoir cell mass/molar density of phase , is the reservoir cell saturation of phase , and is the reservoir cell mass/molar fraction of component in phase .
In the next section, we review the computation of the aquifer volumetric flow rate .
Carter-Tracy analytical aquifer¶
The Carter-Tracy aquifer model is a simplified approximation to a fully transient model (see R. D. Carter and G. W. Tracy, `An improved method for calculating water influx<https://onepetro.org/TRANS/article/219/01/415/162367/An-Improved-Method-for-Calculating-Water-Influx>`__, Transactions of the AIME, 1960).
Although the theory was developed for a radially symmetric reservoir surrounded by an annular aquifer, this method applies to any geometry where the dimensionless pressure can be expressed as a function of a dimensionless time.
The two main parameters that govern the behavior of the aquifer are the time constant and the influx constant. These two parameters are precomputed at the beginning of the simulation and are later used to compute the aquifer volumetric flow rate.
Time constant¶
The time constant, , has the dimension of time (in seconds).
It is computed as:
where is the aquifer water phase viscosity, is the aquifer porosity, is the aquifer total compressibility (fluid and rock), is the inner radius of the aquifer, and is the aquifer permeability.
The time constant is used to convert time (, in seconds) into dimensionless time, using the following expression:
Influx constant¶
The influx constant, , has the dimension of .
It is computed as:
where is the aquifer thickness, is the aquifer angle, is the aquifer porosity, is the aquifer total compressibility (fluid and rock), and is the inner radius of the aquifer.
Aquifer volumetric flow rate¶
Let us consider a reservoir cell connected to aquifer through face , and the corresponding aquifer volumetric flow rate over time interval .
The computation of proceeds as follows:
where is the area fraction of face f, and and are the pressures in cell at time and time , respectively.
The area fraction of face with area is computed as:
The coefficient is computed as:
and the coefficient is given by the formula:
where is the potential difference between the reservoir cell and the aquifer at time , is the dimensionless pressure evaluated at dimensionless time , is the derivative of the dimensionless pressure with respect to dimensionless time, evaluated at dimensionless time .
The functional relationship of dimensionless pressure, , as a function of dimensionless time is provided by the user. A default table is also available, as shown below. The cumulative aquifer flow rate, , is an explicit quantity evaluated at and updated at the end of each converged time step using the formula:
with .
Parameters¶
The main Carter-Tracy parameters and the expected units are listed below:
- aquiferPorosity: the aquifer porosity .
- aquiferPermeability: the aquifer permeability (in m2).
- aquiferInitialPressure: the aquifer initial pressure (in Pa), used to compute .
- aquiferWaterViscosity: the aquifer water viscosity (in Pa.s).
- aquiferWaterDensity: the aquifer water mass/molar density (in kg/m3 or mole/m3).
- aquiferWaterPhaseComponentNames: the name of the components in the water phase. These names must match the component names listed in the fluid model of the Constitutive block. This parameter is ignored in single-phase flow simulations.
- aquiferWaterPhaseComponentFraction: the aquifer component fractions in the water phase, . The components must be listed in the order of the components in aquiferWaterPhaseComponentNames. This parameter is ignored in single-phase flow simulations.
- aquiferTotalCompressibility: the aquifer total compressibility (for the fluid and the solid) (in 1/Pa).
- aquiferElevation: the elevation of the aquifer (in m).
- aquiferThickness: the thickness of the aquifer (in m).
- aquiferInnerRadius: the aquifer inner radius (in m).
- aquiferAngle: the angle subtended by the aquifer boundary from the center of reservoir (in degrees, must be between 0 and 360).
- allowAllPhasesIntoAquifer: flag controlling the behavior of the aquifer when there is flow from the reservoir to the aquifer. If the flag is equal to 1, all phases can flow into the aquifer. If the flag is equal to 0, only the water phase can flow into the aquifer. The default value of this optional parameter is 0.
- pressureInfluenceFunctionName: the name of the table providing the dimensionless pressure as a function of dimensionless time. This table must be defined as a TableFunction in the Functions block of the XML file. If this optional parameter is omitted, a default pressure influence table is used.
- setNames: the names of the face sets on which the aquifer boundary condition is applied.
Note
Following the GEOSX convention, the z-coordinate is increasing upward. This convention must be taken into account when providing the aquiferElevation. In other words, the z-value is not a depth.
The full list of parameters is provided below:
Examples¶
Setting up the Aquifer boundary condition requires two additional pieces of information in the XML input file: a set of faces to specify where the aquifer boundary conditions will apply, and an aquifer tag that specifies the physical characteristics of the aquifer and determines how the boundary condition is applied.
- To specifiy a set of faces: on simple grids, in the Geometry block of the XML file, we can define a Box that selects and assigns a name to a set of faces. To be included in a set, the faces must be fully enclosed in the Box (all vertices of a face must be inside the box for the face to be included to the set). The name of this box is a user-defined string, and it will be used in the aquifer tag to locate the face set. Here is an example of XML code to create such a face set from a box:
<Geometry>
...
<Box
name="aquifer"
xMin="{ 999.99, 199.99, 3.99 }"
xMax="{ 1010.01, 201.01, 6.01 }"/>
...
</Geometry>
Note
This step captures faces, not cells. For now, the user must ensure that the box actually contains faces (GEOSX will proceed even if the face set is empty).
For more complex meshes, sch as those imported using the PAMELAMeshGenerator, using a Box to perform a face selection is challenging. We recommend using a tagged PhysicalEntity
in the .msh file instead. This physical entity will be used to locate the face set.
- To specify the aquifer characteristics: in the FieldSpecifications block of the XML file, we include an Aquifer tag. For single-phase flow, the aquifer definition looks like:
<FieldSpecifications>
...
<Aquifer
name="aquiferBC"
aquiferPorosity="2e-1"
aquiferPermeability="3e-13"
aquiferInitialPressure="9e6"
aquiferWaterViscosity="0.00089"
aquiferWaterDensity="962.81"
aquiferTotalCompressibility="1e-10"
aquiferElevation="4"
aquiferThickness="18"
aquiferInnerRadius="2000"
aquiferAngle="20"
setNames="{ aquifer }"/>
...
</FieldSpecifications>
For compositional multiphase flow, the user must include additional parameters to specify the water composition. We have additional influx controls over the aquifer with allowAllPhasesIntoAquifer
. This is illustrated below for the CO2-brine fluid model:
<FieldSpecifications>
...
<Aquifer
name="aquiferBC"
aquiferPorosity="2e-1"
aquiferPermeability="3e-13"
aquiferInitialPressure="9e6"
aquiferWaterViscosity="0.00089"
aquiferWaterDensity="962.81"
aquiferWaterPhaseComponentFraction="{ 0.0, 1.0 }"
aquiferWaterPhaseComponentNames="{ co2, water }"
aquiferTotalCompressibility="1e-10"
aquiferElevation="4"
aquiferThickness="18"
aquiferInnerRadius="2000"
aquiferAngle="20"
allowAllPhasesIntoAquifer="1"
setNames="{ aquifer }"/>
...
</FieldSpecifications>
Finally, for both single-phase and multiphase flow, if a pressureInfluenceFunctionName
attribute is specified in the Aquifer tag, a TableFunction must be included in the Functions block of the XML file as follows:
<Functions>
...
<TableFunction
name="pressureInfluenceFunction"
coordinates="{ 0.01, 0.05, 0.1, 0.15, 0.2, 0.25, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 1.5,
2.0, 2.5, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 15.0, 20.0, 25.0, 30.0, 40.0,
50.0, 60.0, 70.0, 80.0, 90.0, 100.0, 200.0, 800.0, 1600.0, 3200.0, 6400.0, 12800.0 }"
values="{ 0.112, 0.229, 0.315, 0.376, 0.424, 0.469, 0.503, 0.564, 0.616, 0.659, 0.702, 0.735, 0.772, 0.802,
0.927, 1.02, 1.101, 1.169, 1.275, 1.362, 1.436, 1.5, 1.556, 1.604, 1.651, 1.829, 1.96, 2.067, 2.147,
2.282, 2.388, 2.476, 2.55, 2.615, 2.672, 2.723, 3.0537, 3.7468, 4.0934, 4.44, 4.7866, 5.1331 }"/>
...
</Functions>
Note
The values provided in the table above are the default values used internally in GEOSX when the user does not specify the pressure influence function in the XML file.