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
If things have gone well, the required packages will also be installed, and you are ready to go. Open your preferred IDE and try out the following examples. Create a Python script for each example and type the code given below. Then, run the scripts and compare your output with the one given here in the examples. Verify with your own manual calculations if necessary.

Singly reinforced rectangular section

Consider a rectangular reinforced concrete section with the following details:

  1. Size: 230x450 mm overall with 25mm clear cover
  2. Concrete: M20
  3. Steel: Fe415
  4. 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
  5. 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))
Run the script from the command line:
$ 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:

  1. Size: 230x450 mm overall with 25mm clear cover
  2. Concrete: M20
  3. Steel: Fe415
  4. Main reinforcement:
    1. 2-16# of Fe415 with centre of the bars at a distance of 35mm from compression edge of the section
    2. 3-16# of Fe415 with centre of the bars at a distance of 35mm from tension edge of the section
  5. 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:

  1. Web size: 300x475 mm overall with 25mm clear cover
  2. Flange size: Width=800 mm and depth = 150 mm
  3. Concrete: M25
  4. Steel: Fe415
  5. 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
  6. 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:

  1. Rectangular column of size: 230x450 mm
  2. Concrete: M20
  3. Steel: Fe415
  4. Longitudinal reinforcement: Fe415 in three layers:
    1. 3-16# at 50 mm from highly compressed edge
    2. 2-16# at 225 mm from highly compressed edge
    3. 3-16# at 400 mm from highly compressed edge (or 50 mm from the least compressed edge)
  5. 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