AGL Logo

FFTools Plug-In: Scheduled Head Boundary Module (SHB)


Description

The Scheduled Head Boundary (SHB) module allows modelers to automate the scheduling of transient changes to hydraulic-head (Dirichlet) boundary conditions (BC). FEFLOW has intrinsic tools (power functions) that allow such scheduling, but the SHB module can automate the process which is very useful for complex problems. SHB was specifically designed for mining applications, such as dewatering of an open pit where vertical migration of hydraulic-head BCs might be used to simulate the dewatering. The SHB approach can be applied to:

Because mines and tailing storage facilities (TSF) can take years to excavate or fill, often the changing size and shape of the structure has an effect on the flow system. Using FEFLOW's intrinsic tools can render the model either non-representative or too complex to handle. SHB allows for transient adjustments to the model at fine scales using relatively simple specifications that more realistically match the actual or planned physical changes. A benefit of this approach is that if model time steps are changed or new information requires additional refinements, revisions to the SHB configuration files are generally minor. SHB performs best if its timing specifications match specified FEFLOW time stepping, but as discussed under "Scheduling Hydraulic-Head Boundary Conditions", if automated time-stepping is used, some timing issues are managed by SHB.

The FEFLOW IFM (plug-in) architecture is very flexible, but it does not allow independent plug-ins to check what other plug-ins are doing. This can cause issues where the behavior of one plug-in modifies a model feature another plug-in also will modify or has modified. SHB is designed to work with AquaGeo's other FFTOOLS modules: SES (Scheduled Element State), BUDGET and LAKE3D.

WARNING: This module does NOT correct head, pressure or saturation for deformations in the materials that might be caused by deposition or excavation!

Suggested FEFLOW Configuration

The SHB module has been tested on models with the following characteristics:

Approach

The user specifies the following three types of information to configure SHB: (1) Define the time schedule to be used, (2) specify node sets on which SHB operates, and (3) specify how options for how SHB will assign hydraulic-head BCs in each set.

Scheduling Hydraulic-Head Boundary Conditions

The SHB module operates on user-specified groups of nodes, referred to as SHB nodes. Individual SHB nodes are activated on a schedule based on the current "SHB elevation" for the group. For every user-specified group of SHB nodes, SHB computes the elevation of a horizontal plane that moves upward or downward based on user-specified information:

The rate of movement of the plane can also be varied over time using additional specifications. As the SHB elevation changes, the hydraulic-head boundary conditions are updated.

NOTES:

Within an SHB time period, the rate of change in the SHB elevation is linear with time, and the time at the middle of a FEFLOW time step is used to calculate the current SHB elevation. For example, if from day 0 to 100, the SHB elevation will change from 10.0 feet to 11.0 feet, and model time steps are 20.0 days long, then FH nodes would be set using the following schedule:

If the model simulates more than 100 days, the FH = 10.9 ft will be removed at the beginning of the next time step, and a FH = 11 ft will not be achieved. This is because the SHB end time aligns with the end of the 5th time step. If the user desires a FH = 11 ft after time = 100 days, then the user can either use FEFLOW's intrinsic tools to activate the FH or can add an additional SHB schedule that covers the situation after 100 days. To hold an FH level constant, specify the same SHB elevation at the start and end of an SHB time period.

Note: An SHB-controlled FH node will be activated if any portion of a SHB schedule overlaps with the current FEFLOW time step. If FEFLOW's automatic time stepping is used, SHB creates a new FEFLOW power function (time-series) named "SHB:reserved". This new power function will alter FEFLOW's automatic time stepping so that its time steps coincide with SHB-scheduled start and end times. In FEFLOW's problem-settings menu, if the user specifies either "constant time steps" or "varying time steps", the modeler is responsible for ensuring that time steps align with SHB specifications. If the user does not manage the scheduling, then FH BCs may be activated too soon or after the end of a specified end time.

Note: Element state (active or inactive) defines the active status of nodes. A node becomes inactive when it is completely surrounded by inactive elements. SHB can only set FH nodes at active nodes; inactive nodes are ignored regardless of user SHB specifications.

Specifying Sets of SHB Nodes

SHB supports three basic methods to specify SHB nodes sets:

These methods have similarities and differences, and the choice of method depends on which is most efficient for the problem to be solved.

A SHB input file may contain any combination of BY_NODE, SURF_NODE and GROUP specifications. SHB does NOT check for overlapping sets or time periods and does NOT check for other boundary-condition settings specified using FEFLOW's intrinsic tools that may coincide with SHB nodal sets. Such overlaps may cause unexpected simulation results.

How Fixed-Head Boundary Condition Nodes are Set

At any point during a simulation in which SHB acts, it will compute a unique SHB elevation for each set of nodes under SHB's control. The SHB elevation is computed based on elevational and timing information supplied by the user for a particular node set. As noted previously, the SHB elevation for a particular node set corresponds to the total simulation time at the middle of the current time step, and the SHB elevation for the node set varies linearly during the specified SHB time period:

The equation used to compute the current SHB FH of a node in SHB node-set "g" during that node-set's i-th time period is:

Where:

Note that for a rising SHB elevation (head), dH is negative because the start head is below the end head.

For example, for constant lowering of a water level though a 100-foot interval over ten years, the rate of lowering of the water level would be +10 feet per year.

The SHB elevation is used in conjunction with other user specifications to determine where FH nodes should be set in a particular SHB node set at a specific point in a simulation. This section describes the various options available to the user for each of the three node-set methods.

Settings for the BY_NODE method

For each invocation of the BY_NODE method, the user must specify the number of the node, the period of time when a particular BY_NODE set is active, and the starting and ending SHB elevations for that period. Only one time period can be specified for each BY_NODE set. For a BY_NODE set (a set containing just the one node), the FH value is based on the time-step's mid-time, and a linear interpolation of the beginning and ending head values. The FH is set at the node regardless of the state of saturation at the node or the elevation of the node. The user cannot set a boundary-condition constraint.

Settings for the SURF_NODE method

For each invocation of the SURF_NODE method, the user must specify a node number in slice 1 that belongs to the set. Every node from slice 1 to the bottom of the model, in a vertical column, will be included in the set of nodes to which the SURF_NODE method applies. The user also must specify the start and end time for the set, and a corresponding start and end SHB elevation. As with BY_NODE, only one time period can be specified for each SURF_NODE set. The user may specify the same surface node though for as many time periods with start/end SHB elevations as desired. In addition, the user can specify, for all nodes in a SURF_NODE set, a threshold level of saturation at or above which SHB will set FH nodes. If the threshold is not specified, the SURF_NODE method assumes a value of 0.0 for the saturation threshold and will set FH nodes accordingly.

For each SURF_NODE set, the SURF_NODE method computes the current SHB elevation and uses that value to identify the node in the set that is directly below the current SHB elevation. Assuming that the saturation is equal to or greater than the saturation threshold, SURF_NODE sets an FH at the identified node with a FH value equal to the SHB elevation for the node set. No FH is set at nodes below the identified node. An FH is set at nodes above the identified node and the FH value is set equal to the elevation of each such node. One purpose of this is to allow the simulation of a seepage face (discharge from the groundwater system due to seepage from the saturated face of a slope), which is useful for simulating, for example, dewatering of an excavation.

A seepage-face node is a specific type of FH where the specified hydraulic head is equal to the elevation of the node with a maximum flow constraint of zero. This allows water to seep (discharge) out of the groundwater regime only if that node is at or below the local water table (phreatic surface). Seepage-face nodes do not allow discharge from the unsaturated zone or any flow from the seepage-face node into the groundwater regime.

To simulate a seepage face, the user must specify a maximum boundary-condition constraint of zero on the node set (referred to as "Max. flow-rate constraint" in the Data Panel of the FEFLOW interface). If a constraint (either maximum or minimum) is not specified, unconstrained FH nodes will be set (to avoid this, the BY_NODE method can be used).

The mid-point of the current FELOW time step is used to compute the current SHB elevation of a node set. For each node in the SURF_NODE set, SHB also interrogates the model to determine the saturation at nodes in the set at the beginning of the time-step; the saturation is compared to the value of the saturation threshold as noted below. For each vertical column of nodes in the SURF_NODE set, SHB identifies the highest active node whose elevation is equal to, or below, the current SHB elevation (inactive nodes are completely surrounded by inactive elements). SHB will then begin setting FH boundaries as described above. In the figures below, seepage-face nodes are indicated with "H = Node Z with MAX = 0."


LIMIT_TO_TOM_RULE
This figure illustrates a vertical cross section through a 3D FEFLOW mesh at three simulation times. The circles represent nodes that are part of three SURF_NODE sets. Each set has the same schedule. As the water level is drawn down, the location of FH nodes set under the SURF_NODE method changes with the current SHB Elevation. At Time = 2, because of unequal drawdown, sets #1 and #2 nodes on slice 2 have desaturated (saturation < saturation threshold) and the FHs are deactivated. For set #3 nodes, it is still saturated (saturation >= saturation threshold), and a FH seepage-face node is defined. For a seepage-face node, the target head (7.6') is below the elevation on the saturated node (~8.7') and the FH is set to the node elevation.

Settings for the GROUP method

The GROUP method is the most flexible of the SHB methods, but this flexibility requires more information from the user. For each invocation of the GROUP method, the user must specify all nodes, by number, that belong to the set. With this approach, the nodes in a specific GROUP set can be anywhere in the mesh. The user must specify at least one start and end time for the set, and a corresponding start and end SHB elevation. The user has the option to specify as many time periods with start/end SHB elevations for each GROUP set as desired. In addition, the user can specify, for all nodes in a GROUP set, a saturation threshold level at or above which SHB may set a FH depending on other user specifications.

The user specifies what water-level elevation the GROUP method will use for FH nodes to be set at the top of the model. If all elements of the model are always active, then the top of the model is always defined by nodes on slice 1. However, when inactive elements are present, the "active" top of the model may not be defined solely by slice-1 nodes. This is because element state (active or inactive) defines the active status of nodes. A node becomes inactive when it surrounded by inactive elements. SHB can set fixed head boundary conditions at active nodes; inactive nodes are ignored by SHB regardless of user specifications. For example, if all elements in layer 1 are inactive at some point during a simulation, then the "active" top of the model is defined instead by nodes on slice 2 during the time that layer-1 elements are inactive. Other examples:

To control where FH nodes are set and the value of the water level specified, for each GROUP set the user can choose amoung several options including:

NOTE: The GROUP and SURF_NODE methods assumes the model simulates variably-saturated conditions. It can be used under some confined conditions, but additional care should be taken.

Additional explanation of these options, referred to as "Top-Of-Model" (TOM) and "depth" rules, and the saturation threshold, are provided under "Format of the SHB Setup File" below).

At the start of each time-step during which SHB operates on a specific GROUP set, the target SHB elevation is calculated using the time-step's mid-time. Linear interpolation of the target is based on the SHB time/head definition. The time-step mid-time is used to apply an appropriate average head across the time interval. For each node in the GROUP set, SHB also interrogates the model to determine the saturation state at the beginning of each time step; this saturation is compared to the value of the saturation threshold and node elevation. This information is used by SHB, along with other user specifications, to determine where FH nodes are set, constraints to apply, etc.

It is possible to configure SHB to automatically simulate seepage faces, for example, at the wall of an excavation into the saturated zone. Under such configurations, if the simulated saturation at a GROUP node is 1.0, or greater than or equal to the saturation threshold, and the node is above the SHB elevation, a FH is set with the value equal to the node's elevation and a maximum boundary-condition constraint (referred to as "Max. flow-rate constraint" in the Data Panel of the FEFLOW interface) of zero. This FH simulates a local seepage face: groundwater is only allowed to seep out at the node. Multiple seepage-face nodes for a vertical column of nodes may be set depending on the value of the saturation threshold and the active state of the target nodes.

In general, for each vertical column of nodes in the GROUP set, SHB identifies the highest active node whose elevation is equal to, or just below, the current SHB elevation. SHB will then, under most options, set a FH at that node with a FH value based on the selected TOM option. For nodes directly under or above this node, additional FH nodes may be set according to the selected Depth rule, and if FH nodes are set, the specified water level will be equal to the current SHB elevation for the GROUP set, or, under some specifications, the node's elevation.

ALLOW_ABOVE_TOM_RULE
The above figure illustrates a vertical cross section through a 3D FEFLOW mesh at two simulation times. The circles represent nodes that are part of a GROUP set. The TOM option "ALLOW_ABOVE_TOM" and depth option "TARGET_AND_ABOVE" are used (see "Format of the SHB Setup File" below) to set only one FH below the SHB level, for each vertical column of nodes in the GROUP set. All these nodes are set to the SHB level, even those the water level is above the top of the model. Seepage-face nodes may bet set above FH nodes as well. As the water level is drawn down (Time 2), the saturated threshold value is used to define seepage-face nodes. This represents, for example, the interaction between ground water and a declining lake stage.

Note that in the above example, it might be difficult to anticipate accurately this situation using FEFLOW's intrinsic tools. For example, the lake level could be defined from an external source (i.e. Lake3D). In the example above, transient swapping of an unconstrained FH node with a seepage-face (constrained FH) node is dynamically handled by SHB based on simulated groundwater conditions.

Boundary conditions can also be managed other ways. It may be appropriate it limit the FH to the ground surface (top-of-model):

LIMIT_TO_TOM_RULE
The above figure illustrates a vertical cross section through a 3D FEFLOW mesh at two simulation times. The model is intended to simulate the interaction between a stream and groundwater as the elevation where groundwater begins to discharge as the stream declines. The TOM option "LIMIT_TO_TOM" and depth option "TARGET_AND_ABOVE" are selected for this purpose. Below the elevation where the stream first begins to discharge groundwater (this elevation is represented by the SHB elevation), the GROUP method sets FH nodes to the elevation of the stream's stage along its channel (which in this case is the elevation of slice 1). Above the SHB elevation where the stream gains (discharges) groundwater, the GROUP method sets seepage-face nodes (based on the value of saturated threshold. The GROUP set encompasses only nodes on slice 1, and the all the elements in the model remain active throughout the simulation.

In some models the top of the active model can change through time:

LIMIT_TO_TOAM_RULE
The above figures illustrate a vertical cross section through a 3D FEFLOW mesh at three simulation times. The model is intended to simulate deposition of a saturated slurry into a tailings storage facility (TSF). Two sets of GROUP nodes are specified, GROUP 1 simulates a stream bottom which is converted into a TSF subdrain system, and GROUP 2 simulates the top of the TSF where active deposition occurs. GROUP 1 is active for the entire simulation, and GROUP 2 activates after the start of the simulation. For both GROUP's, the TOM option "LIMIT_TO_TOAM" and depth option "TARGET_AND_ABOVE" are selected for this purpose. At Time = 1, the gray elements are not active, so the nodes in the middle, and along the top of the TSF are not active (the active top of the model is on slice 3). At Time = 1, the GROUP method sets FH nodes to the elevation of the land surface before tailings deposition begins (which for these nodes is the elevation of slice 3), and seepage-face nodes are set based on the value of saturation threshold.
At Time = 2, the TSF is partially constructed, and nodes on slice 2 are now active according to user specifications, and the intermediate surface of the tailings is just above slice 2 (the TSF surface is represented by the current SHB elevation). "Infiltration" nodes are set at slice 2 to simulate continuous vertical infiltration of tailings fluid (due to continuing deposition of tailings); these are FH nodes with a specified water level equal to the current SHB elevation and a minimum boundary-condition constraint (MIN constraint) set to zero (only allows flow into the tailings).
At Time = 3, the TSF is almost fully constructed: nodes on slice 1 are now active, and the surface of the tailings is equal to or just above slice 1. "Infiltration" nodes are similary set along the top of of the model (slice 1). Note that FH nodes in the middle of the TSF are not active because as there is no longer a fluid source to maintain FH infiltration.

The next example illustrates how FH nodes are not set if the current SHB elevation is above the top of the model:

DISABLE_IF_ABOVE_TOM_RULE
The above figure illustrates the use of the TOM option called "DISABLE_IF_ABOVE_TOM." SHB nodes on Slice 1 with elevations below the target SHB head (elevation) are not set.

The following examples show the use of Depth options, used in conjunction with a saturation threshold:

TARGET_ONLY  
The above figure illustrates the use of the Depth option called "TARGET_AND_ABOVE" for nodes in a GROUP in combination with setting the saturation threshold to 1.0 (node must be fully saturated to be used), which results in FH nodes at only fully saturated locations. Note that by using the GROUP method, nodes can be anywhere in the model.
TARGET_AND_ABOVE
The above figure illustrates the use of the depth option "TARGET_AND_ABOVE" for nodes in a GROUP in combination with a setting of a saturated threshold of 0.5, which results in FH nodes at the highest fully saturated location, and seepage nodes at under-saturated nodes meeting the saturated threshold criterion above. Note that it is possible under certain specifications that more than one seepage-face node can exist above the SHB head level.
TARGET_ALL
The above figure illustrates the use of the depth option "AT_ALL_DEPTHS" for nodes in a GROUP in combination with a setting of a saturated threshold of 0.0, which results in FH nodes at all vertical locations (note that a TOM option is used with a constraint to set seepage-face nodes at under-saturated nodes above them. This situation could represent a narrow open trench.

Configuring the SHB Module

After attaching FFTools in FEFLOW's "Plug-ins" panel, right-click the FFTools entry and select "Edit...". This will activate the FFTools window. Select the SHB tab. The checkbox in the upper right corner enables SHB. You must create an external input file from which SHB can import your configuration setup. After the data is imported from the file, the data can be stored in the FEM (check the box "Save configuration data in...") so that when the simulation (FEM) file is loaded again, the configuration data for the SHB module is read from the FEM file instead of an external input file. Revisions to the SHB configuration must be re-imported from a revised external input file. If the option (checkbox) to save SHB data in the FEM is selected when new data is imported, the revised data will replace all SHB data previously stored in the FEM.

External (i.e. data not stored in the FEM) input and output SHB data are contained in structured text (ASCII) files. The current configuration stored in the FEM file can be exported to a text file; this information can then be edited and re-imported. After successful import of data, the module will display global information about the configuration which can be used to help verify correct configuration. Warning: SHB has limited debugging capability and does not support run-time alteration of the model configuration. This can occur if elements or layers are added or deleted after SHB data is imported. SHB will not know how to renumber nodes.

Optional output from the module is stored in a user-specified text file, referred to as a "log" file. This file lists basic information about SHB operations, including when FH nodes are assigned and what the specified water level is. Further information is provided under "SHB Output" below.

The FFTools SHB module tab:

SHB Tab

Format of the SHB Setup File

The SHB input file must contain at least one complete definition of one of the three node-set methods: either BY_NODE, SURF_NODE or GROUP. Optionally, the input file can contain as many BY_NODE, SURF_NODE and GROUP definitions as needed to configure SHB for the problem to be solved (for example, the input file can contain 2 SURF_NODE sets, followed by 7 BY_NODE sets, followed by a SURF_NODE set, followed by 5 GROUP sets, and so on).

IMPORTANT NOTES REGARDING SHB INPUT:

The following section provides the input specification required by the SHB module. Input L1 is required, and at least one complete section of either L2A, L2B, or L2C is also required. An input in italic font indicates a specific letter or series of letters is required. For example, the input for L1 must be the three letters "SHB." Numeric or boolean data are listed using the actual variable name used in the SHB module in regular font. After the first line, one of the three node-set methods must be listed, which is then followed by either the end of the input file, or another node-set definition. Comments can be added to the input file using a "!" (see "Example" below):

Where (in order of appearance, not alphabetical):

Notes for TopOfModelRule and Depth-Rule:
  • If TopOfMOdelRule = 5, the DepthRule is ignored; only one FH node will be set at the local TOAM except under certain conditions where the SatThreshold is used (see 4th note below).
  • For TopOfMOdelRule = 1, 2, 3, or 4, and DepthRule = 0 or 1, and the SHB elevation is falling, and a Maximum or Minimum Constraint is specified: at SHB nodes above the current SHB elevation, SHB will assign FH values equal to the nodal elevation instead of the SHB elevation and will also assign the the specified constraint (regardless of its value). To set seepage-face nodes on slopes above a water table, specify, for example, TOM option 2, Depth option 1, and a Maximum Constraint = 0.
  • For rising SHB elevation: SHB does not currently support assignment of FH nodes that are above the current SHB elevation except under TOM option 5.
  • When using SatThreshold: If the target node's saturation is smaller than the specified threshold, SHB will search downward directly under the target node to find a node in the set with saturation greater than the threshold, and set the FH at that node instead. This also applies to TOM option 5.

Note: it is best to define only one of each type of node-specification option (BY_NODE, SURF_NODE, or GROUP). Multiple instances of any one type (for example, specifying two SURF_NODE lines) may cause unintended errors.

Example Setups

The following is an example of SHB input data file. There are six BY_NODE sets, 16 SURF_NODE sets (note that the abbreviation "SURF" is used), and two GROUP sets. The two GROUPs are specified using two different methods:

SHB
BY_NODE,F,0.00
901,0,150,50,100,0,0
935,0,150,50,100,0,0
951,0,150,50,100,0,0
985,0,150,50,100,0,0
1001,0,150,50,100,0,0
1035,0,150,50,100,0,0
SURF,F,0.00
3,0,50,44,20,1,0
14,0,50,44,20,1,0
15,0,50,44,20,1,0
32,0,50,44,20,1,0
33,0,50,44,20,1,0
34,0,50,44,20,1,0
49,0,50,44,20,1,0
50,0,50,44,20,1,0
3,50,100,20,20,1,0
14,50,100,20,20,1,0
15,50,100,20,20,1,0
32,50,100,20,20,1,0
33,50,100,20,20,1,0
34,50,100,20,20,1,0
49,50,100,20,20,1,0
50,50,100,20,20,1,0
GROUP
#1,0,0.0,T,0.99,0,0
V,202,221,302,321
0,150,41,36
150,1500,36,36
#2,0,0.0,F,0.0,0,0
XML,[ModelIEPath]\ex4.ConfinedBCNodes.xml
0,150,75,50

  ! SetType, UseSatThreshold, SatThreshold
  ! NodeNo, StartTime, EndTime, StartEvel, EndElev, ConstraintType, ConstraintRate
  ! ...
  ! ...
  ! ...
  ! ...
  ! ...
  ! SetType, UseSatThreshold, SatThreshold
  ! NodeNo, StartTime, EndTime, StartEvel, EndElev, ConstraintType, ConstraintRate
  ! ...
  ! ...
  ! ...
  ! ...
  ! ...
  ! ...
  ! ...
  ! ...
  ! ...
  ! ...
  ! ...
  ! ...
  ! ...
  ! ...
  ! ...
  ! SetType
  ! #GroupID, ConstraintType, ConstraintRate, UseSatThreshold, SatThreshold, TopOfModelRule, DepthRule
  ! Option (V = Vertical Connections), TopNodeNo(1), TopNodeNo(2), BottomNodeNo(1), BottomNodeNo(2)
  ! StartTime, EndTime, StartEvel, EndElev
  ! StartTime, EndTime, StartEvel, EndElev
  ! #GroupID, ConstraintType, ConstraintRate, UseSatThreshold, SatThreshold, TopOfModelRule, DepthRule
  ! Option (XML = XML file), XMLFilename
  ! StartTime, EndTime, StartEvel, EndElev

Two example models have also been prepared: a model of dewatering of a ditch and a more complex model that uses other FFTools modules. The simple ditch model is used to illustrate SHB input. Its details are provided in SHB/SES Ditch Example. Also included are several simple test cases using the SHB GROUP method with SES.

The more complex model is discussed in the Tailing Impoundment and Mine Pit example. This model combines all the FFTools modules: CRB, LAKE3D, OBS, SES, SES, SHB, and BUDGET.

SHB Output Log

If requested by the user, SHB will record simulation data to a log file. Output can be logged for every node change. A summary is also recorded at the end of every time-step. This is a comma-delimited text file that can grow very large, especially if detailed changes are logged. This file will contain up to eight general types of information:

FH,FH_TYPE,NID,BEGIN_TIME,END_TIME,ELF,NODE_ELEV,TARGET_HEAD_SHB,ACTIVE_TOP_Z,MODEL_TOP_Z,FH_SET,CONST_TYPE,CONST_VAL
THRES_FAIL,NID,BEGIN_TIME,END_TIME,ELF,NODE_ELEV,TARGET_HEAD_SHB,NODE_SATURATION
BY_NODE_BUDGET,NID,BEGIN_TIME,END_TIME,RATE,VOLUME
SURF_NODE_BUDGET,NID,BEGIN_TIME,END_TIME,RATE,VOLUME
GROUP_SET,GROUP_ID,TOM_RULE,DEPTH_RULE,TARGET_TIME_SHB,TARGET_HEAD_SHB
GROUP_BUDGET,GROUP_ID,NUM_NODES,BEGIN_TIME,END_TIME,BORDER_RATE_IN,BORDER_RATE_OUT,BULK_RATE_IN,BULK_BULK_OUT,CAUCHY_RATE_IN,CAUCHY_RATE_OUT,CONV_RATE_IN,CONV_RATE_OUT,DIRICHLET_RATE_IN,DIRICHLET_RATE_OUT,NEUMANN_RATE_IN,NEUMANN_RATE_OUT,WELL_RATE_IN,WELL_RATE_OUT,BORDER_VOL_IN,BORDER_VOL_OUT,BULK_VOL_IN,BULK_VOL_OUT,CAUCHY_VOL_IN,CAUCHY_VOL_OUT,CONV_VOL_IN,CONV_VOL_OUT,DIRICHLET_VOL_IN,DIRICHLET_VOL_OUT,NEUMANN_VOL_IN,NEUMANN_VOL_OUT,WELL_VOL_IN,WELL_VOL_OUT

Following these header lines, the beginning of each entry will reference the first word of one of the header lines. For example:

...
FH,MinC,620,17,17.5,-,13.75,14.583333,34.375,34.375,14.583333,-1,0
FH,MinC,631,17,17.5,-,14.0625,14.583333,35.15625,35.15625,14.583333,-1,10
FH,UnC,632,17,17.5,-,14.375,14.583333,35.9375,35.9375,14.583333,0,0
FH,MaxC,683,17,17.5,-,12.851563,14.583333,36.71875,36.71875,14.583333,1,10
FH,MaxC,684,17,17.5,-,13.125,14.583333,37.5,37.5,14.583333,1,0
FH,UnC,743,17,17.5,-,12.890625,14.583333,42.96875,42.96875,14.583333,0,0
FH,UnC,744,17,17.5,-,13.125,14.583333,43.75,43.75,14.583333,0,0
FH,MinC,745,17,17.5,-,12.65625,14.583333,42.1875,42.1875,14.583333,-1,0
FH,MinC,696,17,17.5,-,14.492188,14.583333,41.40625,41.40625,14.583333,-1,0
...
BY_NODE_BUDGET,901,17,17.5,1.953663,8.124183e-08
...
SURF_NODE_BUDGET,3,32,33.6,0,0
FH,UnC,632,59.8,60.5,-,14.375,14.583333,35.9375,35.9375,14.583333,0,0
FH,MaxC,684,59.8,60.5,-,13.125,14.583333,37.5,37.5,14.583333,1,2.6
FH,UnC,744,59.8,60.5,-,13.125,14.583333,43.75,43.75,14.583333,0,0
...
FH,MinC,696,172,187.5,-,14.492188,14.583333,41.40625,41.40625,14.583333,-1,0
FH,UnC,632,172,187.5,-,14.375,14.583333,35.9375,35.9375,14.583333,0,0
...
GROUP_BUDGET,1,4,172,187.5,82.434078,0,0,0,0,0,0,0,82.434078,0,0,0,0,0,2.6751768,0,0,0,0,0,0,0,2.6751768,0,0,0,0,0
GROUP_BUDGET,2,6,172,187.5,77.956862,0,0,0,0,0,0,0,77.956862,0,0,0,0,0,2.5298807,0,0,0,0,0,0,0,2.5298807,0,0,0,0,0
...

Where:

FH is a keyword indicating that the information on the line is for an SHB fixed-head (FH) node
FH_TYPE is a keyword indicating the characteristics of the FH set by SHB at NID at BEGIN_TIME. One of three values is possible: "UnC" indicates that an unconstrained FH has been set, "MaxC" indicates that a maximum-flow constrained FH has been set (the maximum flow is equal to CONST_VAL), or "MinC" indicates that a minimum-flow constrained FH has been set (the minimum flow is equal to CONST_VAL
NID is FEFLOW's integer identifier (index starting at 1) of the node at which a FH has been set
BEGIN_TIME is the time at the start of the current FEFLOW time step (TmTS = [BEGIN_TIME+END_TIME]/2). SHB sets an FH if the current SHB time (TARGET_TIME_SHB, defined below) is between TmTS and END_TIME. Note: When using automatic time stepping, if FEFLOW changes the length of the time step after its previous attempt, SHB recalculates the TmTS (see ELF)
END_TIME is the time at the end of the current FEFLOW time step
ELF is a flag that indicates whether or not there was a timing issue for setting the SHB fixed heads: "E" means the FH was set early relative to the specified SHB timing for the node set, "0" means there was no timing issue, and "L" means the FH was removed late relative to specified timing. Timing issues may arise when FEFLOW's automatic time-stepping is used and FEFLOW changes its time-stepping to improve numerical stability. SHB cannot determine in advance when FEFLOW will change its timing schedule and so SHB may switch on (or off) a FH sooner (or later) than expected at an elevation that is lower (or higher) than expected. To evaluate the impact of any timing issues, the switching schedule in the SHB log file can be compared to the schedule specified in the SHB configuration file.
NODE_ELEV elev of the node with identifier NID
TARGET_HEAD_SHB is the current target SHB elevation
ACTIVE_TOP_Z elevation of TOAM for the vertical column of nodes that includes NID at the current time.
MODEL_TOP_Z elevation of TOM for the vertical column of nodes that includes NID
FH_SET is the fixed hydraulic head value set by SHB (depending on the TOM and Depth rules, this will equal either the current SHB elevation or the elevation of the node)
CONST_TYPE is the value of the user-specified ConstraintType
CONST_VAL is the value of the user-specified ConstraintRate
THRES_FAIL is a keyword indicating that SHB was unable to set a FH boundary condition at the indicated node and time due to the node's saturation being less than the user-specified SatThreshold
NODE_ELEV is the elevation the node
NODE_SATURATION is the simulated nodal saturation simulated at the end of the previous FEFLOW time step (the saturation at BEGIN_TIME)
BY_NODE_BUDGET is a keyword indicating that the information on the line summarizes net flow rates and volumes for all BY_NODE nodes at end of the current FEFLOW time step
SURF_NODE_BUDGET is a keyword indicating that the information on the line summarizes net flow rates and volumes for all SURF_NODE nodes at end of the current FEFLOW time step
RATE is the sum of flow rates to/from all BY_NODE or all SURF_NODE nodes at end of the current FEFLOW time step
VOLUME is the sum of volumetric flows to/from all BY_NODE or all SURF_NODE nodes at end of the current FEFLOW time step
GROUP_BUDGET is a keyword indicating that the information on the line summarizes all flows to/from SHB FH or seepage-face nodes in GROUP_ID at the end of the current FEFLOW time step
GROUP_ID: Identifier for the current GROUP = GroupID
TOM_RULE: The user-specified TOM (top-of-model) rule for the current GROUP = GroupID
DEPTH_RULE: The user-specified Depth rule for the current GROUP = GroupID
TARGET_TIME_SHB: The time at TmTS for the time step (under automatic time stepping, this value is recomputed when FEFLOW modifies and re-executes a timestep)
NUM_NODES is the number of active FH or seepage-face nodes in GROUP_ID at the end of the current FEFLOW time step (should be less than or equal to the number of nodes in GROUP_ID)
VOLUME is the sum of volumetric flows to/from all nodes in either BY_NODE or SURF_NODE at end of the current FEFLOW time step
DIRICHLET_IN_RATE is the sum of the inflow rates (for volume, DIRICHLET_IN_VOL) from all nodes in GROUP_ID at the end of the current FEFLOW time step. Note that BORDER_IN_RATE should equal DIRICHLET_IN_RATE because only FH and seepage-face nodes are included in the calculation (and the same for "_VOL" components). Note that other components of the FEFLOW budget are listed and given names using the same convention.
DIRICHLET_OUT_RATE is the sum of the outflow rates (for volume, DIRICHLET_OUT_VOL) from all nodes in GROUP_ID at the end of the current FEFLOW time step. Note that BORDER_OUT should equal DIRICHLET_OUT_RATE because only FH and seepage-face nodes are included in the calculation (and the same for "_VOL" components). Note that other components of the FEFLOW budget are listed and given names using the same convention.
Note: BULK_IN_RATE and BULK_OUT_RATE will list flows, if any, associated with areal recharge or source/sink "material properties," and CAUCHY_IN_RATE, CAUCHY_OUT_RATE, NEUMANN_IN_RATE, NEUMANN_OUT_RATE, WELL_IN_RATE, and WELL_OUT_RATE should equal zero because only FH nodes are included in the calculation (and the same for "_VOL" components).

Note: NA values indicate that the corresponding header-line parameter is not applicable (SHB did not use the parameter).

In addition to the information recorded in the SHB log file, if the user saves simulation data in a FEFLOW DAC output file, flows for SHB nodes will be available in that file:

Log Parser

Because the different record types in the log file are intermixed, and the log file can be very large, a parser program, LogParser.exe, is included with FFTools. This is a "command line" utility that will copy the SHB log data to multiple ASCII (text) files, one file for each Keyword (FH, GROUP_RATE_BUDGET, THRES_FAIL, etc.). The new files will be located in the same folder as the parser. To use the program, copy it into the folder containing the SHB output log, then, in a command window open to the same folder, type:

LogParser.exe -l SHB_Log_File_Name.log

Where "SHB_Log_File_Name.log" is the name of the log file created by SHB. Note that although LogParser.exe references SES, it also works with SHB log files.

AquaGeo, Ltd. | Conifer, Colorado