# 7.13. Pore Pressure

     BEGIN PORE PRESSURE
       #
       # block set commands
       BLOCK = <string list>block_names
       ASSEMBLY = <string list>assembly_names
       INCLUDE ALL BLOCKS
       REMOVE BLOCK = <string list>block_names
       #
       # specification command
       FUNCTION = <string>function_name
       #
       # user subroutine commands
       ELEMENT BLOCK SUBROUTINE = <string>subroutine_name
       SUBROUTINE DEBUGGING OFF | SUBROUTINE DEBUGGING ON
       SUBROUTINE REAL PARAMETER: <string>param_name
         = <real>param_value
       SUBROUTINE INTEGER PARAMETER: <string>param_name
         = <integer>param_value
       SUBROUTINE STRING PARAMETER: <string>param_name
       # external database commands
       READ VARIABLE = <string>var_name
       COPY VARIABLE = <string>var_name [FROM MODEL <string>model_name]
         MAP_BY_PROXIMITY|MAP_BY_ID(MAP_BY_PROXIMITY)
       TIME = <real>time|FIRST|LAST
       #
       # coupled analysis commands
       RECEIVE FROM TRANSFER [FIELD TYPE = NODE|ELEMENT(NODE)]
       #
       # additional commands
       SCALE FACTOR = <real>scale_factor(1.0)
       ACTIVE PERIODS = <string list>period_names
       INACTIVE PERIODS = <string list>period_names
    END [PORE PRESSURE]

The `PORE PRESSURE` command block prescribes a pore pressure field for a given set of elements. The pore pressure is prescribed for each element in the block. The pore pressure field may vary over time and space. If the pore pressure field has only a time-varying component, the function command in the above command block can be used to specify the pore pressure field. If the pore pressure field has both time-varying and spatially varying components, a user subroutine option can be used to specify the pore pressure field. Finally, the pore pressure can be read as a variable from the mesh file. Only one of these options—function, user subroutine, or read variable—may be specified in a command block.

The `PORE PRESSURE` command block contains four groups of commands—block set, function, user subroutine, and read variable. Each of these command groups is basically independent of the others. In addition to the command lines in the four command groups, there are three additional command lines: `SCALE FACTOR`, `ACTIVE PERIODS`, and `INACTIVE PERIODS`. The `SCALE FACTOR` command line can be used in conjunction with the function command, the user subroutine option, or the read variable option. The `ACTIVE PERIODS` and `INACTIVE PERIODS` command lines are used to activate or deactivate this kinematic boundary condition for certain time periods. Following are descriptions of the different command groups.

Biot’s coefficient can be defined when prescribing pore pressure. See Section 5.1.2 for more information on Biot’s coefficient.

## 7.13.1. Block Set Commands

The `block set commands` portion of the `PORE PRESSURE` command block defines a set of elements associated with the pore pressure field and can include a combination of the following command lines:

    BLOCK = <string list>block_names
    ASSEMBLY = <string list>assembly_names
    INCLUDE ALL BLOCKS
    REMOVE BLOCK = <string list>block_names

These command lines, taken collectively, constitute a set of Boolean operators for constructing a set of elements derived from some combination of element blocks. See Section 7.1.1 for more information about the use of these command lines for creating a set of elements used by the boundary condition. There must be at least one `BLOCK`, `ASSEMBLY`, or `INCLUDE ALL BLOCKS` command line in the command block. Assemblies may contain blocks, surfaces, nodesets, or assemblies of these.

## 7.13.2. Specification Command

If the `FUNCTION` command is used, the pore pressure at any given time is the same for all elements in the element set associated with the particular `PORE PRESSURE` command block, with the exception of analytic functions which provide the ability to define a spatially-varying field. The command line

    FUNCTION = <string>function_name

references a `function_name` (defined in the SIERRA scope using a `FUNCTION` command block) that specifies the pore pressure as a function of time. The pore pressure can be scaled using the `SCALE FACTOR` command line described in Section 7.13.6.

## 7.13.3. User Subroutine Commands

If the user subroutine option is used, the pore pressure field may vary spatially at any given time for each of the elements in the element set associated with the particular `PORE PRESSURE` command block. The user subroutine option allows for a more complex description of the pore pressure field than does the `FUNCTION` command, but the user subroutine option also requires that a user subroutine be written to implement this capability. The user subroutine will be used to define a pore pressure for every element to which the boundary condition will be applied. The subroutine will be called by Sierra/SM at the appropriate time to generate the pore pressure field.

Following are the command lines related to the user subroutine option:

    ELEMENT BLOCK SUBROUTINE = <string>subroutine_name
    SUBROUTINE DEBUGGING OFF | SUBROUTINE DEBUGGING ON
    SUBROUTINE REAL PARAMETER: <string>param_name
      = <real>param_value
    SUBROUTINE INTEGER PARAMETER: <string>param_name
      = <integer>param_value
    SUBROUTINE STRING PARAMETER: <string>param_name
      = <string>param_value

The user subroutine option is invoked by using the `ELEMENT BLOCK SUBROUTINE` command line. The string `subroutine_name` is the name of a FORTRAN subroutine that is written by the user.

Several other commands control the behavior of user subroutines: `SUBROUTINE DEBUGGING OFF`, `SUBROUTINE DEBUGGING ON`, `SUBROUTINE REAL PARAMETER`, `SUBROUTINE INTEGER PARAMETER`, and `SUBROUTINE STRING PARAMETER`. These are described in Section 10.2.2. Examples of using these command lines are provided throughout Section 10.

The pore pressure set in the user subroutine can be scaled by use of the `SCALE FACTOR` command line, as described in Section 7.13.6.

See Section 10 for more details on implementing the user subroutine option.

## 7.13.4. External Mesh Database Commands

The pore pressure field can be read from an external mesh database. The finite element model from which pore pressures are read is defined via the `FINITE ELEMENT MODEL` command block described in Section 6.1. The finite element model can either be the model used by the region for its mesh definition as specified with the `USE FINITE ELEMENT MODEL` command (see Section 2.3), or it can be a different (but compatible) model. The following command lines control the use of an external mesh database to prescribe the pore pressure:

    READ VARIABLE = <string>var_name
    COPY VARIABLE = <string>var_name [FROM MODEL <string>model_name]
      MAP_BY_PROXIMITY|MAP_BY_ID(MAP_BY_PROXIMITY)
    TIME = <real>time|FIRST|LAST

See Section 7.3.5 for more details.

## 7.13.5. Coupled Analysis Commands

The `RECEIVE FROM TRANSFER` command provides the ability to set the pore pressure in a coupled analysis by transferring results from another SIERRA code, such as Aria.

    RECEIVE FROM TRANSFER [FIELD TYPE = NODE|ELEMENT(NODE)]

If this command is used in its default form, it is expected that the pore pressure is transferred to a nodal field named `pore_pressure` in the Sierra/SM region. Sierra/SM performs an interpolation from the nodal field to an element field named `pore_pressure`. The pore pressure can also be transferred directly to the element `pore_pressure` field by using the optional `FIELD TYPE = ELEMENT` argument to this command.

If the `RECEIVE FROM TRANSFER` command is used, but the appropriate commands to perform the transfer between the two regions are missing, the pore pressure will be zero during the entire simulation.

## 7.13.6. Additional Commands

These command lines in the `PORE PRESSURE` command block provide additional options for the boundary condition:

    SCALE FACTOR = <real>scale_factor(1.0)
    ACTIVE PERIODS = <string list>period_names
    INACTIVE PERIODS = <string list>period_names

The `SCALE FACTOR` command line is used to apply an additional scaling factor, which is constant in both time and space, to all pore pressure values of the field defined by the function command, the user subroutine, or the read variable option. For example, if the pore pressure in a time history function is given as 100.5 from time 1.0 to time 2.0 and the scale factor is 0.5, then the pore pressure from time 1.0 to 2.0 is 50.25. The default value for the scale factor is 1.0.

The `ACTIVE PERIODS` and `INACTIVE PERIODS` command lines determine when the boundary condition is active. See Section 2.6 for more information about these command lines.