Rebar
Classes to represent reinforcement bars, layers of reinforcement bars and groups of reinforcement layers
- class rcdesign.is456.rebar.RebarType(*values)
Bases:
IntEnumEnumeration for different types of reinforcement bars.
REBAR_UNDEFINED: Undefined type of rebar
REBAR_MS: Mild Steel reinforcement
REBAR_HYSD: High Yield Strength Deformed bars
REBAR_CUSTOM: Custom type of rebar defined by user
- REBAR_UNDEFINED = 0
- REBAR_MS = 1
- REBAR_HYSD = 2
- REBAR_CUSTOM = 3
- class rcdesign.is456.rebar.StressType(*values)
Bases:
IntEnumEnumeration for different types of stress in reinforcement bars.
STRESS_NEUTRAL: Neutral stress
STRESS_COMPRESSION: Compression stress
STRESS_TENSION: Tension stress
- STRESS_NEUTRAL = 0
- STRESS_COMPRESSION = 1
- STRESS_TENSION = 2
- class rcdesign.is456.rebar.ShearRebarType(*values)
Bases:
IntEnumEnumeration for different types of shear reinforcement bars.
SHEAR_REBAR_VERTICAL_STIRRUP: Vertical stirrup
SHEAR_REBAR_INCLINED_STIRRUP: Inclined stirrup
SHEAR_REBAR_BENTUP_SINGLE: Bent-up bars in single group
SHEAR_REBAR_BENTUP_SERIES: Bent-up bars in series
- SHEAR_REBAR_VERTICAL_STIRRUP = 1
- SHEAR_REBAR_INCLINED_STIRRUP = 2
- SHEAR_REBAR_BENTUP_SINGLE = 3
- SHEAR_REBAR_BENTUP_SERIES = 4
- class rcdesign.is456.rebar.Rebar(label: str, fy: float, gamma_m: float = 1.15, density: float = 78.5, Es: float = 200000.0, rebar_type: RebarType = RebarType.REBAR_HYSD)
Bases:
ABCBase class for reinforcement bars.
- label
Label for the reinforcement bar
- Type:
str
- fy
Characteristic yield strength of the reinforcement bar
- Type:
float
- gamma_m
Partial safety factor for reinforcement (default: 1.15)
- Type:
float
- density
Density of the reinforcement bar (default: 78.5 kg/m^3)
- Type:
float
- Es
Modulus of elasticity of the reinforcement bar (default: 2e5 MPa)
- Type:
float
- rebar_type
Type of reinforcement bar (default: RebarType.REBAR_HYSD)
- Type:
RebarType
- label: str
- fy: float
- gamma_m: float = 1.15
- density: float = 78.5
- Es: float = 200000.0
- rebar_type: RebarType = 2
- property fd: float
- es_min() float
- abstractmethod fs(es: float) float
- class rcdesign.is456.rebar.RebarMS(label: str, fy: float)
Bases:
RebarMild steel reinforcement bars as defined in IS456:2000 with linear stress-strain relation
- fs(es: float) float
Calculate the stress in the reinforcement bar based on the strain.
- Parameters:
es (float) – Strain in the reinforcement bar
- Returns:
Stress in the reinforcement bar
- Return type:
float
- class rcdesign.is456.rebar.RebarHYSD(label: str, fy: float)
Bases:
RebarHigh Yield Strength Deformed (HYSD) reinforcement bars as defined in IS456:2000 with non-linear stress-strain relation
- label
Label for the reinforcement bar
- Type:
str
- fy
Characteristic yield strength of the reinforcement bar
- Type:
float
- gamma_m
Partial safety factor for reinforcement (default: 1.15)
- Type:
float
- density
Density of the reinforcement bar (default: 78.5 kN/m^3)
- Type:
float
- Es
Modulus of elasticity of the reinforcement bar (default: 2e5 N/mm^2)
- Type:
float
- fs(es: float) float
Calculate the stress in the reinforcement bar based on the strain.
- Parameters:
es (float) – Strain in the reinforcement bar
- Returns:
Stress in the reinforcement bar
- Return type:
float
- class rcdesign.is456.rebar.RebarLayer(rebar: ~rcdesign.is456.rebar.Rebar, dia: ~typing.List[float] = <factory>, _dc: float = 0.0)
Bases:
objectClass to represent a layer of reinforcement bars.
- rebar
The type of reinforcement bar used in this layer
- Type:
Rebar
- dia
List of diameters of the bars in this layer
- Type:
List[float]
- _dc
Distance from the compression edge to the centroid of the layer
- Type:
float
- dia: List[float]
- _dc: float = 0.0
- property max_dia: float
Return the maximum diameter of the bars in this layer.
- property area: float
Calculate the total cross-sectional area of the bars in this layer.
- property dc: float
Return the distance from the compression edge to the centroid of the layer.
- property xc: float
Return the distance from the compression edge to the centroid of the layer.
- stress_type(xu: float) StressType
Determine the type of stress in this layer based on the distance from the compression edge to the neutral axis.
- Parameters:
xu (float) – Distance from the compression edge to the neutral axis
- Returns:
The type of stress in this layer (STRESS_NEUTRAL, STRESS_COMPRESSION, or STRESS_TENSION)
- Return type:
StressType
- x(xu: float) float
Calculate the distance from the compression edge to the centroid of the layer based on the distance from the compression edge to the neutral axis.
- Parameters:
xu (float) – Distance from the compression edge to the neutral axis
- Returns:
The distance from the compression edge to the centroid of the layer
- Return type:
float
- es(xu: float, ecmax: float = 0.0035) float
Calculate the strain in the reinforcement bar based on the distance from the compression edge to the neutral axis.
- Parameters:
xu (float) – Distance from the compression edge to the neutral axis
ecmax (float) – Maximum strain in the concrete (default: ecu)
- Returns:
The strain in the reinforcement bar
- Return type:
float
- fs(xu: float, ecmax: float = 0.0035) float
Calculate the stress in the reinforcement bar based on the distance from the compression edge to the neutral axis.
- Parameters:
xu (float) – Distance from the compression edge to the neutral axis
ecmax (float) – Maximum strain in the concrete (default: ecu)
- Returns:
The stress in the reinforcement bar
- Return type:
float
- force_compression(xu: float, csb: LSMStressBlock, conc: Concrete, ecmax: float = 0.0035) Tuple[float, float, Dict]
Calculate the force and moment in the compression reinforcement.
- Parameters:
xu (float) – Distance from the compression edge to the neutral axis
csb (LSMStressBlock) – Concrete stress block
conc (Concrete) – Concrete properties
ecmax (float) – Maximum strain in the concrete (default: ecu)
- Returns:
A tuple containing the force in the compression reinforcement, the moment about the neutral axis, and a dictionary with detailed results.
- Return type:
Tuple[float, float, Dict]
- force_tension(xu: float, ecmax: float = 0.0035) Tuple[float, float, Dict]
Calculate the force and moment in the tension reinforcement.
- Parameters:
xu (float) – Distance from the compression edge to the neutral axis
ecmax (float) – Maximum strain in the concrete (default: ecu)
- Returns:
A tuple containing the force in the tension reinforcement, the moment about the neutral axis, and a dictionary with detailed results.
- Return type:
Tuple[float, float, Dict]
- bar_list(sep=';') str
Generate a string representation of the bars in this layer.
- Parameters:
sep (str) – Separator to use between different bar diameters (default: “;”)
- Returns:
A string representation of the bars in this layer, showing the count and diameter.
- Return type:
str
- asdict(xu: float, sb: LSMStressBlock, conc: Concrete, ecmax: float = 0.0035) dict
Generate a dictionary representation of the reinforcement layer.
- Parameters:
xu (float) – Distance from the compression edge to the neutral axis
sb (LSMStressBlock) – Concrete stress block
conc (Concrete) – Concrete properties
ecmax (float) – Maximum strain in the concrete (default: ecu)
- Returns:
A dictionary containing detailed results of the reinforcement layer
- Return type:
dict
- class rcdesign.is456.rebar.RebarGroup(layers: ~typing.List[~rcdesign.is456.rebar.RebarLayer] = <factory>)
Bases:
objectClass to represent a group of reinforcement layers.
- layers
List of layers of bars, in no particular order, of distance from compression edge
- Type:
List[RebarLayer]
- layers: List[RebarLayer]
- property area: float
Calculate the total cross-sectional area of all layers in the group.
- calc_xc(D: float) None
Calculate the distance from the compression edge to the centroid of each layer in the group.
- Parameters:
D (float) – Total depth of the section from the compression edge to the centroid of the reinforcement
- Returns:
This method modifies the xc attribute of each layer in the group.
- Return type:
None
- centroid(xu: float) Tuple[float, float]
Calculate the centroids of the compression and tension reinforcement layers.
- Parameters:
xu (float) – Distance from the compression edge to the neutral axis
- Returns:
A tuple containing the centroid of the compression reinforcement and the centroid of the tension reinforcement
- Return type:
Tuple[float, float]
- has_comp_steel(xu: float) bool
Check if there is any compression reinforcement in the group.
- Parameters:
xu (float) – Distance from the compression edge to the neutral axis
- Returns:
True if there is compression reinforcement in the group, False otherwise
- Return type:
bool
- Asc(xu: float) float
Calculate the total cross-sectional area of compression reinforcement layers.
- Parameters:
xu (float) – Distance from the compression edge to the neutral axis
- Returns:
The total cross-sectional area of compression reinforcement layers
- Return type:
float
- Ast(xu: float) float
Calculate the total cross-sectional area of tension reinforcement layers.
- Parameters:
xu (float) – Distance from the compression edge to the neutral axis
- Returns:
The total cross-sectional area of tension reinforcement layers
- Return type:
float
- get_stress_type(xu: float) None
Set the stress type for each layer based on the distance from the compression edge to the neutral axis.
- Parameters:
xu (float) – Distance from the compression edge to the neutral axis
- Returns:
This method modifies the _stress_type attribute of each layer in the group.
- Return type:
None
- force_moment(xu: float, csb: LSMStressBlock, conc: Concrete, ecmax: float = 0.0035) Tuple[float, float, float, float]
Calculate the forces and moments in the reinforcement layers.
- Parameters:
xu (float) – Distance from the compression edge to the neutral axis
csb (LSMStressBlock) – Concrete stress block
conc (Concrete) – Concrete properties
ecmax (float) – Maximum strain in the concrete (default: ecu)
- Returns:
A tuple containing the force and moment in compression reinforcement, the force and moment in tension reinforcement
- Return type:
Tuple[float, float, float, float]
- force_tension(xu: float, ecmax: float = 0.0035) Tuple[float, float]
Calculate the force and moment in the tension reinforcement layers.
- Parameters:
xu (float) – Distance from the compression edge to the neutral axis
ecmax (float) – Maximum strain in the concrete (default: ecu)
- Returns:
A tuple containing the total force and moment in the tension reinforcement layers
- Return type:
Tuple[float, float]
- force_compression(xu: float, csb: LSMStressBlock, conc: Concrete, ecmax: float = 0.0035) Tuple[float, float]
Calculate the force and moment in the compression reinforcement layers.
- Parameters:
xu (float) – Distance from the compression edge to the neutral axis
csb (LSMStressBlock) – Concrete stress block
conc (Concrete) – Concrete properties
ecmax (float) – Maximum strain in the concrete (default: ecu)
- Returns:
A tuple containing the total force and moment in the compression reinforcement layers
- Return type:
Tuple[float, float]
- class rcdesign.is456.rebar.ShearReinforcement(rebar: Rebar)
Bases:
ABCBase class for shear reinforcement.
- rebar
The type of reinforcement bar used for shear reinforcement
- Type:
Rebar
- _Asv_
Area of shear reinforcement per unit length
- Type:
float
- _sv
Spacing of shear reinforcement
- Type:
float
- class rcdesign.is456.rebar.Stirrups(rebar: Rebar, _nlegs: int, _bar_dia: float, _sv: float = 0.0, _alpha_deg: float = 90)
Bases:
ShearReinforcementClass to represent vertical or inclined stirrups as shear reinforcement. This class is used to calculate the area of shear reinforcement, spacing, and shear capacity. It can handle both vertical and inclined stirrups with specified number of legs and bar diameter.
- rebar
The type of reinforcement bar used for stirrups
- Type:
Rebar
- _nlegs
Number of legs in the stirrup
- Type:
int
- _bar_dia
Diameter of the stirrup bar
- Type:
float
- _sv
Spacing of the stirrup
- Type:
float
- _alpha_deg
Angle of inclination of the stirrup in degrees (default: 90 for vertical stirrups)
- Type:
float
- property Asv
Return the area of shear reinforcement per unit length.
- property nlegs: int
Return the number of legs in the stirrup.
- property sv: float
Return the spacing of the stirrup.
- calc_sv(Vus: float, d: float) float | None
Calculate the spacing of the stirrup based on the shear force and effective depth.
- Parameters:
Vus (float) – Shear force to be resisted by the stirrup
d (float) – Effective depth of the section
- Returns:
The calculated spacing of the stirrup, or None if the spacing is not set
- Return type:
Optional[float]
- class rcdesign.is456.rebar.BentupBars(rebar: Rebar, bars: List[int], _alpha_deg: float = 45, _sv: float = 0.0)
Bases:
ShearReinforcementClass to represent a single group of bent-up bars as shear reinforcement.
This class is used to calculate the area of shear reinforcement, spacing, and shear capacity for bent-up bars. It can handle both single groups of parallel bars and series of bars bent-up at different sections.
- rebar
The type of reinforcement bar used for bent-up bars
- Type:
Rebar
- bars
List of diameters of the bent-up bars
- Type:
List[int]
- _alpha_deg
Angle of inclination of the bent-up bars in degrees (default: 45)
- Type:
float
- _sv
Spacing of the bent-up bars (default: 0.0, indicating a single group of parallel bars)
- Type:
float
- property Asv: float
Return the area of shear reinforcement per unit length for bent-up bars.
- class rcdesign.is456.rebar.ShearRebarGroup(shear_reinforcement: List[ShearReinforcement])
Bases:
objectClass to represent a group of shear reinforcement.
This class is used to manage multiple shear reinforcement elements, such as stirrups and bent-up bars. It provides methods to calculate the total area of shear reinforcement, shear capacity, and check the type of reinforcement.
- shear_reinforcement
List of shear reinforcement elements (stirrups, bent-up bars, etc.)
- Type:
List[ShearReinforcement]
- property Asv: List[float]
Return the area of shear reinforcement for each element in the group.
- check() bool
Check if the shear reinforcement is sufficient based on the type and count of reinforcement.
- Returns:
True if the shear reinforcement is sufficient, False otherwise
- Return type:
bool
- class rcdesign.is456.rebar.LateralTie(rebar: Rebar, bar_dia: int, spacing: float)
Bases:
objectClass to represent lateral ties in reinforced concrete columns.
- rebar
The type of reinforcement bar used for the lateral ties
- Type:
Rebar
- bar_dia
Diameter of the lateral tie bar
- Type:
int
- spacing
Spacing between the lateral ties
- Type:
float