Skip to contents

Overview

newmark implements a four-workflow pipeline for probabilistic seismic performance analysis of slopes and embankments:

  1. Dynamic Site Response — compute the fundamental period Ts and site-amplified UHS from the soil profile (getSiteProperties, getCylinderRoots, fitSaF).
  2. Hazard import — import PSHA output from OpenQuake (buildGMDP).
  3. Displacement curves — Monte Carlo Newmark ensemble Dn(ky) (getDnKy, fitDnCurve).
  4. Seismic coefficient — invert ensemble draws to kmax(d*) (invertDnDraws).

This vignette demonstrates Workflows 3 and 4 using the bundled example dataset. For the full pipeline see the pipeline vignette (vignette("pipeline", package = "newmark")).

Example dataset

uhs.csv is a site-amplified uniform-hazard spectrum included with the package: NBCC hazard model, Vs30 = 560 m/s, TR = 10 000 yr, with quantile levels 0.05–0.95 and mean (Mode B input).

library(newmark)
library(data.table)
#> 
#> Attaching package: 'data.table'
#> The following object is masked from 'package:base':
#> 
#>     %notin%

uhs <- fread(system.file("extdata", "uhs.csv", package = "newmark"))
uhs[p %in% c("0.16", "mean", "0.84") & Tn <= 0.2, .(Tn, p, Sa)]
#>        Tn      p      Sa
#>     <num> <char>   <num>
#>  1: 0.000   0.16 0.12513
#>  2: 0.000   0.84 0.21655
#>  3: 0.000   mean 0.18228
#>  4: 0.050   0.16 0.39859
#>  5: 0.050   0.84 0.69551
#>  6: 0.050   mean 0.54639
#>  7: 0.075   0.16 0.43086
#>  8: 0.075   0.84 0.73093
#>  9: 0.075   mean 0.57871
#> 10: 0.100   0.16 0.41504
#> 11: 0.100   0.84 0.72926
#> 12: 0.100   mean 0.56767
#> 13: 0.120   0.16 0.39547
#> 14: 0.120   0.84 0.67237
#> 15: 0.120   mean 0.53474
#> 16: 0.150   0.16 0.36396
#> 17: 0.150   0.84 0.61739
#> 18: 0.150   mean 0.49354
#> 19: 0.180   0.16 0.32485
#> 20: 0.180   0.84 0.54772
#> 21: 0.180   mean 0.44060
#> 22: 0.200   0.16 0.29781
#> 23: 0.200   0.84 0.49987
#> 24: 0.200   mean 0.41868
#>        Tn      p      Sa
#>     <num> <char>   <num>

Parameters

# Ts: fundamental period of the sliding mass (s).
# In production, derived from getSiteProperties() + getCylinderRoots()
# using the soil USCS profile and slope geometry (Ishihara 1996,
# Gazetas & Dakoulas 1985). Here set to a representative value.
Ts <- 0.60

# Mw: moment magnitude from PSHA disaggregation.
Mw <- 6.8

# Ensemble weights (0 = model inactive).
weights <- c(AM88 = 1, JB07 = 0, BT07 = 1, SR08 = 1, BM17 = 0, BM19 = 1)

# Displacement targets (cm).
Da <- c(0.5, 2.5, 5.0, 25.0)

Workflow 3 — Displacement curve Dn(ky)

ky     <- getDnKy(uhs, Ts = Ts)
result <- fitDnCurve(
  uhs     = uhs,
  ky      = ky,
  Ts      = Ts,
  Mw      = Mw,
  NS      = 200,
  weights = weights
)

result$curve[IDn == "ensemble" & p == "mean", .(ky, Dn)]
#>             ky           Dn
#>          <num>        <num>
#>  1: 0.01000000 84.583605112
#>  2: 0.01163118 72.797813548
#>  3: 0.01352844 62.316527117
#>  4: 0.01573517 52.995343810
#>  5: 0.01830186 44.714463504
#>  6: 0.02128722 37.374870772
#>  7: 0.02475955 30.895344333
#>  8: 0.02879828 25.209650291
#>  9: 0.03349580 20.263335099
#> 10: 0.03895957 16.009793705
#> 11: 0.04531458 12.405731654
#> 12: 0.05270620  9.406640726
#> 13: 0.06130353  6.963255181
#> 14: 0.07130325  5.019948697
#> 15: 0.08293409  3.515468285
#> 16: 0.09646214  2.385252582
#> 17: 0.11219685  1.564697970
#> 18: 0.13049819  0.993807765
#> 19: 0.15178479  0.616222772
#> 20: 0.17654363  0.377354683
#> 21: 0.20534109  0.231561470
#> 22: 0.23883592  0.146812297
#> 23: 0.27779437  0.097926075
#> 24: 0.32310764  0.066533769
#> 25: 0.37581233  0.044799058
#> 26: 0.43711410  0.029838827
#> 27: 0.50841530  0.019661751
#> 28: 0.59134701  0.012818350
#> 29: 0.68780637  0.008268947
#> 30: 0.80000000  0.005278510
#>             ky           Dn
#>          <num>        <num>

Workflow 4 — Seismic coefficient kmax(d*)

kmax <- invertDnDraws(result$draws, Da = Da, weights = weights)
kmax[p %in% c("0.16", "mean", "0.84")]
#>        Da      p       kmax
#>     <num> <char>      <num>
#>  1:   0.5   mean 0.14290218
#>  2:   0.5   0.16 0.09430482
#>  3:   0.5   0.84 0.19228920
#>  4:   2.5   mean 0.08154132
#>  5:   2.5   0.16 0.05162667
#>  6:   2.5   0.84 0.11229623
#>  7:   5.0   mean 0.06089375
#>  8:   5.0   0.16 0.03562000
#>  9:   5.0   0.84 0.08445553
#> 10:  25.0   mean 0.02447778
#> 11:  25.0   0.16 0.01146532
#> 12:  25.0   0.84 0.03712757

kmax is in g. The normalised pseudostatic coefficient is Kh = kmax / PGA_rock x 100 %.

Next steps