User Guide
Introduction
Anaqsim Modeling Concepts
User Interface
Overview
The user interface consists of one main menu plus three different tabs:
Plot: for graphically displaying map-based inputs and outputs
Data: for editing input data. The data view is automatically displayed when you choose to edit something under the Model Input, Plot Input, or Analysis Input menus.
Log: for displaying text outputs. The run log displays information when files are opened or saved, when the Solve menu is executed, and in response to a number of choices under the Analysis menu.
More information about each of these tabs is given in the following pages. Change from one tab to another by clicking on the tab at the left. The current active tab is highlighted in blue. In the following image, the Plot tab is selected.
Plot Tab
The Plot tab shows the model inputs and results plotted in map view. This view is automatically shown after opening an existing model, and after making a plot under the Make Plot menu. Most of the Plot view is a map view of the model that can display a basemap, model elements, simulated heads, flow vectors, pathlines, etc. The plot area has scroll bars that allow you to shift the view left/right and up/down while retaining the same scale. The scroll wheel on most mouse devices will cause the view to zoom in and out. Pressing down on the scroll wheel and moving the mouse will allow you to pan the view with most mouse devices.
On the upper left is a separate plot view menu (Plot File, View Manager,...Zoom Previous) that applies just to the plot. Choices in this menu allow you to zoom to a different view, save or print the plot, digitize and edit coordinates, or add annotations to the plot. See the tutorial videos at the website to see the various functions in the plot view menu explained and demonstrated. Right-clicking your mouse over the plot brings up a context menu with many choices for digitizing, editing line boundaries, and generating outputs related to the cursor location.
Context Menu (right click over plot)
When the cursor is over the plot, you may bring up a context menu by clicking your right mouse button. This menu allows the following options, which are handy short cuts while building, editing, and analyzing a model:
Edit Domain Properties - switches to the data view with a domain data table displayed and one highlighted row: the row of the domain where the cursor is located.
Edit Nearest Well - switches to the data view with a well data table displayed and one highlighted row: the row of the well nearest the cursor location.
Edit Nearest Line Boundary - switches to the data view with a line boundary data table displayed and one highlighted row: the row of the line boundary nearest the cursor location.
Edit Area Sink that Applies Here - switches to the data view with an area sink data table displayed and one highlighted row: the row of the area sink that applies at the cursor location.
Digitize - includes the most commonly used commands (Point, Polyline, Clear Digitizing Marks) from the Plot View/Digitize menu, but without the pop-up instructional windows. These are efficient for experienced users.
Edit Line Boundary - allows the same operations (Insert Vertex, Delete Vertex) as are found in the Plot View/Digitize menu, but without the pop-up instructional windows. These are efficient for experienced users. One line boundary, spatially-variable area sink (SVAS) polygon boundary, or vertical leakage polygon must be selected before executing either of these menu items.
Set Plot Window to Current View - this is the same as Plot Input/Set Plot Window to Current View, setting the window for subsequent plots to the current view.
Set Plot Window to Entire Model - this is the same as Plot Input/Set Plot Window to Entire Model, setting the window for subsequent plots to the entire model.
Check Nearest Well Head and Discharge - this writes the head and discharge of the nearest well to the Log tab.
Check Nearest Line Boundary Condition - this allows you to check the accuracy of the approximation of boundary conditions along the particular segment of a line boundary that is closest to the cursor when this is selected. This causes a graph to be made of the conditions on that boundary segment. The graphs vary depending on the type of line boundary. You may export a bitmap graphic of the graph or the underlying data (see the Exporting X-Y Graphs topic). Prior to release 2016-2, this feature was under the Analysis menu.
Graph Head Hydrograph(s) Here, All Levels - for a transient simulation, this causes hydrographs (graphs of head vs. time) to be made that show heads in all model levels at the location of the cursor. These graphs do not contain the initial heads (time=0) at these locations. If you want hydrographs that include initial heads, use Analysis Input/Hydrograph Points and Analysis/Head Hydrographs and Analysis/Drawdown Hydrographs.
Data at Cursor Location
To the left of the plot and below the plot menu is an area that displays the coordinates of the cursor, model information and model results (X,Y Coordinates, Model Level, Domain Name, Head,...) at the location of the cursor. As you move the cursor, this data updates based on the cursor location.
Each item may be hidden or visible; to toggle this, click on the triangle to the left of the label. If the window is not tall enough to display all items, use the scrollbar immediately to the right of this area.
In transient models, the values reflect the time step of the selected period, which ends at the time listed. Head and interface values are at the end of the time step at the time listed. Discharge-related values apply over the duration of the time step listed.
The model results shown are described below.
Head Above - Head is the difference in head from the level above to the level of the plot.
Head - Head Below is the difference in head from the level of the plot to the level below.
Interface Elevation is the elevation of the fresh-salt interface (only applies in models with fresh-salt interface domains).
Domain Discharge is the specific discharge times the saturated thickness, which equals the discharge in the domain per unit length normal to the discharge.
Flow Direction is the direction of the specific discharge or average linear velocity vector, assuming the positive x axis is zero degrees.
Top of Model Condition is the condition at the top of the topmost domain of the model at this x,y, defined by the area sink input.
Bottom of Model Condition is the condition at the bottom of the bottommost domain of the model at this x,y, defined by the area sink input.
Modeled Extraction is the extraction per area γ [L/T] that Anaqsim is modeling at the point, using the spatially-variable area sink functions. This quantity is defined by equation 13 of Fitts (2010).
Extraction from Heads is defined as:
where Lt is leakage out the top of the subdomain computed using head differences and vertical hydraulic conductivities, Lb is the leakage out the bottom of the subdomain computed similarly, and S ∂h / ∂t is the transient discharge/area into storage computed using the head change over a time step and storativity. At spatially-variable basis points, this equals the modeled extraction, but between basis points, the two are unequal, but close if the basis point spacing is small enough. This quantity is defined by equation 6 of Fitts (2010). In a transient simulation, this cannot be computed for the first time step, since the initial head at time zero at the cursor location is not known and therefore ∂h can't be computed.
Leakage out Top is the leakage out the top of the domain, Lt as defined above [L/T].
Leakage out Bottom is the leakage out the bottom of the domain, Lb as defined above [L/T].
Storage Flux is the flux into storage in a transient model, S ∂h / ∂t, as defined above [L/T].
Leakage Factor Above is the leakage factor (LF) computed for upward leakage from the subdomain. If the subdomain is at the top of the model with no overlying level, the leakage factor is computed as:
Where T is the transmissivity of the subdomain, b is the saturated thickness of the subdomain, Kv is the vertical hydraulic conductivity of the upper half of the subdomain. If the subdomain has another subdomain overlying it, the leakage factor is computed with the following equation:
Where Ta is the transmissivity of the subdomain above, ba is the saturated thickness of the subdomain above, and Kva is the vertical hydraulic conductivity of the lower half of the subdomain above. Leakage factors are used as guidance for determining appropriate basis point spacing for spatially-variable area sinks. See the discussion under spatially-variable area sinks.
Leakage Factor Below is the leakage factor (LF) computed for downward leakage from the subdomain. It is computed in a manner analogous to that described above for Leakage Factor Above.
Data Tab
The data tab allows you to edit model inputs, plot inputs, and analysis inputs with a data grid component that displays data from the underlying data tables. To display and edit a table, make a selection under the Model Input, Plot Input, or Analysis Input menus.
There is a context menu that pops up when you right-click over the grid. Options in this menu include
Paste New Rows - this pastes in new rows of data that are tab-delimited between columns. This format allows you to paste data copied from spreadsheets like Excel.
Copy Selected Rows - this copies the selected rows to the system clipboard, which can then be pasted into spreadsheets like Excel.
Copy All Rows - this copies all rows in the spreadsheet to the system clipboard, which can then be pasted into spreadsheets like Excel.
Using the Data Grid
A data table is displayed in the grid when you select an item under the Model Input, Plot Input, or Analysis Input menus. The displayed data is linked to one of several database tables, and when you edit the displayed data, the underlying data table is updated.
The table of data is displayed with headers that define each column, such as Label, Domain, Parameters_per_line, ... as shown below.
You can move from cell to cell with the arrow keys or using the mouse. The current row is highlighted blue. You can enter new values by navigating to a cell and typing a new entry, or you can double-click on a cell to edit cell contents with a text editor, as shown below, where the contents of the cell with "101" is being edited.
When you enter a value in a grid cell, the underlying database is updated when you press enter or move to a different cell. At this point the cell value is checked to make sure it is compatible (e.g. a positive real number for hydraulic conductivity). If the value is incompatible, an error message is displayed and you must correct the cell entry. Be sure to remember to press enter or move to another cell after editing the value in a cell, otherwise the value will not be changed in the database.
New rows are created by editing the blank row at the bottom of the table. A new row of data is entered into the underlying data table only when you press enter after editing the row, at which point a new blank line appears below the line just entered. The following two screen shots shows a new 2nd row before it has been entered in the database (no blank row shows below it), and after (blank row below 2nd row).
In data tables that contain multiple rows, the leftmost field is often called Label, and it is always displayed even if you scroll far to the right. No entry is required in this field, and it accepts any text. It is wise to fill in a text label in this field (e.g. “PW-103” for a pumping well). The label will help you know which feature this row represents, and many analysis outputs make use of this label. Also you can sort the data based on entries in this column to easily find the row you want. The contents of the table can be sorted by clicking on the column header. Clicking a second time reverses the sort order. It is a good idea to choose labels that easily allow you to sort features. For example, if you want to easily find a group of wells on property A, you could give them labels such as "A_MW102", "A_MW105", "A_MW113"... so they would be grouped together after sorting by the label column.
Column widths are automatically adjusted to fit the contents. You can increase or shrink column widths by dragging the left or right the vertical line that separates columns in the header (top) row. Double-clicking on this vertical line automatically resizes the column width to fit the contents.
Some columns, like the Parameters_per_line column in the table shown above, are edited using a drop-down list of choices. To see the list, double-click the cell, then select the item you want.
Other columns, like the Coordinates column, contain buttons to edit or select data; these are edited by clicking on the button.
Number Formats
All data grid cells that expect numerical input have common format constraints. You can input real numbers with formats such as the following:
1256.82
0.004
1.4e-2
The last one is scientific notation for 1.4x10-2.
You should not insert commas to mark thousands, millions, (e.g. 1,200,000) as the comma may be interpreted as a decimal mark. In North America, the convention is to use a period for the decimal marker. In Europe, the comma is often used as a decimal marker. There is a Windows operating system setting to switch between these modes. Often, European users need to adjust these settings to use Anaqsim.
Editing Coordinates
In many of the data input tables, there are columns and cells that display an "Edit" button in the Coordinates column. When you click the button, a text box window pops up and you enter coordinate data there:
Often, you will digitize the coordinates in the plot tab and then paste the coordinates into this text box window. Alternately, you can just type coordinates in. The OK button records the edited coordinates and the Cancel button does not.
Once input, coordinates can be edited graphically by selecting the line boundary and then moving the vertexes or inserting or deleting vertexes.
Deleting Data Rows
Delete one or more rows of data in the data table by selecting rows and then pressing the Delete key. Row(s) are selected by clicking (and dragging for multiple rows) in the leftmost column of the grid. A dialog will ask you if you really want to delete those records from the data table.
Importing and Exporting Data
To import data from Excel into a data table, highlight a block of data in an Excel sheet that corresponds to row(s) of data in a data table, copy that block in Excel, then right-click over the data grid and select Paste New Rows. This will add these copied rows to the data table. Make sure that the columns in the copied block match the columns in the data table. Data in Coordinates columns cannot be be pasted in due to their multi-line structure, but all other columns can be pasted in. In the case of a Coordinates column, a paste operation leaves that blank and you must enter the coordinates by clicking on the Edit button in that column.
To export rows of data to Excel or a text file, select rows of data (see section above) and then right-click over the data grid and select Copy Selected Rows. After doing this the rows of data are in the computer’s clipboard as tab-delimited data, which can then be pasted into Excel or into text files.Log Tab
The Log tab holds the run log, which is an area that displays text output from the program. The run log continues to accrue more text as you execute various tasks such as updating license information, opening a file, solving the system of equations, checking boundary conditions, checking calibration results, or closing a file. If the text in the run log gets long enough, a scroll bar will appear to let you scroll through the entire log, as shown below. You can select all or a portion of the text in the run log and cut, copy, and paste this text. This is an easy way to move text results to another document.
Menu Keyboard Shortcuts
You can access common menu items with keyboard shortcuts by pressing the key sequences as listed below. Many are standard Windows shortcuts.
Ctrl-O
File/Open
Ctrl-S
File/Save
F12
File/SaveAs
Ctrl-W
File/Close
Alt-FE
File/Exit
Alt-S
Solve
Alt-PA
Make Plot/All Selected Features
Alt-PE
Make Plot/Elements Only
Alt-V
Switch View
Alt-H
Help
General Modelling Sequence
Menus
File Menu
This menu allows you to open and save input files and create files that are used for creating initial head conditions for transient models.
Open
This selection opens a dialog that allows you to find and open existing input files (.anaq extension). These files store the data you edit under the Model Input, Plot Input, or Analysis Input menus in XML file format. XML is a common ASCII database file format. You could edit these directly with a text or XML editor, but that is not recommended since it risks corrupting input with improper values or format. When you open a file, the layout of elements in the model is drawn to the plot view.
If you want to be able to open .anaq files by double-clicking on them in Windows Explorer, in addition to opening them from the File/Open menu, the Windows operating system must associate .anaq files with Anaqsim. In case this association was not established during installation you can manually do it with Windows Explorer. To do this, locate a .anaq file in Windows Explorer. Right click on the file and then select Open with, then select Chose default program. In the dialog that pops up, check the box next to Always use the selected program to open this kind of file and then select the Browse button and browse to find the Anaqsim.exe file in the Program Files / Fitts Geosolutions / Anaqsim software directory. Now Windows will associate .anaq files with Anaqsim.exe, and you can open any .anaq file directly from Windows Explorer by double-clicking on it.
Save, Save As
The Save As option brings up a dialog that allows you to save your input to a file with a new name. Using Save saves the input to the same file name. If you have yet to save input and have no filename, it will function like Save As. When you save, you save the input data tables to an XML format database file with the .anaq extension.
Close
This closes the input you are working on and clears all the associated data tables in memory. After selecting Close, you may begin editing a new model.
Save locations for Initial Transient Heads
A transient model needs initial heads so it can compute the head change that occurs during the first time step. These values are needed at the location of each basis point in each spatially-variable area sink, which account for storage fluxes. The initial head values come from a pre-existing model, which could be steady or transient. Initial heads are also retrieved for discharge-specified wells, hydrograph points, and transient line conditions (see Analysis Input Menu for the last two items).
The initial conditions model must have the same number and extent of layers as the transient model, at least in areas with basis points, wells, hydrograph points, or transient line condition lines. When the initial head locations are written, each location is identified by its x,y coordinates and its layer. This is new in release 2020-1; prior releases wrote the x,y coordinates and the internal domain number. The change made in release 2020-1 allows different domain configurations between the initial and the transient models, which can be helpful. Because of this change, you must not mix initial head location or initial head files created prior to release 2020-1 with a release 2020-1 or later model. To avoid incompatibility when you switch to release 2020-1, re-create the initial head location file and the initial heads file as outlined below using release 2020-1.
To create a transient model that has a proper set of initial heads, these steps are necessary:
Make sure the transient model you begin to create has been saved to it's own unique file name, different from the file that contains the input for the model that will provide the initial condition heads.
Set up the transient model (i.e. uncheck Steady under Model Input/General, establish the time step sequence under Model Input/Time Steps, adjust input for the transient case, set up all spatially-variable area sinks, make the appropriate settings under Analysis Input/Hydrograph Points and Analysis Input/Transient Line Conditions, etc.
Select File/Save Locations for Initial Transient Heads, which saves the locations for transient starting heads from the transient model (these are the locations of all basis points associated with spatially-variable area sinks in the transient model and locations of hydrograph points, wells, and transient line conditions. This saves the level and the coordinates of each of these to a binary file with the .ihl extension.
Close the transient model.
Open the initial conditions model (the one that represents conditions at the start of the transient run). Solve it. Select File/Write Initial Transient Heads, click on the initial heads file you would like to use for this simulation, and click Open. This reads in the locations saved from the .ihl file saved in step 3.
A dialog opens asking you to name the binary initial heads file. The default name is the same as the initial conditions input file but with the .hds ending. Anaqsim then writes the initial heads at the locations in the .ihl file to a binary file with the .hds file extension.
Close the initial conditions model.
Open the transient model. After checking that all model parameters are set correctly for the transient run, select Solve. At this point Anaqsim will ask you to select the .hds file containing the initial heads created in step 6.
When you solve the transient model, the heads are read in and used to determine the head change in the first time step at each basis point.
Write Initial Transient Heads
See the discussion under Save Locations for Initial Transient Heads for an overview of setting up initial heads for transient models.
Save Solution
This allows you to save the model solution after you have solved. Later, you can open the model input file, then load the saved solution, and avoid the "Solve" step. This is particularly handy for large models that have longer solve times, and allows you to save your solution and come back to it later for making plots or doing analysis of the solution. All model objects with their strengths are saved in a binary format, to a file that has the same name as the input file, but with the ".solu" filename extension instead of ".anaq".
Load Saved Solution
This allows you to load in a previously saved model solution. To make use of this, first open the model input file for the model, then load the saved solution, which avoids the need for the "Solve" step. This is particularly handy for large models that have longer solve times, and allows you to save your solution and come back to it later for making plots or doing analysis of the solution. All model objects and their strengths are read in from a binary file that has the same name as the input file, but with the ".solu" filename extension instead of ".anaq".
Export Input Data to Excel File
This causes the entire input database to be written to one excel file in the same directory as the input file (*.anaq), written to a file with the same name but the excel suffix (*.xlsx). The Excel file has multiple sheets, one for each data table. Each sheet contains the same headers as the data tables plus all rows of input. This is a handy way to document model inputs all in one readable file.
Exit
This exits Anaqsim. A dialog asks if you want to save the current input before exiting. The same is achieved by clicking on the red "x" at the upper right corner of the Anaqsim window.Edit Menu
This is like edit menus in most other Windows applications with Cut, Copy, and Paste menu choices. These functions are also available with the usual keyboard shortcuts: control-x (cut) control -c (copy) control -v (paste).Model Input Menu
General
This item has only one line of input. The first item is checked if the model is steady-state and not checked if the model is transient. To simulate storage fluxes in transient models, spatially-variable area sinks (SVAS) are required. If you try to solve a transient model without any SVAS, Anaqsim gives an error message.
The other three items are text values that document the length and time units used in the model, and provide comments to document the run. The model uses consistent length and time units throughout. For example, if you chose meters and days, then hydraulic conductivity, specific discharge, and average linear velocity are in m/day, well discharges are in m3/day, and time markers on pathlines are in days.
Solution
The two data tables under this menu define settings involved in solving the system of equations in your model. The first defines parameters involved in solver iterations, and the second lays out the solution accuracy needed before iteration ceases.
Solve Settings
Underrelaxation is a parameter that governs how unknown strength parameters are updated at each iteration. If underrelaxation is 1.0, the new strength parameter equals the parameter from the most recent iteration. If this value is 0.7, the new strength parameter is weighted 70% by the parameter at the most recent iteration and 30% by the parameter at the previous iteration. Lower values help damp out oscillations in parameter values from iteration to iteration and may improve convergence in some situations. Higher values close to 1.0 speed convergence when oscillation is not a problem. A good range for most cases is 0.9 to 1.0.
Maximum Iterations. When solving, iteration continues until the tolerances specified in Check Settings are met at all boundary condition control points or basis points, or if those criteria are not met, iteration ceases when this maximum number of iterations is reached.
Starting Heads. For transient runs, the first time step needs initial heads from some source. There are two possibilities here:
Assign a constant value of head for each domain. The starting head at a point is set to the domain's average head, which is specified under Domains input. In the case of a Discharge-Specified (Multi-Domain) well, the starting head is set to the average head of the first domain listed. This option should only be used for very simple transient runs where the initial condition is a uniform, flat, constant head.
Read initial heads from a file. This file is written by the initial (time zero) model, which is another Anaqsim model of the same area that may be steady or transient (see discussion of this file under the File menu).
Almost_dry_fraction. This parameter affects the solution in cases with unconfined, confined/unconfined, unconfined interface, and confined interface domains, where the heads can drop to low enough levels that the freshwater saturated thickness of the domain approaches zero. Instead of letting the domain have zero or negative saturated thickness, Anaqsim has a minimum saturated thickness. In an unconfined, confined/unconfined, or unconfined interface domain, the minimum saturated thickness = (average head - base elevation) * Almost_dry_fraction. In a confined interface domain, the minimum saturated thickness = (top elevation - bottom elevation) * Almost_dry_fraction. When heads drop to or below a level that would create this minimum saturated thickness, the aquifer is treated like a confined aquifer with this fixed minimum saturated thickness. This prevents domains from actually going completely dry and helps models converge despite portions of some domains approaching "dry" conditions. Setting
Almost_dry_fraction to a low value means that very little simulated horizontal discharge will occur in "'dry" portions of the domain. Heads in these "dry"' areas will drop to unrealistically low levels (below the base of an unconfined domain, for example), and have little real meaning. When contour plots are made of head, these unrealistically low values are neglected. These low heads do appear in other outputs such as the panel to the left of the plot and in profiles. Using higher values of Almost_dry_fraction may help convergence by limiting the magnitude of head gradients in "dry" areas, at the expense of allowing more actual discharge in "dry" areas. You can check the amount of discharge in a "dry" area by using the Analysis/Conditions Along a Line and making a profile of domain discharge along or across a line. Chose a low enough value of Almost_dry_fraction so the discharge in these "dry" areas is acceptably small.
Interface_leakage_option. This specifies one of two options for computing vertical leakage at a spatially-variable area sink basis point where a fresh/salt interface is present. If unchecked (default), the vertical leakage is computed just like it is in all other cases: the vertical leakage rate is proportional to the difference in head from one level to the next. If this column is checked and an interface is present in the overlying layer, the head difference is computed by using the freshwater head that is at pressure equilibrium with static salt water at the base of the overlying layer; the head in the overlying layer is not used to compute the head difference. The head that is used to represent the overlying layer is the same as the head at the toe of the interface in the overlying layer. The unchecked mode is appropriate when the resistance to vertical flow between levels is due to the K3 of the domains themselves. The checked mode is appropriate when the resistance to vertical flow between levels is due to an aquitard between the levels that is not explicitly modeled (in this case the resistance of the aquitard must be incorporated into the K3 values specified in the upper and/or lower domain). See Fitts et al (2015) for comparisons of these methods and discussion.
Check Settings
These settings define the accuracy of boundary conditions required of the solution; iteration continues until these conditions are met. If when Solve is pressed the solution converged before reaching the maximum number of iterations, all boundary conditions were met within the tolerances specified here.
These settings also affect the function of Analysis/Check Boundary Conditions at Latest Iteration, which is used to check how well the solution meets specified boundary conditions. Such conditions include heads at head-specified wells and linesinks, extraction at spatially-variable area sink basis points, etc. When you select Analysis/Check Boundary Conditions at Control Points, each boundary condition is checked, and if the discrepancy between the specified condition and the model-simulated condition is greater than a threshold you specify here, the program prints the discrepancy to the run log. If the discrepancy is less than the threshold, nothing is printed. In cases where the solution did not converge to within these tolerances during the Solve process, the offending boundary conditions are listed along with their accuracy. This can be a help to home in on which boundary conditions are holding up the Solve process.
Four kinds of boundary condition tolerances are defined as follows.
Head_check_tolerance is the threshold for the magnitude of discrepancy between specified and modeled heads, used at head-specified wells and line boundaries.
Qn_check_tolerance is the threshold for discrepancies in the computed discharge per length along River line elements. It units are discharge/length [(L3/T)/L = L2/T].
Q_check_tolerance is the threshold for discrepancies in discharge, which are used along inter-domain line boundaries and normal-flux specified boundaries. In both cases, the condition being checked is the total discharge across a segment along the line [L3/T]. For inter-domain boundaries, it is the comparison of discharges on opposite sides of the boundary. For normal-flux specified boundaries it is the difference between modeled and specified discharges based on the specified discharge per length times the length of the segment.
Extraction_check_tolerance is the threshold for discrepancies in the modeled extraction (Equation 13 of Fitts (2010)) and the extraction computed from head values (Equation 6 of Fitts (2010)). The units of extraction and this threshold are discharge/area [(L3/T)/L2 = L/T].
Time Steps
This input is used only for transient models. If you are doing a transient model, make sure you uncheck Steady under Model Input/General. Each row of input in the Time Steps table defines a time period, during which all boundary conditions are constant. For example, a model could have three time periods with different recharge rates, river stages, or well discharge rates in each of the three periods, but within each period the values remain constant.
For each time period, you specify the total length of the time period (Period_Length), the number of time steps the period is divided into (Steps_in_period), and the time step multiplier (Step_multiplier). The multiplier causes the length of successive time steps to grow by a factor equal to the time step multiplier. The following table illustrates the lengths of time four time steps for a period that is 100 time units long, using various time step multipliers.
Time Step
Multiplier = 1.0
Multiplier = 1.5
Multiplier = 2.0
1
25.00
12.31
6.67
2
25.00
18.46
13.33
3
25.00
27.69
26.67
4
25.00
41.54
53.33
Total Time:
100.00
100.00
100.00
In all cases, the total time of the period is 100, but the lengths of the four steps change as the time step multiplier changes. This scheme is the same as employed in MODFLOW. Using a multiplier larger than 1.0 helps concentrate computing power early in the time period when there is more transient change occurring. Transient storage fluxes, which are part of spatially-variable extraction, are computed for each time step using a finite-difference approximation of the governing equation (Equation 6 of Fitts, 2010).
Domains
The properties of each domain (called a subdomain in Fitts, 2010) are set with data tables under this menu. Different tables define the properties of different kinds of domains. A domain is a polygonal region of the model in a certain model level. Inside a domain, the aquifer properties (hydraulic conductivities, base elevation, storativity, porosity, etc) are homogeneous.
The boundary of a particular domain is defined by a combination of line boundaries that, in their input, are listed as external to the domain. Head-specified, normal flux-specified, and inter-domain boundaries can be external boundaries for domains. Other line boundaries like river and discharge-specified line boundaries are internal to domains and do not define domain boundaries. See the discussion under Subdomains and Model Levels for more detail and some examples.
All domain input data tables may be accessed through the main menu or by using a pop-up context menu when the cursor is over the plot.
Boundaries of Domains
The geometry of the boundary of each domain is not specified in the domain data tables, but is determined by the distribution line boundaries that define the external domain boundaries. Line boundaries that can be external domain boundaries are head-specified, normal flux-specified, and inter-domain. The data that is input for these types of line boundaries include information about which domain(s) that they bound. All domains should be completely bounded by such line boundaries, so that their geometry is unambiguous. See the discussion under Subdomains and Model Levels for more detail and some examples.
For the best accuracy, make sure the coordinates of the starting and ending points of adjacent external line boundaries match exactly (copy them). For example, if a domain boundary has two line boundaries defining it - one head-specified and the other inter-domain, make sure that the start/end points where these two line boundaries join have the exact same coordinates.
Input Common to All Domains
Several parameters are common and required input for any type of domain:
The label_unique allows you and the model keep track of which domain is which. When adding wells, line boundaries, etc. to the model, this label defines which domain these features are in. These labels are required and must be unique (no two domains should have the same label). Once the labels have been declared and other features have been added to the model, do not change the labels because doing so would require changing the domain label of each well, line boundary, and area source/sink that is in that domain.
The level of a domain refers to where this domain fits in the vertical sequence of model levels. In a multi-layered part of a model, the level begins at 1 at the uppermost level and increases in deeper levels. The level may be from 1 to a maximum of 15. If there are vertically stacked domains in a multi-level part of the model, vertical leakage is assumed to occur between domains that are at different levels but occur at the same x,y coordinate. For example, if three domains in a three-level part of the model were assigned levels 1, 2, and 4, there could be vertical leakage between levels 1 and 2 and between levels 2 and 4, if this area of the model has spatially-variable area source/sinks. When making plots of model results, plots show one level at a time.
For Average_head, list your best estimate of the average head in this domain for your simulation. This then defines a constant that is added to the discharge potential for this domain. More details are given about this in the next topic.
The value of Porosity is used in computing average linear velocity and advection travel times along pathlines. The average linear velocity = specific discharge/porosity. For a solute that adsorbs to the porous medium, the solute travel time will be be longer than the pure water advective travel time. If you want to plot travel times that factor in retardation of a solute, you may input Retardation Factor * Porosity instead of Porosity in this column and the travel times will reflect travel of a retarded solute plume.
K1_horizontal is the horizontal hydraulic conductivity. In a domain that is anisotropic in the horizontal plane, K1 differs from K2, and these represent the principle hydraulic conductivities in the horizontal plane. K1 > K2, K1 < K2, and K1 = K2 are all possible.
K2_horizontal is the horizontal hydraulic conductivity. In a domain that is anisotropic in the horizontal plane, K2 is in the direction normal to the K1_horizontal direction. To simplify inputs, you can enter "=K1" if K2=K1 and the domain is isotropic in the plane of the domain. If you want a fixed ratio of anisotropy, you can enter "=K1*D" where D is a real number. Using "=K1" or "=K1*D" is particularly handy for parameter estimation, to limit the number of parameters being estimated.
Angle_K1_to_x is the angle, in degrees, between the x axis and the direction of K1_horizontal. Positive angles are measured counter-clockwise from the x axis.
K3_vertical_top defines the vertical hydraulic conductivity of the upper half of the domain. This parameter is only used if there is vertical leakage with spatially-variable area source/sinks. To simplify inputs, you can enter "=K1" if K3=K1 and the domain is isotropic normal to the plane of the domain. If you want a fixed ratio of anisotropy, you can enter "=K1*D" where D is a real number less than or equal to 1.0. For example, make K1/K3 = 10 by entering "=K1*0.1". Using "=K1" or "=K1*D" is particularly handy for parameter estimation, to limit the number of parameters being estimated.
K3_vertical_bottom defines the vertical hydraulic conductivity of the lower half of the domain. This parameter is only used if there is vertical leakage with spatially-variable area source/sinks. To simplify inputs, you can enter "=K1" if K3=K1 and the domain is isotropic normal to the plane of the domain. If you want a fixed ratio of anisotropy, you can enter "=K1*D" where D is a real number less than or equal to 1.0. For example, make K1/K3 = 10 by entering "=K1*0.1". Using "=K1" or "=K1*D" is particularly handy for parameter estimation, to limit the number of parameters being estimated.
Details about Average_head
In other two-dimensional AEM programs such as TWODAN, the flow region is open to infinity, and one unknown that needs to be solved for is the amount of flow that goes between the modeled area and infinity. In these programs, to generate an equation to solve for that additional unknown, you specify a head at one location ("reference head" in TWODAN).
In Anaqsim, each domain model is closed and finite, so there is not that extra unknown. You specify the average head in each domain. which in turn defines a constant that is added to the potential for that domain. Since there are linesinks that bound each subdomain, the flow field outside those linesinks does not matter (the flow to/from infinity doesn't affect the solution inside the domain boundary). You could specify a variety of different average head values, within a reasonable range (close to the actual average), and get essentially identical results.
Say you have a simple Anaqsim one-domain model that has head-specified boundaries all around the external boundary, with h=100. There is zero recharge, so h should be 100 everywhere inside the domain. If you specify the average domain h=100, the program adds a constant to the potential that is the potential corresponding to h=100. On solving, it will turn out that the boundary conditions are met perfectly everywhere on the boundary and the boundary linesinks all have zero discharge; the analytical model will boil down to the simple equation h(x,y)=100. With zero discharges in the boundary linesinks, there is no flow to or from infinity to the model boundary from the outside (even though you never see this part of a domain model, it exists).
Now imagine that instead you set the average domain head to 110, which adds a larger constant to the potential for this domain. Now, to achieve the boundary h=100, the boundary linesinks need to extract water to pull the head surface down. In this case the solution on and inside the boundary will still be approximately h=100, but there will be flow to the outside of the boundary linesinks from infinity. Likewise, if you set the average domain head to 90, the solution on and inside the boundary will be approximately h=100, but there will be flow from the outside of the boundary linesinks to infinity. When you change the average head for a domain, it changes the part of the domain solution that you never see - the part that lies outside the external boundary of the domain.
If you use long line elements with few parameters and the average head is not close to the actual average, the differences in the external, unseen part of the model may have some visible impact on the model within the domain boundary. The most likely manifestation will be some lumpiness in the head surface near those boundary elements. Correct this by choosing a more representative average head and/or shortening line boundary elements and increasing the number of parameters per line.
Confined and/or Unconfined
Starting with release 2015-1, confined, unconfined, and confined/unconfined domains are in the same data table, which allows the user to quickly switch between these domain types. For confined and/or unconfined domains, these parameters are needed in addition to those that are common to all domains:
Domain_Type determines which type of domain is to be modeled. Confined, Unconfined, and Confined/Unconfined are the three options. For Confined, the domain is always a fixed saturated thickness equal to the top elevation minus the bottom elevation, and the domain's transmissivity is independent of head. Confined domains generate linear equations, while the other two options can generate nonlinear equations. It is often wise to begin your modeling with confined domains which tend to converge faster and be less prone to numerical issues associated with nonlinearity and drying up. Later, it is easy to switch to unconfined or confined/unconfined domain types. With the Unconfined domain type, the domain is always unconfined and the Top_elevation is not used (although some value must be input). The Confined/Unconfined domain type behaves like a confined aquifer when the head equals or exceeds the top elevation, but like an unconfined aquifer where the saturated thickness depends on head, when head drops below the top elevation (see Strack, 1989, section 8; Haitjema, 1995, section 3.1.3; Strack, 2003, equation 3).
Never put an unconfined domain beneath an overlying domain, because the unconfined domain saturated thickness is always computed as head minus base elevation. If you think an underlying domain may become unconfined, use confined/unconfined rather than unconfined
Top_elevation defines the elevation of the top of the domain. Not used for unconfined domain type.
Bottom_elevation defines the elevation of the bottom of the domain.
Storativity (S) is the dimensionless elastic storage parameter. S normally is the saturated thickness times specific storage (Ss). Starting with release 2021-1, there is an option to input the value of specific storage instead of storativity. This can simplify input by avoiding the step of multiplying by saturated thickness. To input specific storage, enter "Ss:" in front of the value. For example, if you entered "Ss: 0.0037", the value of storativity in this confined domain would be set to 0.0037 * b, where b is the saturated thickness (top elevation - bottom elevation). See Storage Parameter Details for more on how different storage parameters apply for different domain types.
Specific_yield (Sy) is the dimensionless storage parameter for the unconfined domain type. See Storage Parameter Details for more on how these parameters apply for different domain types.
For numerical stability where the saturated thickness of an unconfined or confined/unconfined domain approaches zero, Anaqsim imposes a minimum saturated thickness. When heads drop near or below the bottom, the domain reverts to a confined-type domain with a fixed minimum saturated thickness. This facet of Anaqsim is governed by a parameter called Almost_dry_fraction under Solution/Solve Settings.
Confined Interface
For confined interface domains, these parameters are needed in addition to those that are common to all domains:
Top_elevation defines the elevation of the top of the domain.
Bottom_elevation defines the elevation of the bottom of the domain. The saturated thickness is the difference between the top and bottom elevations.
Storativity is the dimensionless storage parameter that applies in the confined portion of this type of aquifer, equal to saturated thickness times specific storage. As described under Confined and/or Unconfined domains, you may enter specific storage values here instead of storativity values.
Salt_elevation defines the elevation of the surface of the salt water, which is assumed to be static. Typically this is about the elevation of sea level.
DensityRatio is the ratio of the salt water density to fresh water density. This varies from place to place, but is often near 1.025.
Interface domains in Anaqsim are based on the Ghyben-Herzberg approximation:
The salt water is hydrostatic - pressure is proportional to depth below Salt_elevation. This assumption is reasonable when the flow is roughly steady.
The fresh/salt water interface is sharp, with no mixing.
Fresh water within a domain is hydrostatic (Dupuit approximation); there is no vertical resistance to flow.
The confined interface domains are based on the techniques presented by Strack (1989) on pages 101-106 and in Fitts et al (2015). These domains are confined with fresh water from top to bottom when heads are high enough that there is no interface, or they are confined with an interface and some salt water if heads are low enough. Confined interface domains would go to zero fresh water saturated thickness when the fresh water head drops to a level where the fresh water pressure at the top of the domain equals the salt water pressure at that elevation. This occurs where the freshwater head = Top_elevation + (Salt_elevation - Top_elevation) * DensityRatio. For numerical stability where the fresh water saturated thickness approaches zero, Anaqsim imposes a minimum saturated thickness. When heads are low enough, the domain reverts to a confined-type domain with this minimum saturated thickness. This facet of Anaqsim is governed by a parameter called Almost_dry_fraction under Solution/Solve Settings.
Generally transient simulations with interface domains will be inaccurate because it is assumed that the salt water has a hydrostatic distribution of pressure on the interface. In most transient situations, the salt water is moving, and when that movement has a vertical component, the hydrostatic pressure assumption is violated. If you feel the hydrostatic salt water assumption is still reasonable, you may proceed with a transient simulation but Anaqsim will issue a warning. See Storage Parameter Details for more on how storage parameters apply to this domain type.
Unconfined Interface
For unconfined interface domains, these parameters are needed in addition to those that are common to all domains:
Bottom_elevation defines the elevation of the bottom of the domain. The saturated thickness is the difference between the head and the bottom elevation.
Specific_yield is the dimensionless storage parameter for an unconfined aquifer.
Salt_elevation defines the elevation of the surface of the salt water, which is assumed to be static. Typically this is about the elevation of sea level.
DensityRatio is the ratio of the salt water density to fresh water density. This varies from place to place, but is often near 1.025.
Interface domains in Anaqsim are based on the Ghyben-Herzberg approximation:
The salt water is hydrostatic - pressure is proportional to depth below Salt_elevation.
The fresh/salt water interface is sharp, with no mixing.
Fresh water within a domain is hydrostatic (Dupuit approximation); there is no vertical resistance to flow.
The unconfined interface domains are based on the techniques presented by Strack (1989) on pages 108-111 and in Fitts et al (2015). These domains are unconfined with fresh water from the water table to the bottom when heads are high enough that there is no interface, or they are unconfined with an interface and some salt water if heads are low enough. Unconfined interface domains would go to zero fresh water saturated thickness when the fresh water head drops to Salt_elevation. To avoid dry conditions, keep all heads in the domain above Salt_elevation. For numerical stability where the fresh water saturated thickness approaches zero, Anaqsim imposes a minimum saturated thickness. When heads are low enough, the domain reverts to a confined-type domain with this minimum saturated thickness. This facet of Anaqsim is governed by a parameter called Almost_dry_fraction under Solution/Solve Settings.
Generally transient simulations with interface domains will be inaccurate because it is assumed that the salt water has a hydrostatic distribution of pressure on the interface. In most transient situations, the salt water is moving, and when that movement has a vertical component, the hydrostatic pressure assumption is violated. If you feel the hydrostatic salt water assumption is still reasonable, you may proceed with a transient simulation but Anaqsim will issue a warning. See Storage Parameter Details for more on how storage parameters apply to this domain type.
Storage Parameter Details
Storage parameters are defined differently for different domain types as explained below.
In confined domains, the storage parameter is always S (storativity) regardless of head.
In unconfined domains, the storage parameter Sy (specific yield) applies when h > the head at minimum saturated thickness (see Almost_dry_fraction under Solve Settings). When head is lower than the level at minimum saturated thickness, the storage parameter equals S * Almost_dry_fraction (usually a very small value). This scheme helps with convergence in cases where heads fall below the bottom of the domain, but makes storage changes small under these conditions.
In confined/unconfined domains, storage is like a confined domain when h >= top elevation, and like an unconfined domain when h < top elevation.
In confined interface domains, the storage parameter = S + (porosity / (DensityRatio - 1)) where an interface is present. Where the domain is confined with no interface present (higher heads), the storage parameter = S. Generally, storage contributed by interface shifts greatly exceed elastic storage; S << porosity / (DensityRatio - 1).
In unconfined interface domains, the storage parameter = Sy + (porosity / (DensityRatio - 1)) where an interface is present. Where head is high enough that there is no interface (inland from the toe of the interface), the storage parameter = Sy. Generally the storage contributed by interface shifts is larger than water table storage; Sy < porosity / (DensityRatio - 1).
In all but confined domains, the storage parameter is a function of head. The head at the start of a time step is used to determine the storage parameter that applies for the time step, even though the head at the end of the time step may correspond to a different storage parameter. This approximation helps convergence and is minor if time steps are small enough.
Pumping Wells
Pumping wells may be either discharge-specified or head-specified. The discharge-specified type may be screened in one domain or across multiple domains if the well screen spans multiple model levels. All well input data tables may be accessed through the main menu or by using a pop-up context menu when the cursor is over the plot.
Input Common to all Pumping Wells
With all types of pumping wells, the following parameters are required.
Label is a text label that helps you keep track of multiple wells.
X,Y defines the horizontal coordinates of the well. To graphically edit a well's coordinates, left click to select it. Once selected, the well will be enclosed in a purple square box as shown below
When highlighted in this way, the well can be moved by clicking on the purple box and dragging it. This will automatically alter the coordinates of the well in the model input table. To stop graphic editing, press Esc to de-select the well.
Radius defines the radius of the well. If there is a high conductivity filter pack around the well screen, the radius should be the radius of the borehole, not the radius of the screen.
Discharge-Specified
With discharge-specified wells, negative rates are used for extraction from the aquifer and positive rates are used for injection into the aquifer. Additional parameters defined here are:
Domain defines the domain that the well screen is in.
Discharge is the discharge of the well in units of [L3/T]. In transient simulations, this parameter may vary from one time period to the next.
Discharge-Specified (Multi-Domain)
Use this type of well to simulate a well with a screen that spans multiple domains and levels in the vertical direction. Anaqsim computes the appropriate discharge from each domain spanned so that the total discharge equals the specified discharge, and the heads at the well radius in each domain match each other. With discharge-specified wells, negative rates are used for extraction from the aquifer and positive rates are used for injection into the aquifer.
Domains defines the domains that the well screen spans.
Discharge is the discharge of the well in units of [L3/T]. In transient simulations, this parameter may vary from one time period to the next.
Head-Specified
With head-specified wells, you specify a head that applies at the well radius and Anaqsim computes the discharge needed to achieve that head. The discharge of a head-specified well may be checked after solving from the Analysis menu.
Domain defines the domain that the well screen is in.
Head_at_well defines the head at the well radius. In transient simulations, this parameter may vary from one time period to the next.
Off_Periods is used in transient simulations if you want the well discharge to be zero during certain periods. The periods you want the well off are delimited with comma(s). For example, the following input is for a transient model with five time periods. The well pumps at rates such that at the end of period 1 the head at the well is 80, the well is off during periods 2 and 3, and the well pumps so that the head at the well is 115 and 118, respectively, at the ends of periods 4 and 5.
Line Boundaries
A variety of line boundary conditions are available in Anaqsim. Each line boundary is a multi-segmented line (polyline) and the user inputs a list of vertexes in sequence from one end of the polyline to the other. The line boundary condition is approximated using linesink elements similar to those described by Jankovic and Barnes (1999).
Most line boundaries have a parameter that varies from one value at the starting vertex to another value at the ending vertex. The interpolation scheme between the end points is described in the next topic.
Anaqsim approximates the specified boundary conditions along line boundaries, as discussed by Fitts (2010). You may check the accuracy of line boundary condition approximations under the Analysis menu.
For internal line boundaries, the coordinates of all polyline points must not be outside the subdomain boundary, otherwise numerical havoc will be wreaked! It is possible for the start or end point of an internal line boundary to coincide exactly with a corner point of an external line boundary.
All line boundary input data tables may be accessed through the main menu or by using a pop-up context menu when the cursor is over the plot.
Input Common to all Line Boundaries
The following input items are common to all of the line boundaries:
Label is a text label that helps you keep track of multiple line boundaries. Please see River Line Boundary Discharges for special labeling of River line boundaries so that you may sum the discharges of groups of river boundaries.
Each line segment has a line element with a certain number of unknown parameters that is defined in the Parameters_per_line column. If you choose 1 for this, the strength of the element is constant along the line, if you chose 2 for this, the strength of the element varies linearly along the line, if you choose 3 for this, the strength of the element varies parabolically along the line, etc. Using more parameters per line can increase the accuracy of the boundary condition approximation along the line, but at the cost of additional equations in the system of equations that is solved. You only need a high number of parameters per line if the heads or discharges along the element are expected to vary complexly. In many cases, 3 or fewer parameters per line is plenty. Experiment with this and reduce the number of parameters to the minimum that gives you reasonable boundary condition accuracy, which you can check using right-click / Check Line Boundary Conditions. In the case of a Discharge-Specified line boundary, the user does not define Parameters_per_line because it is always set to 1; the discharge/length of these line elements is constant and equal to the specified discharge of the line boundary divided by its total length.
Coordinates defines the x,y coordinates of the polyline vertexes. When you click on a cell in this column, a small text box window appears. In this text box, enter/edit lines of coordinate data, one line per vertex. Each line should have x and y values separated by either a comma or a tab character. You may digitize the coordinates of a polyline in the plot view and then paste the coordinates into this text box. In the case of normal flux-specified external boundaries, the coordinates must be listed in counter-clockwise order with the domain to the left of the boundary as you proceed along it. Once input, coordinates can be edited graphically by selecting the line boundary and then moving the vertexes or inserting or deleting vertexes. To graphically edit a line boundary's coordinates, left click to select it. Once selected, the vertexes will be enclosed in purple square boxes as shown below
When highlighted in this way, the vertexes can be moved by clicking on the purple box and dragging it. This will automatically alter the coordinates of the line boundary in the model input table. To de-select a line boundary, press Esc. Procedures for graphic editing of line boundaries are covered in the tutorial videos on the website. To reverse the order of the vertexes (this can be handy if you digitized in the wrong direction), click the Reverse button.
Most line boundaries have additional parameters defined at the start and end points, such as heads for head-specified line boundaries. With all such parameters, the same algorithm is employed to interpolate the specified values along the line boundary:
Apportion the intermediate values to the vertexes based on the number of line segments in the polyline. For example, if there are 4 segments and the end values are 100 and 110, the values at the vertexes would be 100, 102.5, 105, 107.5, and 110. If there are 5 segments, the values at the vertexes would be 100, 102, 104, 106, 108, and 110.
Linearly interpolate values to the control points within a line segment, assuming a linear distribution from one end to the other.
The additional parameters specific to each type of line boundary are listed in the following topics.
Head-Specified
With head-specified line boundaries you specify these additional items:
Domain defines the domain that the line boundary is in. Double-click on this cell to open a drop-down list and make a selection.
Check the Domain_Boundary check box if this line boundary is on the external boundary of the domain.
The h_start and h_end are the specified head values at the starting and ending vertexes. In transient simulations, these parameters may vary from one time period to the next.
Off_Periods is used in transient simulations if you want the line boundary discharge to be zero during certain periods. This could be handy for a dewatering trench that is turned off and on. The periods you want off are delimited with comma(s). For example, the following input is for a transient model with three time periods. The line boundary discharges at rates such that at the end of period 1 the heads along it are 104, the line boundary is zero during periods 2, and the line boundary discharges at rates such that at the end of period 3 the heads along it are 106.
Boundary condition equations are written at each control point on each line segment. The equation specifies that the modeled head = specified head (interpolated between endpoints of the line boundary). The specified head condition is approximated between control points and may be checked graphically.
Normal Flux-Specified
With normal flux-specified line boundaries you specify these additional items:
Domain defines the domain that the line boundary is in. Double-click on this cell to open a drop-down list and make a selection.
Check the Domain_Boundary check box if this line boundary is on the external boundary of the domain.
When the boundary is external, it is necessary to list the coordinates of the polyline in counter-clockwise order with the domain to the left of the boundary as you proceed along it. If coordinates are specified in the wrong (clockwise) order, there is a check in the program that will detect and report this error. This error can occur if you mistakenly specified the coordinates in clockwise order around the outside of the domain. This message can also result if you have made errors in specifying additional external line boundaries either at these same coordinates (e.g. have two external line boundaries in the input that share the same vertex coordinates), or have erroneous external line boundaries to the right of this one (see discussion of left/right algorithm).
The Normal_flux_start and Normal_flux _end are the specified normal flux values at the starting and ending vertexes. Normal flux is the component of domain discharge normal to the line segment, and has units of discharge per length [L3/T/L] = [L2/T]. This may also be thought of as the normal component of specific discharge times saturated thickness. The normal flux is positive for flow across the boundary from left to right as you proceed from the start toward the end. Normal flux is negative for flow from right to left as you proceed from the start toward the end. In transient simulations, the normal flux parameters may vary from one time period to the next.
Boundary condition equations are written for sub-intervals in each line segment (e.g. three subintervals for 3 parameters/line). The equation specifies that the total discharge across the line over the subinterval equals the total to interpolated specified fluxes over the interval. The accuracy of this approximation may be checked graphically.
Head-Dependent Normal Flux (3rd type)
This allows head-dependent normal flux into or out of the model, depending on the modeled head at the boundary. Boundary conditions like this are sometimes called 3rd type, Robin, general head (GHB in MODFLOW), or mixed boundary conditions; they involve both head and flux. The boundary must be an external boundary of a domain. It is necessary to list the coordinates of the polyline in counter-clockwise order with the domain to the left of the boundary as you proceed along it. If coordinates are specified in the wrong order, there is a check in the program that will detect and report this error. This error can occur if you mistakenly specified the coordinates in clockwise order around the outside of the domain. This message can also result if you have made errors in specifying additional external line boundaries either at these same coordinates (e.g. have two external line boundaries in the input that share the same vertex coordinates), or have erroneous external line boundaries to the right of this one (see discussion of left/right algorithm).
This kind of boundary is illustrated conceptually in the vertical profile sketched below. It is as though there is a fictional domain beyond the boundary (orange) outside of the domain (blue) , and at a distance b outside the boundary, there is a fixed head h*. The head difference between h* and the head at the boundary (h) drives a component of discharge normal to the boundary.
You specify these additional items with this type of boundary:
Domain defines the domain that the line boundary borders. Double-click on this cell to open a drop-down list and make a selection.
Conductance_start and Conductance_end = K*/b at the starting and ending vertexes, where b is the horizontal width of the fictional domain normal to the line boundary and K* is the fictional domain horizontal K*. When K*/b is smaller, there is low conductance at this boundary and the normal component of discharge is smaller. The entry for Conductance_end can be "=start" if you want the same conductance for the entire line boundary. Alternatively, the entry for Conductance_end can be "=start*D" if you want the Conductance_end to be equal to Conductance_start times the real constant D. Using "=start" or "=start*D" is particularly handy for parameter estimation, to limit the number of parameters being estimated. Prior to release 2016-3, the conductance parameter for this kind of line boundary was defined as C/b = (K*/b/K), which differs from this conductance by the factor K, which is the K of the domain. When a domain is anisotropic in the plane of the domain, the factor K = (K1 * K2)1/2.
The h*_start and h*_end are the specified head values at the starting and ending vertexes, representing head a distance b outside the boundary.
The component of aquifer discharge normal to the boundary is Qn [L2/T], determined by this equation:
Where Φ* is the aquifer discharge potential computed for the domain using h*, and Φ is the aquifer discharge potential computed using modeled h at the boundary. Qn is positive for discharge out of the domain. The equation relating h to Φ depends on the domain type - it is a linear relation for confined domains but is nonlinear for unconfined and interface domains. Books describing Φ(h) equations in the analytic element method include Fitts (2023), Strack (1989), and Haitjema (1995). By writing the boundary condition equation this way, the boundary condition is linear, even when Φ(h) is nonlinear.
For a confined isotropic domain, the normal component of aquifer discharge is:
Where T is the transmissivity of the domain and h is the modeled head at the boundary.
For an unconfined isotropic domain, the normal component of aquifer discharge is:
Where K is the horizontal K of the domain, and h and h* are measured from the base of the domain.
The boundary condition equation
is written at each control point on each line segment. The values of conductance and Φ* are interpolated between the values specified at the start and end of the boundary. The modeled boundary condition is approximated between control points and may be checked graphically.
Discharge-Specified
With discharge-specified line boundaries you specify these additional items:
Domain defines the domain that the line boundary is in. Double-click on this cell to open a drop-down list and make a selection.
Discharge of the entire polyline in volume/time units [L3/T].
With this type of line boundary, the discharge per length of line is constant along the entire length of the polyline. Negative discharge implies extraction from the aquifer and positive discharge implies injection into the aquifer. In transient simulations, this parameter may vary from one time period to the next. This type of line boundary must always be internal, not on the external boundary of a domain. To specify discharge into or out of the external boundary of a domain, use Normal Flux-Specified boundaries.
River
With river line boundaries you specify these additional items:
Label. Please see River Line Boundary Discharges for special label format of River line boundaries so that you may output the total discharges of groups of river boundaries.
Domain defines the domain that the line boundary is in. Double-click on this cell to open a drop-down list and make a selection.
Check the Dries_up check box if this river boundary is allowed to dry up (revert to zero discharge per length) when the head falls below the specified stage. Check Dries_up in cases where the river is small and would dry up if aquifer heads drop below stage. If Dries_up is not checked, the river’s discharge is computed based on a head difference and a river bed conductance factor in accordance with Darcy’s Law. There are two possibilities for how the head difference is computed: 1) if the domain head is above the base of the resisting bed, then it is the difference between the stage and the head in the domain, and 2) if the domain head is below the base of the resisting bed, then it is the difference between the stage and the elevation of the base of the resisting bed. The following graph illustrates how the discharge/length to the river line boundary would vary with or without Dries_up checked, for the following assumptions: stage = 100, resisting bed base = 98, resisting bed conductance C = Kv w / d = 0.2.
Stage_start and Stage_end are the specified river stages (water surface elevations) at the starting and ending vertexes. In transient simulations, these parameters may vary from one time period to the next.
Conductance_start and Conductance _end are the specified river bed conductance factors at the starting and ending vertexes. The conductance factor equals Kv w/d where Kv is the vertical hydraulic conductivity of the resistant river bed, w is the horizontal width of the river bed, and d is the thickness of the resistant river bed. Kv w/d has units of [L/T]. The entry for Conductance _end can be "=start" if you want the same conductance for the entire line boundary. Alternatively the entry for Conductance _end can be "=start*D" if you want Conductance _end to be equal to Conductance_start times the real constant D. Using "=start" or "=start*D" is particularly handy for parameter estimation, to limit the number of parameters being estimated.
Base_resisting_layer_start and Base_resisting_layer_end are the specified elevations of the bottom of the river bed resisting layer at the starting and ending vertexes.
Boundary condition equations are written at each control point on each line segment. The equation specifies that the discharge/length of the linesink be related to the stage and conductance(interpolated between endpoints of the line boundary) as described above. The specified head condition is approximated between control points and may be checked graphically. In the graphical check, the sign of the discharge is negative for flow from the domain to the river, consistent with other discharging elements.
Instead of digitizing rivers and adding line boundaries to the data table one row at a time, you may import river line boundary data from tab-delimited text that has been copied into the clipboard from a file or from a spreadsheet (e.g. Excel). This may be a useful way to transfer large amounts of river data from other software into Anaqsim.
Import River Data from Clipboard
This menu selection is an alternate way to create new river line boundaries, in addition to Model Input Menu / Line Boundaries / River. This alternative, found under Model Input Menu / Line Boundaries / Import River Data from Clipboard, allows you to import text data to build river line boundary input multiple rows at a time, instead of digitizing and creating river boundaries one at a time. This could be useful for importing river data from GIS, for example.
This command reads tab-delimited text from the clipboard and creates new River data rows in the database. If you have the data in an Excel spreadsheet, you can highlight and copy the portion of the sheet into the clipboard, and then execute this command to import that data. An example of the correct data format is shown below in the selected area of an Excel spreadsheet bounded by the green dotted line:
First Row
The first selected row (row 2 of the spreadsheet) contains data that applies to all subsequent rows. In this first row of input data are:
a text label for these river line boundaries (column A)
the Domain the river line boundaries are in (column B)
the Parameters_per_line for the river line boundaries (Column C)
The Dries_up value for the river line boundaries (enter "true" or "false")
Vertex Rows
The subsequent rows (rows 3-9 of the above spreadsheet) contain data for each vertex of the river line boundaries. In these rows, the data are:
X coordinate of vertex (column A)
Y coordinate of vertex (column B)
Conductance at the vertex (column C) [optional parameter]
Base_resisting_layer at the vertex (column D) [optional parameter]
Stage at the vertex (column E) [optional parameter, may have multiple comma-separated values for a transient simulation with changing stages]
In the above example, two river line boundaries are input. The first one includes the vertex data from rows 3-6 and the second one includes vertex data from rows 6-9. If a vertex row contains only the X, Y coordinates (like rows 4,5,7,8), those vertexes are within a line boundary, not at the start or end of one. A vertex at the start or end of a river line boundary must have all 5 columns of data to specify beginning and ending values of Conductance, Base_resisting_layer, and Stage. All 5 columns of data are required of the first vertex row (e.g. row 3) and the last vertex row (e.g. row 9). The example data above, when imported, created these two rows of river line boundary input:
Note that the label for these two rows took the label specified in the first row of the clipboard data and then added ":#1", ":#2"...to the labels of the multiple river line boundaries created. This gives each a unique label, and the common root of the label ("test label:#" in this case) is used by Anaqsim in Analysis / River Line Boundary Discharges to sum up the discharges of all river line boundaries with this common root, in addition to the discharge of each river line boundary. For the example above, the coordinates of "test label:#1" are:1, 23, 45, 67, 8and the coordinates of "test label:#2" are:7, 89, 1011, 1213, 14
Drain/Fracture
Drain/Fracture line boundaries allow modeling of thin features like drains or fractures that conduct water at a high rate compared to the surrounding domain. The drain or fracture is represented in the model as a line with zero actual width using line dipole functions. With these line boundaries, specify these additional items:
Domain defines the domain that the line boundary is in. Double-click on this cell to open a drop-down list and make a selection.
Conductance_start and Conductance_end = bK* at the starting and ending vertexes, where b is the horizontal width of the drain normal to the direction of the line, and K* is the drain hydraulic conductivity. This formulation assumes the drain fully penetrates the domain. The entry for Conductance_end can be "=start" if you want the same conductance for the entire line boundary. Alternatively the entry for Conductance_end can be "=start*D" if you want the Conductance_end to be equal to Conductance_start times the real constant D. Using "=start" or "=start*D" is particularly handy for parameter estimation, to limit the number of parameters being estimated. Prior to release 2016-3, the conductance parameter for this kind of line boundary was defined as bR = (bK*/K), which differs from this conductance by the factor K, which is the K of the domain. When a domain is anisotropic in the plane of the domain, the factor K = (K1 * K2)1/2.
Boundary condition equations are written at each control point on each line segment. The equation specifies that the modeled discharge within the drain (jump in stream function across drain) equals Conductance/K (interpolated between endpoints of the line boundary) times the gradient of the aquifer discharge potential in the direction of the drain. This condition is approximated between control points and may be checked graphically. In the graphical check, the discharge is positive for flow from the start of the boundary toward the end of the boundary, as defined by the order of vertexes. To achieve better accuracy of this approximation, use shorter line segments and/or more parameters/line. Shorter segments are particularly helpful at the ends of the line boundary, where the boundary condition changes rapidly.
Leaky Barrier
Leaky Barrier line boundaries allow modeling of thin features like sheet pile walls or slurry walls that create a barrier to flow, but allow some leakage. The leaky barrier is represented in the model as a line with zero actual width using line doublet functions. With these line boundaries, specify these additional items:
Domain defines the domain that the line boundary is in. Double-click on this cell to open a drop-down list and make a selection.
Conductance_start and Conductance_end = K*/b at the starting and ending vertexes, where b is the width of the barrier normal to the direction of the line, and K* is the horizontal conductivity of the barrier. It is assumed that the barrier fully penetrates the domain. The entry for Conductance_end can be "=start" if you want the same conductance for the entire line boundary. Alternatively the entry for Conductance_end can be "=start*D" if you want the Conductance_end to be equal to Conductance_start times the real constant D. Using "=start" or "=start*D" is particularly handy for parameter estimation, to limit the number of parameters being estimated. Prior to release 2016-3, the conductance parameter for this kind of line boundary was defined as R/b = (K*/b/K), which differs from this conductance by the factor K, which is the K of the domain. When a domain is anisotropic in the plane of the domain, the factor K = (K1 * K2)1/2.
Boundary condition equations are written at each control point on each line segment. The equation specifies that the modeled aquifer discharge component normal to the barrier equals Conductance/K (interpolated between endpoints of the line boundary) times the jump in aquifer discharge potential across the barrier. This condition is approximated between control points and may be checked graphically. In this check, discharge is positive for flow going from left to right as you proceed along the boundary from the start towards the end. To achieve better accuracy of this approximation, use shorter line segments and/or more parameters/line. Shorter segments are particularly helpful at the ends of the line boundary, where the boundary condition changes rapidly.
Inter-Domain
Inter-domain line boundaries define the boundaries between abutting domains. It is possible to use these boundaries to abruptly shift the layering (levels) in the model. For example, there could be a single level on one side of the boundary and multiple levels on the other side. For inter-domain boundaries, you specify these additional items:
Domains_left defines the domains that are to the left of the boundary as you proceed from the first towards the last vertex listed under Coordinates. Imagine you were on the ground walking along the boundary heading towards the last vertex - the left domains would be on your left and the right domains would be on your right. Select these domains by clicking on the Select button.
Domains_right defines the domains that lie to the right of the boundary as you proceed from the first towards the last vertex listed under Coordinates. Select these domains by clicking on the Select button.
It is easy to make a mistake specifying Domains_left or Domains_right, so Anaqsim checks this and will alert you with an error message if it detects an error. This error can occur if you mistakenly specified the left domain(s) on the right or vice versa. This message can also result if you have made errors in specifying additional external line boundaries either at these same coordinates (e.g. have two external line boundaries in the input that share the same vertex coordinates), or have erroneous external line boundaries to the right of this one (see discussion of left/right algorithm).
On one side of the inter-domain boundary, there should be a single domain. The reasons for this are explained in the Anaqsim Modeling Concepts section. At inter-domain boundaries, the domain discharges normal to the boundary are matched so that over sub-segments of each line segment, the total normal discharge of domains to the left matches the total normal discharge of domains to the right. The number of sub-segments per line segment equals the number of parameters per line. The heads in all domains match at control points along the line segment. The number of such control points equals the number of parameters per line. Fitts (2010) provides more discussion of how boundary conditions are approximated at inter-domain boundaries. The accuracy of the modeled boundary conditions may be checked graphically.
Head-Specified External with Gradient
This is a useful line boundary for simple models where you want to impose a uniform groundwater flow across your area of interest, but do not want to specify a lot of other details. Head-specified line boundaries are placed around a roughly circular outer boundary, and the specified heads create a uniform cross-flow in the absence of other elements. This feature creates a 12-sided approximately circular boundary consisting of specified head line boundaries, which forms the entire external boundary of the domain.
With this type of line boundary you specify these additional items:
Domain defines the domain that the line boundary is external to. Double-click on this cell to open a drop-down list and make a selection.
X,Y defines the coordinates of the center of the circle (put at the center of the area of interest).
Radius is the radius of the circle.
Gradient is the desired horizontal hydraulic gradient at the center of the circle, in the absence of any other elements.
Gradient_direction is the angle that the down-gradient direction of the gradient makes with the positive x axis, in degrees.
Boundary condition equations specifying head are written at each control point on each line segment. The specified head condition is approximated between control points and may be checked graphically.
In all types of domains, this boundary by itself produces a uniform flow across the circle, with a uniform aquifer discharge (specific discharge * saturated thickness), and head at the center of the circle will equal the Average_head specified for the domain. With a confined domain, the specified gradient will be the gradient everywhere along the circle boundary and everywhere within the circle in the absence of other elements. With unconfined or interface domains and no other elements, the gradient changes with saturated thickness (higher gradient with less saturated thickness), and the specified head gradient will occur at the center and along the midline of the circle.
The head contours below show a model with only this type of line boundary and an unconfined domain where the saturated thickness ranges from 33.4 to 11.5 across the circle; note the larger hydraulic gradient where the saturated thickness is smaller. The aquifer discharge is constant within the circle, as is the saturated thickness * hydraulic gradient. In this case, the average head of 25 and the specified gradient occur at the center and midline.
Areas Source / Sink
Area sources or sinks are used to distribute extraction/discharge over an area in a domain as opposed to wells and line boundaries, which have extraction/discharge at a point or line. Area source/sink extraction/discharge rates are in units of volume/time/area [L3/T/ L2] = [L/T], like is typical of precipitation or recharge rates. Area source/sinks can represent recharge, vertical leakage, or storage fluxes in transient models. See the Recharge, Leakage and Transient Storage section for more discussion.
In steady-state models in domains that are in a single-level part of the model, it can be efficient and appropriate to use a uniform (extraction rate independent of x,y) area source/sink over the entire domain to represent a constant rate of recharge, for example. The Uniform, Domain area source/sink is for such cases. In these cases, the governing equations for aquifer flow are satisfied exactly.
In other cases where the vertical leakage or storage fluxes vary with location (x,y), you'll need to use spatially variable area sinks (SVAS). SVAS are usually needed in multi-level areas of a model, and in transient models.
SVAS and uniform area sinks are mutually exclusive. To avoid this dilemma, no SVAS basis points are placed inside any area that is also covered by a uniform area sink.
All area sink input data tables may be accessed through the main menu or by using a pop-up context menu when the cursor is over the plot.
Uniform, Domain
With this, the model simulates a constant rate of recharge/leakage over the entire domain.
Domain defines the domain that the uniform recharge/leakage applies in.
Top_flux defines the recharge/leakage rate that is applied at the top of the domain, with [L/T] units. This is positive for flux into the aquifer.
Bottom_flux defines the recharge/leakage rate that is applied at the bottom of the domain, with [L/T] units. This is positive for flux into the aquifer.
Spatially Variable Area Sink Overview
With non-uniform vertical leakage or transient flow, the area source/sink extraction/discharge needs to be spatially variable (varies with x,y) because leakage and/or storage fluxes are not constant over the entire domain. Anaqsim uses multi-quadric interpolator functions to simulate spatially variable area source/sinks (SVAS) (see Fitts (2010) or Strack and Jankovic (1999)). With SVAS, the governing equations of aquifer flow are approximated, and this approximation can be quite good if the density of basis points is high enough (Fitts, 2010). You can check the accuracy of the approximation with the Analysis/Conditions Along a Line which does the same check as shown in Figures 10 and 11 of Fitts (2010).
When you use SVAS, you may assign them over the area of a domain or over the area of a polygon. In either case, SVAS are created in all domains at all levels that are within the area of the specified domain or polygon. If there is a multi-level area of the model, you only input SVAS in one of the levels in the stack. Anaqsim automatically assigns SVAS in the other subdomains that are vertically above or below the ones you specify the SVAS in. When you specify a SVAS by domain or polygon, you specify the condition at the top of the top layer of the model and at the bottom of the bottom layer of the model in the area of the domain or polygon. This condition may be flux-specified, or head-dependent flux -specified. The top or bottom condition may be a specified constant, or it may be defined by an irregular surface (new in release 2017-1).
You have two ways of assigning SVAS and associated basis points:
spreading basis points in all model levels at a specified spacing over the area of a domain (Spatially Variable, Domain), and
spreading basis points in all model levels at a specified spacing over the area of a polygon (Spatially Variable, Polygon). SVAS polygons are used to refine the top condition, bottom condition, and/or basis point spacing. SVAS polygons first erase any basis points that were inside the polygon and then replaces them at the specified top/bottom conditions and spacing.
In addition, you can refine basis point spacing (but not top/bottom conditions) in the near vicinity of wells (Spatially-Variable, Well Basis Points). This places basis points with an efficient radial, logarithmic spacing to achieve accurate solutions near wells.
The spatially-variable area sink functions are smooth within a domain, but can change abruptly across a domain boundary. An example of this is the pond boundary in the example model in the Fitts (2010) paper. This is a nice feature because at some boundaries like the pond shoreline, you want the extraction to change abruptly.
The rules governing SVAS specifications are summarized below:
No SVAS are allowed in domains that have uniform area sinks.
No SVAS basis points are placed in areas also covered by uniform area sinks.
SVAS-polygon specifications overwrite SVAS-domain specifications, where they overlap.
SVAS-polygon specifications with a higher nesting level overwrite SVAS-polygon specifications with a lower nesting level.
The basis point spacings defined with the SVAS-well feature overwrite SVAS-domain and SVAS-polygon basis point spacings, but do not alter the top and bottom conditions in the well vicinity.
Spatially Variable, Domain
This sets up a spatially-variable area source/sink over a whole domain with a uniform spacing of basis points. The governing equation is met perfectly at the basis points, which are distributed on hexagonal centers at the specified spacing. The governing equation is approximated in between basis points.
Domain defines the domain that the spatially-variable area source/sink applies in.
Condition_Top defines the type of condition that applies at the top of the domain. This is either flux-specified (e.g. a specific recharge rate) or head-dependent flux-specified (e.g. leakage from a lake into the underlying domain). With the latter condition, the source/sink extraction rate is computed using the head difference between a specified head and the domain head, and the vertical resistance to flow offered by the upper or lower half of the domain, in accordance with Darcy’s Law.
Top_flux_or_head defines the flux (flux-specified) or head (head-dependent flux-specified) at the top of the domain. This applies throughout the domain. In transient simulations, this parameter may vary from one time period to the next. If you select "none" under Top_surface, the value specified here applied over the entire area of the domain. If you select a surface instead of "none" under Top_surface, the value specified here is a multiplier that scales the surface (see description below under Top_surface). If you want to use the surface values directly, enter "1.0" here. If, for example, you want to use double the values of the surface as your top flux, enter "2.0" here.
Top_surface allows you to define a surface for a spatially-variable top condition. This could be used to represent an irregular distribution of recharge at the top of the model, or an irregular distribution of head in an aquifer below the model which the lowest model level leaks to/from. To use this feature, you must first define the surface by adding it under Area Source/Sink/SVAS Top/Bottom Condition Surfaces. Once you have created the surface, you may select it in the drop-down list that appears in this column. Your choices will be "none" (just use the specified constant value under Top_flux_or_head), or one of the previously-defined surfaces. If you choose a surface, the value of the top/bottom condition flux (flux-specified) or head (head-dependent flux-specified) will be equal to the value of the surface at x,y times the number entered under Top_flux_or_head. If you select a surface and put "1.0" in the Top_flux_or_head field, the value at x,y, will be the value at x,y in the specified surface. If you had entered "1.3" in the Top_flux_or_head field, the value at x,y, will be the value at x,y in the specified surface * 1.3. When you have a surface selected, the Top_flux_or_head field becomes a multiplier that allows you to scale the magnitude of the surface used in the model. In transient models, you can vary this scaling factor from one time period to the next by entering multiple values separated by commas (see this guidance for transient inputs)
Condition_Bottom defines the type of condition that applies at the bottom of the domain and is analogous to the Condition_Top (see above).
Bottom _flux_or_head defines the flux (flux-specified) or head (head-dependent flux-specified) at the bottom of the domain, analogous to the Top_flux_or_head (see above). This applies throughout the domain. In transient simulations, this parameter may vary from one time period to the next.
Bottom_surface allows you to define a surface for a spatially-variable bottom condition, and is analogous to the Top_surface (see above).
Node_spacing defines the distance between basis points in the spatially-variable area source/sink. Smaller numbers here improve the approximation of the governing flow equations, at the cost of more computation. The appropriate spacing of nodes depends on the transmissivity of the domains and on the vertical conductances involved with the domain, and on how abruptly heads vary with position. A parameter called the leakage factor [L] can provide useful guidance for assigning basis point spacing. For more discussion of appropriate node spacing and the leakage factor, see Strack and Jankovic (1999) or Hansen (2002). The guidance in these papers recommends basis point spacings on the order of the leakage factor to 2x or 3x the leakage factor. The leakage factors are computed and displayed on the left of plots, as discussed in the Plot View section of this user guide. Checking extraction along a line in Anaqsim is the best way to know if your spacing is small enough for a satisfactory approximation of the governing equations. The two curves in the extraction plot will not deviate significantly if the basis point spacing is small enough.
Spatially Variable, Polygon
This modifies spatially-variable area source/sinks within a polygonal area. This can be used in addition to the Spatially Variable, Domain option to make the spacing of basis points denser in some areas, and to specify different flux or head-dependent flux conditions in some areas.
Label is a text label that helps you keep track of multiple spatially variable, polygon area source/sinks.
Nesting_level is a parameter that allows you to nest several spatially variable, polygon area source/sinks inside each other. If you are not nesting or overlapping these Spatially Variable, Polygon features, specify 1 for this. If you want to place a smaller polygon with denser basis point spacing inside another polygon with less dense spacing, use nesting level 1 for the larger polygon and nesting level 2 for the smaller one inside of it. You may nest up to 5 levels to drill down to finer basis point spacing in the key areas (e.g. near a well). The polygons with the higher nesting level overwrite the basis point spacing and flux condition of polygons with lower nesting levels.
Condition_Top, Top_flux_or_head, Top_surface, Condition_Bottom, Bottom _flux_or_head, Bottom_surface, and Node_spacing are all the same as defined for Spatially Variable, Domain area source/sinks.
Coordinates defines the coordinates of the closed polygon, inside of which the specified flux and node spacing apply. The polygon is automatically closed from the last vertex listed to the first one listed here. You may digitize the polygon using Digitize/Polyline in the Plot View. You may also later edit the polygon graphically, moving, inserting, and deleting vertexes.
Spatially Variable, Well Basis Points
Here you can define special, efficient spatially-variable area sink (SVAS) basis point spacings that apply near pumping wells, to improve the accuracy of modeled vertical leakage and storage fluxes. The basis points are drawn with density that is high near the well and decreases with radial distance from the well. The closest basis points to the well are placed at a radius two times the radius of the well. Basis points are placed on larger and larger circles out from the well, where the distance between circles increases logarithmically between adjacent circles (like a steady well flow flow-net). The outer limit of these basis points is determined by the Max_node_spacing parameter - circles of basis points continue to be added in the outward direction, until the basis point spacing would exceed Max_node_spacing. Every other circle has all the basis point locations rotated by an angle that is half the angle between basis points on a circle. For example, if you chose 4 Points_per_circle, the angle between basis points on a circle would be 360/4 = 90 degrees, and every other circle would have these positions rotated by 45 degrees compared to adjacent circles of basis points (see figures below). These special well basis points replace basis points in this area that were established with SVAS domain or polygon input. The well basis point input only refines the basis point spacing and does not alter the top and bottom conditions that are determined by the SVAS domain or polygon input.
These data are input:
Well_Labels allows you to select which wells this row of input data applies to. You may select one or multiple wells. Make sure all wells in your model have unique labels, so you can identify them in this list.
Max_node_spacing defines the maximum node spacing at the outer edge of these special basis points. Generally you should have this spacing slightly smaller (about 10-30% less) than the background basis point spacing for the well vicinity.
Points_per_circle defines how many basis points will be placed on each circle around the well. Chose from the drop-down list. A higher number here will make the approximation of storage fluxes and vertical leakage near the well more accurate, but at the expense of more basis points, more equations, and more computation.
The algorithm for placing basis points is illustrated below with a well flow-net plot and basis point placement shown with green triangles for the case of 6 points per circle (basis points shown for 5 outermost circles).
An Anaqsim plot showing well basis points with 8 points per circle is shown below, with a circle drawn in red around the area of special well basis points. Outside this circle is the regular hexagonal basis point spacing defined by SVAS domain or polygon inputs.
SVAS Top/Bottom Condition Surfaces
This allows you to input a surface, so that spatially-variable area sink (SVAS) top and bottom conditions can be a assigned using an interpolation function of (x,y) position instead of being constant and independent of (x,y). Some possible applications of this include:
recharge rate that varies spatially - e.g. more in uplands, less in lowlands.
irregular distribution of head in an aquifer below the model, which the lowest model level leaks to/from.
an irregular, sloping freshwater head surface that an interface aquifer leaks toward at the sea shore. The freshwater head increases with depth below sea level, so the specified head condition at the top of an interface domain should be a surface.
The data points that define these surfaces do not correspond to basis points in the SVAS - these data points only define the surface that defines flux or head-dependent flux that is assigned at each basis point. Such surfaces may be referenced by both SVAS, domain and SVAS, polygon input. The surface is created using interpolation between data points that are specified as x,y,value triplets. You must specify at least 3 data points.
If you specify exactly 3 data points, the surface will be a planar surface that passes through each of the 3 points, using the function:
Value(x,y) = Ax + By + C (A, B, C are scalar constants)
If you specify 4 or more data points, the surface is defined using an interpolation function described by Hardy (1971):
Value(x,y) = a1 r1 + a2 r2 + a3 r3 + ... + D (a1, a2 ,a3... and D are scalar constants and r1, r2 ,r3... are radial distances from each (x,y) data point)
This surface passes through each data point and is a smooth but irregular surface.
Label is a text label that helps you keep track of multiple SVAS top/bottom condition surfaces.
Data defines the list of x,y,value triplets that define the surface. When you click on this button, an input window pops up, where you can enter the data in a comma-delimited, tab-delimited, or space-delimited form like the following: x1, y1, value1 x2, y2, value2 x3, y3, value3 x4, y4, value4 ...
You can enter the data manually, you can paste the data in from other software (e.g. a copied block of cells in an Excel spreadsheet), or you can digitize the surface data within Anaqsim.
When you use a surface for an SVAS top or bottom condition, be sure to read about how the surface is scaled by the number(s) you input for the Top_flux_or_head in the SVAS domain or SVAS polygon input.
Input of Transient Model Parameters
Many parameters in Anaqsim models may vary during a transient simulation. In all cases, the parameters must be constant during each time period, but may change from one time period to another. The following Model Input parameters may be transient:
Discharges at discharge-specified wells and discharge-specified line boundaries
Heads at head-specified wells and head-specified line boundaries
Normal fluxes at normal flux-specified line boundaries
Stages at River line boundaries
The flux rate (top or bottom) at a flux-specified spatially-variable area source/sink
The head (top or bottom) at a head-dependent flux-specified spatially-variable area source/sink
For each of these parameters, you may enter one value that applies through the entire simulation, or you may enter multiple values separated by commas, one value per time period. If you enter fewer values than the number of time periods, the last value entered applies to all subsequent time periods.Plot Input Menu
Items under this menu control what appears in the plot created when you select Make Plot/Level... from the menu.
What to Plot
This line of input controls what gets plotted when you select Make Plot/Level 1, Level2, etc.
Window defines the coordinates of the rectangular window within which the plot is made. The input for this cell should be four numbers delimited by commas: x minimum, y minimum, x maximum, y maximum. Alternately if this cell is left blank, the entire drawing will be shown, which includes model areas and areas covered by the basemap, if displayed. You may automatically set these coordinates to the current view by selecting Plot Input/ Set What to Plot/Window to Current View or using the right-click context menu to do the same. Zoom and pan to get the view you want before making this selection.
Basemap defines if a basemap is to be displayed and how it will be displayed. If none is selected, no basemap is drawn. If either gray or color are selected, Anaqsim will draw the basemap listed under Basemap_file, displayed in either gray or in the original colors when a plot is made. The DXF (drawing exchange format) file is generally created by a CAD or GIS program. A basemap is very helpful for digitizing the coordinates of model features.
Basemap_file defines the DXF file to be used as a basemap. Clicking on this cell opens a dialog where you select the DXF file to form the basemap. When making a plot, Anaqsim searches the path specified here for the DXF file. If that fails, it searches the directory where the model input file (*.anaq) is located a DXF file with the same name.
Elements defines if model elements are drawn, and if so, how they are drawn. If none is selected, no elements are drawn. If Elements is selected, lines will be drawn along line boundaries and symbols will be drawn at wells, for elements in the level of the plot. For wells, the symbol that is drawn is a "+" symbol that is scaled to the plot window, and a circle that is the exact well radius. If the plot scale is large compared to the well radius, you may see the "+" but not the circle. When you pass the cursor over a well or line element, it is shown with a dotted line and a label pops up explaining what that element is. Elements (all levels) does the same, but plots elements in all model levels. Elements w/details adds circles at the corners of line boundaries and moving the cursor over one of the circles displays text information about the boundary condition at the corner. At the start and end points of line boundaries, these circles are slightly offset away from the start or end point, which is helpful when multiple line boundaries start/end at the same point. Elements w/details, control points does the same and also plots symbols at the locations of controls points (points where boundary conditions are met). These are collocation points along line boundaries (“x” symbols) and the basis points for spatially-variable area source/sinks (“+” symbols).
Checking Contours causes the plot to display contours in accordance with the settings defined under Plot Input/Contour Settings. Every fifth contour is drawn with a heavier line.
Checking Pathlines causes the plot to display pathlines in accordance with the settings defined under Plot Input/Pathline Settings at the locations defined under Plot Input/Pathlines.
Checking Vectors causes the plot to display vectors in accordance with the settings defined under Plot Input/Vector Settings.
SVAS_polygons defines whether or not to draw the polygons that define the area covered by spatially-variable area sinks (SVAS) by polygon. If drawn, they can be selected and edited by moving vertexes, inserting vertexes, or deleting vertexes.
AreaPathline_polygons defines whether or not to draw the polygons that define the areas where you are starting pathlines within areas. If drawn, they can be selected and edited by moving vertexes, inserting vertexes, or deleting vertexes.
Checking Calibration causes the plot to display calibration information. For head calibration targets, residuals (modeled head - observed head) are plotted at the location of the observed head. The residual is plotted just below a small circle at the target location. When the cursor moves over the plotted residual, the calibration target label, modeled head, and observed head are also shown. Head calibration targets are defined under the Analysis Input/Calibration Targets/Head menu, where you can choose to display or not display specific head calibration targets. Velocity calibration data are also displayed, if the Show field is checked. For velocity targets, scaled horizontal velocity vectors are displayed - the observed and the modeled. When the cursor is over the velocity vectors, details about the horizontal and vertical velocities are displayed.
Checking Analysis_Inputs causes the plot to display hydrograph points listed under Analysis Input/Hydrograph Points, lines entered under Analysis Input/Transient Line Conditions, polygons entered under Analysis Input/Vertical Leakage Over Polygon Area, and the line entered under Analysis/Conditions Along a Line, if there is one. When the cursor moves over any of these features, pop-up text explains what they represent. Hydrograph points and transient line condition lines are only drawn if their level matches the level plotted. The line associated with Conditions Along a Line plots regardless of the level of the plot.
Set Plot Window to Current View
Selecting this sets the plot view coordinates in the What to Plot/Window cell to the coordinates of the current plot window. Make this selection after using the zoom functions in the Plot View Menu to get the window you want for subsequent plots.
Set Plot Window to Entire Model
Selecting this sets the plot view coordinates in the What to Plot/Window cell to the limits of all elements in the current model, making the window for subsequent plots encompass the entire model extent.
Contour Settings
This selection lets you customize how contours are drawn.
Surface is a drop-down list used to define what is contoured. You can chose to contour heads (h), the difference in head from this level to the level below (dh), the extraction (areally-distributed discharge per area due to leakage and storage fluxes), or the interface elevation in fresh/salt interface models. The (dh) option allows you to contour the head difference between levels in the active model. If you do this for a plot in level 1, it will contour the head difference between level 1 and level 2. This can be useful for showing vertical head gradients, where flow is upward or downward, etc, but is not used for showing drawdown.
Points_Evaluate defines the number of points where the surface function (e.g. head) is evaluated before being fed into the contouring algorithm. Choosing a larger number here will make a smoother, more detailed contour plot, at the cost of more computation and time to plot.
Subtract gives you the option of creating a contour plot of the difference between the active Anaqsim model and the surface contoured previously with a different run. To use this, you must save the grid of data that was used for the contoured surface of an earlier run. See Plot View Menu/Plot File Menu/Save Contour Grid Data to Binary File to learn how to save the surface data. If you select "no", the model contours only the specified surface of the present model. If you specify either of the two yes options, the plot will contour the difference between the surface of the active model and the saved surface (Anaqsim will ask for the file name of the saved surface). If you want a plot of drawdown comparing two Anaqsim runs, you would set Surface to "h" and set Subtract to one of the "yes" options, depending on whether you want drawdown displayed negative or positive.
Increment defines the contour increment - the difference between adjacent contour levels. For example, if the contoured surface data ranged from 12.3 to 14.7, you left the Minimum and Maximum cells blank, chose an Increment of 0.1, the levels contoured would be 12.3, 12.4, 12.5...14.7. Anaqsim automatically uses a heavier line for every 5th contour (e.g. 12.5, 13.0, 13.5...) and labels these. If you set Increment to zero or a negative number, the increment will be determined automatically so that there will be about 25 contours total. This can be a good idea when you are uncertain of the range of values to contour.
Minimum sets the minimum contour level. If this is left blank, the minimum contour level will be a multiple of Increment that is closest to the minimum value on the contoured surface.
Maximum sets the maximum contour level. If this is left blank, the maximum contour level will be a multiple of Increment that is closest to the maximum value on the contoured surface.
Pathline Settings
These settings control the drawing of all flow pathlines you enter under Plot Input/Pathlines. In steady simulations, the pathlines are traced through a steady flow field. In transient simulations, pathlines are generally traced through the simulated transient flow field, and time along a pathline is synchronized with the simulation time. The exception is if you check Freeze_transient pathlines, as described below. The rest of this discussion of transient pathlines assumes Freeze_transient is not checked. Each time step in a transient model has a flow solution that, for the purposes of pathline tracing, applies from the start to the end of the time step. Transient pathlines are only traced during the simulated time window. Transient pathlines terminate when one of the following conditions occurs:
the simulation time along the pathline is less than 0 or greater than the total simulation time (sum of time period lengths),
the total elapsed time exceeds Total_time or,
the pathline exits the model or enters a well or linesink.
Steady pathlines terminate when condition 2 or 3 in the previous sentence is reached.
Step_size defines the size of steps used in the algorithm that traces pathlines. Pathlines are composed of many small straight line segments, and the length of these little segments is defined by Step_size. The size of segments equals Step_size times the largest dimension (x or y) of the plot window size, which is either a) the distance across the window specified under Plot Input/What to Plot (Window), or if that field is blank, the distance across the entire model (the minimum window that spans all line boundaries). So, the definition of it changes as you change the settings of Plot Input/What to Plot/Window. Using a smaller Step_size causes smoother, more accurate pathlines at the cost of more computation time.
If Time_markers is checked, arrows are plotted at specific time intervals along the pathlines drawn. This is useful for defining the capture zones of wells within certain time limits, or simulating solute transport times. When you move the cursor over an arrow, a text box pops up to display information about the elapsed time, domain, and elevation of the pathline at the location of the arrowhead. This allows you to know the 3D configuration of a pathline. The scale of the arrows is set as a fraction of the plot window size (similar to the step size as discussed above.
Time_marker_increment is the amount of elapsed time between arrows that are drawn, if Time_markers is checked.
Total_time is the total amount of time allowed on pathlines. This can be set to show, for example, the limits of the 2 year capture zone for a water supply well.
Start_time is the simulation time at the starting points for pathlines in transient simulations. Simulation time starts at zero at the beginning of a transient simulation. For example, in a 300 day simulation, you could have the starting time for well pathlines be 300 days and trace pathlines upstream and the simulation time would decrease along the pathline. Alternatively, pathlines traced in the downstream direction have increasing simulation time along the pathline.
If Freeze_transient is checked and this is a transient simulation, the pathlines will not be traced through the transient flow field, but instead will be traced through a "frozen" snapshot of flow field at the time Start_time, with pathlines traced as though this flow field existed indefinitely like a steady state flow field. This is generally not recommended, since the frozen flow field doesn't actually exist for longer than an instant. This option is offered because capture zone delineation rules in some states (e.g. Massachusetts) require such an analysis.
Capture_constrain, if checked, allows you to plot only the pathlines that are captured by certain wells or internal line boundaries specified in the next two input items. Capture constrain only applies to pathlines traced in the downstream direction. This can be helpful for defining the capture zone of wells, stream reaches, drains, etc. For example, to define the zone of contribution to a well, you could start numerous pathlines at the water table within a polygon area, and constrain the displayed pathlines to those captured by the well. The staring points of those pathlines will define the zone of recharge captured by the well.
Capture_wells allows you to select which well(s) you want the capture constraint to apply to. If you click the Select button, you can select one or more wells from among the list of wells - their labels will be displayed in this list. All three well types are included in this list: discharge-specified, discharge-specified (multi-domain), and head-specified. You should not mix well pathlines emanating from well with plots involving capture constraint at the same well. The well pathlines emanating from the well are not considered "captured" because in the tracing they start at the well, but don't end at the well.
Capture_lines allows you to select which internal line boundaries you want the capture constraint to apply to. If you click the Select button, you can select one or more line boundaries from among the list of line boundaries - their labels will be displayed in this list. These types of line boundaries are included in this list: head-specified (internal, not external), discharge-specified, river, drain/fracture.
Pathlines can be displayed with three aspects:
Starting points are plotted as circles and there is pop-up information about the starting point if you hover the mouse over the circle.
Pathline traces.
Arrowheads at each time marker, with pop-up information about the pathline at that point if you hover the mouse over it.
You can control which of these three is displayed in the plot by selecting View Manager from the Plot View Menu. You can toggle the display of these on/off by clicking on the Freeze column in the View Manager.
Vector Settings
These settings control the drawing of vectors. Vectors are computed using the domain’s function for the discharge vector. When vectors are drawn, the center of the vector is at the spot where the vector was computed.
Vector_Type is a drop-down list of possible vector types to draw: average linear velocity (v) [L/T], specific discharge (q) [L/T], or domain discharge (Q, equals q times saturated thickness) [L2/T].
Points_Evaluate defines the number of points where the vector will be computed and displayed. Select values in the lower end of the range for a plot that is not cluttered with too many vectors.
Scale_Factor is a factor that controls the scale that the vectors are drawn to. Larger numbers here produce larger vectors. A value of 1 makes it so the largest vector drawn has a length equal to the spacing between points where vectors are evaluated.
Pathlines
This menu is where you specify the starting points and tracing directions of pathlines that are drawn. You can specify single pathlines, pathlines distributed along a line, or pathlines distributed along a circle. Well pathlines are like circle pathlines but linked to a particular well. Pathlines are demonstrated in detail in the tutorial videos at the website.
Single
This table allows input for single pathlines.
Label is a text label that helps you keep track of multiple single pathlines.
Direction is the direction that pathlines are traced from the starting point and it may be either upstream or downstream.
X,Y are the coordinates of the starting point for the pathline. The coordinates are two real numbers delimited by a comma. You may digitize the coordinates with the Digitize/Point selection in the plot view menu.
Start_level is the level(s) of the pathline at the start point(s). It is easiest to understand this parameter with some examples. A value of 1.0 starts a pathline at X,Y at the top of the domain that is level 1 at this location. A value of 2.25 starts a pathline at the elevation where 25% of the saturated thickness is above and 75% of the saturated thickness below in the domain that is level 2 at X,Y. A value of 2.99 starts a pathline with 99% of the saturated thickness above and 1% of the saturated thickness below, very near the base of the level 2 domain at X,Y. Pathlines are plotted for all levels encountered along the path, not just the start level or the plotted level which applies to the contours, vectors and information shown to the left of the plot. A single Start_level may be entered, or multiple levels may be entered separated by commas which starts an array of pathlines with the same x,y coodinates but at different levels. For example, you could enter "2.1, 2.3, 2.5, 2.7, 2.9" to start pathlines at five different elevations in level 2.
Show is a checkbox that allows you to selectively display or not display this single pathline. In order for this pathline to appear in a plot, this must be checked and Pathlines must be checked in Plot Input Menu / What to Plot.
Line
This allows starting a number of pathlines equally spaced along segments of a polyline.
Label is a text label that helps you keep track of multiple line pathlines.
Direction is the same as defined for Pathline/Single.
Coordinates are the coordinates of the polyline along which the pathlines start. Edit the coordinates by clicking the Edit button in this column. The coordinates are two or more lines, each with two real numbers delimited by a comma (X, Y). You may digitize the coordinates with the Digitize/Polyline selection in the plot view menu and then paste them in.
Number is the number of pathlines to start in each segment of the polyline. This number of start points are equally spaced along each segment.
Start_level is the level(s) of the pathlines at their start points(s). It is the same as defined for Pathline/Single. A single Start_level may be entered, or multiple levels may be entered separated by commas which starts an array of pathlines with the same x,y coodinates but at different levels. For example, you could enter "2.1, 2.3, 2.5, 2.7, 2.9" to start pathlines at five different elevations in level 2.
Show is a checkbox that allows you to selectively display or not display these pathlines. In order for these pathlines to appear in a plot, this must be checked and Pathlines must be checked in Plot Input Menu / What to Plot.
Area
This allows starting a number of pathlines equally spaced within an area defined by a polygon. This can be useful for tracing pathlines from a source area, or for defining capture zones for wells.
Label is a text label that helps you keep track of multiple area pathlines.
Direction is the same as defined for Pathline/Single.
Coordinates are the coordinates of the polygon that defines the area within which the pathlines start. Edit the coordinates by clicking the Edit button in this column. The coordinates are multiple lines, each with two real numbers delimited by a comma (X, Y). You may digitize the polygon coordinates with the Digitize/Polyline, Digitize/Circle, or Digitize/Ellipse selections in the plot view menu and then paste them in. You may also later edit the polygon graphically, moving, inserting, and deleting vertexes.
Nesting_level is a parameter that allows you to nest several area pathline polygons inside each other, with different start point spacings. If you are not nesting or overlapping these, specify 1 for all. If you want to place a smaller polygon with denser or less dense spacing inside another polygon, use nesting level 1 for the larger polygon and nesting level 2 for the smaller one inside of it. You may nest up to 5 levels to drill down to finer basis point spacing in the key areas (e.g. source area). The polygons with the higher nesting level overwrite the spacing and other inputs of lower nesting levels.
Spacing defines the distance between pathline start points. Start points are spread out on a hexagonal array of points based on this spacing.
Start_level is the level(s) of the pathlines at their start points(s). It is the same as defined for Pathline/Single. A single Start_level may be entered, or multiple levels may be entered separated by commas which starts an array of pathlines with the same x,y coodinates but at different levels. For example, if the source area you were trying trace spanned level 2, you could enter "2.1, 2.3, 2.5, 2.7, 2.9" to start pathlines at five different elevations in level 2.
Show is a checkbox that allows you to selectively display or not display these pathlines. In order for these pathlines to appear in a plot, this must be checked and Pathlines must be checked in Plot Input Menu / What to Plot.
Circle
Circle pathlines start equally spaced on a circle that the user specifies. For wells, the well pathline is a better choice, since it is linked to the well and will move with the well if its location is changed.
Label is a text label that helps you keep track of multiple circle pathlines.
Direction is the same as defined for Pathline/Single.
X,Y are the coordinates of the center of the circle. The coordinates are two real numbers delimited by a comma. You may digitize the coordinates with the Digitize/Point selection in the plot view menu.
Radius is the radius of the circle. For a well, make sure this radius is larger than the well's radius, otherwise the pathlines will be terminated before they can start.
Start_level is the level(s) of the pathlines at their start points(s). It is the same as defined for Pathline/Single. A single Start_level may be entered, or multiple levels may be entered separated by commas which starts an array of pathlines with the same x,y coodinates but at different levels. For example, you could enter "2.1, 2.3, 2.5, 2.7, 2.9" to start pathlines at five different elevations in level 2.
Show is a checkbox that allows you to selectively display or not display these pathlines. In order for these pathlines to appear in a plot, this must be checked and Pathlines must be checked in Plot Input Menu / What to Plot.
Well
Well pathlines are like circle pathlines, but are linked to a specific well. When you move a well graphically, the reference to the well is maintained and pathlines will be drawn correctly. The circle that the pathlines start on is centered on the well center and has a radius that is 1.2 times the well radius. The direction of tracing is upstream if the well is extracting and downstream if the well is injecting.
Well Label is the text label of the pumping well you want to trace from. Double click this cell to select from a list of all well labels.
Number is the number of pathlines to start. Pathline start points are equally spaced around the circle centered on the well.
Start_level is the level(s) of the pathlines at their start points(s). It is the same as defined for Pathline/Single. A single Start_level may be entered, or multiple levels may be entered separated by commas which starts an array of pathlines with the same x,y coodinates but at different levels. For example, you could enter "2.1, 2.3, 2.5, 2.7, 2.9" to start pathlines at five different elevations in level 2.
Show is a checkbox that allows you to selectively display or not display these pathlines. In order for these pathlines to appear in a plot, this must be checked and Pathlines must be checked in Plot Input Menu / What to Plot.
Analysis Input Menu
Items under this menu allow you analyze the results of a simulation after the system of equations is solved (Solve).
Hydrograph Points
These allow you to track head (or drawdown) vs. time at specific points during a transient simulation. They may be used to check the simulated water level at some other point such as an observation well location. After solving, you can make hydrographs with the model-simulated head (or drawdown) and observed values read from a file; this is done with Analysis / Graph Head Hydrographs or Analysis / Graph Drawdown Hydrographs. This output is also available in automated runs.
Label is a text label that helps you keep track of multiple hydrograph points.
Level is the model level of the hydrograph point.
X,Y are the coordinates of the hydrograph point. The coordinates are two real numbers delimited by a comma. You may digitize the coordinates with the Digitize/Point selection in the plot view menu.
Show is a checkbox that allows you to selectively include or exclude this particular hydrograph point in written or graphed outputs.
A similar functionality is available in the plot context menu (right-click over the plot), which allows you to create hydrographs of all model levels at any location in a transient model. However, hydrographs created with the plot context menu lack initial (t=0) heads, and the location is determined by the cursor position.
The locations of hydrograph points can be included in plots. These locations may also be edited graphically, like can be done with well locations: click on a hydrograph point, then drag the purple square to the new location.
Transient Line Conditions
This allows you to track head or extraction along a line during both a steady and a transient simulation. Tracking extraction along a line is useful for checking the accuracy of the governing equation approximation in transient simulations. Tracking head along a line allows you to see how head profiles evolve during a transient simulation. After solving, use these menu selections to make graphs: Analysis/Transient Line Conditions. This output is also available in automated runs.
Label is a text label that helps you keep track of multiple transient line conditions.
Level is the model level of the line.
Coordinates are the coordinates of the end points of the line. Click the Edit button to edit coordinates. The coordinates are two lines, each with two real numbers delimited by a comma (X, Y). You may digitize the coordinates with the Digitize/Polyline selection in the plot view menu and then paste them in.
Points_on_line is the number of points on the line where head and extraction are computed. More points yield smoother, more accurate profiles at the cost of more computation.
These lines can be displayed on plots. These lines may also be edited graphically, like can be done with line boundaries: click on a line, then drag the purple squares at the vertexes to new locations.
Calibration Targets
Here is where you input information about targets for calibration. Targets may be heads or head differences between two locations.
Head
Label is a text label that helps you keep track of head calibration targets.
Level is the model level of the target.
X,Y are the coordinates of the target. The coordinates are two real numbers delimited by a comma. You may digitize the coordinates with the Digitize/Point selection in the plot view menu.
Observed_Head is the target head.
Time is the time of the observation for a transient model. This time is measured from time = 0 at the start of the simulation. In a steady model, this parameter is ignored. In a transient model, you may input head targets at the same location but different times. The Head Difference calibration feature may be used to calibrate to temporal variations in head (e.g. rate of drawdown) during a transient simulation, in addition to spatial head differences.
Show - if this is checked, this particular calibration point data will display when a plot is made with What to Plot / Head Calibration is checked. This allows you to make a plot with just certain calibration points posted (e.g. those in a one domain, or one model level, or at a certain time in a transient run).
Head calibration targets may be imported from spreadsheets like Excel. Start by creating a spreadsheet table with the same columns as Anaqsim's head calibration table. Then highlight and copy the block of data you want to paste, like is shown in the first image below for an Excel spreadsheet. Then right-click over the Anaqsim head calibration table and select Paste New Rows. The new rows will appear as shown in the second image below. If your data has X and Y in separate columns, you can use Excel's CONCATENATE function to combine the X and Y columns with a "," between them into one column.
Head Difference
This allows comparison of model-calculated head differences to target head differences. The difference is computed between two head targets listed in the Analysis Input/Calibration Targets/Head table. This may be used to calibrate to temporal variations in head at one location during a transient simulation (e.g. rate of drawdown) , or to spatial head differences (e.g. head gradients). The labels are selected from drop-down lists generated from the head calibration targets data.
Label1 is the text label for the first head calibration target.
Label2 is the text label for the second head calibration target.
Velocity
Label is a text label that helps you keep track of velocity calibration targets.
Level is the model level of the target.
X,Y are the coordinates of the target. The coordinates are two real numbers delimited by a comma. You may digitize the coordinates with the Digitize/Point selection in the plot view menu.
Observed_Horizontal_Velocity is the target magnitude of the horizontal component of the average linear velocity.
Observed_Horizontal_Direction is the target direction of the horizontal component of the average linear velocity. This is measured in degrees from the x axis, positive in the counter-clockwise direction.
Observed_Vertical_Velocity is the target vertical component of the average linear velocity. Positive is upward, negative is downward.
Time is the time of the observation for a transient model. This time is measured from time = 0 at the start of the simulation. In a steady model, this parameter is ignored. In a transient model, you may input head targets at the same location but different times. The Head Difference calibration feature may be used to calibrate to temporal variations in head (e.g. rate of drawdown) during a transient simulation, in addition to spatial head differences.
Show - if this is checked, this particular calibration point data will display when you write calibration data to the run log and will display on the plot when a plot is made with What to Plot / Head Calibration. This allows you to make a plot with just certain calibration points posted (e.g. those in a one domain, or one model level, or at a certain time in a transient run).
This option is useful for calibrating a model to a known discharge direction indicated by an observed chemical plume. You can specify the direction of the observed horizontal velocity parallel to the observed plume and compare this to the modeled horizontal velocity direction. If you also know the magnitude of velocity in the plume, you can compare modeled to observed horizontal and vertical velocity components.
Head-specified Well Discharges
Here you select one or more head-specified wells to compare their simulated total discharge to some target or observed value of total discharge. This could be used to calibrate to an observed total discharge from a group of flowing artesian wells, for example.
Label is the label give to this well or group of wells.
Wells_Selected shows you a list of the head-specified wells from which you select the one(s) that you would like to calibrate to.
Observed_Discharge is the observed or target discharge of this well or group of wells.
Time is the time in a transient simulation (not used in a steady simulation).
Internal Line Boundary Discharges
Here you select one or more internal discharging line boundaries (head-specified internal or river) to compare their simulated total discharge to some target or observed value of total discharge. This could be used to calibrate to an observed discharge at a stream gauge or discharge from a pit dewatering system, for example.
Label is the label give to this well or group of wells.
LineBoundaries_Selected shows you a list of the internal head-specified line boundaries and river line boundaries from which you select the one(s) that you would like to calibrate to.
Observed_Discharge is the observed or target discharge of this line boundary or group of line boundaries.
Time is the time in a transient simulation (not used in a steady simulation).
Vertical Leakage Over Polygon Area
This feature allows numerical computation of vertical leakage discharges integrated over a polygon area. The area may be defined as the area covered by a specified domain or the area covered by a user-defined polygon. The discharges are computed by evaluating the vertical leakage rate [L/T] at a large number of regularly-spaced points, and numerically integrating contributions over the small increments of area each point represents. The total leakage discharge [L3/T] over the area is reported. This tool will examine vertical leakages for each level that exists within the domain or polygon specified. For example, if levels 1,2,3, and 5 exist in the area of the polygon, the output will include:
downward leakage into the topmost level of the model, regardless of whether the topmost level is level 1, 2, etc.
downward leakage out of level 1
downward leakage out of level 2
downward leakage out of level 3
downward leakage out of level 5
After solving, use Analysis / Write Vertical Leakages Over Polygon Areas to Run Log to view computed total leakage discharges. This output is also available in automated runs.
Input parameters for this feature are:
Label is a text label that helps you keep track of multiple polygon areas.
Polygon_Source selects whether your polygon will be defined as the extent of a model Domain or by the Co-oordinates of a user-defined polygon, which could cross domain boundaries.
Points_Evaluated is the approximate number of points evaluated (if your polygon is a rectangle parallel to the x-y axes, this number is the actual number of points, but if your polygon is irregularly-shaped, the actual number of points will be less than what is specified here. The algorithm sets up a spacing of points so that the specified number of points fills a rectangle that encompasses the entire polygon. More points yields more accurate estimates of integrated leakage discharge at the cost of more computation.
Domain sets the domain that defines the polygon area, if you choose Domain as the Polygon_Source. If you choose Cooordinates as the polygon source, this input will not be used and may be left blank.
Coordinates are the coordinates of the polygon area, if you choose Co-oordinates as the Polygon_Source. If you choose Domain as the polygon source, this input will not be used and may be left blank. Click the Edit button to edit coordinates. The coordinates are multiple lines, each with two real numbers delimited by a comma (X, Y) to represent the vertex of the polygon. You may digitize the coordinates with the Digitize/Polyline selection in the plot view menu and then paste them in here. The coordinates may define a closed polygon (last point = first point), or it may omit the closing point (Anaqsim will close the polygon for you).
These polygons can be displayed on plots. They may also be edited graphically, like can be done with line boundaries: click on a polygon, then drag the purple squares at the vertexes to new locations. You may also insert or delete vertexes once the polygon is selected.Solve and Cancel Solve
Solve
Pressing Solve begins the process of solving the system of equations associated with your model. The program constructs the system of equations and then invokes a direct LU solver to determine the unknown strength parameters associated with wells, line elements, and area sink elements. Boundary conditions like river boundaries in unconfined aquifers generate nonlinear equations. When a model contains some nonlinear equations, the solution is found by repeated iterations, where the non-linear equations are linearized (an approximation) with the linearization updated at each iteration. The program displays iteration information in the run log as iterations proceed and when they terminate due to one of two conditions: 1) the solution converged within the check settings, or 2) the solution did not converge within the check settings but stopped iterating after the maximum number of iterations. The solve process is executed on a background thread, so you may continue with some input editing tasks as the solve process runs. You can abort the solve process by selecting Cancel Solve.
Solve must be executed after any change to the Model Input so that results examined in the Make Plot or Analysis menus reflect the current input. Changes to the Plot Input do not require re-solving. In transient models, changes to Analysis Input/Hydrograph Points or Analysis Input/Transient Line Conditions requires you to re-establish the initial heads files and to Solve again before running related items under the Analysis menu.
Solving takes longer for more complex simulations with more equations. It is good modeling practice to start with a relatively simple model and incrementally add complexity, so you can monitor the level of complexity, number of equations, and solve times as you proceed. The spatially-variable area source/sinks can add large numbers of equations to the system if the spacing of basis points is small. To save computation time, you can increase the basis point spacing of spatially-variable area sinks and reduce the number of parameters per line on line boundaries. When you want to make a final, presentation-quality model, you can alter these for more accuracy and better aesthetics.
Another way to keep computation minimal and start simple is to make as much of the model linear as possible (linear boundary conditions can solve in a single iteration, as opposed to non-linear boundary conditions). You can do this by making domains confined (fixed T and saturated thickness). You can also employ head-specified line boundaries (linear) instead of river line boundaries (often nonlinear). For complex problems, it probably makes sense to do most of the modeling work in with linear features and then change to nonlinear features later in the modeling process.
You may adjust Solve Settings and Check Settings to control the Solve process.
Cancel Solve
This allows you to abort the ongoing solve process. Use this if you don't want to wait for solve to finish and you know the input is not what you want. If you select Make Plot/All Selected Features after canceling the solve process, Anaqsim will attempt to make a plot with the available solution. For example, a transient solution canceled after 5 time steps were complete will be able to display plots and pathlines up through this point in the simulation. In a steady simulation, the plot will show the last iteration results before canceling.Make Plot Menu
Selections here cause a plot to be generated. The view is automatically shifted to the map view with any of these selections.
All Selected Features, Choose Level / Time
After selecting a model level and time step (for transient models) in the pop-up window, this creates a map-view plot of the model results, using your settings from the Plot Input menu. To use this selection, you must have solved a model.
Everything shown in the plot will be specific to the selected level and time step , except for pathlines, which may traverse multiple levels and progress through time. Regardless of the level and time selected, entire pathlines are plotted.
All Selected Features, Same Level / Time
This creates a map-view plot of the model results, using your settings from the Plot Input menu. The level and time of the plot are the same as in the prior plot. If this is the first plot made, it defaults to level 1 at the first time step. To use this selection, you must have solved a model.
Everything shown in the plot will be specific to the selected level and time step , except for pathlines, which may traverse multiple levels and progress through time. Regardless of the level and time selected, entire pathlines are plotted.
Model Elements Only
This selection is used if you are part way through constructing a model and want to digitize features or see what model input features you have so far, without solving the partially-constructed system. This allows you to see the layout of model elements and of control points (points where boundary conditions are met). The control points are collocation points along line boundaries (“x” symbols) and the basis points for spatially-variable area source/sinks (“+” symbols). To see control points and basis points, make sure to select "elements w/details, control points" under Plot Input / What to Plot / Elements.
Along line boundaries, there are circles at the line segment end points. If you move the cursor over one of these circles, information about the line boundary condition at that corner is displayed. At the start and end points of line boundaries, these circle are slightly offset away from the start or end point, which is helpful when multiple line boundaries start/end at the same point.
The pop-up window allows you to select the model level of the elements you want to display.
When you make a plot this way, there is no valid solution to examine, since the Solve step is bypassed. So, you can't use any of the post-solve analysis features such as Make Plot /All Selected Features or any of the options under the Analysis menu, and some of the options under the Plot Context menu.
SVAS Top/Bottom Condition Surface
Use this to contour and examine a SVAS top/bottom condition surface that you have defined. When you select this, a dialog will pop up that asks you to select one of the surfaces you have defined. Then a plot will be made that shows contours of the surface using contours settings defined under Plot Input/Contour Settings. The plot will also show dark blue circles at each surface data point location, and if you move the mouse over the circle, it will display the specified value at that data point.
Depending what you have selected under Plot Input/What to Plot, the plot may or may not also show the basemap, elements, and SVAS polygons.
When you make a plot this way, there is no valid solution to examine, since the Solve step is bypassed. So, you can't use any of the post-solve analysis features such as Make Plot /All Selected Features or any of the options under the Analysis menu, and some of the options under the Plot Context menu.Analysis Menu
Under this menu there are many choices for analyzing a model after the system of equations has been solved. Remember to Solve the system after making input changes and before using this menu. Some choices generate graphs, others generate text output to the run log. Many of the functions under this menu are demonstrated in detail in the tutorial videos at the website.
Check Boundary Conditions at Latest Iteration
Selecting this causes the program to run through a check of all boundary conditions at the end of the most recent iteration (solved model of last time step if it converged, or last iteration in the case of a model that didn't converge), to see if they are met within the tolerances specified under Model Input/Solution/Check Settings. The results are written to the run log and the view is switched to the view with the run log. This can be useful to see which boundary conditions are causing non-convergence, if your model doesn't converge. It may steer you to relax certain check settings or reconfigure the model.
In the following example, all of the boundary conditions met the check tolerances, so no specific boundary condition is listed:
After decreasing the Qn_check_tolerance to 2 x 10-9 and the Extraction_check_tolerance to 4 x 10-7, the same model had some of the boundary conditions exceeding their check tolerances:
This output may also be written in automated runs.
Head-Specified Well Discharges
Under this menu, selecting Write Discharges to Run Log writes a listing of head-specified well discharges to the run log. If the model is steady, it will list one discharge per well. If the model is transient, it will list period, step, time, and discharge at each time step. The time listed is the time at the end of the step. The discharge listed applies from the start to the end of the step. Discharges of such wells are not known prior to solving the system (Solve).
If you select Write Discharges to CSV, a dialog pops up to select an output file location. The discharges of all head-specified wells are then written to that file location, providing period, step, time and discharge at each time step.
If you select Graph Transient Discharges, a dialog pops up where you select one well, and a graph is made of the discharge vs. time at the selected well. Discharges are constant during a time step, so plots show abrupt changes in discharge between steps. Exporting the graph or the underlying data is described here.
This output may also be written in automated runs.
Discharge-Specified Well Heads
Under this menu, selecting Write Heads to Run Log writes a listing of heads at all discharge-specified wells to the run log. This is head at the specified well radius. If the model is steady, it will list one head per well. If the model is transient, it will list period, step, time, and head at each time step. Heads at such wells are not known prior to solving the system (Solve).
If you select Write Heads to CSV, a dialog pops up to select an output file location. The heads of all discharge-specified wells are then written to that file location, providing period, step, time and head at each time step.
If you select Graph Transient heads, a dialog pops up where you select one well, and a graph is made of the head vs. time at the selected well. Exporting the graph or the underlying data is described here.
This output may also be written in automated runs.
Multi-Domain Well Discharges by Domain
Under menu, selecting Write Discharges to Run Log writes a listing of the discharge contributed by each domain in a discharge-specified multi-domain well to the run log. If the model is steady, it will list one discharge per domain. If the model is transient, it will list period, step, time, and discharge at each time step in each domain. The time listed is the time at the end of the step. The discharge listed applies from the start to the end of the step. The discharges in each domain are not known prior to solving the system (Solve).
If you select Write Discharges to CSV, a dialog pops up to select an output file location. The discharge of all multi-domain wells are then written to that file location, providing period, step, time and discharge at each time step in each domain.
If you select Graph Transient Discharges, a dialog pops up where you select one discharge-specified multi-domain well, and a graph is made of the discharge contributed by each domain vs. time at the selected well. Discharges are constant during a time step, so plots show abrupt changes in discharge between steps. Exporting the graph or the underlying data is described here.
This output may also be written in automated runs.
Internal Head-Specified Line Boundary Discharges
Under this menu, selecting Write Discharges to Run Log writes a listing of internal head-specified line boundary discharges to the run log. If the model is steady, it will list one total discharge per line boundary. If the model is transient, it will list total discharges vs. time, with period, step, time, and discharge at each time step. The time listed is the time at the end of the step. The discharge listed applies from the start to the end of the step. The discharges of such line boundaries are not known prior to solving the system (Solve).
If you select Write Discharges to CSV, a dialog pops up to select an output file location. The discharges of all internal head-specified lines are then written to that file location, providing period, step, time and discharge at each time step.
If you select Graph Transient Discharges, a dialog pops up where you select one internal head-specified line boundary, and a graph is made of the total discharge vs. time at the selected line boundary. Discharges are constant during a time step, so plots show abrupt changes in discharge between steps. Exporting the graph or the underlying data is described here.
This output may also be written in automated runs.
River Line Boundary Discharges
River line boundary discharges are split into two sections, individual reaches and grouped reaches. Anaqsim will sum a group of river line boundary discharges if your river line boundaries have labels with a common root. A common root consists of any label that contains the common character string "____:#". For example, if you had three river line boundaries and their labels were dark creek:#1, dark creek:#2, and dark creek:#3, the discharges of each of these 3 are available individually as well as their total discharge. The discharges of river line boundaries are not known prior to solving the system (Solve).
Selecting Write Discharges to Run Log writes a listing of river line boundary discharges to the run log. If the model is steady, it will list one total discharge per line boundary. If the model is transient, it will list period, step, time, and total discharge at each time step. The time listed is the time at the end of the step. The discharge listed applies from the start to the end of the step. Discharges are negative for flow out of the domain into the river and positive for flow from the river into the domain.
If you select Write Discharges to CSV, a dialog pops up to select an output file location. The discharges of all river line boundaries are then written to that file location, providing period, step, time and discharge at each time step.
If you select Graph Transient Discharges, a dialog pops up where you select one river line boundary, and a graph is made of the total discharge vs. time at the selected line boundary. Discharges are constant during a time step, so plots show abrupt changes in discharge between steps. This option is not yet available for grouped reaches. Exporting the graph or the underlying data is described here.
This output may also be written in automated runs.
Conditions Along a Line
This selection allows you to create graphs of head, domain elevations, interface elevations, aquifer discharge, or extraction rate along a line.
There are three options:
Writing outputs from pre-defined lines to a CSV file,
Graphing outputs from pre-defined lines,
Graphing outputs from a new line
Pre-defined lines are defined prior to solving the model, and must be defined in Analysis Input/Transient Line Conditions. Graphing outputs from a new line can be specified after model solve, but graphs are limited to a single time step.
Whilst the predefined lines are called 'Transient Line Conditions' they can be used to provide outputs from both steady and transient models.
The options for choosing a variable to plot and/or write to CSV file are:
Head. Creates graphs of head vs. time along the line. The profile includes the initial (t=0) heads along the line. Heads shown are at the end of the time step listed.
Discharge tangent to line. Creates graph of discharge vs time along the line. Discharge tangent to line is the component of discharge in the domain tangent to the line [L3/T/L = L2/T], positive for flow proceeding from the first towards the second point.
Discharge normal to line. Creates graphs of discharge vs time along the line. Discharge normal to line is the component of discharge in the domain normal to the line [L3/T/L = L2/T], positive for flow from left to right as you proceed from the first to the second point.
Extraction. Creates graphs of extraction vs. time along the line. Extraction is the extraction [L3/T/L2 = L/T] due to recharge, leakage out the top, leakage out the bottom, and storage fluxes. Both modeled extraction and extraction computed from heads are shown. In a well-defined model these two curves will be close to each other. If they are not, you probably need denser basis point spacing in your spatially-variable area sinks. The extraction shown applies over the time step that ends at the time listed in the plot legend.
Leakage at Top. Creates graphs of vertical leakage out the top of the domain vs. time along the line. Leakage [L3/T/L2 = L/T] is computed based on head differences, vertical hydraulic conductivities (K3) and saturated thicknesses. The leakage shown applies over the time step that ends at the time listed in the plot legend.
Leakage at Bottom. Creates graphs of vertical leakage out the bottom of the domain vs. time along the line. Leakage [L3/T/L2 = L/T] is computed based on head differences, vertical hydraulic conductivities (K3) and saturated thicknesses. The leakage shown applies over the time step that ends at the time listed in the plot legend.
Storage Flux. Creates graphs of flux into storage in the domain vs. time along the line. Flux [L3/T/L2 = L/T] is computed based on the change in head during the time step listed, and applies over the time step that ends at the time listed in the plot legend
When Graphing outputs from a new line, some additional options are present. A dialog box pops up which requires the following input:
Model Level(s) selects the model level(s) of the graphed condition. You may select one or multiple levels (e.g. you may want to plot a profile of heads in all levels along the line).
Period, Step, Time selects the snapshot in time that you graph for a transient run. Starting with release 2016-2, this allows selection of the solution at the end of any time step. Prior to 2016-2, only the final time step solution was available for this function.
Line Coordinates are the coordinates of the end points of the line. The coordinates are two lines or input, each with two real numbers delimited by a comma (X, Y). You may digitize the coordinates with the Digitize/Polyline selection in the plot view menu and then paste them in. This line can be displayed on plots. The line may also be edited graphically, like can be done with line boundaries: click on a line, then drag the purple squares at the vertexes to new locations.
Number of points along the line is the number of points where the head, normal discharge, or extraction is evaluated along the line. More data points make for a smoother plot.
Select whether you want to graph a Vertical profile (Head), Discharge tangent to line, Discharge normal to line, Extraction, Vertical Leakage (which includes both leakage at Top and Leakage at Bottom) and Storage Flux vs. distance along the line.
If you select Vertical profile, you have the option of showing head, domain boundaries, fresh/salt interface elevations, pathlines, and/or pathline time markers. Depending on what you select under Level, you will make a profile of the selected levels.
When you have made a graph, it shows the selected item(s) vs. distance along the selected line. You may export a bitmap graphic of the graph or the underlying data (see the Exporting X-Y Graphs topic). For a transient simulation, this shows the conditions at the end of the simulation.
The location of this line can be displayed on plots. The line may also be edited graphically, like can be done with line boundaries: click on a line, then drag the purple squares at the vertexes to new locations.
Fresh/salt interface profiles
There are two options for plotting fresh/salt interface profiles. The Dupuit option computes the interface position using the model-simulated head for the domain, regardless of the elevation of the interface within the domain. This assumes that there is no vertical resistance to flow within a domain and no vertical head gradients within a domain (this is commonly called the Dupuit approximation, which is inherent in Anaqsim's domain discharge model). The Dupuit interface position is always computed using the model-simulated head, and assuming pressure equilibrium between this fresh water head and static salt water.
The Dupuit plotting option can be used for single- and multi-level domain interface models. In multi-level models where there are significant head differences between levels, the Dupuit option will generate an interface that has discontinuities at boundaries between levels. This saw-tooth shaped interface is consistent with the Dupuit and Ghyben-Herzberg approximations used in Anaqsim. With the Dupuit approximation, head jumps abruptly at horizontal boundaries between domains at different levels, so the interface elevation computed with the Ghyben-Herzberg equation must also jump.
Such discontinuities in the interface may be realistic for cases where a thin aquitard, included in the Anaqsim model by adjusting the K3 of an aquifer domain above or below, is the main cause of vertical resistance between levels. On the other hand, if the main source of vertical resistance is not an aquitard but the actual K3 of the domains involved, the interface discontinuities are just an artifact of the Dupuit approximation. These discontinuities can be smoothed by selecting the Non-Dupuit plotting option.
The Non-Dupuit option uses heads that are calculated in a post-processing step, heads that do vary with elevation within a domain. In multi-level models simulating vertical leakage between levels, there is information available to approximate the vertical distribution of head within a domain. Using the simulated heads in the domain and in overlying or underlying domains, and the vertical hydraulic conductivity of the domains (K3), and assuming that the simulated domain head applies at the mid-height of a domain, is is possible to construct an estimated vertical profile of heads within a domain at a point. This profile is non-Dupuit, since head varies with elevation in a domain. For example, if the K3 of the lower half of level 1 domain A equals K3 of the upper half of level 2 domain B, the approximated head would vary linearly from the midpoint of domain A to the midpoint of level B. On the other hand, if the K3 of the lower half of level 1 domain A were twice the K3 of the upper half of level 2 domain B, the approximated head would vary linearly in the lower half of domain A and linearly in the upper half of domain B, but the vertical head gradient in the upper half of B would be twice that in the lower half of A. If you elect the Non-Dupuit option for interface position, the interface position is computed so that this approximated head balances pressure with static salt water. The Non-Dupuit option will have these characteristics compared to the Dupuit option:
Where no vertical leakage can be computed, no non-Dupuit interface can be computed, so none can be displayed. This is true in single-level areas of models.
Interfaces will not abruptly jump at the boundary between different levels like with the Dupuit option, but will instead be continuous since the approximated head profile is continuous.
In areas with an upward component of vertical flow, the non-Dupuit interface will be steeper than the Dupuit interface.
In areas with a downward component of vertical flow, the non-Dupuit interface will be shallower than the Dupuit interface.
In areas with little or no component of vertical flow, the non-Dupuit and Dupuit interfaces will be similar.
Pathlines
When you check pathlines, the profile will show thin lines along each pathline, which is projected onto the line using a normal (right angle) projection. If you check pathline time markers, a dot is displayed at each time marker (arrow in the plot) location. The pathlines and markers drawn will be those from the most recent plot made with the open model. In a transient model, the pathline is transient, and not based on the flow field just at the selected time step.
This output may also be written in automated runs.
Sum Discharge Across a Polyline
This sums the domain discharge [L3/T] across a polyline that has been digitized and is currently residing in the clipboard after being digitized. You must first digitize a polyline in the plot view (Digitize/Polyline) before making this selection. The discharge is written to the run log. Discharge is positive for flow going left to right across the polyline as you proceed from the first vertex to the last. For a transient simulation, discharges at each time step are written to the run log, so you can see how discharge evolved during the simulation.
The discharge is computed by numerically summing normal components of aquifer discharge at 1000 equally-spaced points on each segment of the digitized polyline.
Sum Discharge Across External Boundaries
This sums the domain discharge [L3/T] across all external boundaries (head specified, normal flux-specified, and head-dependent normal flux). Discharge is positive for flow going left to right across the boundary as you proceed from the first vertex towards the last. The discharge is computed by numerically summing normal components of aquifer discharge at 1000 equally-spaced points on each segment of the boundary. The polyline vertexes that are used for this is computation are very slightly displaced into the interior of the boundary from the actual vertexes (within 10-4 of the segment length from the actual vertexes).
Selecting Write Heads to Run Log writes these discharges to the run log. For a transient simulation, discharges at each time step are written to the run log, so you can see how these discharges evolve during the simulation.
If you select Write Discharges to CSV, a dialog pops up to select an output file location. The heads of all discharges across external boundaries are then written to that file location, providing period, step, time and discharge at each time step.
If you select Graph Transient Discharges, a dialog pops up where you select a boundary, and a graph is made of the discharge vs. time at the selected boundary. Exporting the graph or the underlying data is described here.
This output may also be written in automated runs.
Vertical Leakage Over Polygon Areas
This causes Anaqsim to estimate and output leakages [L3/T] over polygon areas. The leakages will be computed in all model levels over x-y plane areas defined in Analysis Input / Vertical Leakage Over Polygon Area. These polygons can be displayed on plots. They may also be edited graphically, like can be done with line boundaries: click on a polygon, then drag the purple squares at the vertexes to new locations. You may also insert or delete vertexes once the polygon is selected.
Under this menu, selecting Write Leakage to Run Log writes a listing of leakage at all defined polygons to the run log. If the model is steady, it will list one leakage per model level per polygon. If the model is transient, it will list period, step, time, and leakage at each time step. The output text also includes the area of the polygon.
If you select Write Leakage to CSV, a dialog pops up to select an output file location. The leakage of all polygons are then written to that file location, providing period, step, time, level and head at each time step.
If you select Graph Transient Leakage, a dialog pops up where you select one polygon, and a graph is made of the leakage vs. time at the selected polygon. Exporting the graph or the underlying data is described here.
This output may also be written in automated runs.
Write Number of Displayed (Captured) Pathlines to Run Log
Selecting this causes the number of displayed pathlines to be written to the run log. This can be handy if you are trying to optimize the capture of pathlines originating from a contaminant source area. Use in combination with the capture constrain option, so only pathlines captured by selected wells are displayed. This information can also be written to the text output file generated by an automated Anaqsim run, which allows you to use PEST or other parameter estimation software to perform the optimization.
Head Hydrographs
After solving a transient simulation, this calculates head vs. time data at the hydrograph points input under the Analysis Input/Hydrograph Points menu. The data points relate to the end of each time step in the simulation, as defined in the Model Input/Time Steps menu. To calculate this data, which include initial heads, the following steps must be taken in this sequence:
Hydrograph points must be defined in Analysis Input/Hydrograph Points,
Create initial head files as outlined in the Save Locations for Initial Transient Heads topic.
Solve.
Select this menu choice, which outputs the data in 1 of 3 ways:
If you select Write Head Hydrographs to Run Log, the period, step, time and head will be written at each time step to the log file.
If you select Write Head Hydrographs to CSV, a dialog pops up to select an output file location. The head hydrographs for all hydrograph points are then written to that file location, providing period, step, time and head at each time step.
If you select Graph Head Hydrographs, a dialog pops up and asks if you want to read in observed hydrograph data from a file and plot those data as well as the modeled hydrograph. If you select Yes, you will then open a text file that has data that is either tab-delimited or comma-delimited. The file can have as many series and data values as you would like. An example of the file format for a tab-delimited file is shown below. Each row has 2*n columns for n series of data. The first row has the series label in columns 1, 3, 5,...
The second and subsequent rows have time, value pairs for each series. In this example, columns 1 and 2 have time, value pairs for well1, columns 3 and 4 have time, value pairs for well2, and columns 5 and 6 have time, value pairs for well3. Note there can be different numbers of records in different series (e.g. these three series have 11, 7, and 10 records). This tab-delimited format can be generated directly from Excel by saving as a tab-delimited text (.txt) file.
well 1 well2 well31 101 1 201 1 3012 102 2 202 2 3023 103 3 203 3 3034 104 4 204 4 3045 105 5 205 5 3056 106 6 206 6 3067 107 7 207 7 3078 108 8 3089 109 9 30910 110 10 31011 111
The equivalent comma-delimited (.csv) file, a format that can also be saved from Excel, would look like:
well 1,,well2,,well3,1,101,1,201,1,3012,102,2,202,2,3023,103,3,203,3,3034,104,4,204,4,3045,105,5,205,5,3056,106,6,206,6,3067,107,7,207,7,3078,108,,,8,3089,109,,,9,30910,110,,,10,31011,111,,,,
You may export a bitmap graphic of the graph or the underlying data (see the Exporting X-Y Graphs topic).
A similar functionality is available in the plot context menu (right-click over the plot), which allows you to create hydrographs of all model levels at any location in a transient model. However, hydrographs created with the plot context menu lack initial (t=0) heads.
The locations of hydrograph points can be included in plots. These locations may also be edited graphically, like can be done with well locations: click on a hydrograph point, then drag the purple square to the new location.
This output may also be written in automated runs.
Drawdown Hydrographs
This item does roughly the same thing as Analysis/Head Hydrographs except that it calculates data for initial head - head to give you drawdown vs. time instead of head vs. time. To allow log-log graphing of drawdown vs. time, the (time=0, drawdown=0) data point is omitted. See Analysis/Head Hydrographs for a detailed description of how to set up this sort of analysis and how to display observed drawdown in addition to modeled drawdown.
Three options of writing outputs to Log, CSV and providing graphs are available. This output may also be written in automated runs.
Calibration Results
Items under this menu allow you to write or graph head calibration results. You can include all head calibration targets or only the selected ones.
This output may also be written in automated runs.
Write All Targets to Run Log
This writes the results of calibration to the run log, including all head, head difference, and velocity calibration targets. All calibration targets are input under the Analysis Input/Calibration Targets menu.
Write Selected Targets to Run Log
This writes the results of calibration to the run log, including all head, head difference, and velocity calibration targets. All calibration targets are input under the Analysis Input/Calibration Targets menu.
Graph All Head Targets
This creates a and x-y graph of modeled heads vs. observed heads for all head calibration targets. Head and head difference calibration targets are input under the Analysis Input/Calibration Targets menu.
Graph Selected Head Targets
This creates a and x-y graph of modeled heads vs. observed heads for the selected head calibration targets. Head and head difference calibration targets are input under the Analysis Input/Calibration Targets menu.
X-Y Graphs: Exporting, Changing Axes
Several of the choices under the Analysis menu lead to X-Y graphs. All such graphs are displayed in a separate window like the one shown below, which has two menu items for exporting. Selecting Save Chart Image lets you export a bitmap graphic of the graph to a file in png, jpg, or bmp formats. Selecting Save Chart Data exports the underlying data of the graph to a text file in tab-delimited form so that it may be later imported into documents or spreadsheets like Excel.
You can customize the axes of X-Y graphs under the Change Axes menu item. You can make either the X or Y axis logarithmic, but this only is possible if all values on that axis are positive. You can also change the upper and lower limits and the label/grid interval of the X and Y axes.
When the cursor is moved over a curve on the plot, the label of that curve is displayed.
License Menu
These are topics about your Anaqsim license - how to activate it and check its status. This section applies to the licensed versions of Anaqsim: ‘Quick Designer’ and ‘Deep Designer’. (The Demo version of Anaqsim does not require a license).
License Status this Computer
Selecting this prints the current license information for this computer to the run log. If a valid license is present, it prints the expiration date.
License Key Activation Status
When prompted, enter your activation key code (sent via email to the purchaser at the time of the purchase) and press OK.
The implementation of licenses has been changed from December 2023. Anaqsim version 2023-2-0 or later will be required to check a license key activation status of a license purchased after December 2023.
For licenses purchased after December 2023 – Each activation key contains a single activation. If you have purchased multiple licenses, you will receive multiple activation keys. Each key is valid on one computer for 1 year from the date of purchase. The type of license and expiry date will be printed to the screen.
For licenses purchased prior to December 2023 – Each activation key may contain one or more activations.
Each activation is valid on one computer for 1 year from the time of activation, and there is no time limit for initialising activations. The number of activations initially purchased, the number of activations used so far and the number of activations still available will be printed to the screen.
Activate License on this Computer
Anaqsim licenses must be activated for key program functions to work. Anaqsim licenses are locked to a specific computer for a specific time period (from December 2023, 1 year from purchase; prior to December 2023, 1 year from activation). The following process is required for activating a licence:
Make sure your computer is connected to the internet (required).
Select 'License'/'Activate License on this Computer'.
When prompted, enter your activation key code (sent via email to the purchaser at the time of the purchase) and press OK.
Anaqsim will activate a license on your computer. When an activation expires, purchase a new license or, if multiple activations purchased prior to December 2023, use another activation to add another year of Anaqsim use.
Check that the license is functioning correctly by selecting 'License'/'License Status this Computer'. The license expiration date will be printed to the run log.
Help
Pressing this opens this Anaqsim User Guide Windows help file. The User Guide gives and overview of Anaqsim modeling concepts and then details about the program's user interface and all menu items.
Use the contents tab at the left to navigate to and open desired sections or use the search tab to search for topics related to specific word(s). The buttons on the bar at the bottom navigate to the next topic, and previous topic.About Anaqsim
This causes the Anaqsim release number and the www.anaqsim.com web site URL to be presented in a pop-up window.Plot View Options
Computational details
Computational Limits and Efficiency
There are limits imposed by the amount of memory that a computer can address and these can limit the maximum size of an Anaqsim model. The following graph shows data from numerical experiments with 64-bit Anaqsim on a number of different computers. These data are specific to these machines and each computer will behave differently depending on what other software is running and how the computer is configured, but this at least gives rough guidance. The vertical axis shows the RAM used by the Anaqsim task - you will need more than this amount of memory to handle the operating system and possibly other tasks. Thanks to staff at McLane Environmental for providing several of the data points in this graph. When the number of equations approaches the upper limit posed by memory on a given computer, the solve times increase significantly. If, while running a model, all available memory (RAM) is used by Anaqsim and other tasks running, the windows operating system and .net will swap pages of memory to/from disk, which is a much slower than using RAM. Symptoms of this condition are a dramatic slowing of all tasks and lots of hard disk activity; this is generally a condition to avoid. It is best to increase your computer's memory or reduce the complexity of the model so that you can make runs entirely within RAM.
Another potential limit to the application of Anaqsim is where the system of equations gets so large that it takes too long to solve in a reasonable time. That limit, on present standard personal computers, is probably in the range of several tens of thousands of equations. Anaqsim can be the right tool for problems of moderate complexity, but not extreme complexity. Computing power evolves rapidly, and these limits will migrate upward with time. For situations with extreme complexity, a numerical method like finite differences or finite elements is probably a better choice.
Using multi-level areas in a model adds rapidly to the number of equations in the system. To keep your problem within a manageable number of equations, use multiple levels sparingly, just in your area of interest and transition to a single level in the far-field.
Some additional suggestions for efficient modeling and limiting computation time are given in the Solve section.Parallel Processing
Starting with release 2023-1, parallel processing was implemented for determining the coefficients of the matrix A, and the vector b, which form the core components of the linear equation solver Ax = b, updated at each timestep in the solve process.
Starting with release 2019-1, parallel processing was implemented for these computations that occur in plot-making:
Computing values (e.g. head) that are the basis for contours
Computing values (e.g. velocity) that are the basis for vectors
Tracing multiple pathlines from lines, areas, wells, and circles
These can be a time-saver for complex models and plots, if your computer's CPU has multiple cores. Experiments indicate that:
Solve time has been sped up by 1.5 - 3 times depending on complexity of the model, and whether steady or transient on a 4-core CPU
Making a plot with hundreds of area pathlines is quicker by a factor approaching 4 on a 4-core CPU, or approaching a factor of 6 on a 6-core CPU.
Automating Runs
In addition to running Anaqsim interactively through the graphic user interface, you can make automated runs using the Windows command prompt. This may be useful for running parameter estimation software such as PEST or for executing a batch of unattended runs. Two input files are required for each model run:
Anaqsim model file (.anaq) - this is the file which describes the model setup and is created by Anaqsim.
Run control file (.txt) - a text file which describes what type of outputs the model should create and where these will be saved. This is created by the user with a text editor, like the Notepad accessory that comes with Windows operating systems. See the following sections for a description and examples.
To run an automated model in the Command Prompt, the command syntax is:
The command prompt is accessed in Windows 11 by clicking Start Button and searching for 'Command Prompt'.Within the command prompt it is necessary to put quotes around the path when the path contains names with spaces such as "program files" or "my documents".To avoid typing out the full file path it is possible to change the current directory within the command prompt to the location that files are saved, then just type in the file names (no path needed) for every input/output file.
Assuming you've changed the current directory in the command prompt to the directory with all input/output files, the following is an example command that would execute a run of Anaqsim:
"c:\program files\yellow sub hydro\Anaqsim\Anaqsim.exe" run23.anaq run23.txt
In the above example, Anaqsim is launched, run23.anaq is opened from the command prompt current directory, then execution and outputs are controlled by lines in the run control file run23.txt, also in the command prompt current directory. An optional 'batch' command can be added to the command which will force Anaqsim to work in the background and not open a user-interface. An example command that would execute a run of Anaqsim in the background is:
"c:\program files\yellow sub hydro\Anaqsim\Anaqsim.exe" run23.anaq run23.txt batch
The section below shows all the possible commands that can be included in the run control file, their output options, and examples of each. Some output files are dynamically named based on the input file name, and labels of elements in the model. Where is specified this relates to the filename of the .anaq input file. Where is specified, it relates to the label associated with each well in the model. Similar syntax is used for lines, rivers, etc which have labels within the model.
Starting from version 2023-1 additional outputs and output options are available.
Run Control File Commands
All of the commands listed in the run control file are lower case (case sensitive). The lines may appear in any order.
Initial Heads File
Command: initialheadsfile filename.hdsRequired: required for transient runsExplanation: Tells Anaqsim to use file filename.hds (replace with your own filename) as the initial heads for a transient run. As written with no path, the file must be located in the command prompt current directory. If it's located elsewhere, you must write the entire path+filename here instead of just the filename. The two parameters on this line must be separated by any combination of spaces and/or tab characters. This line is only needed for transient runs where the starting heads are to be read from a file.Output options: N/AExamples: initialheadsfile run23.hds
Output Log File
Command: outputfile filename.outRequired: YesExplanation: Tells Anaqsim to write text outputs from the automated run to a new text file named filename.out (replace with your own filename). As written with no path, filename.out will be written to the command prompt current directory. If you want it written elsewhere, you must enter the entire path+filename here. The two parameters on this line must be separated by any combination of spaces and/or tab characters Output options: N/AExamples: outputfile run23.out
Head Specified Wells
Command: headspecifiedwellsRequired: NoExplanation: Directs Anaqsim to write the discharges of head-specified wells to the output file.Output options:
log - outputs saved to log file
csv - a filename must be provided after csv key word
graph - graphs will be saved to _hspecWells_.png
Examples:
headspecifiedwells log
headspecifiedwells csv run23_head_wells.csv
headspecifiedwells graph
Discharge Specified Wells
Command: dischargespecifiedwellsRequired: NoExplanation: Directs Anaqsim to write the heads at discharge-specified wells to the output file.Output options:
log - outputs saved to log file
csv - a filename must be provided after csv key word
graph - graphs will be saved to _qspecWells_.png
Examples:
dischargespecifiedwells log
dischargespecifiedwells csv run23_discharge_wells.csv
dischargespecifiedwells graph
Discharge Specified Multilayer Wells
Command: dischargespecifiedmultilayerwellsRequired: NoExplanation: Directs Anaqsim to write multi-level discharge-specified wells in the model. For these the breakdown of discharges by domain will be written to the output file.Output options:
log - outputs saved to log file
csv - a filename must be provided after csv key word
graph - graphs will be saved to _qspecMultiWells_.png
Examples:
dischargespecifiedmultilayerwells log
dischargespecifiedmultilayerwells csv run23_discharge_multilayer_wells.csv
dischargespecifiedmultilayerwells graph
Head Specified Lines
Command: headspecifiedlinesRequired: NoExplanation: Directs Anaqsim to write the discharges of internal head-specified line boundaries to the output file.Output options:
log - outputs saved to log file
csv - a filename must be provided after csv key word
graph - graphs will be saved to _HspecLines_.png
Examples:
headspecifiedlines log
headspecifiedlines csv run23_HspecLines.csv
headspecifiedlines graph
Rivers
Command: riversRequired: NoExplanation: Directs Anaqsim to write the discharges of river line boundaries to the output file.Output options:
log - outputs saved to log file
csv - a filename must be provided after csv key word
graph - graphs will be saved to _RiverDischarge_.png
Examples:
rivers log
rivers csv run23_Rivers.csv
rivers graph
River Groups
Command: rivergroupsRequired: NoExplanation: Directs Anaqsim to write the cumulative discharge of grouped rivers to the output file.Output options:
log - outputs saved to log file
csv - a filename must be provided after csv key word
graph - graphs will be saved to _RiverDsicharge_.png
Examples:
rivergroups log
rivergroups csv run23_RiverGroups.csv
rivergroups graph
External Boundaries
Command: externalboundariesRequired: NoExplanation: Directs Anaqsim to write the discharges across external boundaries to the output file.Output options:
log - outputs saved to log file
csv - a filename must be provided after csv key word
graph - graphs will be saved to
Head Boundaries: _ExternalHeadBoundaries_.png
Normal Flux Boundaries: _ExternalNormalFluxBoundaries_.png
Head Normal Flux Boundaries: _ExternalHeadNormalFluxBoundaries_.png
Examples:
externalboundaries log
externalboundaries csv run23_ExternalBoundaries.csv
externalboundaries graph
Vertical Leakage
Command: verticalleakageRequired: NoExplanation: Directs Anaqsim to write the vertical leakages over polygon areas to the output file.Output options:
log - outputs saved to log file
csv - a filename must be provided after csv key word
graph - graphs will be saved to _VerticalLeakage_.png
Examples:
verticalleakage log
verticalleakage csv run23_Vertical_Leakage.csv
verticalleakage graph
Conditions along a Line
Command: conditionsalonglineRequired: NoExplanation: Directs Anaqsim to write steady and/or transient conditions along a line to the output file. All variables are output for all preset lines.Output options:
csv - csv files will be saved to _TransientLine__.csv where is either:
Head
DischargeTangent
DischargeNormal
ExtractionModel
ExtractionHBased
LeakageTop
LeakageBottom
StorageFlux
Unlike other csv options, you do not specify a filename following the csv key word
graph - graphs will be saved to _TransientLine__.png
Examples:
conditionsalongline csv
conditionsalongline graph
Head Hydrographs
Command: headhydrographsRequired: NoExplanation: Directs Anaqsim to write head hydrographs for preset hydrograph points to the output file.Output options:
csv - a filename must be provided after csv key word
graph - graphs will be saved to _HeadHydrograph_.png
Examples:
headhydrographs csv run23_Head_Hydrographs.csv
headhydrographs graph
Drawdown Hydrographs
Command: drawdownhydrographsRequired: NoExplanation: Directs Anaqsim to write drawdown hydrographs for preset hydrograph points to the output file.Output options:
csv - a filename must be provided after csv key word
graph - graphs will be saved to _DrawdownHydrograph_.png
Examples:
drawdownhydrographs csv run23_Drawdown_Hydrographs.csv
drawdownhydrographs graph
Captured Pathlines
Command: capturedpathlinesRequired: NoExplanation: If no csv key word provided, directs Anaqsim to write the number of captured pathlines to the output file. This is useful for running parameter optimization problems where you want to maximize or minimize the number of pathlines captured by specified wells or line boundaries. Use this with capture constrain in pathline settings.If csv is specified and a filename is provided, then the x,y,z vertices of all pathlines (whether captured or not) are saved to a file. Output options:
No keyword - captured pathlines written to output file (specified by outputfile command)
csv - a filename must be provided after csv key word
Examples:
capturedpathlines
capturedpathlines csv run23_Pathlines.csv
Head Output File
Command: headoutputfileRequired: NoExplanation: Directs Anaqsim to evaluate heads according to the current plot settings (Plot Input / What to Plot / Window and Plot Input / Contours Settings / Points_Evaluate) in each model level and at each time step if it is a transient simulation. Output options:
xyz - A filename must be provided where the outputs will be written. x, y locations and head levels are written to a csv file for each level, time period, and time step
binary - A filename prefix should be specified. Outputs will be named: _t