Modeling

  • 3d streamlines

    3d streamlines The 3d streamlines module is used to produce streamlines or stream-ribbons of a field which is a 2 or 3 element vector data component on any type of mesh. Streamlines, which are simply 3D polylines, represent the pathways particles would travel based on the gradient of the vector field. At least one of the nodal data components input to streamlines must be a vector. The direction of travel of streamlines can be specified to be forwards (toward high vector magnitudes) or backwards (toward low vector magnitudes) with respect to the vector field. Streamlines are produced by integrating a velocity field using the Runge-Kutte method of specified order with adaptive time steps.

  • surface streamlines

    surface streamlines The surface streamlines module is used to produce streamlines on any surface based on its slopes. Streamlines are 3D polylines representing the paths particles would travel based on the slopes of the input surface. The direction of travel of streamlines can be specified to be downhill or uphill for the slope case. A physics simulation option is also available which employs a full physics simulation including friction and gravity terms to compute streamlines on the surface.

  • create drill path

    The create drill path module allows you to interactively create a complex drill path with multiple segments.

  • modpath

    modpath The modpath module uses the cell by cell flow values generated from a MODFLOW project along with head values and other MODFLOW parameters to trace the path of a particle of water as it moves through the ground. The paths are calculated using the same algorithms used by U.S. Geological Survey MODPATH and the results should be similar.

  • scalars to vector

    scalars to vector The scalars to vector module is used to create an n-length vector by combining n selected scalar data components. The vector length is determined by the Vector Type selector (2D or 3D). Once the required number of components has been selected, any other data components are grayed out and not selectable. To change selections, first deselect one of the vector components and then select a new component. If no components are selected, then all components are selectable. The order in which the components are selected will determine in which order they occur in the vector.

  • vector to scalars

    The vector to scalars module converts all vector nodal data components into individual scalars. For example, a vector data component named 'velocity'

  • vector magnitude

    vector magnitude The vector magnitude module calculates the vector magnitude of a vector field data component at every node in a mesh. Input to vector magnitude must contain a mesh of any type and nodal data. Nodal data components can be scalar or vector with up to 3 vector subcomponents. Module Input Ports Input Field [Field] Accepts a vector data field Module Output Ports

  • gradient

    gradient The gradient module calculates the vector gradient field of a scalar data component at every node in a mesh. Input to gradient must contain a mesh of any type and nodal data, with at least one scalar nodal data component. Gradient uses a finite-difference method based on central differencing to calculate the gradient on structured (rectilinear) meshes. Shape functions and their derivatives are used to calculate the gradient on unstructured meshes.

  • capture zone

    capture_zone The capture_zone module utilizes 3d streamlines technology to determine the volumetric regions of your model for which groundwater flow will be captured by one or more extraction wells. Module Input Ports Z Scale [Number] Accepts Z Scale (vertical exaggeration). Input Field [Field] Accepts a field with vector data. Well Nodes [Field] Accepts a field of points representing the well locations Module Output Ports

  • seepage velocity

    seepage_velocity The seepage_velocity module is used to compute the vector groundwater flow field visualizations of the vector field. The input data requirements for the seepage_velocity module are: A data component representing head (can have any name). A Geo_Layer data component. A Material_ID data component. If there is no Material_ID, we treat each layer as a separate material. Layer 0 becomes material -1 Layer 1 becomes material -2 Layer 2 becomes material -3, etc. Note: If you use 3d estimation to krige head data with geologic input (in Version 6.0 or later) your output will meet these criteria (provided you toggle on these data components under Kriging Parameters).

  • regional averages

    regional_averages The regional_average module averages nodal data values from the input field that fall into the input polygon regions. It then outputs a point for each region that contains the average x, y coordinates and the average of each selected nodal data component. These polygons must contain at least 1 cell data component representing the regional ID.

Subsections of Modeling

3d streamlines

The 3d streamlines module is used to produce streamlines or stream-ribbons of a field which is a 2 or 3 element vector data component on any type of mesh. Streamlines, which are simply 3D polylines, represent the pathways particles would travel based on the gradient of the vector field. At least one of the nodal data components input to streamlines must be a vector. The direction of travel of streamlines can be specified to be forwards (toward high vector magnitudes) or backwards (toward low vector magnitudes) with respect to the vector field. Streamlines are produced by integrating a velocity field using the Runge-Kutte method of specified order with adaptive time steps.

Module Input Ports

  • Input Field [Field] Accepts a data field.
  • Input Locations Field [Field] Accepts the starting points for each line

Module Output Ports

  • Output Field [Field] Outputs the streamlines or ribbons
  • Output Object [Renderable]: Outputs to the viewer.

surface streamlines

The surface streamlines module is used to produce streamlines on any surface based on its slopes. Streamlines are 3D polylines representing the paths particles would travel based on the slopes of the input surface. The direction of travel of streamlines can be specified to be downhill or uphill for the slope case. A physics simulation option is also available which employs a full physics simulation including friction and gravity terms to compute streamlines on the surface.

The Physics radio buttons allow the user to specify whether streamlines will be computed based on the slopes of the surface only or whether a full physics simulation including friction and gravity terms will be used to compute streamlines on the surface. When Gravity is selected Segments perCell and Order do not apply but additional parameters appear for the module. These are:

Integration Time Step is the time step for the numerical integration of the paths. For typical gravity units (like 32 feet per second-squared) this value is in seconds.

Gravity is the coefficient of gravity for your units. If your coordinate units are feet, the appropriate (default) value would be 32 feet per second-squared.

Viscosity Coefficient (v) is the friction term that depends on velocity.

Drag Coefficient (v2) is the friction term that depends on velocity-squared.

Module Input Ports

  • Input Surface [Field] Accepts a data field which must be a surface with elevation data.
  • Input Locations Field [Field] Accepts the starting points for each line

Module Output Ports

  • Output Field [Field] Outputs the streamlines
  • Output Object [Renderable]: Outputs to the viewer.

The create drill path module allows you to interactively create a complex drill path with multiple segments.

Each segment can be defined by one of three methods:

  1. Continue Straight: for the specified “Total Length” along the current direction or Initial Drill Direction, if just starting.
  2. Target Coordinate: Begin deviating with specified “Segment Length” and specified “Max Angle of Change” (per segment) until you reach the specified “(X,Y,Z)” coordinate.
  3. Move to Heading: Begin deviating with specified “Segment Length” and specified “Max Angle of Change” (per segment) until you reach the specified “Heading” and “Dip”

modpath

The modpath module uses the cell by cell flow values generated from a MODFLOW project along with head values and other MODFLOW parameters to trace the path of a particle of water as it moves through the ground. The paths are calculated using the same algorithms used by U.S. Geological Survey MODPATH and the results should be similar.

The modpath module at this point does not handle transient simulations the same way that the U.S.G.S. MODPATH does. It treats each time step as a steady state model, and uses the parameters from the .dwr/.dwz file based on the starting time.

A valid modpath field file (.eff/.efz) should contain the following as cell data components: Head; CCF; ELEV_TOP; ELEV_BOT; and POROSITY. The Head component should contain the head value for each cell, the ELEV_TOP and ELEV_BOT should components should contain the elevation of the top of the cell, and the elevation of the bottom of the cell respectively, and the POROSITY should contain the flow due to porosity for that each cell. All other MODFLOW parameters (drains, wells, recharge, etc..) should be written into a .dwr/.dwz file.

Module Input Ports

  • Z Scale [Number] Accepts Z Scale (vertical exaggeration) from other modules
  • Input Field [Field] Accepts a data field.
  • Input Starting Locations [Field] Accepts the starting points for each line
  • Start Date [Number] The starting time
  • Ending Date [Number] The ending time

Module Output Ports

  • Z Scale [Number] Outputs Z Scale (vertical exaggeration) to other modules
  • Output Field [Field] Outputs the streamlines
  • Start Date [Number] The starting time
  • Ending Date [Number] The ending time
  • Output Object [Renderable]: Outputs to the viewer.

scalars to vector

The scalars to vector module is used to create an n-length vector by combining n selected scalar data components. The vector length is determined by the Vector Type selector (2D or 3D).

Once the required number of components has been selected, any other data components are grayed out and not selectable. To change selections, first deselect one of the vector components and then select a new component. If no components are selected, then all components are selectable. The order in which the components are selected will determine in which order they occur in the vector.

Module Input Ports

  • Input Field [Field] Accepts a data field with 2 or more nodal data components.

Module Output Ports

  • Output Field [Field] Outputs the field with selected data
  • Output Object [Renderable]: Outputs to the viewer.

The vector to scalars module converts all vector nodal data components into individual scalars. For example, a vector data component named “velocity” will be converted to three scalar nodal data components such as:

  1. velocity_x
  2. velocity_y
  3. velocity_z

If multiple vector data components exist in the field, all will be converted.

Module Input Ports

  • Input Field [Field] Accepts a data field with 1 or more vector nodal data components.

Module Output Ports

  • Output Field [Field] Outputs the field with vector data converted to scalars.

vector magnitude

The vector magnitude module calculates the vector magnitude of a vector field data component at every node in a mesh. Input to vector magnitude must contain a mesh of any type and nodal data. Nodal data components can be scalar or vector with up to 3 vector subcomponents.

Module Input Ports

  • Input Field [Field] Accepts a vector data field

Module Output Ports

  • Output Field [Field] Outputs the scalar data field
  • Output Object [Renderable]: Outputs to the viewer

Related Modules

gradient

gradient

The gradient module calculates the vector gradient field of a scalar data component at every node in a mesh. Input to gradient must contain a mesh of any type and nodal data, with at least one scalar nodal data component. Gradient uses a finite-difference method based on central differencing to calculate the gradient on structured (rectilinear) meshes. Shape functions and their derivatives are used to calculate the gradient on unstructured meshes.

Please note that the gradient of (pressure) head points in the direction of increasing head, not the direction that groundwater would flow. Please see the seepage_velocity module if you wish to compute groundwater flow

Module Input Ports

  • Input Field [Field] Accepts a data field

Module Output Ports

  • Output Field [Field] Outputs the vector data field
  • Output Object [Renderable / Minor]: Outputs to the viewer

Related Modules

->vector magnitude

capture_zone

The capture_zone module utilizes 3d streamlines technology to determine the volumetric regions of your model for which groundwater flow will be captured by one or more extraction wells.

Module Input Ports

  • Z Scale [Number] Accepts Z Scale (vertical exaggeration).
  • Input Field [Field] Accepts a field with vector data.
  • Well Nodes [Field] Accepts a field of points representing the well locations

Module Output Ports

  • Output Field [Field] Outputs the volumetric regions which are captured

seepage_velocity

The seepage_velocity module is used to compute the vector groundwater flow field visualizations of the vector field.

The input data requirements for the seepage_velocity module are:

  1. A data component representing head (can have any name).
  2. A Geo_Layer data component.
  3. A Material_ID data component. If there is no Material_ID, we treat each layer as a separate material. Layer 0 becomes material -1 Layer 1 becomes material -2 Layer 2 becomes material -3, etc.

Note: If you use 3d estimation to krige head data with geologic input (in Version 6.0 or later) your output will meet these criteria (provided you toggle on these data components under Kriging Parameters).

The Run toggle determines if the module runs immediately when you change conductivity values.

Head Data Component determines which data component is used to scale and rotate the seepage_velocity velocity vectors. The default selection is the first data component. The Map component radio button list also displays all data components passed to seepage_velocity. Map component determines which data component is used to color the seepage_velocity velocity vectors. By default, the first (0th) data component is selected.

Head Data Component list displays all data components passed to seepage_velocity.

Current Material: allows you to select the Material (or geologic layer) to assign conductivity and porosity properties.

HeadUnits radio button list allows you to specify the units of your head data.

Output Conductivity Units: radio button list allows you to choose the units for specifying the conductivity in all three (x, y, z) directions for each geologic layer. You can choose any units (regardless of your head and coordinate units) and the appropriate conversions will be made for you.

The Conductivity sliders (with type-ins) allow you to change the log10 of the x, y, & z conductivity. These specify log values because conductivities vary over many orders of magnitude. These update when the (Linear) type-ins are changed.

The Conductivity type-ins allow you to change the x, y, & z conductivity. These are actual values and update when the sliders are changed.

The Effective Porosity slider (with type-in buttons) allows you to change the value of effective porosity.

Material (#/Name): allows you to specify the material type if it is not specified in your geologic layers. This is only to help you assign proper conductivities.

Data passed to the field port must be a 3D mesh with data representing heads and normally multiple Materials (or geologic layers).

Module Input Ports

  • Z Scale [Number] Accepts Z Scale (vertical exaggeration).
  • Input Field [Field] Accepts a data field with geologic and head data

Module Output Ports

  • Z Scale [Number] Outputs Z Scale (vertical exaggeration) to other modules
  • Output Field [Field] Outputs the vector data field

Technical Details

Inherent in the solution of seepage velocity implemented in this module is the assumption that within each geologic layer/material the conductivities are uniform. Clearly, this will never be completely accurate, however we would contend that there is seldom if ever a better measure of the site conductivities (true conductivity tensor) than the site heads because head is far easier to measure. Furthermore, geologic materials can be deposited such that their conductivities are very complex and directional and most groundwater models (e.g. MODFLOW) do not provide a way to reflect this EVEN IF IT COULD BE MEASURED.

This approach allows users to quickly investigate the impact on flow paths due to changes in the conductivity assigned to each layer/material, BASED ON THE MEASURED/KRIGED HEAD DISTRIBUTION. Clearly, the more accurately the head is characterized the better.

At this point, we don’t propose to provide a mechanism to account for conductivity variations within a geologic layer. We obviously cannot account for natural or artificial barriers (low conductivity regions) UNLESS they are represented by the geologic materials.

Our approach is:

Compute the true seepage velocity (Vx, Vy, Vz) at each node, by taking the gradient of (kriged) head (without any z-exaggeration) and multiplying each component of head gradient by the component of conductivity at that node (based on its material) (Kx, Ky, Kz) and dividing by the Effective Porosity for that material.

Vx = dH/dx * Kx / Ne

Vy = dH/dy * Ky / Ne

Vz = dH/dz * Kz / Ne

Darcy Flux = -K * (dh/dl), also known as Darcy Velocity, Specific Discharge or apparent velocity, and

Seepage Velocity = -K * (dh/dL) / ne, where:

  • K = hydraulic conductivity, is the proportionality constant reflecting the ease with which water flows through a material (L/T)
  • dh = difference in hydraulic head between two measuring points as defined for Equation 14 (L)
  • dL = length along the flow path between locations where hydraulic heads are measured (L)
  • dh/dL = gradient of hydraulic head (dimensionless)
  • ne = effective porosity

regional_averages

The regional_average module averages nodal data values from the input field that fall into the input polygon regions. It then outputs a point for each region that contains the average x, y coordinates and the average of each selected nodal data component.

These polygons must contain at least 1 cell data component representing the regional ID.

Module Input Ports

  • Input Field [Field] Accepts a data field.
  • Input Surface [Field] Accepts a cell data field defining a regions

Module Output Ports

  • Output Field [Field] Outputs the processed field.
  • Output Object [Renderable]: Outputs to the viewer