OpenGeoRock
2.2

Geometry and boundaries

Describes OGR Slip2D 0.1.235

A model is a two-dimensional section built from boundaries: one external boundary that encloses the ground, material boundaries that divide it into regions, and lines that carry water, a tension crack, a weak layer or the orientation of bedding.

2.2.1Boundary types#

The Boundaries menu has one command per type, with the shortcuts Ctrl+1 to Ctrl+8. Figure 2.2.1 shows the main ones on a slope section and Table 2.2.1 lists all of them.

A slope section with a closed external boundary, an open material boundary running from the left edge to the right edge and dividing the ground into two regions, a water table, and a tension crack line under the crest W External boundary (closed polygon) Material boundary, edge to edge Water table Tension crack toe side crest
Figure 2.2.1 Boundaries on a slope that fails from right to left. The material boundary runs from one side of the external boundary to the other and splits the ground into two regions; the water table and the tension crack do not split it.
Table 2.2.1 Boundary types and the rules they follow.
CommandWhat it isRules
Add External Boundary Ctrl+1Closed polygon around the whole model. Its upper edge is the ground surface.Exactly one. Drawing a second one asks whether to replace the first; the material boundaries are kept.
Add Material Boundary Ctrl+2Open polyline that divides the ground into regions, each of which takes a materialRuns from boundary to boundary (Material boundaries and regions). Any number.
Add Water Table Ctrl+3Phreatic surface; pore pressure for the materials assigned to itOne at most. Water drawn above the ground surface becomes ponded water.
Add Drawdown Line Ctrl+4Reservoir level after a rapid drawdown; the water table is the level before itOne at most, and only with Rapid Drawdown analysis chosen in Section 2.1.4
Add Piezometric Line Ctrl+5Line of pressure head for the materials assigned to itAny number, numbered in the order they are drawn. Never creates ponded water.
Add Tension Crack Ctrl+6Base of the zone of tension cracks behind the crestOne at most (Tension crack)
Add Weak Layer Ctrl+7Polyline with the strength of a material, which slip surfaces follow instead of crossingDoes not divide regions (Weak layers and anisotropic surfaces)
Add Anisotropic Surface Ctrl+8Polyline that gives the orientation of the bedding of an anisotropic material, point by pointDoes not divide regions; the order of its vertices matters (Weak layers and anisotropic surfaces)
Surfaces → Add Block Search Window, … Line, … Point, … PolylineObjects that guide the Block SearchOnly with the Block Search method (Block Search objects)

The commands that would break a rule are greyed out, with a tooltip that says why, as with Add Water Table once the model has one.

2.2.2Drawing and typing boundaries#

Draw the external boundary first, then the material boundaries, then the water and the other lines. Every drawing follows the conventions of the canvas (Drawing on the canvas):

  1. Choose the command, for instance Boundaries → Add External Boundary (Ctrl+1).
  2. Click each vertex, or type it as x, y in the Enter X,Y: field of the status bar and press Enter. Clicks are snapped to existing vertices, lines and the grid while SNAP is on, which is how a material boundary is made to start and end exactly on the external boundary.
  3. Finish with Enter or with Done in the right-click menu. The external boundary is closed automatically; Esc cancels.

While drawing, Coordinate Table… in the right-click menu lists the vertices placed so far, to correct them or to type the rest of the boundary as a table. Draw the water table, the piezometric lines and the drawdown line from left to right across the whole width of the materials they serve: outside the horizontal extent of a water line the pore pressure it gives is zero.

A boundary can also be drawn on the annotation layer and turned into geometry afterwards: Tools → Draw takes typed coordinates for a line, polyline, polygon, rectangle or circle, and Tools → Convert Tool to Boundary… copies it into an external boundary, a material boundary, a water table, a piezometric line or a tension crack.

Material boundaries and regions#

The regions of the model are the pieces into which the material boundaries cut the external boundary. Each region takes one material (Section 2.3.3). For the regions to come out as intended:

  • Run every material boundary from boundary to boundary, that is, from one edge of the external boundary to another, or onto another material boundary. An end that lies within about 0.8 % of the model diagonal of another boundary is welded onto it, and a node is inserted there.
  • An end that stops inside the model is extended straight along its last segment until it leaves the model, cutting every region in its way. Extend the line on purpose instead of relying on this.
  • A lens (a pocket of one material inside another) is a closed material boundary. It becomes a region of its own, and a hole in the region around it.
Drawing a lens in 0.1.235

Add Material Boundary always produces an open polyline, even when the last click lands on the first vertex, and the two ends of such a loop are then extended across the model like any other loose end. Create a lens as a closed polygon instead: type it with Tools → Draw → Polygon and convert it with Tools → Convert Tool to Boundary… into a Material Boundary, or import it from a DXF drawing.

A region to which no material has been assigned takes the first material of the project (Regions without a material).

Water lines#

The water table, the piezometric lines and the drawdown line are open polylines that never divide regions. They only act on the materials that point at them, which is why finishing a water table or a piezometric line opens the Assign Water Surface dialog straight away when the project has materials. How they become pore pressures, ponded water included, is described in Section 2.4.

Tension crack#

Draw the tension crack as a line below the crest at the depth to which cracks may open; the ground between that line and the surface is the crack zone. A slip surface whose crest end lies inside the crack zone is cut where it reaches the line and closed by a vertical wall up to the ground surface: the soil above the cut keeps its weight but offers no shear resistance (Duncan & Wright, 2005). Only the crest end is cut; the toe end keeps its strength. A surface whose crest is in the crack zone and that never reaches the line is discarded.

The water in the crack is set with Properties → Define Tension Crack…, or from the right-click menu of the crack. The water pushes horizontally on the wall with the hydrostatic thrust of its depth, using the pore-fluid unit weight of the project.

Table 2.2.2 Define Tension Crack: the Water Level options and the field each one uses.
Water LevelWater surface in the crackField
Dry — no waterNo water—
Filled — 100% saturatedAt the top of the crack (the default)—
Percent FilledA percentage of the crack depthPercent Filled, 0–100 % (100 %)
Filled below Elevation (absolute Y)At a fixed elevationElevation (Y), m
Filled to Depth (relative to crack top)A depth below the top of the crackDepth from crack top, m
Use Water TableThe water table of the model; available only when there is one—
Use Piezometric LineA piezometric line; available only when there is onePiezo Line

Weak layers and anisotropic surfaces#

A weak layer is a joint, a shear band or a thin layer along which a slip surface can travel. It does not divide the ground into regions; its strength is that of a material. When the line is finished and the project has materials, the Assign Material dialog asks which one: a weak layer without a material has no strength of its own. A trial surface that touches a weak layer is clipped to follow it; how a surface that touches several is treated is chosen in Surfaces → Surface Options… (Section 2.7), and the steepest slice base allowed on such a surface in Section 2.1.9.

Version 0.1.235

The material of a weak layer can only be chosen when the line is drawn: Properties → Assign Material does not reach weak layers. To give a weak layer another material, delete it and draw it again. Converting a material boundary into a weak layer with Convert Boundary… keeps the material it had.

An anisotropic surface carries no strength and divides nothing: it says which way the bedding runs at each point, for a material whose strength model is Anisotropic Linear or Snowden Modified Anisotropic Linear and that selects it in Define Materials (Strength type). The orientation is read at the closest point of the polyline, not at the point vertically above, and the order in which the vertices are clicked decides the angle at a kink, so click them in order along the bedding.

Block Search objects#

With Surface Type = Non-Circular and Search Method = Block Search in Surface Options, four commands of the Surfaces menu draw the objects the search builds its trial surfaces from: a Window (a closed polygon), a Line (two clicks), a Point (one click) and a Polyline (clicked from one end to the other, and advancing in xx). Right-clicking an object opens Block Search Object…, which shows its kind, the point options of a polyline and its Group ID. They are described with the search in Section 2.7.

2.2.3Editing boundaries#

The commands of Boundaries → Edit are tools: choose one, then click the boundary or vertex it applies to; Esc returns to the Select tool. Right-clicking a boundary or a vertex offers the most common ones directly (Drawing on the canvas). Geometry edits can be undone with Edit → Undo (Ctrl+Z).

Table 2.2.3 Editing commands of the Boundaries menu.
CommandHow it works
Edit → Delete BoundaryClick a boundary to delete it.
Edit → Move BoundaryClick a boundary and drag it.
Edit → Copy BoundaryClick a boundary: a copy is added, offset by 2 m in xx and in yy.
Edit → Scale Boundary…Choose the boundary from a list, then the factors Sx and Sy (equal while Uniform scaling is ticked; 0.01 to 100) and the pivot Pivot X, Pivot Y.
Edit → Rotate Boundary…Choose the boundary, then Angle (CCW) in degrees and the pivot.
Edit → Insert VertexClick on an edge to add a vertex there.
Edit → Move VertexDrag a vertex; the drag is one undo step.
Edit → Delete VertexClick a vertex to delete it; a boundary keeps at least two.
Convert Boundary…Click a boundary, then choose its new type. A boundary converted into a water line, a crack, a weak layer or an anisotropic surface becomes an open polyline; a closed boundary converted into a material boundary stays closed.
Simplify Boundary…Choose a boundary and a tolerance ε (0.5 m by default): vertices that deviate less than ε from the simplified line are removed (Ramer–Douglas–Peucker).
Geometry Cleanup…Reports, for every boundary, self-intersections, an external boundary that is not closed and duplicate vertices, and lists the crossings between boundaries; then removes the duplicate vertices, with a tolerance relative to the size of the model, as one undo step.
Edit Coordinates…Choose a boundary and edit its vertices as a table of X and Y, with Add Row, Delete Row, Move Up and Move Down.
Selection Filter… Ctrl+FChooses which kinds of object the cursor can pick.

Scaling and rotation are about the pivot typed in the dialog, (0, 0) by default, and not about the centre of the boundary.

Version 0.1.235

Convert Boundary… does not check the one-per-model rules: it accepts converting a boundary into a second external boundary, water table, tension crack or drawdown line. Check the type you convert to. The Convert Boundary… entry of the right-click menu changes only the type, and keeps whether the polyline is closed; use the command of the Boundaries menu to convert a closed boundary into an open line.

2.2.4Reshaping the external boundary#

Expand / Shrink External#

Boundaries → Expand / Shrink External… (also in the right-click menu of the external boundary) adds ground to the model or removes it, as one undo step. It first asks for the method:

  • Draw polyline (recommended): click the first point on the external boundary (the snap shows it), then the intermediate points outside the model to expand it or inside to shrink it, and the last point on the external boundary again; finish with Enter or Done. The program then asks whether the part of the old external boundary that was removed should be kept as a material boundary, which is useful to keep the original ground surface as the base of a fill or the outline of an excavation.
  • Numeric offset (all edges by a fixed distance): moves every edge by the Offset distance (1.0 m by default): positive expands, negative shrinks.

Change Slope Angle#

Boundaries → Change Slope Angle… changes the overall angle of the slope face (the chord from toe to crest) and moves nothing else. Click the toe vertex and then the crest vertex of the external boundary; the dialog shows the current overall angle and asks how to change it.

Table 2.2.4 Change Slope Angle dialog.
FieldMeaningDefault
Angle changeAmount by which the overall angle changes (0.01° to 89.99°); the new angle is shown below and must stay between 0° and 90°5°
Increase the angle (steeper) / Decrease the angle (flatter)Sense of the changeDecrease
Vertex rotation typeProject horizontally: the face vertices keep their elevation. Project vertically: they keep their abscissa. Rotate: the face turns rigidly about the toe.Project horizontally
Project only the crest and move each vertex relative to it (keeps bench widths)With either projection, each intermediate vertex moves in proportion to its position between toe and crest, so benches keep their width; not used by Rotateon

Vertices of other boundaries that lie on the face move with it, so a layer that reaches the face still reaches it. Supports and loads do not move. The change is one undo step, and the status bar gives the old and new angles.

2.2.5DXF import and export#

Importing a drawing#

File → Import DXF… asks for a drawing and opens the Import DXF dialog, which lists every layer of the drawing and lets you say what each one represents.

Table 2.2.5 Import DXF dialog.
FieldMeaningDefault
Drawing unitsUnit of the drawing: m, cm, mm, km, ft or in. The unit recorded in the file is proposed, but it is only a hint and is often missing or wrong.From the file
Curve discretisationSegments per full circle used for arcs, circles, splines and polyline bulges (4 to 720)64
Import as (one per layer)Role of the layer, proposed from its name: (ignore), External Boundary, Material Boundary, Water Table, Piezometric Line, Drawdown Line, Tension Crack, SupportProposed
Welding toleranceEnds closer than this are welded, and a node is inserted where an end lands on a segment; as a percentage of the model diagonal (recommended 0.005 % to 0.5 %)0.05 %
Simplify polylines / Simplification toleranceDouglas–Peucker simplification, also as a percentage of the diagonal; vertices shared with another boundary are never removedon / 0.02 %
Replace existing boundaries of the imported typesDeletes the boundaries of the model of each type being importedon

The layer table gives each layer's entities and vertex count; layers without a proposed role are highlighted for you to decide. A layer is proposed from its name, ignoring case and separators: OGR_EXTERNAL, EXTERNAL, EXTERIOR or CONTORNO as the external boundary; OGR_MATERIAL, MATERIAL, SUELO or ESTRATO as material boundaries; OGR_WATER_TABLE, WATER_TABLE, WT or FREATICO as the water table; OGR_PIEZO or PIEZOMETRIC as piezometric lines; OGR_DRAWDOWN or DRAWDOWN as the drawdown line; OGR_CRACK or TENSION_CRACK as the tension crack; and a few more aliases in English and Spanish.

Preview runs the import without committing it and reports the vertex count before and after simplification, the number of regions found and whether the areas of the regions add up to the area of the external boundary, which is the decisive check. If they do not, a region did not close: raise the welding tolerance a little and preview again. Import is never refused: what could not be resolved is listed, and when there are problems the non-modal DXF Import — Problems panel opens after the import. It groups the problems by kind, with their severity and a suggested remedy; selecting one centres the canvas on it, double-clicking zooms in, and Go to problem and Zoom all do the same from buttons.

Version 0.1.235

The Support role imports nothing yet, and the dialog offers no role for weak layers or anisotropic surfaces: a layer named OGR_WEAK_LAYER or OGR_ANISO_SURFACE, as written by Export DXF, appears as (ignore). Draw those lines in the program after importing the rest.

Exporting a drawing#

File → Export DXF… writes the model to a DXF drawing. The geometry goes to layers the importer recognises, so that a model can be exported, edited in a drawing program and brought back; everything that is a drawing of results goes to layers whose name starts with OGR_X_, which the importer ignores by default.

Table 2.2.6 Export DXF dialog and the layers it writes.
OptionDefaultLayers
Write coordinates in: m, cm, mm, km, ft, inm—
Boundaries (geometry)onOGR_EXTERNAL, OGR_MATERIAL, OGR_WATER_TABLE, OGR_PIEZO, OGR_DRAWDOWN, OGR_CRACK, OGR_WEAK_LAYER, OGR_ANISO_SURFACE
SupportsonOGR_SUPPORT
Loads (as arrows)onOGR_X_LOADS
Finite element meshoff (one line per element edge)OGR_X_MESH
Critical slip surfaceon, when there are resultsOGR_X_SLIP_SURFACE
Annotations (title, factor of safety)onOGR_X_ANNOTATION
Load arrow size, as a percentage of the model diagonal (0.1 to 20 %)2.0 %—

Options for things the model does not have (supports, loads, a mesh, results) are greyed out. DXF carries geometry only: materials, the material of a weak layer and the link from a material to an anisotropic surface are not exported. The status bar reports what was written and what was skipped.

In OGR Slip2D

The one-per-model rules (one external boundary, one water table, one tension crack, one drawdown line) and the conditions on the drawdown line and the Block Search objects are checked in one place that the interface, the scripting interface and the agent tools all ask, so a model built by a script obeys the same rules as one drawn by hand. The regions are built by a planar subdivision of the external boundary and the material boundaries.

Source: ogr_core/project/rules.py · ogr_core/geometry/regions.py · ogr_core/dxf/