# HydroGeoSphere/Functional Constitutive Relationships

The instructions described here can be used to modify the default variably-saturated properties for a porous medium, discrete fracture or dual continuum. Before issuing them it is necessary to choose which type of medium they should be applied to, as discussed in Section 5.8.1.

For each instruction we will again indicate its scope (i.e. .grok, .mprops, .dprops, .fprops). Recall that if an instruction is used in the prefix.grok file, it will affect the current set of chosen zones, while in a properties (e.g. .mprops) file, it will only affect the named material of which it is a part.

## Unsaturated brooks-corey functions...End

Scope: .grok .mprops .fprops .dprops

Causes grok to use Brooks-Corey functions (Equation 2.5) to describe the constitutive relationships for the medium and to begin reading a group of instructions that define the function until it encounters an End instruction.

• • •

## Unsaturated van genuchten functions...End

Scope: .grok .mprops .fprops .dprops

Causes grok to use Van Genuchten functions (Equation 2.7) to describe the constitutive relationships for the medium and to begin reading a group of instructions that define the function until it encounters an End instruction.

• • •

The previous two instructions are used to choose between the Brooks-Corey of Van Genuchten approaches for defining the functions. In either case, if no further instructions are issued, the default function parameter values given in Table 5.11, Table 5.13 and Table 5.16 will be used for porous media, discrete fractures and dual continua respectively.

In the case of porous and dual media, these instructions override the pseudo-soil default so that relative permeability factors are applied to both horizontal and vertical flow.

The following instructions can be used to modify the parameters which define the constitutive relationships:

## Residual saturation

Scope: .grok .mprops .fprops .dprops

1. val Residual water saturation ${\displaystyle S_{wr}}$ .
• • •

## Alpha

Scope: .grok .mprops .fprops .dprops

1. val Power index alpha ${\displaystyle {\alpha }}$  [L−1].

For the Brooks-Corey function, this parameter is computed automatically from the air entry pressure. If you use this instruction you will be prompted to enter an air-entry pressure instead and grok will stop.

• • •

## Beta

Scope: .grok .mprops .fprops .dprops

1. val Power index beta ${\displaystyle {\beta }}$ .

For the van Genuchten function, this parameter must be greater than 1.0. If you enter a value less than 1.0 you will be warned and grok will stop. This value is used to compute ${\displaystyle {\nu }}$  according to Equation 2.9.

For the Brooks-Corey formulation, this value is used to recalculate the exponent in equation 2.6 unless the instruction Exponent has been used previously for this material.

• • •

## Pore connectivity

Scope: .grok .mprops .fprops .dprops

1. val Pore connectivity ${\displaystyle l_{p}}$ . The default value is 0.5.

Note that the default value of pore connectivity of 0.5 is a value recommended for the van Genuchten formulation, so your will probably want to redefine it for the Brooks-Corey formulation. The value recommended in this case is 2.0.

For the Brooks-Corey formulation, this value is used to recalculate the exponent in equation 2.6 unless the instruction Exponent has been used previously for this material.

• • •

## Air entry pressure

Scope: .grok .mprops .fprops .dprops

1. val Air entry pressure [L].

For the Brooks-Corey function, this value is used to compute ${\displaystyle {\alpha }}$  [L−1] according to Equation 2.5.

For the van Genuchten function, this parameter is not used. If you use this instruction you will be prompted to remove it and grok will stop.

• • •

## Exponent

Scope: .grok .mprops .fprops .dprops

1. val Exponent in equation 2.6, which is used to computes ${\displaystyle k_{r}}$  in the Brooks-Corey function. By default, the exponent is computed automatically from ${\displaystyle {\beta }}$  and ${\displaystyle l_{p}}$ . This instruction allows you to enter a different value.

For the van Genuchten function, this parameter is not used. If you use this instruction you will be prompted to remove it and grok will stop.

• • •

## Minimum relative permeability

Scope: .grok .mprops .fprops .dprops

1. val Minimum relative permeability. During a simulation, the model will choose the maximum value for relative permeability between the minimum value specified here and the value computed from the active function, either Van Genuchten or Brooks-Corey. This option may improve convergence of the non-linear solution.
• • •

The following instructions can be used to generate pressure-saturation and saturation-relative permeability tables using the Van Genuchten or Brooks-Corey parameters defined for the medium. In addition to the instructions given above which define the function, these additional instructions affect the properties of the tabular data:

## Table smoothness factor

Scope: .grok .mprops

1. val Smaller values cause more points to be generated for a smoother, more accurate table. The default value is 1 × 10−3.
• • •

## Table minimum pressure

Scope: .grok .mprops

1. val The minimum pressure value in the pressure-saturation table. The default value is -1000.
• • •

## Table maximum s-k slope

Scope: .grok .mprops

1. val The maximum slope of the saturation-relative permeability curve when nearing full saturation. The default value is 100.
• • •

## Generate tables from unsaturated functions

Scope: .grok .mprops

This instruction generates the tables from the previously defined function parameters and writes the pressure saturation data to the file prefixo.p_s_table.material.dat and the saturation-relative permeability data to the file prefixo.s_k_table.material.dat. These files are written in Tecplot-compatible format so they can be easily plotted. The tabular values in the files can be copied into the .mprops file for use with the unsaturated table instructions described in Section 5.8.3.5.

• • •

## Example

For example, if the following Van Genuchten function parameters were defined in the .mprops file:

unsaturated van genuchten functions
alpha
2.25
beta
1.89
residual saturation
0.16

minimum relative permeability
1e-2

table smoothness factor
1e-2

table minimum pressure
-10.

generate tables from unsaturated functions

end ! functions


then the contents of the pressure-saturation output file would be:

Title = "test.mprops/porous medium"
# Van Genuchten function:
# Residual water saturation         0.160000
# Alpha                             2.25000
# Power index (beta)                1.89000
# Pore connectivity                 0.500000
# Computed power index (gamma)      0.685218
# Minimum relative permeability     0.100000E-01
# Table minimum pressure          -10.0000
# Table maximum s-k slope         100.000
# Table smoothness factor           0.100000E-01
variables="Pressure","Saturation"
zone t="Pressure - Saturation"
#unsaturated tables
#pressure-saturation
-10.0000000000000       0.174869375404582
-7.50000000000000       0.181552629607745
-5.00000000000000       0.196301039876425
-3.75000000000000       0.212424751627904
-2.50000000000000       0.247430530192203
-1.87500000000000       0.284639681867462
-1.25000000000000       0.361026934163956
-0.937500000000000      0.435114163471319
-0.625000000000000      0.564528209032747
0.000000000000000E+000  1.00000000000000
#end ! pressure-saturation


The values used to define the table are included as comments, as are the instructions needed for incorporating the tabular data in the .mprops file.

Figure 5.15 is a plot of the resulting constitutive relationships. Note that the .mprops file and material names are used to form the Tecplot title and appear on the plot:

Figure 5.15: Example of Using Functional Parameters to Generate Tabular Constitutive Relationships

If desired, the .mprops file can be modified to use the tabular relationships. It is recommended that the Van Genuchten parameters that were used to generate the tabular data are retained in the file, either as comments or inside a skip on...skip off section. For our example, we could do the following:

skip on
unsaturated van genuchten functions
...etc...
end ! functions
skip off

unsaturated tables
pressure-saturation
-10.0000000000000       0.174869375404582
-7.50000000000000       0.181552629607745
-5.00000000000000       0.196301039876425
-3.75000000000000       0.212424751627904
-2.50000000000000       0.247430530192203
-1.87500000000000       0.284639681867462
-1.25000000000000       0.361026934163956
-0.937500000000000      0.435114163471319
-0.625000000000000      0.564528209032747
0.000000000000000E+000  1.00000000000000
end ! pressure-saturation

saturation-relative k
0.000000000000000E+000  1.000000000000000E-002
0.500000000000000       2.340977494655262E-002
0.750000000000000       0.180180362276789
0.875000000000000       0.398602012758378
0.937500000000000       0.591618307040100
1.00000000000000        1.00000000000000
end ! saturation-relative k
end ! unsaturated tables


We will now move on to discuss instructions which can be used to define tabular relationships.