Simulate paired soil-profile realizations for a material pool
simulateSoilProfiles.RdDraws NS synthetic columns with sampleSoilLayers(), evaluates each with
evaluateSoilLayers() and characterizes it with characterizeProfile().
Every realization is kept with its layers, so the profile quantities stay
paired: the Go, mo, VSo, VS30 and TrRayleigh of one row belong
to the same column. summarizeProfiles() reduces this population to
marginal statistics; propagateSitePeriod() and propagateBeamPeriod()
solve the fundamental periods of the soil profile and truncated shear beam on each row before any reduction.
Arguments
- Hs
One positive height in metres.
- USCS
Character vector of USCS codes forming the material pool.
- NS
Number of realizations, a positive integer.
- h
One positive layer thickness in metres.
- water
Water-table height as a fraction of
Hs.- POP
Preconsolidation pressure in kPa.
- Vref
One positive reference velocity in m/s, see
estimateVS30().- m1
Nodes of the plasticity exponent, see
evaluateSoilLayers(), whose published table is also the default here.
Value
A data.table with one row per realization: realization, Hs,
Hw (water-table height, m), POP, Vref, the columns of
characterizeProfile() and layers, a list column holding the
evaluated layer table of the row. The rows are the population generated
by the pool under the caller's random stream.
Examples
set.seed(20260915)
simulateSoilProfiles(Hs = 10, USCS = c("ML", "MH"), NS = 3, h = 1,
water = 0, POP = 100, Vref = 760)
#> realization Hs Hw POP Vref NL Go mo VSo
#> <int> <num> <num> <num> <num> <int> <num> <num> <num>
#> 1: 1 10 0 100 760 10 59.62915 0.2980117 178.0648
#> 2: 2 10 0 100 760 10 76.30413 0.5459589 195.3620
#> 3: 3 10 0 100 760 10 69.44542 0.5433113 186.2848
#> VS30 SID TrRayleigh Gravels Sands Fines Clays Silts Organic USCS
#> <num> <char> <num> <num> <num> <num> <num> <num> <num> <char>
#> 1: 322.7362 CD 0.2411996 0 0 100 0 100 0 MH.ML
#> 2: 317.2137 CD 0.2354715 0 0 100 0 100 0 MH.ML
#> 3: 306.6465 CD 0.2414145 0 0 100 0 100 0 MH.ML
#> fitSigma fitLayers layers
#> <num> <int> <list>
#> 1: 0.3309554 10 <data.table[10x19]>
#> 2: 0.4070521 10 <data.table[10x19]>
#> 3: 0.3098340 10 <data.table[10x19]>