Class: StructuraidCore::DesignCodes::ACI31819::RC::ReductionFactor

Inherits:
Object
  • Object
show all
Includes:
Utils::CodeRequirement
Defined in:
lib/structuraid_core/design_codes/aci_318_19/rc/reduction_factor.rb

Constant Summary collapse

CONTROL_STRENGTH_CASES =
%i[
  compression_controlled
  tension_controlled
  transition_controlled
  crushing_controlled
  shear_nonseismic_controlled
  torsion_controlled
  corbel_bracket_controlled
  strud_and_tie_controlled
].freeze
MAX_STRAIN_BEFORE_TRANSITION =

21.2.2.1 - 21.2.2.2

0.002
MIN_STRAIN_AFTER_TRANSITION =

21.2.2.1 - 21.2.2.2

0.005
CODE_REFERENCE =
'ACI 318-19 21.2'.freeze

Instance Method Summary collapse

Methods included from Utils::CodeRequirement

included, #initialize

Instance Method Details

#callObject

ACI 318-19 21.2



26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/structuraid_core/design_codes/aci_318_19/rc/reduction_factor.rb', line 26

def call
  unless CONTROL_STRENGTH_CASES.include?(strength_controlling_behaviour)
    raise UnrecognizedValueError.new(strength_controlling_behaviour, :strength_controlling_behaviour)
  end

  # Table 21.2.1 (a) (h)
  return tension_controlled_factor if strength_controlling_behaviour == :tension_controlled
  # Table 21.2.1 (a)
  return compression_controlled_factor if strength_controlling_behaviour == :compression_controlled
  # Table 21.2.1 (d)
  return crushing_controlled_factor if strength_controlling_behaviour == :crushing_controlled
  # Table 21.2.1 (b) (c) (f) (g)
  if %i[
    shear_nonseismic_controlled
    torsion_controlled
    corbel_bracket_controlled
    strud_and_tie_controlled
  ].include?(strength_controlling_behaviour)
    return shear_nonseismic_controlled_factor
  end

  # Table 21.2.1 (a)
  transition_controlled_factor
end