Tutorial¶
Install rcdesign
¶
Create a folder for your tutorial files. Create a virtual environment if you prefer. Install rcdesign
from PyPI using pip
as explained in Installation. Verify that installation is successful, by running the example problem:
(env) $ python -m rcdesign
Singly reinforced rectangular section¶
Consider a rectangular reinforced concrete section with the following details:
- Size: 230x450 mm overall with 25mm clear cover
- Concrete: M20
- Steel: Fe415
- Main reinforcement: Fe415 reinforcement bars 2-16# + 1-20# with centre of the bars at a distance of 35mm from tension edge of the section
- Shear reinforcement: 2-8# @ 150mm c/c (2 legged 8mm dia. vertical stirrups made of Fe415)
Let us determine the Limit State capacity of the section in bending and shear.
Create a Python script named singly01.py
and type the following code in it.
# File: example01.py
from rcdesign.is456.concrete import Concrete
from rcdesign.is456.stressblock import LSMStressBlock
from rcdesign.is456.rebar import (
RebarHYSD,
RebarLayer,
RebarGroup,
Stirrups,
ShearRebarGroup,
)
from rcdesign.is456.section import RectBeamSection
sb = LSMStressBlock("LSM Flexure")
m20 = Concrete("M20", 20)
fe415 = RebarHYSD("Fe 415", 415)
t1 = RebarLayer(fe415, [20, 16, 20], -35)
steel = RebarGroup([t1])
sh_st = ShearRebarGroup([Stirrups(fe415, 2, 8, 150)])
sec = RectBeamSection(230, 450, sb, m20, steel, sh_st, 25)
xu = sec.xu(0.0035)
print(f"xu = {xu:.2f}")
print(sec.report(xu, 0.0035))
$ python singly01.py
The output of the script must be
xu = 179.94
RECTANGULAR BEAM SECTION: 230 x 450
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
FLEXURE
=======
Equilibrium NA = 179.94 (k = 0.40) (ec_max = 0.003500)
fck ec_max Type f_cc C (kN) M (kNm)
--------------------------------------------------------------------------------
20.00 0.00350000 C 8.93 299.30 31.45
--------------------------------------------------------------------------------
fy Bars xc Strain Type f_sc f_cc C (kN) M (kNm)
--------------------------------------------------------------------------------
415 1-16;2-20 415.00 -0.00457204 T -360.87 -299.30 70.35
--------------------------------------------------------------------------------
0.00 101.81
SHEAR
=====
Type tau_c Area (mm^2) V_uc (kN)
---------------------------------------------------------------------------------
Concrete 0.59 95450.00 56.46
---------------------------------------------------------------------------------
Type Variant f_y Bars s_v A_sv V_us (kN)
---------------------------------------------------------------------------------
Stirrups Vertical 415 2-8# 150.0 100.53 100.37
========
156.83
CAPACITY
========
Mu = 101.81 kNm
Vu = 156.83 kN
Doubly reinforced rectangular section¶
Consider a rectangular reinforced concrete beam section with the following details:
- Size: 230x450 mm overall with 25mm clear cover
- Concrete: M20
- Steel: Fe415
- Main reinforcement:
- 2-16# of Fe415 with centre of the bars at a distance of 35mm from compression edge of the section
- 3-16# of Fe415 with centre of the bars at a distance of 35mm from tension edge of the section
- Shear reinforcement: 2-8# @ 150mm c/c (2 legged 8mm dia. vertical stirrups made of Fe415)
Let us determine the Limit State capacity of the section in bending and shear.
Create a Python script named example02.py
and type the following code in it.
# File: example02.py
from rcdesign.is456.stressblock import LSMStressBlock
from rcdesign.is456.concrete import Concrete
from rcdesign.is456.rebar import (
RebarHYSD,
RebarLayer,
RebarGroup,
Stirrups,
ShearRebarGroup,
)
from rcdesign.is456.section import RectBeamSection
sb = LSMStressBlock("IS456 LSM")
m20 = Concrete("M20", 20)
fe415 = RebarHYSD("Fe 415", 415)
t1 = RebarLayer(fe415, [16, 16], 35)
t2 = RebarLayer(fe415, [16, 16, 16], -35)
steel = RebarGroup([t1, t2])
sh_st = ShearRebarGroup([Stirrups(fe415, 2, 8, 150)])
sec = RectBeamSection(230, 450, sb, m20, steel, sh_st, 25)
xu = sec.xu(0.0035)
print(sec.report(xu, 0.0035))
Run the script from the command line:
(env) $ python example02.py
RECTANGULAR BEAM SECTION: 230 x 450
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
FLEXURE
=======
Equilibrium NA = 61.57 (k = 0.14) (ec_max = 0.003500)
fck ec_max Type f_cc C (kN) M (kNm)
--------------------------------------------------------------------------------
20.00 0.00350000 C 8.93 102.41 3.68
--------------------------------------------------------------------------------
fy Bars xc Strain Type f_sc f_cc C (kN) M (kNm)
--------------------------------------------------------------------------------
415 2-16 35.00 0.00151034 C 295.04 8.40 115.26 3.06
415 3-16 415.00 -0.02009170 T -360.87 -217.67 76.93
--------------------------------------------------------------------------------
-102.41 79.99
=================
0.00 83.68
SHEAR
=====
Type tau_c Area (mm^2) V_uc (kN)
---------------------------------------------------------------------------------
Concrete 0.52 95450.00 50.07
---------------------------------------------------------------------------------
Type Variant f_y Bars s_v A_sv V_us (kN)
---------------------------------------------------------------------------------
Stirrups Vertical 415 2-8# 150.0 100.53 100.37
========
150.44
CAPACITY
========
Mu = 83.68 kNm
Vu = 150.44 kN
Flanged Beam¶
Consider a flanged reinforced concrete beam section with the following details:
- Web size: 300x475 mm overall with 25mm clear cover
- Flange size: Width=800 mm and depth = 150 mm
- Concrete: M25
- Steel: Fe415
- Main reinforcement: 2-18# of Fe415 with centre of the bars at a distance of 70 mm from tension edge of the section and 3-20# of Fe415 with centre of the bars at a distance of 35 mm from tension edge of the section
- Shear reinforcement: 2-8# @ 150mm c/c (2 legged 8mm dia. vertical stirrups made of Fe415)
Let us determine the Limit State capacity of the section in bending and shear.
Create a Python script named example03.py
and type the following code in it.
# File: example03.py
from rcdesign.is456.stressblock import LSMStressBlock
from rcdesign.is456.concrete import Concrete
from rcdesign.is456.rebar import (
RebarHYSD,
RebarLayer,
RebarGroup,
Stirrups,
ShearRebarGroup,
)
from rcdesign.is456.section import FlangedBeamSection
sb = LSMStressBlock("IS456 LSM")
m25 = Concrete("M25", 25)
fe415 = RebarHYSD("Fe 415", 415)
t1 = RebarLayer(fe415, [20, 20, 20], -35)
t2 = RebarLayer(fe415, [18, 18], -70)
main_steel = RebarGroup([t1, t2])
shear_steel = ShearRebarGroup([Stirrups(fe415, 2, 8, 150)])
tsec = FlangedBeamSection(300, 475, 800, 150, sb, m25, main_steel, shear_steel, 25)
xu = tsec.xu(0.0035)
print(tsec.report(xu, 0.0035))
Run the example
(env) $ python example03.py
FLANGED BEAM SECTION - Web: 300 x 475, Flange: 800 x 150
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
FLEXURE
=======
Equilibrium NA = 72.43 (ec_max = 0.003500)
fck Breadth Depth ec_min ec_max Type C (kN) M (kNm)
--------------------------------------------------------------------------------
25 300.00 475.00 0.00000000 0.00350000 C 196.41 8.31
25 800.00 150.00 0.00350000 C 327.36 13.85
--------------------------------------------------------------------------------
523.77 22.16
fy Bars xc Strain Type f_sc f_cc C (kN) M (kNm)
--------------------------------------------------------------------------------
415 2-18 405.00 -0.01607150 T -360.87 -183.66 61.08
415 3-20 440.00 -0.01776287 T -360.87 -340.11 125.02
--------------------------------------------------------------------------------
-523.77 186.10
=================
0.00 208.25
SHEAR
=====
Type tau_c Area (mm^2) V_uc (kN)
---------------------------------------------------------------------------------
Concrete 0.67 128318.18 86.14
---------------------------------------------------------------------------------
Type Variant f_y Bars s_v A_sv V_us (kN)
---------------------------------------------------------------------------------
Stirrups Vertical 415 2-8# 150.0 100.53 103.45
========
189.58
CAPACITY
========
Mu = 208.25 kNm
Vu = 189.58 kN
Rectangular Column¶
Consider a rectangular reinforced concrete column section with the following details:
- Rectangular column of size: 230x450 mm
- Concrete: M20
- Steel: Fe415
- Longitudinal reinforcement: Fe415 in three layers:
- 3-16# at 50 mm from highly compressed edge
- 2-16# at 225 mm from highly compressed edge
- 3-16# at 400 mm from highly compressed edge (or 50 mm from the least compressed edge)
- Location of neutral axis: At 900 mm from highly compressed edge ($x_u=900$ and $k = \frac{x_u}{D}=2.0$).
Create a Python script named example04.py
and type the following code in it.
# File: example04.py
from rcdesign.is456.concrete import Concrete
from rcdesign.is456.stressblock import LSMStressBlock
from rcdesign.is456.rebar import RebarHYSD, LateralTie, RebarLayer, RebarGroup
from rcdesign.is456.section import RectColumnSection
b = 230
D = 450
csb = LSMStressBlock("LSM Compression")
m20 = Concrete("M20", 20)
fe415 = RebarHYSD("Fe 415", 415)
L1 = RebarLayer(fe415, [16, 16, 16], 50)
L2 = RebarLayer(fe415, [16, 16], D / 2)
L3 = RebarLayer(fe415, [16, 16, 16], -50)
long_st = RebarGroup([L1, L2, L3])
lat_ties = LateralTie(fe415, 8, 150)
colsec = RectColumnSection(b, D, csb, m20, long_st, lat_ties, 35)
xu = 900
k = xu / D # k = 2 / 3
print(colsec.report(xu))
Run the example.
(env) $ python example04.py
RECTANGULAR COLUMN 230 x 450 xu = 900.00 (k = 2.00)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Concrete: fck = 20.00 N/mm^2, fd = 8.93 N/mm^2 Clear Cover: 35
fck ecmin ecmax Type fsc1 fsc2 Cc Mc
--------------------------------------------------------------------------------
20.00 0.00127273 0.00254545 C 7.75 8.93 901.31 612.13
--------------------------------------------------------------------------------
fy Bars xc Strain Type fsc fcc C (kN) M (kNm)
--------------------------------------------------------------------------------
415 3-16 50.00 0.00240404 C 342.45 8.93 201.18 171.00
415 2-16 225.00 0.00190909 C 323.86 8.91 126.65 85.49
415 3-16 400.00 0.00141414 C 282.83 8.17 165.67 82.84
--------------------------------------------------------------------------------
493.49 339.32
=================
1394.81 951.45
CAPACITY
========
Pu = 1394.81 kN
Mu = 951.45 kNm
e = 682.14 mm