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:
- FEFLOW versions 7.x
- Three-dimensional mesh using layered prismatic elements (prismatic elements having a triangular shape in horizontal cross section)
- All slices set to "fixed" in FEFLOW's "3D Layer Configuration..." editor
- FEFLOW Problem Class: Richard's equation for variably-saturated media
- State: Transient
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
- Lake_Levelt-1 is the simulated lake level 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:
- 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.
- 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.
- 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.
- 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.
- 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.
- 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:
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):
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:
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:
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:
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:
- Fluid-Transfer/Hydraulic-Head: Fluid-transfer BCs are assigned at submerged nodes on the lakebed, and Hydraulic-head BCs are assigned to nodes on the lakebed located above the level of the lake. The water-level assigned to submerged nodes is set equal to the lake level. The water-level assigned to nodes above the lake is set equal to the elevation of the node (elevation of the lakebed). Lakebed nodes that are above the lake level and the adjacent water table are deactivated. If the lake has water in it, but the adjacent groundwater level is everywhere below the lake level, the submerged nodes are further constrained to allow only seepage out of the lake. For a lake with water in it, the minimum number of submerged lakebed nodes is three (a requirement of FEFLOW's "Fluid-transfer BC"). NOTE: This method requires the user to specify the properties of the lakebed using FEFLOW's "In-transfer rate" and "Out-transfer rate" material properties.
- Fluid-Transfer: This method uses only Fluid-transfer BCs for all active lake nodes, but otherwise works the same as the first method. For a lake with water in it, the minimum number of submerged lakebed nodes is three (a requirement of FEFLOW's "Fluid-transfer BC"). NOTE: This method requires the user to specify the properties of the lakebed using FEFLOW's "In-transfer rate" and "Out-transfer rate" material properties.
- Hydraulic-Head: This method uses only Hydraulic-Head BCs for all active lake nodes, but otherwise works the same as the first method. For a lake with water in it, the minimum number of submerged lakebed nodes is one. NOTE: The hydraulic properties of the lakebed must be specified as part of the groundwater system (the "In-transfer rate" and "Out-transfer rate" material properties are not used).
Under all methods:
- A Seepage-Face boundary condition will be assigned at all LAKE3D nodes that lie above both the surface of the lake and above the local water table at the start of the current timestep. For the Fluid-Transfer/Hydraulic-Head and Hydraulic-Head methods, a the seepage face is simulated in FEFLOW with a constrained Hydraulic-head BC where the "Max. flow-rate constaint" is zero. For the Fluid-Transfer method, the the seepage face is simulated in FEFLOW with a constrained Fluid-transfer BC where the "Max. flow-rate constaint" is zero. Under any of these methods, if, by the end of the current timestep, the constraint has not been invoked, outflow (seepage) to the lake will be recorded at the end of the time step.
- If all or part of a lake is dry, LAKE3D will apply recharge over the dry lakebed (including lakebed that lies above the SWE). This recharge rate is specified in the LAKE3D input file (described below). If the rate in the input file is zero, LAKE3D applies the rate specifed using FEFLOW's interface to set "In/outflow on top/bottom" data.
- The user must inactivate elements that represent a lake during the time the lake is active. Doing so avoids superposition of groundwater and surface water systems. If LAKE3D finds any active elements in a lake, LAKE3D will issue a warning message but the lake will be simulated.
- For any lake that the user has specified will cease to exist during a FEFLOW simulation, LAKE3D will stop simulating the lake at the end of the last stress-period for that lake. LAKE3D will remove any boundary conditions related to the lake and also reset the recharge rate over the lakebed to the value specified before the lake existed. Finally, it is the user's responsibility to re-activate elements and specify boundary conditions as needed.
- The user should avoid setting boundary conditions on lake nodes during times that a lake is actively simulated by LAKE3D (LAKE3D will replace any such boundary conditions). The user can set boundary conditions at such nodes before a lake is actively simulated. After the end of the last stress period for a lake, LAKE3D will not reinstate any boundary conditions at former lake nodes that were specified by the user before the initial time a lake is simulated, but the user can set boundary conditions at such nodes after this time.
Future releases of LAKE3D may allow:
- Changes in the shape of a lakebed over time. This feature could be used, for example, to simulate excavation/infilling to increase/decrease the volume of a lake;
- User-specifed lake stage-area-volume data;
- The use of CRB nodes in place of Fluid-Transfer BC nodes; or
- A semi-implicit approach (a fully implicit approach is currently not feasible with the IFM tools available to developers).
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:
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).
- Input L1, start of new lake specification
LAKE, LakeID, Sol_Method
- Input L2, for the current lake:
InitialStage, SpillwayElev, LakeBottomFlag, LakeBottomElev*, SAVMethod
- Input L3A, L3B, L3C or L3D. Use only one of the following:
- Input L3A: XML FEFLOW Element Selection file used to define every element in lake (the easiest way to define lakes):
XML, xmlFileName
- Input L3B: Every lake element is explicitly defined:
E, ElemNo(1), ElemNo(2), ElemNo(3), ... ElemNo(n)
- Input L3C: Define surface elements and the number of layers of the lake (top to bottom):
S, SurfElemNo(1), SurfElemNo(2), SurfElemNo(3), ... SurfElemNo(n), Layer(1), Layer(2), Layer(3), ... Layer (n)
- Input L3D: Define vertically stacked elements (elements between stacked elements assumed to be part of the lake volume):
V, VElemNo(1), VElemNo(2), VElemNo(3), ... VElemNo(n)
- Input L3A: XML FEFLOW Element Selection file used to define every element in lake (the easiest way to define lakes):
- Input L4, repeat for each lake stress period; for the current lake, specify for each lake stress period, for a total of “m” stress periods:
StartTime(1), EndTime(1), PrecipRate(1), RchRate(1), EvapRate(1), SwroRate(1), ExternalRate(1)
StartTime(1), EndTime(1), PrecipRate(2), RchRate(2), EvapRate(2), SwroRate(2), ExternalRate(2)
…
StartTime(m), EndTime(m), PrecipRate(m), RchRate(m), EvapRate(m), SwroRate(m), ExternalRate(m)
Where:
LakeID
: Indicates the number of the lake, for example "4". ID’s maybe any unique positive integer and do not have to be consecutive.
Sol_Method
: An integer number that specifies the type of boundary conditions to be used in simulating a lake:- "1" directs LAKE3D to use Fluid-Transfer/Hydraulic-Head hybrid method (see “Approach” first option),
- "2" directs LAKE3D to use Fluid-Transfer only method (see “Approach” second option), or
- "3" directs LAKE3D to use Hydraulic-Head only method (see “Approach” third option)
- NOTE: Methods 1 and 2 require the user to specify the properties of the lakebed using FEFLOW's "In-transfer rate" and "Out-transfer rate" material properties.
InitialStage
: Elevation of the initial lake stage (set this equal to or below the lowest elevation of the lakebed to specify an initially dry lake).SpillwayElev
: The elevation of the spillway is the maximum elevation that the lake surface can attain (water flows out of the lake via a spillway; this water is permanently removed from the simulation). It is assumed that the spillway will remove all excess water without delay so that the lake level will never exceed the spillway elevation.LakeBottomFlag
: An integer number with one of two possible settings:- Set to "0" to specify the base elevation of the lake. The base elevation is assumed to be horizontal and must be set to a value that is higher than the bottom of the lowermost lake elements. In this case, the volume encompassed by the lake elements is reduced due to the specified horizontal bottom, but areas of the lakebed above the specified horizontal base are still defined by lake elements; or,
- Set to "1" to specify that the base of the lake matches the elevation of the bottom surface of the lowest lake elements.
- LAKE3D will disable any lake if
LakeBottomElev
equalsSpillwayElev
, or ifLakeBottomElev
is below the elevation of lowest lake node.
LakeBottomElev
: If “LakeBottomFlag” is “0”, use this parameter to set the elevation of the horizontal base of the lake. If “LakeBottomFlag” is “1”,LakeBottomElev
should be omitted to avoid erroneous configurations.SAVMethod
: An integer number that specifies how to compute the lake's Stage-Area-Volume (SAV) curves. Specify one of two settings:- Set to "0" to direct LAKE3D to smooth the SAV curve. This is the default SAV calculational method. This smoothing may improve LAKE3D's performance
by reducing abrupt changes in a lake's area and volume with stage. If
SAVMethod
is not specified, then LAKE3D will default its value to "0". The "smooth" method averages the "step"-method computed areas at two adjacent lake-nodes having unique elevations as the "smoothed" area. The "smoothed" volume is computed as the elevation difference between the two adjacent lake nodes times the average area (the pseudo nodes of the "step" method are ignored); or, - Set to "1" to direct LAKE3D to use the "step" method which may, depending on the mesh, result in abrupt changes in lake area versus lake stage. The "step" method identifies unique lake-node elevations and adds a pseudo node at a small vertical distance above each unique lake node (all nodes connected to the lake are evaluated, and the elevation of a pseudo node is set above a lake node 1/1000 the distance between between two adjacent lake nodes having unique elevations).
- Any other value will direct LAKE3D to use the "smooth" method (
SAVMethod
= 0)
- Set to "0" to direct LAKE3D to smooth the SAV curve. This is the default SAV calculational method. This smoothing may improve LAKE3D's performance
by reducing abrupt changes in a lake's area and volume with stage. If
xmlFileName
: Name of an XML file created from a FEFLOW element selection which defines the lake elements for the current lake. Spaces in the name are allowed. If the file is not located in the same folder as the FEM, then this name must also contain the XML's folder location.ElemNo(n)
: A comma-separated list of every element ID that defines the lake’s volume. Specify "n" element IDs, where “n” is the number of elements that define the lake’s volume. To define the list using several lines, use an underscore character, “_”, at the end of a line. This directs LAKE3D to continue reading the element ID list on the next line. Lake-element IDs can be listed in any order.SurfElemNo(n)
: A comma-separated list of every lake-element ID over the maximum horizontal footprint of lake in the top layer of the model (layer 1). Specify "n" element IDs, where “n” is the number of elements that define the lake’s footprint. To define the list using several lines, use an underscore character, “_”, at the end of a line. This directs LAKE3D to continue reading the element ID list on the next line. Surface element IDs can be listed in any order.Layer(n)
: A comma-separated list defining the layers in the finite element mesh across which the lake penetrates. Specify "n" layer numbers, where “n” is the number of elements listed in the “SurfElemNo” list. Each integer value must match its equivalent SurfElemNo() entry (e.g. for SurfElemNo(1) there must be a corresponding Layer(1) value, for SurfElemNo(2) there must be a corresponding Layer(2) value, and so on). The value of Layer() should be in the range of zero (0) to the number of layers in the model. If a “0” is specified for a particular SurfElemNo(), the lake does not exist in that vertical column of elements. To define the list using several lines, use an underscore character, “_”, at the end of a line to direct LAKE3D to continue reading layer numbers on the next line. The example below lists 5 surface elements on the first line, and then 5 matching layers on the next line:S,1,2,3,4,5_
1,2,2,3,1
VElemNo(n)
: A comma-separated list of lake-element pairs. The list must always have an even number of “n” element IDs, and each pair of element IDs must specify two elements that are in the same vertical column of elements in the finite element mesh. The lake is assumed to exist across elements in the layers between and including each element pair. To define the list using several lines, use an underscore character, “_”, at the end of a line to direct LAKE3D to continue reading the element ID list on the next line. Element IDs can be listed in any order. For example, for a mesh that has 100 elements per layer:V,1,2,3,4,5,101,202,203,304,105
V,1,101,5,105,2,202,3,203,4,304
StartTime(m)
: Start time of the mth lake stress period; for the first stress period, this is the time at which the lake becomes active (T).EndTime(m)
: End time of the mth lake stress period; for the last stress period, this is the time at which the lake becomes inactive (T).PrecipRate(m)
: The fixed rate of precipitation over the surface of the lake for the mth lake stress period (a positive value adds water to the lake) (L/T).RchRate(m)
: The fixed rate of groundwater recharge over the horizontal projection of the surface of the lakebed located above the current surface of the lake for the mth lake stress period. A positive value adds to groundwater and a negative value removes groundwater, replacing any other specified rate. Specify a zero rate to direct LAKE3D to use the recharge specified in the FEFLOW "In/outflow on top/bottom" input. This recharge, regardless of how specified, does not contribute directly to the lake’s water balance. Note that this recharge will be applied over any portion of permanently dry lakebed (lakebed above the SWE) (L/T).EvapRate(m)
: The fixed rate of evaporation from the surface of the lake for the mth lake stress period (a negative value removes water from the lake) (L/T).SwroRate(m)
: The fixed rate of surface-water runoff from the surface of the lakebed located above the surface of the lake for the mth lake stress period (this is not a fraction of precipitation; a positive value adds water to the lake) (L/T).ExternalRate(m)
: The fixed volumetric rate of direct (+) inflow (or (-) outflow) to (from) the lake via a source that is external to the lake/groundwater system for the mth lake stress period (a positive value adds water to the lake). This rate is not dependent on the area of the lake (L^3/T).
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:
- For any saved time-step, the status of LAKE3D boundary conditions can be viewed in FEFLOW's interface by displaying FEFLOW's "Hydraulic-Head BC", "Fluid-Tranfer BC", or "Well BC" data. Depending on the method chosen by the user, Hydraulic-Head and/or Fluid-Transfer BC nodes will display LAKE3D nodes that are not limited by contraints. Well-BC nodes will show LAKE3D nodes that are either zero boundary flow or nodes where the boundary flow has been limited by a boundary-condition constraint.
- FEFLOW's "Rate Budget" and "Period Budget" panels can be used to evaluate flows to and from a lake by selecting some or all of the nodes along a lake's bed. Using such selections, FEFLOW will compute the flows for the LAKE3D nodes: the flows for nodes set to Hydraulic-Head will be listed as "Dirichlet BCs" and for nodes set to Fluid-Tranfer will be listed as "Cauchy BCs".
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).
- Section 1. For each lake, SAV data are listed. LAKE3D linearly interpolates between listed values. For each lake:
Lake_ID
: Integer identifier of the lake as specifed by the user.LakeStage
: Elevation of the liquid lake surface defined at lake-node (or pseudo-node) elevations.LakeSurfaceArea
: Calculated area of the lake’s surface at the listed stage based on the SAV method selected.DryLakeBedArea
: Calculated area of the lake’s bed above the listed stage.LakeVolume
: Calculated volume of the lake at the listed stage based on the SAV method selected.Notes
: Possible labels: "Lake Bottom," "Spillway Elevation," "Maximum Lakebed Area," "Pseudo-Node" (an added elevation point where lake area and volume are computed by the "step" SAV method), or "Lake Node" (a node connected to user-defined lake elements that has a unique elevation relative to all lake nodes for a specific lake).
- Section 2. A listing of water-budget results for for each lake and each simulation time step that a lake is active. The units of the values are also listed ("T" means time, "L" means length, "-" means unitless).
Positive budget values represent flow into the lake and negative values represent flow out of the lake:
Begin_Time(T)
: Total simulation time at the beginning of the current time-step.End_Time(T)
: Total simulation time at the end of the current time-step (note: this is the only such value to which "_pts" is not appended).Time_Step_Length(T)
: Length of the current time step.Lake_ID(-)
: User-specifed integer identifier of the lake.Lake_Stage(L)
: Lake stage (level) at the beginning of the current time step.Num_Nodes_Below_Stage(-)
: Number of LAKE3D boundary-condition nodes located at or below the lake stage set by LAKE3D at the beginning of the time step.Max_Constraint_On_Nodes_Below(L^3/T)
: Value of the boundary-condition constraint set at lake nodes located at or below the lake stage set by LAKE3D at the beginning of the time step. LAKE3D does not allow outflow from the lake to groundwater to exceed the volume of the lake.Num_Nodes_Above_Stage(-)
: Number of LAKE3D boundary-condition nodes located above the lake stage set by LAKE3D at the beginning of the current time step.Lake_Area(L^2)
: Lake surface area at the beginning of the current time step.Precip_Rate(L/T)
: Fixed rate of precipitation over the surface of the lake at the beginning of the current time step.Evap_Rate(L/T)
: Fixed rate of evaporation from the surface of the lake at the beginning of the current time step.DLB_Area(L^2)
: Area of the lakebed that is above the lake stage ("dry lakebed area" or DLB) at the beginning of the current time step.DLB_Runoff_Rate(L/T)
: Fixed rate of surface-water runoff from the dry-lakebed surface located above the surface of the lake at the beginning of the current time step.DLB_GW_RCH_Rate(L/T)
: Fixed rate of groundwater recharge over the area of the dry lakebed at the beginning of the current time step. This recharge is not simulated over lake elements located below the surface of the lake.External_Volume_Rate(L^3/T)
: Volumetric rate of direct discharge (or recharge) from (to) the lake via a source external to both the lake and the groundwater system at the beginning of the current time step.Lake_Volume(L^3)
: Volume of the lake at the beginning of the current time step.Comments(-)
: Various notes that LAKE3D generates, for example LAKE3D will indicate if the lake has no water in it at the beginning of the current time step.- Lake Bottom: Bottom elevation of the lake
- Lake Node: Elevation equals the elevation of a lake node
- Pseudo-Node: An elevation that LAKE3D assigned between adjacent lake-node elevations
- Spillway Elevation: The stage at which surface-water outflow from the lake will occur
- Maximum Lakebed Area: Elevation of the highest lake node (equal to or above the Spillway Elevation).
Inflow_To_Lake_From_GW_Vol_pts(L^3)
: Volume of inflow to the lake from groundwater computed by FEFLOW at the end of the current time step.Outflow_From_Lake_To_GW_Vol_pts(L^3)
: Volume of outflow from the lake to groundwater computed by FEFLOW at the end of the current time step.Precip_Volume_pts(L^3)
: Volume of precipitation over the surface of the lake at the end of the current time step.Evap_Volume_pts(L^3)
: Volume of water evaporated from the surface of the lake at the end of the current time step. LAKE3D does not simulate evaporation from the surface of dry lakebed.DLB_Runoff_Volume_pts(L^3)
: Volume of dry-lakebed surface-water runoff into the lake at the end of the current time step.External_Flow_Volume_pts(L^3)
: Volume of flow from or to the lake via a source external to the lake lake at the end of the current time step.Spillway_Outflow_Volume_pts(L^3)
: Volume of discharge from the lake via its spillway at the end of the current time step (either zero or a positive value, this value is the post-time-step volume that exceeds maximum lake volume at spillway elevation).Lake_Volume_Change_pts(L^3)
: Change in lake volume at the end of the current time step.Lake_Stage_pts(L)
: Lake stage (level) at the end of the current time step.Lake_Area_pts(L^2)
: Lake area at the end of the current time step.Lake_Volume_pts(L^3)
: Lake volume at the end of the current 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.