Produce streamlines or streamribbons of a field which is a 2 or 3 element vector data component on any type of mesh.
Produce streamlines on any surface based on its slopes.
Produce a line path through a volume dependent on a starting locations and user defined restrictions.
Create a 2d or 3d vector by combining selected scalar data components.
Turn all vectors into scalars.
Calculates the magnitude of a vector field data component at every node in a mesh.
Calculate the vector gradient field of a scalar data component at every node in a mesh.
Use streamlines technology to determine the volumetric regions of your model for which groundwater flow will be captured by one or more extraction wells.
Compute the vector groundwater flow field visualizations of the vector field.
Average nodal data values from the input field that fall into the input regions.
Subsections of Modeling
3d streamlines
The 3d streamlines module produces streamlines or stream-ribbons of a field containing a 2 or 3 element vector data component on any type of mesh. Streamlines are 3D polylines representing the pathways particles would travel based on the gradient of the vector field. At least one of the nodal data components input to the module must be a vector. The direction of travel can be specified as forwards (toward high vector magnitudes), backwards (toward low vector magnitudes), or both with respect to the vector field. Streamlines are produced by integrating a velocity field using the Runge-Kutta method with adaptive time steps.
Ports
| Direction | Name | Type | Description |
|---|---|---|---|
| Input | Input Field | Field | The field to use for creating the streamlines. |
| Input | Input Locations Field | Field | The field to use for creating the starting locations of streamlines. |
| Input | Z Scale | Number | The factor for vertical scaling. |
| Output | Output Field | Field | The streamlines field. |
| Output | Output Object | Renderable | A renderable object to display. |
Properties
| Property | Type | Description |
|---|---|---|
| Allow Run | Boolean | The Allow Run control specifies whether the module is permitted to execute. Set to True to enable execution. |
| Execute | Button | The Execute button forces the module to run even if Allow Run is disabled. |
| Z Scale | Double | The Z Scale control ensures that output lines are aligned with the scaled input. |
| Vector Nodal Data | Choice | The Vector Nodal Data specifies which vector components to use for streamline generation. |
| Velocity Units | String | The Velocity Units specify the units of the input vector data. By default this is determined from the input field. Unlink to override manually. |
| Flow Direction | Choice: Backwards, Forwards, Both | The Flow Direction allows the user to select the direction the lines will flow. |
Terminating Conditions
| Property | Type | Description |
|---|---|---|
| Max Segments Total | Integer | The maximum allowable number of streamline segments that will be completed for each streamline. If the number of segments along a streamline exceeds this value, the streamline is terminated at the end of the last segment. |
| Minimum Velocity | Double | The minimum velocity that will be considered in the integration. If the magnitude of the velocity field in a region is less than this value, streamlines will end in that region. Setting this to a lower value will produce longer streamlines. Higher values tend to produce fewer and shorter streamlines. |
| Extinction Angle | Double | The maximum allowable angle between successive line segments before integration (streamline generation) should be terminated. |
Output Data Options
| Property | Type | Description |
|---|---|---|
| Export Velocity And Time | Boolean | Specifies whether velocity and time data will be included in the output field. If enabled, the input Vector Nodal Data component must have proper velocity units (length/time). |
| Log Process Time | Boolean | Specifies that time data will be output on a logarithmic scale. This converts all time values to absolute, including those in the backward flow direction that would otherwise be negative. |
| Time Minimum | Double | The minimum value time data is clamped to before log processing. This is useful to avoid datamap issues especially at the start of streamlines where time values are very small or zero. |
| Log Process Velocity | Boolean | Specifies that velocity data will be output on a logarithmic scale. |
| Velocity Minimum | Double | The minimum velocity value to clamp data before log processing. This helps avoid datamap issues in regions where velocity is very low or zero. |
surface streamlines
The surface streamlines module produces 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 can be specified as downhill or uphill. A velocity table allows mapping surface slopes to velocities for time-based output.
Ports
| Direction | Name | Type | Description |
|---|---|---|---|
| Input | Input Surface | Field | The surface to use for creating the streamlines. |
| Input | Input Locations Field | Field | The field to use for creating the starting locations of streamlines. |
| Input | Z Scale | Number | The factor for vertical scaling. |
| Output | Output Field | Field | The streamlines field. |
| Output | Output Object | Renderable | A renderable object to display. |
Properties
| Property | Type | Description |
|---|---|---|
| Allow Run | Boolean | Determines whether the module is allowed to execute. Set to True to allow this module to run. |
| Execute | Button | The Execute button forces the module to run even when Allow Run has been turned off. |
| Z Scale | Double | The Z Scale is required to ensure that lines are matched to scaled input. |
| Velocities | Slope Array | The Velocities table specifies the velocities along the surface at given slopes. |
| Flow Direction | Choice: Downhill, Uphill, Both | The Flow Direction allows the user to select the direction the lines will flow. |
Terminating Conditions
| Property | Type | Description |
|---|---|---|
| Max Segments Total | Integer | The maximum allowable number of streamline segments that will be completed for each streamline. If the number of segments along a streamline exceeds this value, the streamline is terminated at the end of the last segment. |
| Minimum Velocity | Double | The minimum velocity that will be considered in the integration. If the magnitude of the velocity field in a region is less than this value, streamlines will end in that region. Setting this to a lower value will produce longer streamlines. Higher values tend to produce fewer and shorter streamlines. |
| Minimum Slope | Double | The absolute minimum slope in degrees that will be considered in the integration. If the slope in a region is less than this value, streamlines will end in that region. Setting this to a lower value will produce longer streamlines. Higher values tend to produce fewer and shorter streamlines. |
| Extinction Angle | Double | The maximum allowable angle between successive line segments before integration (streamline generation) should be terminated. |
Output Data Options
| Property | Type | Description |
|---|---|---|
| Log Process Time | Boolean | Specifies that time data will be output on a logarithmic scale. This converts all time values to absolute, including those in the backward flow direction that would otherwise be negative. |
| Time Minimum | Double | The minimum value time data is clamped to before log processing. This is useful to avoid datamap issues especially at the start of streamlines where time values are very small or zero. |
create drill path
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:
- Continue Straight: Continue for the specified total length along the current direction (or Initial Drill Direction if just starting).
- Target Coordinate: Begin deviating with a specified segment length and maximum angle of change per segment until you reach the specified (X, Y, Z) coordinate.
- Move to Heading: Begin deviating with a specified segment length and maximum angle of change per segment until you reach the specified heading and dip.
Ports
| Direction | Name | Type | Description |
|---|---|---|---|
| Output | Output Field | Field | The created drill path field. |
| Output | DrillPath | Renderable | A renderable object displaying the drill path. |
Properties
| Property | Type | Description |
|---|---|---|
| Allow Run | Boolean | This toggle can prevent the module from running, allowing the user to make changes to large data sets without waiting for updates. |
| Execute | Button | This button will force the module to run even if the Allow Run toggle has been turned off, allowing the user to make a number of changes before updating. |
| Initial Drill Position | Coordinate 3D | The starting point of the drill path. |
| Initial Drill Direction | Heading/Dip | The heading and dip of the initial drill direction. |
| Max Length | Double | The maximum length will prevent users from creating lines that cannot reach their target. |
| Segment List | Segments | The list of line segments to create. |
| Boring Name | String | The boring name is used when exporting the created drill path as an APDV file. |
| Output Units | String | The output units used when exporting the created drill path as an APDV file. |
| Export As APDV | File | Export the line as an APDV file with data associated with distance down the line. |
| Export As TXT | File | Export the line as a tab-delimited file with data associated with distance down the line. |
scalars to vector
The scalars to vector module creates 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 determines the order they occur in the vector.
Ports
| Direction | Name | Type | Description |
|---|---|---|---|
| Input | Input Field | Field | A field containing data components to combine into a vector. |
| Output | Output Field | Field | A field containing the data combined into a vector. |
| Output | Output Object | Renderable | A renderable object displaying the combined data. |
Properties
| Property | Type | Description |
|---|---|---|
| Vector Type | Choice: 2D Vector, 3D Vector | Allows the user to select between two and three data components to create the output vector. |
| Vector Components | Multi-select | Allows the user to set which data components to use when creating 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” will be converted to three scalar nodal data components such as:
- velocity_x
- velocity_y
- velocity_z
If multiple vector data components exist in the field, all will be converted. The naming pattern for the output scalar components can be customized using the Variable Names expression editor.
Ports
| Direction | Name | Type | Description |
|---|---|---|---|
| Input | Input Field | Field | A field containing either nodal or cell vector data. |
| Output | Output Field | Field | A field containing the original scalar data components as well as converted, vector to scalar, data components. |
Properties
| Property | Type | Description |
|---|---|---|
| Allow Run | Boolean | This toggle will prevent the module from running when turned to the off position. |
| Execute | Button | The Run Once button will allow the module to run one time even if the Allow Run toggle is turned to the off position, allowing the user to make multiple changes with only one update. |
| Variable Names | Expression Editor | Sets the template for each data component name that is created from a vector. Available variables: Analyte (the vector analyte name), Number (the position of the component in vector form), XYZ (the position listed alphabetically starting at X), IJK (the position listed alphabetically starting at I). |
vector magnitude
The vector magnitude module calculates the vector magnitude of a vector field data component at every node in a mesh. Input to the module must contain a mesh of any type and nodal data. Nodal data components can be scalar or vector with up to 3 vector subcomponents. Cell vector data can also be selected for magnitude calculation.
Ports
| Direction | Name | Type | Description |
|---|---|---|---|
| Input | Input Field | Field | A field containing a vector data component. |
| Output | Output Field | Field | A field containing the magnitude of the vector component as data. |
| Output | Output Object | Renderable | A renderable object displaying the magnitude data. |
Properties
| Property | Type | Description |
|---|---|---|
| Variable Names | Expression Editor | Sets the template for each data component name that is created from a vector. Available variable: Analyte (the vector analyte name). |
| Vector Data | Multi-select | Allows the user to select which nodal vector data components to use for creating the magnitude data. |
| Cell Vector Data | Multi-select | Allows the user to select which cell vector data components to use for creating the magnitude data. |
gradient
The gradient module calculates the vector gradient field of a scalar data component at every node in a mesh. Input must contain a mesh of any type and nodal data with at least one scalar data component. The module uses a finite-difference method based on central differencing to calculate the gradient on structured (rectilinear) meshes, and shape functions with their derivatives for unstructured meshes. Both nodal and cell data components can be used as the gradient source.
Note that the gradient of (pressure) head points in the direction of increasing head, not the direction that groundwater would flow. See the seepage velocity module if you wish to compute groundwater flow.
Ports
| Direction | Name | Type | Description |
|---|---|---|---|
| Input | Input Field | Field | The field containing data used to calculate gradient. |
| Input | Z Scale | Number | The factor for vertical scaling. |
| Output | Output Field | Field | A field containing the gradient data. |
| Output | Output Object | Renderable | A renderable object displaying the gradient data. |
Properties
| Property | Type | Description |
|---|---|---|
| Z Scale | Double | The Z Scale is required to ensure that the output gradients are matched to scaled input. |
| Gradient By | Choice: Nodal Data, Cell Data | Selects the type of data to use to calculate gradients. |
| Nodal Gradient Component | Choice | The scalar nodal data component to be used by gradient. The data component selected must be scalar or an error will occur. Only enabled when Gradient By is set to Nodal Data. |
| Cell Gradient Component | Choice | The scalar cell data component to be used by gradient. The data component selected must be scalar or an error will occur. Only enabled when Gradient By is set to Cell Data. |
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.
Ports
| Direction | Name | Type | Description |
|---|---|---|---|
| Input | Input Field | Field | A field containing vector data representing seepage velocity. |
| Input | Well Nodes | Field | The field containing nodes to use as starting locations. |
| Input | Z Scale | Number | The factor for vertical scaling. |
| Output | Output Field | Field | A field containing the input field with three additional data components. |
Properties
| Property | Type | Description |
|---|---|---|
| Execute | Button | The Execute button will cause the module to run with the current settings. |
| Z Scale | Double | The Z Scale is the vertical exaggeration of the Input Field. |
| Seepage Velocity Component | Choice | Displays all data components (vector and scalar) passed to the module. |
| Well Capture Distance | Double | The maximum distance that a streamline must pass near an extraction well before that streamline’s integration is terminated and its original starting location is deemed to have been captured by a well. Generally a value corresponding to one nominal cell width in the region of your wells is appropriate. |
| Minimum Flow Velocity | Double | The minimum velocity that will be considered in the integration. If the magnitude of the velocity field in a region is less than this value, streamlines will end in that region. Setting this to a lower value will more accurately define the full extent of the capture zone region, but may increase run time. |
| Export Well Data | Boolean | When enabled, uses the selected Nodal Data component label as the name of the output data. |
| Segments Per Cell | Integer | The number of integration steps to be used in each cell to calculate the streamline. |
| Order | Integer | The order of the integration. Higher order integration is more accurate but executes much slower. |
| Max Segments Total | Integer | The maximum allowable number of streamline segments that will be completed for each streamline. If the number of segments along a streamline exceeds this value, the streamline is terminated at the end of the last segment. |
| Extinction Angle | Double | The maximum allowable angle between successive line segments before integration (streamline generation) should be terminated. |
seepage velocity
The seepage velocity module computes the vector groundwater flow field. It calculates seepage velocity or Darcy flux at each node based on the gradient of head data, hydraulic conductivity, and effective porosity for each geologic material.
The input data requirements 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, each layer is treated as a separate material (Layer 0 becomes material -1, Layer 1 becomes material -2, etc.).
The module computes the true seepage velocity (Vx, Vy, Vz) at each node by taking the gradient of head (without z-exaggeration) and multiplying each component by the corresponding conductivity (Kx, Ky, Kz) divided by the effective porosity (Ne) for that material:
- Darcy Flux = -(Hydraulic Conductivity) * (Head Gradient)
- Seepage Velocity = (Darcy Flux) / (Effective Porosity)
This approach allows users to quickly investigate the impact on flow paths due to changes in the conductivity assigned to each layer or material, based on the measured or kriged head distribution.
Ports
| Direction | Name | Type | Description |
|---|---|---|---|
| Input | Input Field | Field | A field containing head data, Layer data, and Material values. |
| Input | Geology Legend | Geology Legend | Geology legend input. |
| Input | Input Z Scale | Number | The factor for vertical scaling. |
| Output | Output Field | Field | A field containing vector data representing x, y, and z components of seepage velocity. |
| Output | Output Z Scale | Number | The factor for vertical scaling. |
Properties
| Property | Type | Description |
|---|---|---|
| Allow Run | Boolean | This toggle can prevent the module from running, allowing the user to make changes to large data sets without waiting for updates. |
| Execute | Button | This button will force the module to run even if the Allow Run toggle has been turned off, allowing the user to make a number of changes before updating. |
| Z Scale | Double | The Z Scale is the vertical exaggeration to apply to the display object. |
| Head Data Component | Choice | Allows the user to select which data component to use for head values. |
| Velocity Method | Choice: Darcy Flux, Seepage Velocity | Selects between Darcy Flux and Seepage Velocity calculation methods. |
| Velocity Units | Choice: m/day, ft/day, gal/day/ft2, m/year, ft/year | Allows you to choose the units for the output velocity data component. |
Material Presets
| Property | Type | Description |
|---|---|---|
| Common Material Settings | Choice | Pre-set conductivity values that can be applied to the currently selected material. |
| Preserve Original Name | Boolean | If selected, the preset name for the currently selected material will be the original name along with the name of the selected Common Material. If off, the output name will be just the Common Material name. |
| Applied Conductivity Units | Choice: m/day, ft/day, gal/day/ft2, m/year, ft/year | Allows you to choose the units for specifying the conductivity in all three (x, y, z) directions for each geologic layer. Appropriate conversions will be made regardless of your head and coordinate units. |
| Apply To Current Material | Button | Takes the currently set conductivity values and the Common Material name and applies it to the currently selected material. |
Material Properties
| Property | Type | Description |
|---|---|---|
| Current Material | Choice | Allows the user to select a single material to edit. |
| Preset Name | String | The preset name for the currently selected material. |
| Conductivity Units | Choice: m/day, ft/day, gal/day/ft2, m/year, ft/year | Allows you to choose the units for specifying the conductivity in all three (x, y, z) directions for each geologic layer. Appropriate conversions will be made regardless of your head and coordinate units. |
| Conductivity In X Log Space | Double | Allows the user to set the X conductivity in log10 space. |
| Conductivity In X Linear Space | Double | Allows the user to set the X conductivity in linear space. |
| Conductivity In Y Log Space | Double | Allows the user to set the Y conductivity in log10 space. |
| Conductivity In Y Linear Space | Double | Allows the user to set the Y conductivity in linear space. |
| Conductivity In Z Log Space | Double | Allows the user to set the Z conductivity in log10 space. |
| Conductivity In Z Linear Space | Double | Allows the user to set the Z conductivity in linear space. |
| Effective Porosity | Double | Allows the user to set the porosity of the current material. |
regional averages
The regional averages module averages nodal data values from the input field that fall into the input polygon regions. It outputs a point for each region containing the average x, y coordinates and the average of each nodal data component. The input polygon regions must contain at least one cell data component representing the regional ID.
Ports
| Direction | Name | Type | Description |
|---|---|---|---|
| Input | Input Field | Field | The input field containing nodal data. |
| Input | Input Surface | Field | The surface(s) to use for limiting the regions. |
| Output | Output Field | Field | A field containing the average data and 2D coordinates of each region. |
| Output | Output Object | Renderable | A renderable object displaying a sphere for each region with the average selected data. |
Properties
| Property | Type | Description |
|---|---|---|
| Allow Run | Boolean | The Allow Run toggle will prevent the module from running when unselected. |
| Z Position | Double | Allows the user to set the vertical position of the regional average output points. |
| Radius | Double | Sets the radius of the renderable output spheres. |
| Regional ID Component | Choice | Selects which cell data component from the polygon regions input should be used to identify each region. |
| Data For Visualization | Choice | Selects which nodal data component from the input field to color the output spheres by. |