concreteproperties.concrete_section.ConcreteSection#
- class ConcreteSection(geometry)[source]#
Bases:
object
Class for a reinforced concrete section.
Inits the ConcreteSection class.
- Parameters
geometry (
CompoundGeometry
) – sectionproperties CompoundGeometry object describing the reinforced concrete section
Methods
Generates a biaxial bending diagram given a net axial force
n
andn_points
calculation points.Calculates cracked section properties given a neutral axis angle
theta
.Calculates stresses within the reinforced concrete section assuming a cracked section.
Calculates the cracking moment given a bending angle
theta
.Calculates and stores gross section area properties.
Calculates service stresses within the reinforced concrete section.
Given a neutral axis depth
d_n
and neutral axis angletheta
, calculates the resultant bending momentsm_x
,m_y
,m_xy
and the net axial forcen
.Calculates ultimate stresses within the reinforced concrete section.
Calculates stresses within the reinforced concrete section assuming an uncracked section.
Given a trial cracked neutral axis depth
d_nc
, determines the difference between the first moments of area above and below the trial axis.Given neutral axis angle
theta
, determines the depth of the furthest lumped reinforcement from the extreme compressive fibre and also returns its yield strain.Returns the gross section properties of the reinforced concrete section.
Transforms gross section properties given a reference elastic modulus.
Performs a moment curvature analysis given a bending angle
theta
.Generates a moment interaction diagram given a neutral axis angle theta and n_points calculation points between the decompression case and the pure bending case.
Plots the reinforced concrete section.
Given a neutral axis depth
d_n
and curvaturekappa
, returns the the net axial force.Given a neutral axis angle
theta
and an axial forcen
, calculates the ultimate bending capacity.Given a neutral axis depth
d_n
and neutral axis angletheta
, calculates the difference between the target net axial forcen
and the calculated axial force.- get_gross_properties()[source]#
Returns the gross section properties of the reinforced concrete section.
- Returns
GrossProperties
– Gross concrete properties object
- get_transformed_gross_properties(elastic_modulus)[source]#
Transforms gross section properties given a reference elastic modulus.
- Parameters
elastic_modulus (
float
) – Reference elastic modulus- Returns
TransformedGrossProperties
– Transformed concrete properties object
- calculate_cracked_properties(theta=0)[source]#
Calculates cracked section properties given a neutral axis angle
theta
.- Parameters
theta (
float
, default:0
) – Angle (in radians) the neutral axis makes with the horizontal axis (\(-\pi \leq \theta \leq \pi\))- Returns
CrackedResults
– Cracked results object
- calculate_cracking_moment(theta)[source]#
Calculates the cracking moment given a bending angle
theta
.- Parameters
theta (
float
) – Angle (in radians) the neutral axis makes with the horizontal axis (\(-\pi \leq \theta \leq \pi\))- Returns
float
– Cracking moment
- cracked_neutral_axis_convergence(d_nc, cracked_results)[source]#
Given a trial cracked neutral axis depth
d_nc
, determines the difference between the first moments of area above and below the trial axis.- Parameters
d_nc (
float
) – Trial cracked neutral axiscracked_results (
CrackedResults
) – Cracked results object
- Returns
float
– Cracked neutral axis convergence
- moment_curvature_analysis(theta=0, kappa_inc=1e-07, delta_m_min=0.15, delta_m_max=0.3)[source]#
Performs a moment curvature analysis given a bending angle
theta
.Analysis continues until a material reaches its ultimate strain.
- Param
Angle (in radians) the neutral axis makes with the horizontal axis (\(-\pi \leq \theta \leq \pi\))
- Parameters
kappa_inc (
float
, default:1e-07
) – Initial curvature incrementdelta_m_min (
float
, default:0.15
) – Relative change in moment at which to double stepdelta_m_max (
float
, default:0.3
) – Relative change in moment at which to halve step
- Returns
MomentCurvatureResults
– Moment curvature results object
- service_normal_force_convergence(d_n, kappa, moment_curvature)[source]#
Given a neutral axis depth
d_n
and curvaturekappa
, returns the the net axial force.- Parameters
d_nc – Trial cracked neutral axis
kappa (
float
) – Curvaturemoment_curvature (
MomentCurvatureResults
) – Moment curvature results object
- Returns
float
– Net axial force
- ultimate_bending_capacity(theta=0, n=0)[source]#
Given a neutral axis angle
theta
and an axial forcen
, calculates the ultimate bending capacity.Note that
k_u
is calculated only for lumped (non-meshed) geometries.- Parameters
theta (
float
, default:0
) – Angle (in radians) the neutral axis makes with the horizontal axis (\(-\pi \leq \theta \leq \pi\))n (
float
, default:0
) – Net axial force
- Returns
UltimateBendingResults
– Ultimate bending results object
- ultimate_normal_force_convergence(d_n, n, ultimate_results)[source]#
Given a neutral axis depth
d_n
and neutral axis angletheta
, calculates the difference between the target net axial forcen
and the calculated axial force.- Parameters
d_n (
float
) – Depth of the neutral axis from the extreme compression fibren (
float
) – Net axial forceultimate_results (
UltimateBendingResults
) – Ultimate bending results object
- Returns
float
– Axial force convergence
- calculate_ultimate_section_actions(d_n, ultimate_results=None)[source]#
Given a neutral axis depth
d_n
and neutral axis angletheta
, calculates the resultant bending momentsm_x
,m_y
,m_xy
and the net axial forcen
.- Parameters
d_n (
float
) – Depth of the neutral axis from the extreme compression fibreultimate_results (
Optional
[UltimateBendingResults
], default:None
) – Ultimate bending results object
- Returns
UltimateBendingResults
– Ultimate bending results object
- moment_interaction_diagram(theta=0, control_points=[('kappa0', 0.0), ('D', 1.0), ('fy', 1.0), ('N', 0.0), ('d_n', 1e-06)], labels=[None], n_points=[4, 12, 12, 4], max_comp=None, max_comp_labels=[None, None])[source]#
Generates a moment interaction diagram given a neutral axis angle theta and n_points calculation points between the decompression case and the pure bending case.
- Parameters
theta (
float
, default:0
) – Angle (in radians) the neutral axis makes with the horizontal axis (\(-\pi \leq \theta \leq \pi\))control_points (
List
[Tuple
[str
,float
]], default:[('kappa0', 0.0), ('D', 1.0), ('fy', 1.0), ('N', 0.0), ('d_n', 1e-06)]
) – List of control points over which to generate the interaction diagram. Each entry incontrol_points
is aTuple
with the first item the type of control point and the second item defining the location of the control point. Acceptable types of control points are"D"
(ratio of neutral axis depth to section depth),"d_n"
(neutral axis depth),"fy"
(yield ratio of the most extreme tensile bar),"N"
(axial force) and"kappa"
(zero curvature compression - must be at start of list, second value in tuple is not used). Control points must be defined in an order which results in a decreasing neutral axis depth (decreasing axial force). The default control points define an interaction diagram from the decompression point to the pure bending point.labels (
List
[Optional
[str
]], default:[None]
) – List of labels to apply to thecontrol_points
for plotting purposes, length must be the same as the length ofcontrol_points
. If a single value is provided, will apply this label to all control points.n_points (
Union
[int
,List
[int
]], default:[4, 12, 12, 4]
) – Number of neutral axis depths to compute between each control point. Length must be one less than the length ofcontrol_points
. If an integer is provided this will be used between all control points.max_comp (
Optional
[float
], default:None
) – If provided, limits the maximum compressive force in the moment interaction diagram tomax_comp
max_comp_labels (
List
[Optional
[str
]], default:[None, None]
) – Labels to apply to themax_comp
intersection points, first value is at zero moment, second value is at the intersection with the interaction diagram
- Raises
ValueError – If
control_points
,labels
orn_points
is invalid- Returns
MomentInteractionResults
– Moment interaction results object
- biaxial_bending_diagram(n=0, n_points=48)[source]#
Generates a biaxial bending diagram given a net axial force
n
andn_points
calculation points.- Parameters
n (
float
, default:0
) – Net axial forcen_points (
int
, default:48
) – Number of calculation points between the decompression
- Returns
BiaxialBendingResults
– Biaxial bending results
- calculate_uncracked_stress(n=0, m_x=0, m_y=0)[source]#
Calculates stresses within the reinforced concrete section assuming an uncracked section.
Uses gross area section properties to determine concrete and reinforcement stresses given an axial force
n
, and bending momentsm_x
andm_y
.- Parameters
n (
float
, default:0
) – Axial forcem_x (
float
, default:0
) – Bending moment about the x-axism_y (
float
, default:0
) – Bending moment about the y-axis
- Returns
StressResult
– Stress results object
- calculate_cracked_stress(cracked_results, n=0, m=0)[source]#
Calculates stresses within the reinforced concrete section assuming a cracked section.
Uses cracked area section properties to determine concrete and reinforcement stresses given an axial force
n
and bending momentm
about the bending axis stored incracked_results
.- Parameters
cracked_results (
CrackedResults
) – Cracked results objectsn (
float
, default:0
) – Axial forcem (
float
, default:0
) – Bending moment
- Returns
StressResult
– Stress results object
- calculate_service_stress(moment_curvature_results, m, kappa=None)[source]#
Calculates service stresses within the reinforced concrete section.
Uses linear interpolation of the moment-curvature results to determine the curvature of the section given the user supplied moment, and thus the stresses within the section. Otherwise, a curvature can be provided which overrides the supplied moment.
- Parameters
moment_curvature_results (
MomentCurvatureResults
) – Moment-curvature results objectsm (
float
) – Bending momentkappa (
Optional
[float
], default:None
) – Curvature, if provided overrides the supplied bending moment and calculates the stress at the given curvature
- Returns
StressResult
– Stress results object
- calculate_ultimate_stress(ultimate_results)[source]#
Calculates ultimate stresses within the reinforced concrete section.
- Parameters
ultimate_results (
UltimateBendingResults
) – Ultimate bending results objects- Returns
StressResult
– Stress results object
- extreme_bar(theta)[source]#
Given neutral axis angle
theta
, determines the depth of the furthest lumped reinforcement from the extreme compressive fibre and also returns its yield strain.- Parameters
theta (
float
) – Angle (in radians) the neutral axis makes with the horizontal axis (\(-\pi \leq \theta \leq \pi\))- Returns
Tuple
[float
,float
] – Depth of furthest bar and its yield strain
- plot_section(title='Reinforced Concrete Section', background=False, **kwargs)[source]#
Plots the reinforced concrete section.
- Parameters
title (
str
, default:'Reinforced Concrete Section'
) – Plot titlebackground (
bool
, default:False
) – If set to True, uses the plot as a background plotkwargs – Passed to
plotting_context()
- Returns
Axes
– Matplotlib axes object