Skip to contents

Solves, for each realization of simulateSoilProfiles(), the fundamental period \(T_r\) of its layered soil column on rigid base with solveColumnPeriod(), and keeps beside it the density-weighted Rayleigh estimate and its relative difference. The resulting population of site periods stays paired with the other properties of each realization: it can be summarized with summarizeProfiles(), naming "Tr" among its properties, or propagated further.

Usage

propagateSitePeriod(profiles)

Arguments

profiles

The result of simulateSoilProfiles() or propagateBeamPeriod(): one row per realization with the list column layers of layer tables (see solveColumnPeriod()).

Value

A copy of profiles with these columns appended, one value per realization paired with the other properties of its row: Tr (s), the numerical site period of the realization's column; TrMeshChange, its relative change under mesh doubling; TrRayleighWeighted (s), the density-weighted Rayleigh period of estimateWeightedRayleighPeriod(); and TrRayleighWeightedDifference, TrRayleighWeighted / Tr - 1. The population is that of profiles; TrMeshChange and TrRayleighWeightedDifference are numerical diagnostics, not physical dispersion. An invalid realization stops the call with its row.

Settings

Every layer of a realization is divided into two linear elements, and the mesh-doubling control of solveColumnPeriod() repeats the solve with four, so Tr is the period on four elements per layer: a design setting shared with propagateBeamPeriod().

Rayleigh estimates

The column is the realization's layers stacked from the surface, so its height is the sum of their thicknesses, which exceeds Hs when Hs is not a multiple of the layer thickness of sampleSoilLayers(). TrRayleighWeighted never exceeds the exact period of that column (see solveColumnPeriod()). The TrRayleigh of characterizeProfile(), already in the realization table, is the constant-density estimate of newmark 1.7.1: it ignores the variation of the unit weight between layers, so it is not a bound of Tr when the unit weight varies.

Examples

set.seed(20260915)
Profiles <- simulateSoilProfiles(Hs = 10, USCS = c("ML", "MH"), NS = 3, h = 1,
                                 water = 0, POP = 100, Vref = 760)
propagateSitePeriod(Profiles)[, .(TrRayleigh, Tr, TrRayleighWeighted, TrMeshChange)]
#>    TrRayleigh        Tr TrRayleighWeighted TrMeshChange
#>         <num>     <num>              <num>        <num>
#> 1:  0.2411996 0.2470676          0.2443280 0.0002935533
#> 2:  0.2354715 0.2355099          0.2327509 0.0004297911
#> 3:  0.2414145 0.2443530          0.2408433 0.0004468547