The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.

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 94.619368042
#>  2: 0.01163118 81.394225791
#>  3: 0.01352844 69.643193869
#>  4: 0.01573517 59.201812619
#>  5: 0.01830186 49.933256724
#>  6: 0.02128722 41.724167461
#>  7: 0.02475955 34.481456959
#>  8: 0.02879828 28.129312120
#>  9: 0.03349580 22.605664757
#> 10: 0.03895957 17.857696295
#> 11: 0.04531458 13.836510847
#> 12: 0.05270620 10.491773931
#> 13: 0.06130353  7.767560680
#> 14: 0.07130325  5.600597067
#> 15: 0.08293409  3.921439524
#> 16: 0.09646214  2.657969237
#> 17: 0.11219685  1.739328992
#> 18: 0.13049819  1.099618917
#> 19: 0.15178479  0.678840505
#> 20: 0.17654363  0.417595399
#> 21: 0.20534109  0.259370457
#> 22: 0.23883592  0.165147060
#> 23: 0.27779437  0.109974976
#> 24: 0.32310764  0.074649646
#> 25: 0.37581233  0.050290072
#> 26: 0.43711410  0.033514914
#> 27: 0.50841530  0.022096605
#> 28: 0.59134701  0.014414016
#> 29: 0.68780637  0.009303656
#> 30: 0.80000000  0.005942443
#>             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.14680740
#>  2:   0.5   0.16 0.10017009
#>  3:   0.5   0.84 0.19402943
#>  4:   2.5   mean 0.08434713
#>  5:   2.5   0.16 0.05403225
#>  6:   2.5   0.84 0.11501082
#>  7:   5.0   mean 0.06328836
#>  8:   5.0   0.16 0.03848274
#>  9:   5.0   0.84 0.08660473
#> 10:  25.0   mean 0.02595766
#> 11:  25.0   0.16 0.01174217
#> 12:  25.0   0.84 0.03865647

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

Next steps

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.