Lythos Rock — reference
Stresses are in MPa and compression is positive; the tensile strength therefore comes out negative, as Hoek writes it. Unit weights are in kN/m³ and depths in m.
The generalised Hoek–Brown criterion
Hoek, Carranza-Torres & Corkum (2002):
σ1 = σ3 + σci·(mb·σ3/σci + s)^a
mb = mi·exp((GSI − 100)/(28 − 14·D))
s = exp((GSI − 100)/(9 − 3·D))
a = 1/2 + (exp(−GSI/15) − exp(−20/3))/6GSI = 100 and D = 0 give mb = mi, s = 1, a = 1/2 — the original criterion for intact rock. The criterion describes a rock mass that behaves isotropically; where a single discontinuity governs, analyse it with Lythos Kinematic. The program warns above GSI = 85.
Rock mass strengths
tensile σt = −s·σci/mb
uniaxial σc = σci·s^a
global σcm = σci·(mb + 4s − a(mb − 8s))·(mb/4 + s)^(a−1) / (2(1 + a)(2 + a))σcm is the strength of the rock mass as a whole — the uniaxial strength of the Mohr–Coulomb line fitted over σt < σ3 < σci/4 — rather than the stress at which failure starts at a boundary (σc).
Equivalent Mohr–Coulomb strength
The least-squares line through the Hoek–Brown curve over σt < σ3 < σ3max, in closed form (Hoek et al. 2002), with σ3n = σ3max/σci:
φ′ = asin[ 6a·mb·(s + mb·σ3n)^(a−1) / (2(1 + a)(2 + a) + 6a·mb·(s + mb·σ3n)^(a−1)) ]
c′ = σci·[(1 + 2a)s + (1 − a)mb·σ3n]·(s + mb·σ3n)^(a−1)
/ { (1 + a)(2 + a)·√[1 + 6a·mb·(s + mb·σ3n)^(a−1) / ((1 + a)(2 + a))] }| Application | σ3max |
|---|---|
| General | σci/4 |
| Tunnel | σcm·0.47·(σcm/γH)−0.94, H the depth of the tunnel |
| Slope | σcm·0.72·(σcm/γH)−0.91, H the height of the slope |
| Custom | the value given |
Every application is reported side by side.
Instantaneous strength
At any σ3, with k = ∂σ1/∂σ3 = 1 + a·mb·(mb·σ3/σci + s)a−1 (Balmer 1952):
σn = (σ1 + σ3)/2 − (σ1 − σ3)/2 · (k − 1)/(k + 1)
τ = (σ1 − σ3)·√k/(k + 1)
φi = asin((k − 1)/(k + 1)), ci = τ − σn·tan φiDeformation modulus
| Estimate | Erm |
|---|---|
| Hoek & Diederichs (2006), generalised | Ei·(0.02 + (1 − D/2)/(1 + e(60 + 15D − GSI)/11)) |
| Hoek & Diederichs (2006), simplified | 100 000·(1 − D/2)/(1 + e(75 + 25D − GSI)/11) MPa |
| Hoek, Carranza-Torres & Corkum (2002) | (1 − D/2)·√(σci/100)·10(GSI − 10)/40 GPa, the root 1 for σci > 100 MPa |
Ei is entered or taken as MR·σci. The generalised estimate cannot exceed Ei; the program warns when the one chosen does.
GSI from other classifications
| Route | GSI | Source |
|---|---|---|
| Chart | the structure and surface classes, placed on the quantified chart | Hoek, Carter & Diederichs (2013) |
| JCond89, RQD | 1.5·JCond89 + RQD/2 | Hoek, Carter & Diederichs (2013) |
| RMR89 | RMR89 − 5 (dry, no orientation adjustment; not below RMR89 = 23) | Hoek, Kaiser & Bawden (1995) |
| Q′ | 9·ln Q′ + 44 | Hoek et al. (1995) |
| Vb, Jc | (26.5 + 8.79·ln Jc + 0.9·ln Vb)/(1 + 0.0151·ln Jc − 0.0253·ln Vb), Vb in cm³ | Cai et al. (2004) |
Triaxial fit and residual strength
With s = 1 and a = 1/2 the criterion becomes a straight line, (σ1 − σ3)² = mi·σci·σ3 + σci² (Hoek & Brown 1980); least squares gives σci = √b, mi = m/σci and r². Uniaxial tests enter at σ3 = 0, tensile tests at σ3 = −σt with σ1 = 0.
Residual strength (Cai et al. 2007): GSIr = GSI·e−0.0134·GSI, and the residual mb, s, a, c′ and φ′ from GSIr over the same σ3max.
Inputs
| Group | Fields |
|---|---|
| Intact rock | source (values / triaxial tests), rock type (fills typical mi and MR), ISRM strength grade (fills a typical σci), σci, mi |
| Triaxial tests | one row per test: name, σ3, σ1 |
| Rock mass | GSI source (direct, chart, jcond, rmr, q, cai) and its inputs; D, with Hoek's excavation cases as a picker |
| Application | general, tunnel, slope (γ, H) or custom (σ3max) |
| Deformability | the estimate; Ei entered or MR·σci |
| Instantaneous strength | the σ3 at which to read it |
| Study | method (one at a time, Latin hypercube, Monte Carlo), samples, seed, variables as ranges or normal / lognormal / uniform distributions |
Project files (.rock) are JSON; missing entries keep their defaults.
Modules
| File | Content |
|---|---|
hoekbrown.py | The criterion: constants, strengths, the Mohr–Coulomb fit, σ3max, Balmer's envelope, the moduli |
gsi.py | GSI from the chart, JCond89/RQD, RMR89, Q′, Vb/Jc |
labfit.py | σci and mi fitted to triaxial tests |
tables.py | Typical values: mi and MR by rock type, σci grades, D cases, the chart's classes |
engine.py | The analysis: intact rock, GSI, constants, strengths, every application, moduli, residual, warnings |
study.py, study_plots.py | Parametric and probabilistic studies, 5 % fractiles, Spearman sensitivities, CSV / XLSX |
report.py, pdf.py | Calculation report: one HTML assembly, exported as PDF / HTML / DOCX |
web/ | The local HTTP server, the session and the browser interface |
Validation
The tests check the constants and strengths against hand calculations, the closed-form Mohr–Coulomb fit against a numerical least-squares fit of the Hoek–Brown curve, the global strength against the uniaxial strength of the general fit, Balmer's tangent against the geometry of the Mohr circle, each modulus and GSI route against its expression, the laboratory fit against exact data, the report in all three formats and the interface (session and HTTP layer).
pip install -e ".[dev]"
pytest -qLimits
- The criterion is for rock masses that behave isotropically; blocky rock with a few persistent sets needs a discontinuity analysis.
- Reading GSI from a chart is good to about ±5; run a study rather than trust one value.
- The tunnel and slope σ3max relations were fitted to numerical analyses; they are estimates of the confinement, not measurements.
- Typical mi, MR and σci values are where an estimate starts when no test says otherwise, not design values.
Full derivations and sources: docs/theory.md.