Skip to contents

The roots \(a_n\) of the truncated inhomogeneous shear beam are tabulated in CylinderRoots over the inhomogeneity exponent m and the truncation ratio l. Method "exact" solves the characteristic relation of the beam for every query; methods "lm" and "nlm" predict off-grid roots with a polynomial surrogate fitted once to the whole table of the mode. The root model is reused by evaluateRoot() for every query.

Usage

buildRootModel(mode, method)

Arguments

mode

One mode number, 1 to 8.

method

The solution method of the root model: "exact", or the surrogate "lm" or "nlm".

Value

The root model, a list with mode, method, table (the unique (l, m, an) rows of the mode), fit (the surrogate, NULL for "exact"), and the support loMin, loMax, moMin and moMax: for a surrogate the minimum and maximum l and m of the table, outside which predictions are extrapolations; for "exact" the domain of the relation, \(0 \le \lambda < 1\) and \(0 \le m < 2\).

Mathematics

For the shear beam of height \(H\) truncated at \(h = \lambda H\) with modulus \(G \propto z^m\), Dakoulas and Gazetas (1985) reduce the free vibration to a Bessel equation of order \(q = m/(2-m)\) and obtain the characteristic relation (hydrated copy, eq-free-characteristic) $$J_{q+1}(a \lambda^{1-m/2})\, Y_q(a) - Y_{q+1}(a \lambda^{1-m/2})\, J_q(a) = 0,$$ whose ordered positive roots are \(a_n\), \(n = 1, 2, \ldots\); for \(\lambda = 0\) the relation reduces to \(J_q(a) = 0\). Method "exact" brackets the \(n\)-th sign change of the left-hand side on a grid of step 0.02 between \(a = 0.05\) and \(a = 100 / (1 - \lambda)\) and refines it with stats::uniroot() to a tolerance of \(10^{-10}\), using R's fractional-order Bessel functions. The search is finite: a root above the limit (for example mode 6 at \(m = 1.8\), \(\lambda = 0.5\), near 258.8) is not found and evaluateRoot() stops with an error that names the limit.

With \(l_2 = l^2\) and \(m_2 = m^2\), the "lm" surrogate fits the Gaussian linear model \(a_n \sim l + m + l_2 + m_2\) and the "nlm" surrogate adds the interactions \(l m\) and \(l_2 m_2\). These fits are numerical interpolants of the table CylinderRoots, whose roots the "exact" method solves in R at every node of its grid; the fits themselves do not solve the characteristic relation. The decision-tree and random-forest surrogates of newmark 1.7.1 are not carried into this version.

Examples

RootModel <- buildRootModel(mode = 1, method = "nlm")
evaluateRoot(RootModel, mo = 0.45, lo = 0.20)
#>       mo    lo       an  exact withinSupport
#>    <num> <num>    <num> <lgcl>        <lgcl>
#> 1:  0.45   0.2 3.088358   TRUE          TRUE