PageRenderTime 57ms CodeModel.GetById 30ms RepoModel.GetById 1ms app.codeStats 0ms

/projects/offical-examples/example5.frame2d/BuildRCrectSection.tcl

https://bitbucket.org/lge/opensees-scripts
TCL | 93 lines | 18 code | 5 blank | 70 comment | 0 complexity | 4a95e319d732c11499a45e833e740232 MD5 | raw file
  1. proc BuildRCrectSection {id HSec BSec coverH coverB coreID coverID steelID numBarsTop barAreaTop numBarsBot barAreaBot numBarsIntTot barAreaInt nfCoreY nfCoreZ nfCoverY nfCoverZ} {
  2. ################################################
  3. # BuildRCrectSection $id $HSec $BSec $coverH $coverB $coreID $coverID $steelID $numBarsTop $barAreaTop $numBarsBot $barAreaBot $numBarsIntTot $barAreaInt $nfCoreY $nfCoreZ $nfCoverY $nfCoverZ
  4. ################################################
  5. # Build fiber rectangular RC section, 1 steel layer top, 1 bot, 1 skin, confined core
  6. # Define a procedure which generates a rectangular reinforced concrete section
  7. # with one layer of steel at the top & bottom, skin reinforcement and a
  8. # confined core.
  9. # by: Silvia Mazzoni, 2006
  10. # adapted from Michael H. Scott, 2003
  11. #
  12. # Formal arguments
  13. # id - tag for the section that is generated by this procedure
  14. # HSec - depth of section, along local-y axis
  15. # BSec - width of section, along local-z axis
  16. # cH - distance from section boundary to neutral axis of reinforcement
  17. # cB - distance from section boundary to side of reinforcement
  18. # coreID - material tag for the core patch
  19. # coverID - material tag for the cover patches
  20. # steelID - material tag for the reinforcing steel
  21. # numBarsTop - number of reinforcing bars in the top layer
  22. # numBarsBot - number of reinforcing bars in the bottom layer
  23. # numBarsIntTot - TOTAL number of reinforcing bars on the intermediate layers, symmetric about z axis and 2 bars per layer-- needs to be an even integer
  24. # barAreaTop - cross-sectional area of each reinforcing bar in top layer
  25. # barAreaBot - cross-sectional area of each reinforcing bar in bottom layer
  26. # barAreaInt - cross-sectional area of each reinforcing bar in intermediate layer
  27. # nfCoreY - number of fibers in the core patch in the y direction
  28. # nfCoreZ - number of fibers in the core patch in the z direction
  29. # nfCoverY - number of fibers in the cover patches with long sides in the y direction
  30. # nfCoverZ - number of fibers in the cover patches with long sides in the z direction
  31. #
  32. # y
  33. # ^
  34. # |
  35. # --------------------- -- --
  36. # | o o o | | -- coverH
  37. # | | |
  38. # | o o | |
  39. # z <--- | + | HSec
  40. # | o o | |
  41. # | | |
  42. # | o o o o o o | | -- coverH
  43. # --------------------- -- --
  44. # |-------Bsec------|
  45. # |---| coverB |---|
  46. #
  47. # y
  48. # ^
  49. # |
  50. # ---------------------
  51. # |\ cover /|
  52. # | \------Top------/ |
  53. # |c| |c|
  54. # |o| |o|
  55. # z <-----|v| core |v| HSec
  56. # |e| |e|
  57. # |r| |r|
  58. # | /-------Bot------\ |
  59. # |/ cover \|
  60. # ---------------------
  61. # Bsec
  62. #
  63. #
  64. # Notes
  65. # The core concrete ends at the NA of the reinforcement
  66. # The center of the section is at (0,0) in the local axis system
  67. #
  68. set coverY [expr $HSec/2.0]; # The distance from the section z-axis to the edge of the cover concrete -- outer edge of cover concrete
  69. set coverZ [expr $BSec/2.0]; # The distance from the section y-axis to the edge of the cover concrete -- outer edge of cover concrete
  70. set coreY [expr $coverY-$coverH]; # The distance from the section z-axis to the edge of the core concrete -- edge of the core concrete/inner edge of cover concrete
  71. set coreZ [expr $coverZ-$coverB]; # The distance from the section y-axis to the edge of the core concrete -- edge of the core concrete/inner edge of cover concrete
  72. set numBarsInt [expr $numBarsIntTot/2]; # number of intermediate bars per side
  73. # Define the fiber section
  74. section fiberSec $id {
  75. # Define the core patch
  76. patch quadr $coreID $nfCoreZ $nfCoreY -$coreY $coreZ -$coreY -$coreZ $coreY -$coreZ $coreY $coreZ
  77. # Define the four cover patches
  78. patch quadr $coverID 2 $nfCoverY -$coverY $coverZ -$coreY $coreZ $coreY $coreZ $coverY $coverZ
  79. patch quadr $coverID 2 $nfCoverY -$coreY -$coreZ -$coverY -$coverZ $coverY -$coverZ $coreY -$coreZ
  80. patch quadr $coverID $nfCoverZ 2 -$coverY $coverZ -$coverY -$coverZ -$coreY -$coreZ -$coreY $coreZ
  81. patch quadr $coverID $nfCoverZ 2 $coreY $coreZ $coreY -$coreZ $coverY -$coverZ $coverY $coverZ
  82. # define reinforcing layers
  83. layer straight $steelID $numBarsInt $barAreaInt -$coreY $coreZ $coreY $coreZ; # intermediate skin reinf. +z
  84. layer straight $steelID $numBarsInt $barAreaInt -$coreY -$coreZ $coreY -$coreZ; # intermediate skin reinf. -z
  85. layer straight $steelID $numBarsTop $barAreaTop $coreY $coreZ $coreY -$coreZ; # top layer reinfocement
  86. layer straight $steelID $numBarsBot $barAreaBot -$coreY $coreZ -$coreY -$coreZ; # bottom layer reinforcement
  87. }; # end of fibersection definition
  88. }; # end of procedure