Getting started with newmark

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 87.455200677
#>  2: 0.01163118 75.264081328
#>  3: 0.01352844 64.422106727
#>  4: 0.01573517 54.778985726
#>  5: 0.01830186 46.210035856
#>  6: 0.02128722 38.612408895
#>  7: 0.02475955 31.902198652
#>  8: 0.02879828 26.011689436
#>  9: 0.03349580 20.886028617
#> 10: 0.03895957 16.478889159
#> 11: 0.04531458 12.747244077
#> 12: 0.05270620  9.646054119
#> 13: 0.06130353  7.124153074
#> 14: 0.07130325  5.122567198
#> 15: 0.08293409  3.575749055
#> 16: 0.09646214  2.414929261
#> 17: 0.11219685  1.572699329
#> 18: 0.13049819  0.988760939
#> 19: 0.15178479  0.607827936
#> 20: 0.17654363  0.372854648
#> 21: 0.20534109  0.232914492
#> 22: 0.23883592  0.151246403
#> 23: 0.27779437  0.101895329
#> 24: 0.32310764  0.069311088
#> 25: 0.37581233  0.046706270
#> 26: 0.43711410  0.031134683
#> 27: 0.50841530  0.020532914
#> 28: 0.59134701  0.013397811
#> 29: 0.68780637  0.008650298
#> 30: 0.80000000  0.005526821
#>             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.14430279
#>  2:   0.5   0.16 0.09986240
#>  3:   0.5   0.84 0.18911886
#>  4:   2.5   mean 0.08255363
#>  5:   2.5   0.16 0.05354854
#>  6:   2.5   0.84 0.11698884
#>  7:   5.0   mean 0.06174193
#>  8:   5.0   0.16 0.03865162
#>  9:   5.0   0.84 0.08880271
#> 10:  25.0   mean 0.02495997
#> 11:  25.0   0.16 0.01186905
#> 12:  25.0   0.84 0.04058308

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

Next steps

  • vignette("dynamic-site-response", package = "newmark") — soil profile to fundamental period and site amplification (getSiteProperties, geSiteTable, getCylinderRoots, fitModel.Ts, fitSaF).
  • vignette("ensemble-formulation", package = "newmark") — mathematical derivation of the probabilistic propagation.
  • vignette("pipeline", package = "newmark") — the four-workflow overview at function level.
  • Function reference: ?fitSaF, ?getDnKy, ?fitDnCurve, ?invertDnDraws, ?getSiteProperties, ?getCylinderRoots, ?buildGMDP.