Single case
Expand one cavity from a0 to a and report the wall state, the plastic zone and the full radial profile.
No results yet
Set the model inputs on the left, then select Run analysis. A typical case solves in well under a second.
Effective stresses with distance
kPa against r/a. The dashed line marks the plastic boundary.
q–p′ stress path
From the in-situ state to the cavity wall
Specific volume with distance
v against r/a
Lode angle with distance
θ in degrees against r/a
e–log p′ state path and CSL
Void ratio against mean effective stress
Wall outputs
Solver diagnostics
Radial history
Rows run from the cavity wall outward. Rows past the plastic boundary are the elastic zone, out to 2·rp.
Sensitivity
Vary one input over a range or a list of values, keep every other input fixed, and compare the runs side by side.
No study run yet
Pick the parameter to vary and its values, then select Run sensitivity.
Runs
Wall result against the varied parameter
Effective stress with distance
kPa against r/a
q–p′ stress paths
Dots mark the cavity wall
Specific volume with distance
v against r/a
Lode angle with distance
θ in degrees against r/a
e–log p′ state paths and CSL
Dots mark the cavity wall
Wall results by run
Multi-case & CPT calibration
Run a matrix of cases, convert the wall stress to a CPT tip resistance, and fit Q + 1 = k·exp(−m·ψ0) with k and m as functions of ln(Ir).
Case matrix
One case per line: p0_kPa, psi0, Ir0, k. If k is left out, the default geometry is used. Header lines are ignored.
Results
Q = (Cψ·σ′r,wall − p′0) / p′0, with Cψ = ck·exp(−cm·ψ0)
CPT calibration
For each Ir, Q + 1 = k·exp(−m·ψ0) is fitted to ln(Q + 1) against ψ0. k and m are then each fitted as linear in ln(Ir).
Model notes
How the solver works, what it reports, and how the CPT calibration is built.
Solution procedure
This is a JavaScript port of the VBA module NorSand_Cavity_VBA_Hmin_FINAL.bas, which is itself a port of NorSand_Cavity_Batch_Final.m. Everything runs in your browser and nothing is uploaded.
- In-situ state. For spherical symmetry the starting stress is isotropic at p′0, so K0 must be 1. For cylindrical plane strain K0 can take any positive value: σ′3 = 3p′0/(1 + 2K0) is the out-of-plane stress and σ′r = σ′θ = K0σ′3, which keeps the mean stress at p′0. The void ratio is e0 = ec(p′0) + ψ0, from a linear or curved CSL.
- Stiffness. G = Gref(p′/pref)mG. A positive Gref overrides Ir0. Otherwise Gref comes from Ir0 = G0/p′0. Set mG = 0 for constant G.
- Image pressure. pi is the smallest physical root of the yield surface at the in-situ state, found by log scan and bisection, then multiplied by OCR.
- First yield. The load is increased along the elastic cavity path until F = 0.
- Plastic zone. The state [σ′r, σ′θ, σ′3, v, pi] is integrated in ξ from first yield to the wall, ξ = 1 − 1/(a/a0). This uses adaptive Dormand–Prince RK45 (rtol = 10−7) with the explicit consistent tangent, which includes a numerical yield gradient. Hardening is H = max(H0 − Hyψ, Hmin).
- Plastic radius. rp/a comes from integrating the radius mapping over the stored ξ history.
CPT scaling and calibration
Q = (C_psi · sigma_r,wall − p0) / p0
k(Ir) = k1 + k2 · ln(Ir), m(Ir) = m1 + m2 · ln(Ir)
Checks reported
For each case the solver reports the largest |F| along the path, and the largest residuals in the flow rule, dilatancy, radial equilibrium and dF/dξ. These match the residuals the VBA computes. Small values mean the integration stayed on the yield surface and kept equilibrium.
Verification
The port was checked against results saved in the Excel workbook. For the single-case benchmark and a sample of the 56-case calibration matrix, wall stresses, strains and rp/a agree to about 10−9 relative. The calibration coefficients k1, k2, m1, m2 agree to four decimals.
Exporting figures
Every figure has PNG and SVG buttons. The export includes the figure title and legend and uses the current colour theme, so switch to the light theme for figures going into a paper or report.