AGL Logo

FFTools Plug-In: Lake Module (LAKE3D)


Description

LAKE3D is a FEFLOW IFM module that is used to simulate the interaction of groundwater with lakes. The topology of a lake’s bed is defined in three dimensions, making it more versatile than modules that only allow two-dimensional lakes (conceptually, a 2D lake "floats" over the top of the model rather than being embedded into the model mesh). LAKE3D is especially useful for simulating deep lakes or a lake with complex lakebed topology. For example, a lake that forms in a deep, conical mine pit after excavation and dewatering operations have ceased can be simulated more accurately in 3D using LAKE3D. Predicted transient pit-lake levels are used in studies of groundwater and geochemical impacts, including evaluation of flow-through or hydrosink conditions, and of acid generation or evapoconcentration. The user defines the 3D geometry of the pit using the model mesh, and the rates of precipitation, runoff and evaporation. This module is also useful for simulating lakes in a variety of other environments. The current version of LAKE3D does not support solute transport or heat exchange between groundwater and lakes, merging of multiple lakes into one lake or splitting of one lake into several smaller lakes.

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 LAKE3D module has been tested on models with the following characteristics:

Approach

LAKE3D uses an explicit approach and therefore requires that the length of time steps be small enough to avoid numerical dispersion. The lake is simulated using boundary-condition nodes that represent the level of the lake. The lake level at the beginning of the current FEFLOW time step is:

Lake_Levelt = Lake_Levelt-1 + dLL(GW,SW)t-1

Where:

Lake_Levelt is the lake level (lake stage) used to specify water-level and seepage-face boundary conditions on the lakebed during the current time step, t
Lake_Levelt-1 is the simulated lake level at the end of the previous time step, t-1
dLL(GW,SW)t-1 is the change (delta) in the lake level resulting from groundwater (GW) plus surface-water (SW) flows to/from the lake simulated at the end of the previous time step, t-1

In the current time step (t) the module updates the fixed-head and seepage-face boundary conditions on the lakebed, and then FEFLOW solves the groundwater condition based on the updated lake boundary conditions. For each lake, the general procedure is:

  1. At the beginning of the current FEFLOW timestep (TS), using the known lake stage, LAKE3D sets boundary conditions: recharge on dry lakebed, seepage-face nodes, and boundary conditions on the lakebed that are below the lake's stage (type depends on chosen method descibed below). The known lake stage is either the initial stage set by the user or the stage computed by LAKE3D at the end of the previous TS. If this is the first TS when the lake exists, then LAKE3D computes the lake's current area and volume, otherwise the module uses the previously computed area and volume.
  2. FEFLOW selects the length of the TS (dT) based on user specifications, and then FEFLOW solves the groundwater (GW) flow equation. After solving the GW equation, the absolute simulation time equals the time at end of the current TS.
  3. LAKE3D computes a GW balance (using intrinsic FEFLOW functions) to obtain the amounts of GW flow to and from the lake over the TS just completed.
  4. LAKE3D computes a SW balance to obtain the amounts of SW flow to and from the lake over the TS just completed. The module uses (A) FEFLOW's dT, (B) SW rates specified by the user for the current lake stress period, and (C) the surface area of the lake at Step 1 (the beginning of the TS). LAKE3D writes the current lake data to the lake log file.
  5. LAKE3D uses the GW+SW flows to compute a new lake volume, area, and stage at the end of the current TS. These values are used at the beginning of the next TS.
  6. If the FEFLOW simulation time is less than or equal to the end of the lake's period of existence, the module returns to Step 1. Otherwise, it implements the user's specifications for post-lake conditions.

LAKE3D considers precipitation onto the lake, run-off into the lake from the dry areas of the lakebed, evaporation from the surface of the lake, outflow of water from the lake via a spillway and inflow/outflow of water via a stream, canal or some other physical feature. These specified flows can vary with time according to lake stress periods that the user defines. The module also allows the user to represent a lakebed with hydraulic conductivity smaller than surrounding geologic material.

LAKE3D calculates the area, volume and depth of the lake from a user-specified selection of FEFLOW elements. These lake elements, which are inside the lake and not active (the user must inactivate the elements), must represent the geometry of the lakebed and the maximum volume of the lake with an appropriate level of accuracy to ensure reasonable results.

The boundary conditions that represent a lake over time are assigned at the interface between the lake elements and adjacent active groundwater elements. LAKE3D can simulate any number of lakes, but currently does not support the coalescing of lakes or subdivision of one lake into two or more lakes. However, under certain configurations, LAKE3D can be set up to approximate these situations; the user is responsible for proper handling of all LAKE3D input and output.

LAKE3D has two methods of computing the Stage-Area-Volume (SAV) data for a lake: (1) a "step" method and (2) a "smooth" method (default method). The figure below illustrates a cross-section through a FEFLOW layered prismatic mesh where a lake is to be simulated:

approach

To compute "step" plan-view (horizontal) areas as a function of elevation, LAKE3D projects a horizontal plane through each lake node, and through the spillway elevation (SWE) and the lake-bottom elevation (LBE). For each projected plane, the lake area is approximated as the sum of the contribtions from lake elements the plane intersects ("computed areas" in the figure below):

approach

Note that LBE cannot be below the lowest-most node of the lowest lake element, and that SWE must be above LBE.

If the "smooth" SAV option is selected, then the "step" areas are smoothed somewhat. The figure below shows a comparison of "step" versus "smooth" results for the example above:

approach

Next, the stage-volume curve is computed for the "step" method. "Step" uses the same set of horizontal planes to compute the individual volume between two adjacent planes. The individual volumes are summed to compute the accumulated "step" volume as a function of stage. If the "smooth" SAV option is selected, then the volume will be smoothed, and the accumulated "smooth" volume may be consistently smaller than the "step" volume depending on the finite-element mesh. For the example, the results are:

approach

For each lake, LAKE3D records the estimated stage versus lake surface area, surface area of the dry lakebed and lake volume in a log file (see LAKE3D Output below).

During a FEFLOW simulation, at the end of a time-step in which a lake is simulated, LAKE3D updates the volume of a lake using simulated groundwater flows to/from that lake plus any external flows to/from the lake (for example, from incident precipitation onto the surface of the lake). From the updated lake volume, the lake stage and area are then updated by linearly interploating the "step" or "smooth" SAV data:

approach

LAKE3D also interpolates the Stage-Dry Lakebed Area Curve to obtain an updated area of the lakebed.

The resolution and quality of the user-specified FEFLOW mesh is critical to the successful simulation of a lake.

LAKE3D currently supports three methods of assigning lake boundary conditions:

Under all methods:

Future releases of LAKE3D may allow:

Configuring the LAKE3D Module

LAKE3D is enabled in the LAKE3D tab of the FFTools Plug-in: 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 LAKE3D tab. The checkbox in the upper right corner enables LAKE3D. You must create an external input file from which LAKE3D can import your setup. Imported data can be stored in the FEM (checkbox "Save configuration data in...") so that when the simulation file is loaded again, the configuration data for the LAKE3D module is read from the FEM file instead of an external input file. However, revisions to the LAKE3D configuration must be imported from a revised external input file. If the option (checkbox) to save LAKE3D data in the FEM is selected when new data is imported, the revised data will replace all LAKE3D data previously stored in the FEM.

External input and output LAKE3D data (i.e. data not stored in the FEM) 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. However, LAKE3D has limited debugging capability and does not support run-time alteration of the configuration specification, so the user is responsible for checking that the configuration is correct.

Defined lake elements and nodes can also be exported to selection-set XML files. Note that lake nodes are nodes touching the lake elements; these are automatically selected by the module based on the lake elements specified by the user.

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 LAKE3D operations, including when LAKE3D nodes are assigned and what the specified water level is. The user also specifies optional output regarding transient changes to the status of LAKE3D elements (NOTE: this optional output will save information for every LAKE3D element for every time step, which may result in a very large text file). Further information is provided under "LAKE3D Output" below.

LAKE3D Properties and Data Setup Tab:
Lake3D Setup Tab

NOTE: Flows to and from the lake that are not related to groundwater are specified using lake "stress periods." These stress periods are discrete intervals of time during which the rates of specified flows to/from the lake are defined. The stress periods for a lake must be entered consecutively in time. The beginning time of a stress period must equal the ending time of the previous stress period. The exception is the first lake stress period for a lake, which specifies when a lake first becomes active, which can be after the beginning time of the FEFLOW simulation. The number of lake stress periods is not limited. The simulation may perform best if the lake stress periods align with other stress periods in the FEFLOW model (for example, when pumping wells switch rate). Automatic time stepping may over-ride when lake stress periods begin and end because the LAKE3D module does not control time stepping of the FEFLOW simulation.

NOTE: All Lake elements must be inactivated by the user using SES, FEFLOW's interface, or some other method. At the beginning of a model run, LAKE3D checks that all lake elements have been inactivated. If they have not, a warning will be logged and displayed, but the simulation will continue. During the time a lake is simulated, any active elements in the lake will cause simulation errors resulting from superposition of groundwater and lake systems.

NOTE: The elements that contain the lake must not be at any edge of the finite element mesh. This can cause a numeric overflow in the FEFLOW budget. If this is identified the lake will be inactivated (LAKE3D will issue an error message).

NOTE: when a LAKE3D-FELOW simulation is aborted by the user or for some other reason, the easiest way to restart the simulation is to (1) using LAKE3D results from the aborted simulation set up a new LAKE3D configuration file that sets new initial lake levels equal to levels at the end of aborted simulation, (2) open the DAC of the aborted simulation and import the new LAKE3D configuration file, (3) either run this model as is, or save the model as a new FEM that can then be used to continue the aborted simulation. It is recommended that new file names be used to avoid over-writing previous simulation information. Also note that if using "varying time steps" (under FEFLOW "Problem Settings"), then the user, depending on how the restart is implemented, may need to adjust the setup to reflect the new initial time and time stepping.

Format of the LAKE3D Setup File

In FEFLOW, each element and node has a unique integer identifier that allows FEFLOW and LAKE3D to apply properties and calculations to specific elements or nodes. These same integer identifiers, or “IDs”, are used in LAKE3D to specify the location of the elements that define a lake.

The LAKE3D input file is composed of one or more LAKE sections. The input data for each lake starts with the word “LAKE”. Note that, even though spaces between inputs are shown, they are not required.

Notes: (1) Input data that is only required for certain settings is denoted by an asterisk, (2) Text in italic font indicate an input that is either an explicit letter or word, (3) comments can be added to the input file using a "!" (see "Example" below).

Where:

Note: Unless the user takes steps to force FEFLOW time stepping to coincide with a lake's StartTime(m) and EndTime(m), model simuation time may not coincide exactly with lake stress-period times.

LAKE3D Output

If the user saves simulation data in a FEFLOW DAC output file, some of the simulation results for a lake will be available in that file:

If the user chooses to save a LAKE3D log file (strongly recommended), LAKE3D will record simulation data specific to the simulated lakes while the model is running. This information includes water flows and volumes for each time step. Additional water budget calculations may also be saved by using the FFTools BUDGET module.

This LAKE3D log file contains two main sections, (1) a section listing the physical characteristics of the lake followed by (2) a section listing LAKE3D water budget results.

In the second section of the log file, all values pertain to the beginning of the current FEFLOW time step unless "_pts" is appended: "_pts" indicates a "post-time-step" value (a value computed at the end of the time step).

Example

An example of an input file is as follows (this input is from the example model provided with FFTOOLS):

LAKE,1,3 !begin input for lake number 1, use the "Hydraulic-Head only" SolMethod
! this is a comment line
931.0,1445.45,0,932.0 !initial lake stage (dry), spillway elevation, lake bottom does not match lake elements (0), elevation of lake bottom
! the next line specifies an element-selection file, Pit.xml
XML,[ModelFEMPath]\config\pitlake\Pit.xml
365.0,3650.0,0.0065,0.00065,-0.032,0.00175,0.0 !start time, end time, pptn rate, dry-pitwall recharge rate, evap rate, runoff rate, external rate
3650.0,36500.0,0.007,0.0007,-0.021,0.00175,0.0 !start time, end time, pptn rate, dry-pitwall recharge rate, evap rate, runoff rate, external rate

See also: Tailing Impoundment and Mine Pit example.

AquaGeo, Ltd. | Conifer, Colorado