Every method of slices in OGR Slip2D except the Ordinary one reaches its factor of safety by iteration, and Spencer and GLE/Morgenstern–Price add a search for the interslice force factor λ. The first sections describe how those iterations are controlled and when their result is accepted. A converged answer can still be inadmissible, and three checks decide that: the sign of the interslice thrust, the m-alpha check and the tensile stress check. The line of thrust and the codes written in place of a factor of safety close the chapter.
3.3.1Convergence tolerance and iteration limits#
Bishop's and Janbu's methods iterate on the factor of safety itself (Eq. (3.2.6) and Eq. (3.2.9)): each pass evaluates the right-hand side of the equation with the current value and takes the result as the next one. The iteration stops when two successive values agree within the convergence tolerance :
The test is absolute, in units of the factor of safety, and it is never applied to the first step, which is measured from the initial value rather than from an iterate. The other methods use the same in their own tests: Spencer and GLE on each fixed point of the λ search and on (Section 3.3.3), the prescribed-inclination family on the width of the bracket around its root (Section 3.2.7). A surface that reaches the iteration limit without meeting its test has no factor of safety: it is rejected and counted under error code −111 (Section 3.3.9).
| Setting | Project Settings page | Project default | Class default |
|---|---|---|---|
| Tolerance | Methods | 0.005 | 0.001 |
| Maximum iterations | Methods | 50 | 75 (GLE: 50) |
| Initial factor of safety | Advanced | 1.0 | 1.0 |
| Accelerate convergence (Steffensen) | Advanced | on | off |
| Minimum lambda, maximum lambda | Advanced | −0.1, 6.0 | −0.1, 6.0 |
The same Maximum iterations bounds a different loop in each family of methods, and the acceleration of the next section reaches only some of them. Table 3.3.2 sets out what each setting and each check of this chapter applies to.
| Method | Maximum iterations bounds | Steffensen | m-alpha check | Line of thrust |
|---|---|---|---|---|
| Ordinary (Fellenius) | nothing: no iteration | no | no | no |
| Bishop simplified | the iteration on | circles only | yes | no |
| Janbu simplified, corrected | the iteration on | yes | yes | no |
| Spencer, GLE | the refinement of λ; each fixed point gets the larger of the value and 400 passes | no | yes | yes |
| Corps of Engineers #1, #2, Lowe–Karafiath | the refinement of the root, at least 60 steps | no | no | yes |
Tolerance, Maximum iterations, whose label warns that its scope differs by method, and the number of slices are on the Methods page of Analysis → Project Settings; the dialog accepts tolerances down to 10⁻⁶. The initial factor of safety and the λ range are on the Advanced page. The settings reach the methods through one function of the analysis runner, which every interface uses. When Maximum iterations is changed from its default and Spencer or GLE is in the run, the analysis notes say which of their loops the new value reaches.
Source: ogr_core/project/settings.py · ogr_slip2d/methods/base.py · ogr_slip2d/analysis_runner.py3.3.2Steffensen–Aitken acceleration#
A fixed-point iteration converges linearly, and slowly where the map is flat near its root. Aitken's process (Aitken, 1926) extrapolates three successive iterates to the limit of the sequence,
and restarting the iteration from after every third iterate is Steffensen's method (Steffensen, 1933). With Accelerate convergence on, Bishop's and Janbu's iterations replace every third iterate by . The test of Eq. (3.3.1) is unchanged, so the acceleration changes how fast the sequence reaches its root and not which root it reaches. Where the denominator of Eq. (3.3.2) is smaller than 10⁻¹⁴ in absolute value, or is not a positive finite number, the plain iterate is kept.
Analysis → Project Settings → Advanced → Accelerate convergence, on by default. It is applied by Bishop's method on circular surfaces and by both of Janbu's methods, on the uncorrected . It is not applied by Bishop's method on other surfaces, whose iteration is damped instead (Section 3.2.3); nor by Spencer and GLE, whose iteration carries the factor of safety and the interslice forces together, so that extrapolating the factor alone leaves the forces behind; nor by the prescribed-inclination family, which finds its factor by bracketing a root; nor by the Ordinary method, which does not iterate. When the setting is on and no method of a run can use it, the analysis notes say so.
Source: ogr_slip2d/methods/base.py · ogr_slip2d/methods/bishop.py · ogr_slip2d/methods/janbu.py3.3.3The λ search of Spencer and GLE#
Spencer and GLE/Morgenstern–Price give two factors of safety for any value of λ, from force equilibrium (Eq. (3.2.16)) and from moment equilibrium (Eq. (3.2.17)), and their solution is the λ at which the two agree (Fredlund & Krahn, 1977). OGR Slip2D solves two nested problems: at a given λ, one fixed point for each factor; around them, the root of
The two fixed points at one λ#
Each factor is iterated to its own fixed point, called here a branch. A pass marches the base normal force and the interslice normal force across the slices (Eq. (3.2.14) and Eq. (3.2.15)) with the interslice shear of the previous pass, updates , and evaluates the branch's own equation for a new value . The update is damped and kept inside the range of factors the search accepts:
The state of this iteration is the pair , so a branch is accepted only when both have settled: the step below , each of the last two steps smaller than the one before it (the iteration is contracting), and the thrust residual
where are the support forces on the base of slice : the largest change of an interslice shear force in the pass, relative to the total force acting on the mass. A branch whose step and thrust residual have both stayed below for two consecutive passes is accepted as well, because a damped iteration that converges need not shorten its step on every pass. No branch is accepted before its third pass.
A branch is abandoned, and its λ lost, when on some base, its driving sum vanishes or the new value is not a positive finite number; when an interslice normal force exceeds ten times the total force of Eq. (3.3.5), a runaway; when it has failed for 80 consecutive passes to improve on both its smallest step and its smallest thrust residual, which means it is wandering rather than converging; or when it has used its budget of passes, the larger of Maximum iterations and 400.
A damped iteration can settle into a period-2 cycle around a fixed point it never reaches, or crawl towards one. After 80 passes, or earlier if its step has grown, compared with the step two passes before, on ten consecutive passes, a branch that is still moving by more than continues with the relaxation of Wegstein (1958):
with limited to ; the damped update of Eq. (3.3.4) is the same rule with . Taking as the secant slope of the map cancels that slope locally, so one rule damps a cycle and extrapolates a crawl. Under this relaxation a branch is accepted when its step and thrust residual have both been below on two consecutive passes. Finally, when the force branch at some λ produces no state at all while the moment branch converged, the force branch is solved once more from , with the relaxation active from the first pass, and the new state is kept only if it converges.
The search for λ#
- Grid. λ is sampled over a calibrated list, −1.5, −1.0, −0.6, −0.4, −0.2, −0.1, 0, 0.1, 0.2, 0.4, 0.6, 0.8, 1.0 and 1.5, clipped to the range set in the project; the default range, −0.1 to 6.0, leaves −0.1, 0, 0.1, 0.2, 0.4, 0.6, 0.8, 1.0 and 1.5. A value counts when both branches converge to factors between 0.05 and 50 and its interslice thrust is admissible (Section 3.3.4). Sampling stops at the first change of sign of .
- Extension. If the grid brackets no root, λ = 2.0, 2.5, 3.0, 3.5, 4.0, 5.0 and 6.0 are sampled as well, as far as the project range allows.
- Gaps. If there is still no change of sign, and decreases towards a grid value that produced no usable sample, the interval up to that value is halved, up to six times, looking for the change of sign there.
- Values set aside. If there is still none, the values of λ set aside only because their interslice thrust was in tension are put back, and the bracket nearest the admissible ones is taken.
- Refinement. Inside the bracket the root is refined by the secant method, falling back to bisection whenever the secant step leaves the bracket or a branch fails, for at most Maximum iterations steps, until . The factor of safety is at that λ.
If no value at all survives the grid because every one was rejected for its interslice thrust, the grid is sampled again without that criterion and the answer is marked inadmissible (Section 3.3.4). A bracket that is refined without falling below gives no factor of safety. When nothing brackets at all, the program returns the sampled λ with the smallest and there; that answer counts as converged if , and as a failure ("no λ-bracket") otherwise.
The limit of 0.02 on that last answer is fixed and looser than the tolerance. Its own source code says it has no derivation, and keeps it because tightening it to the tolerance was measured to remove surfaces from a search and to raise the reported minimum on the unsafe side. The residual is published with the result and in the analysis notes, so that an answer taken from the nearest sample can be told apart from a solved root.
The λ range is set on the Advanced page (Minimum lambda, Maximum lambda); it clips the calibrated list rather than replacing it, so a range narrower than the default can exclude the solution. With every result Spencer and GLE publish λ, the boundary ratios, whether the search fell back to the nearest sample and its residual, and how many values of λ were lost and why: to the pass budget, to a runaway thrust, to a stalled or inadmissible branch, or rescued by the relaxation. On a planar surface the factor from force equilibrium does not depend on the interslice forces, and its branch is accepted without waiting for the thrust residual to fall below the tolerance.
Source: ogr_slip2d/interslice.py · ogr_slip2d/methods/spencer.py · ogr_slip2d/methods/gle.py3.3.4Admissibility of the interslice forces#
Once the interslice forces are formed, can have more than one root, and not every root is a solution: at a spurious one many interslice faces are pulled apart (Ching & Fredlund, 1983). Soil transmits no tension across a vertical face, so at every λ it samples OGR Slip2D tests the interslice normal forces of the force branch:
The resultant of the interior interslice normal forces must be compressive. The test is on the sum and not on every face, because a legitimate solution can carry a small tension on a face or two near a free end, where tends to zero anyway. It is a preference: a λ that fails it is set aside while other values remain. If none passes, the answer is computed with the criterion relaxed and the surface is marked inadmissible: it keeps its factor of safety, but it is excluded from the choice of the critical surface unless no admissible surface exists. With every result the program publishes the margin , which is +1 when every interior face is in compression and −1 when every one is in tension, so that a verdict close to changing can be seen.
The prescribed-inclination methods have no λ to choose. For them the program publishes a diagnostic of thrust reversal (the largest interslice force acting against the dominant sense, divided by the largest force) that is not used to reject anything.
A converged Spencer or GLE answer whose returned state fails Eq. (3.3.7) carries the note that no λ leaves the interslice thrust in net compression and is counted under error code −101. When every surface of a search is inadmissible for this or for the checks below, the search reports the lowest of them rather than nothing, with the count of inadmissible surfaces.
Source: ogr_slip2d/interslice.py · ogr_slip2d/search.py · ogr_slip2d/methods/modified_swedish.py3.3.5The m-alpha check#
The quantity of Eq. (3.2.5) divides the base normal force in every method that takes it from the vertical equilibrium of the slice. Where it becomes small, the normal force, and the shear strength that follows from it, are inflated; where it becomes negative, the factor of safety loses its meaning. Whitman & Bailey (1967) suggested that a factor of safety should not be accepted without further examination when falls below about 0.2 on any slice. After the factor of safety has converged OGR Slip2D evaluates, on every slice,
with the converged , the sense of sliding the method used and the at which the method linearised the envelope, and rejects the surface if any slice falls below 0.2. Figure 3.3.2 shows where that happens: at the toe, where the base rises in the direction of sliding (), and the sooner the larger . In a purely cohesive material , and the check becomes a ceiling on the inclination of the base, .
Clearing 0.2 does not certify a factor of safety; it screens out surfaces whose arithmetic has become untrustworthy. Duncan, Wright & Brandon (2014) discuss the problem and its remedies, among them limiting how steeply a searched surface may rise towards the toe and, where the difficulty persists in that zone, the Ordinary method, which forms no such denominator.
Analysis → Project Settings → Advanced → Check m-alpha < 0.2, on by default; the limit is fixed at 0.2. The check is applied to Bishop simplified, Janbu simplified and corrected, Spencer and GLE / Morgenstern–Price; not to the Ordinary method, which forms no such denominator, nor to the prescribed-inclination family, which divides by of Eq. (3.2.23). Every screened method is tested with the expression of Eq. (3.3.8). For Janbu's methods, whose own denominator is , applying the limit to is a choice the program declares and leaves open, since no published case it holds settles it; Janbu corrected is checked at . A rejected surface keeps its factor of safety and stays in the results, is counted under error code −112 and cannot be the critical surface unless every surface was rejected. When the reported critical surface has below 0.5 on some slice, the analysis notes name the base and the factor by which its normal force is amplified.
Source: ogr_slip2d/checks.py · ogr_slip2d/analysis_runner.py3.3.6The tensile stress check#
Where the pore pressure is high or the base is steep (typically near the crest of a deep surface), the effective normal stress on a slice base can come out negative. A base in tension is not the shear plane the methods assume, and the factor of safety may then be unreliable. The tensile stress check, off by default, tests after convergence that
on a percentage of the slices counted from the toe, 95 % by default; the slices nearest the crest are left out because tension there is what a tension crack is. is the base normal force of the method's own solution: for Bishop and Janbu, that of the vertical equilibrium of the slice (Eq. (3.2.4)); for the other methods, the force each of them solved for. The allowed tension is zero for every strength model except the two Hoek–Brown models, whose criterion has a finite tensile strength. The program takes the stress at which the bracket of the criterion vanishes (Hoek, Carranza-Torres & Corkum, 2002):
where
- Hoek–Brown constants of the rock mass; in the classic model (—)
- uniaxial compressive strength of the intact rock (kPa)
Analysis → Project Settings → Advanced → Tensile stress check and Percentage of slices. The toe is the end of the surface whose ground surface is lower. A rejected surface is counted under error code −120; a surface that fails both this check and the m-alpha check is reported as tensile, because this check runs first. The Shear–Normal Function model, which could carry a tensile strength, is kept at zero because no source states its rule. The program also declares that its generalised Hoek–Brown shear envelope is not yet the exact Mohr envelope of the criterion (Section 3.5); Eq. (3.3.10) belongs to the criterion, not to that envelope.
Source: ogr_slip2d/checks.py · ogr_core/materials/builtin_models.py3.3.7Self-consistent linearisation of curved envelopes#
Every method reads the strength of a base as the tangent to its envelope at an estimate of the effective normal stress (Eq. (3.2.1)). For Mohr–Coulomb the point does not matter. For a curved envelope it does: a tangent taken anywhere but at the stress the method finally resolves lies above a concave envelope there, and a tangent taken at a stress clipped to zero, on an envelope through the origin, gives no strength at all. OGR Slip2D therefore solves the surface once from the first estimate, Eq. (3.2.2), and then repeats the solution, each time linearising the envelope at the effective normal stress of the previous solution,
until no slice's stress changes by more than . At that fixed point the straight line each method uses gives the envelope's own strength at the stress the method resolves. Only slices whose envelope has a tangent that depends on the stress take part (each envelope is probed at 5 and 500 kPa), so a Mohr–Coulomb model is solved once, as before. If the stresses have not settled after 50 solutions, the surface is reported as not converged.
Applied to every method except the Ordinary one, whose normal force does not depend on the strength, so that its envelope is already read at its own stress. is the stress of each method's own solution, as in the tensile check; for Janbu corrected it is formed at . The result records the number of solutions and the stress each slice was linearised at, and the admissibility checks read the envelope at that same stress. Slices that entered a solution with no strength because their estimate was clipped are counted in the analysis notes.
Source: ogr_slip2d/methods/base.py3.3.8The line of thrust#
The line of thrust is the locus of the points at which the interslice normal forces act. It is an unknown of the complete-equilibrium procedures, and its position within the sliding mass is a check on the reasonableness of their interslice forces (Spencer, 1967). OGR Slip2D draws it after the analysis for Spencer, GLE/Morgenstern–Price, Lowe–Karafiath and Corps of Engineers #1 and #2, the methods that resolve the interslice forces. It is not offered for Bishop, Janbu and the Ordinary method, which assume them away.
The line is computed by marching the force equilibrium of the slices at the converged factor of safety, with the interslice ratios the method solved with ( or ), which recovers , , and on every slice. The height at which the normal force on each face acts follows from the moment balance of the slice about the middle of its base:
where
- middle of the base of the slice (m)
- abscissa of the right face and height of the thrust on it (m)
- interslice forces on the right face (kN/m)
- anticlockwise moment about the middle of the base of every other force on the slice: the force on its left face, its weight at the centroid of the slice, the seismic force, the water forces and the supports (kN·m/m)
The march is carried from both free ends towards the centre slice, whose two faces take the average of the two traversals, so that every slice is in moment equilibrium except the two next to the centre one, which share whatever imbalance the method leaves. Where is practically zero the height is undefined, and the force is placed at a third of the height of the face.
In the Interpret window, Query → Show Line of Thrust, for the selected surface or the critical one; the command is disabled for Bishop, Janbu and the Ordinary method. If the march leaves a horizontal force at its far end larger than 2 % of the largest interslice force, the status bar says so. For display the interslice ratios may be scaled by one common factor so that the marched forces close at the far end; the march only displays the state and never changes the factor of safety.
Source: ogr_slip2d/postprocess.py · ogr_gui/interpret_window.py3.3.9Surface error codes#
A surface that has no admissible factor of safety keeps its place among the results, and the program writes a negative code in its place in the raw-data export and in the census of rejected surfaces. Table 3.3.3 gives their meaning; the full list of codes is in Section 5.5.
| Code | Meaning | Typical causes |
|---|---|---|
| −120 | Rejected by the tensile stress check | a tested slice base in more tension than (Eq. (3.3.9)) |
| −112 | Rejected by the m-alpha check | on a slice of a screened method |
| −111 | No converged factor of safety | iteration limit reached; λ bracket not closed; no λ or bracket; or collapsed; no driving force; no shear strength; curved-envelope iteration not settled |
| −101 | Any other rejection | a converged Spencer or GLE answer whose interslice thrust is inadmissible; checks that could not be evaluated |
One function assigns the code to every rejected evaluation, for the raw-data export, the census of the Interpret window and the MCP server alike. The tensile check is tested first, then a check that could not be evaluated (−101), then the m-alpha check; any remaining calculation that did not converge is −111, and anything else −101.
Source: ogr_slip2d/interpretation.py · ogr_slip2d/methods/base.py3.3.10References#
- Aitken, A.C. (1926). On Bernoulli's numerical solution of algebraic equations. Proceedings of the Royal Society of Edinburgh, 46, 289–305.
- Ching, R.K.H. & Fredlund, D.G. (1983). Some difficulties associated with the limit equilibrium method of slices. Canadian Geotechnical Journal, 20(4), 661–672.
- Duncan, J.M., Wright, S.G. & Brandon, T.L. (2014). Soil Strength and Slope Stability, 2nd ed. Wiley.
- Fredlund, D.G. & Krahn, J. (1977). Comparison of slope stability methods of analysis. Canadian Geotechnical Journal, 14(3), 429–439.
- Hoek, E., Carranza-Torres, C. & Corkum, B. (2002). Hoek–Brown failure criterion — 2002 edition. Proceedings of the 5th North American Rock Mechanics Symposium (NARMS-TAC 2002), Toronto, 1, 267–273.
- Spencer, E. (1967). A method of analysis of the stability of embankments assuming parallel inter-slice forces. Géotechnique, 17(1), 11–26.
- Steffensen, J.F. (1933). Remarks on iteration. Skandinavisk Aktuarietidskrift, 16, 64–72.
- Wegstein, J.H. (1958). Accelerating convergence of iterative processes. Communications of the ACM, 1(6), 9–13.
- Whitman, R.V. & Bailey, W.A. (1967). Use of computers for slope stability analysis. Journal of the Soil Mechanics and Foundations Division, ASCE, 93(SM4), 475–498.