R/6_3_1 buckling.R

library(smartcalc)

#############################
## uniform buckling
#############################

uniform_members_in_buckling <-
  eq(function(`N_{Ed}`,
              `N_{cr}`,
              A,
              f_y,
              `\\gamma_{M1}`,
              `\\alpha`,
              output = 'UR_{buckling, 1}') {
    
    `\\bar{\\lambda}` <- eq_6.49_3(A, f_y, `N_{cr}`)
  `\\Phi` <- eq_6.49_2(`\\alpha`, `\\bar{\\lambda}`)
  `\\chi` <- eq_6.49_1(`\\Phi`, `\\bar{\\lambda}`)
  `N_{b,Rd}` <- eq_6.47(`\\chi`, A, f_y, `\\gamma_{M1}`)
  `UR_{buckling, 1}` <- `N_{Ed}` / `N_{b,Rd}`
  `UR_{buckling, 1}`
}, eq = NULL, clause = '6.3.1', subclause = NULL, type = 'uniform_buckling', 
class = 'calculation')

#' @export
eq_6.46 <- eq(function(`N_{Ed}`, `N_{b,Rd}`, output = 'UR_{buckling, 1}') {
  `N_{Ed}` / `N_{b,Rd}`
}, eq = '6.46', clause = '6.3.1.1', subclause = 1, type = 'uniform_buckling', 
class = 'equation')

#' @export
eq_6.47 <- eq(function(`\\chi`, A, f_y, `\\gamma_{M1}`, output = 'N_{b,Rd}') {
  {`\\chi` * A * f_y} / `\\gamma_{M1}`
}, eq = '6.47', clause = '6.3.1.1', subclause = 2)

#' @export
eq_6.49_1 <- eq(function(`\\Phi`, `\\bar{\\lambda}`, output = '\\chi') {
  1 / {`\\Phi` + sqrt(`\\Phi`^2 - `\\bar{\\lambda}`^2)} %<=% 1
}, eq = '6.49', clause = '6.3.1.2', subclause = 1)

#' @export
eq_6.49_2 <- eq(function(`\\alpha`, `\\bar{\\lambda}`, output = '\\Phi') {
  0.5 * (1 + `\\alpha` * (`\\bar{\\lambda}` - 0.2) + `\\bar{\\lambda}`^2)
}, eq = '6.49', clause = '6.3.1.2', subclause = 1)

#' @export
eq_6.49_3 <- eq(function(A, f_y, `N_{cr}`, output = '\\bar{\\lambda}') {
  sqrt(A * f_y / `N_{cr}`)
}, eq = '6.49', clause = '6.3.1.2', subclause = 1)


############################
## flexural buckling
############################

#' @export
eq_6.50 <- eq(function(`L_{cr}`, i, `\\lambda_1`, output = '\\bar{\\lambda}}') {
  {`L_{cr}` / i} * {1 / `\\lambda_1`}
}, eq = '6.50', clause = '6.3.1.3', subclause = 1, type = 'flexural_buckling')

#' @export
eq_6.51_1 <- eq(function(E, f_y, output = '\\lambda_1') {
  pi * sqrt(E / f_y)
}, eq = '6.51', clause = '6.3.1.3', subclause = 1, 
type = 'flexural_buckling')

#############################
## slenderness for torsional and torsional-flexural buckling
#############################
#' @export
eq_6.52 <- eq(function(A, f_y, `N_{cr}`, output = '\\bar{\\lambda_T}') {
  sqrt(A * f_y / `N_{cr}`)
}, eq = '6.52', clause = '6.3.1.4', subclause = 2, 
type = 'torsional_flexural_buckling')
CivilEngineerUK/EC3_1_1 documentation built on July 1, 2019, 12:18 a.m.