concreteproperties.concrete_section.ConcreteSection#

class ConcreteSection(geometry: CompoundGeometry)[source]#

Bases: object

Class for a reinforced concrete section.

Inits the ConcreteSection class.

Parameters

geometry (sectionproperties.pre.geometry.CompoundGeometry) – sectionproperties compound geometry object describing the reinforced concrete section

Methods

biaxial_bending_diagram

Generates a biaxial bending diagram given a net axial force n and n_points calculation points.

calculate_cracked_properties

Calculates cracked section properties given a neutral axis angle theta.

calculate_cracked_stress

Calculates stresses within the reinforced concrete section assuming a cracked section.

calculate_cracking_moment

Calculates the cracking moment given a bending angle theta.

calculate_gross_area_properties

Calculates and stores gross section area properties.

calculate_gross_plastic_properties

Calculates and stores gross section plastic properties.

calculate_service_section_actions

Given a neutral axis depth d_n and curvature kappa, calculates the resultant axial force and bending moment.

calculate_service_stress

Calculates service stresses within the reinforced concrete section.

calculate_ultimate_section_actions

Given a neutral axis depth d_n and neutral axis angle theta, calculates the resultant bending moments m_x, m_y, m_u and the net axial force n.

calculate_ultimate_stress

Calculates ultimate stresses within the reinforced concrete section.

calculate_uncracked_stress

Calculates stresses within the reinforced concrete section assuming an uncracked section.

cracked_neutral_axis_convergence

Given a trial cracked neutral axis depth d_nc, determines the difference between the first moments of area above and below the trial axis.

get_c_local

Returns the elastic centroid location in local coordinates.

get_gross_properties

Returns the gross section properties of the reinforced concrete section.

get_pc_local

Returns the plastic centroid location in local coordinates.

get_transformed_gross_properties

Transforms gross section properties given a reference elastic modulus.

moment_curvature_analysis

Performs a moment curvature analysis given a bending angle theta.

moment_interaction_diagram

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.

plot_section

Plots the reinforced concrete section.

service_normal_force_convergence

Given a trial neutral axis depth d_n and curvature kappa, determines the difference between the net axial force and the desired axial force.

ultimate_bending_capacity

Given a neutral axis angle theta and an axial force n, calculates the ultimate bending capacity.

ultimate_normal_force_convergence

Given a neutral axis depth d_n and neutral axis angle theta, calculates the difference between the target net axial force n and the axial force.

calculate_gross_area_properties()[source]#

Calculates and stores gross section area properties.

calculate_gross_plastic_properties()[source]#

Calculates and stores gross section plastic properties.

Calculates the plastic centroid and squash load assuming all steel is at yield and the concrete experiences a stress of alpha_squash * f’c.

Calculates tensile load assuming all steel is at yield and the concrete is entirely cracked.

get_gross_properties() ConcreteProperties[source]#

Returns the gross section properties of the reinforced concrete section.

Returns

Concrete properties object

Return type

ConcreteProperties

get_transformed_gross_properties(elastic_modulus: float) TransformedConcreteProperties[source]#

Transforms gross section properties given a reference elastic modulus.

Parameters

elastic_modulus (float) – Reference elastic modulus

Returns

Transformed concrete properties object

Return type

TransformedConcreteProperties

calculate_cracked_properties(theta: Optional[float] = 0) CrackedResults[source]#

Calculates cracked section properties given a neutral axis angle theta.

Parameters

theta (Optional[float]) – Angle (in radians) the neutral axis makes with the horizontal axis (\(-\pi \leq \theta \leq \pi\))

Returns

Cracked results object

Return type

CrackedResults

calculate_cracking_moment(theta: float) float[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

Cracking moment

Return type

float

cracked_neutral_axis_convergence(d_nc: float, cracked_results: CrackedResults) float[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 axis

  • cracked_results (CrackedResults) – Cracked results object

Returns

Cracked neutral axis convergence

Return type

float

moment_curvature_analysis(theta: Optional[float] = 0, kappa_inc: Optional[float] = 1e-07, delta_m_min: Optional[float] = 0.15, delta_m_max: Optional[float] = 0.3) MomentCurvatureResults[source]#

Performs a moment curvature analysis given a bending angle theta.

Analysis continues until the steel reaches fracture strain or the concrete reaches its ultimate strain.

Parameters
  • theta (Optional[float]) – Angle (in radians) the neutral axis makes with the horizontal axis (\(-\pi \leq \theta \leq \pi\))

  • kappa_inc (Optional[float]) – Initial curvature increment

  • delta_m_min (Optional[float]) – Relative change in moment at which to double step

  • delta_m_max (Optional[float]) – Relative change in moment at which to halve step

Returns

Moment curvature results object

Return type

MomentCurvatureResults

service_normal_force_convergence(d_n: float, kappa: float, moment_curvature: MomentCurvatureResults) float[source]#

Given a trial neutral axis depth d_n and curvature kappa, determines the difference between the net axial force and the desired axial force.

Parameters
  • d_nc (float) – Trial cracked neutral axis

  • kappa (float) – Curvature

  • moment_curvature (MomentCurvatureResults) – Moment curvature results object

Returns

Service normal force convergence

Return type

float

calculate_service_section_actions()[source]#

Given a neutral axis depth d_n and curvature kappa, calculates the resultant axial force and bending moment.

Parameters
  • d_n (float) – Depth of the neutral axis from the extreme compression fibre

  • kappa (float) – Curvature

  • moment_curvature (Optional[MomentCurvatureResults]) – Moment curvature results object

Returns

Moment curvature results object

Return type

MomentCurvatureResults

ultimate_bending_capacity(theta: Optional[float] = 0, n: Optional[float] = 0) results.UltimateBendingResults[source]#

Given a neutral axis angle theta and an axial force n, calculates the ultimate bending capacity.

Parameters
  • theta (Optional[float]) – Angle (in radians) the neutral axis makes with the horizontal axis (\(-\pi \leq \theta \leq \pi\))

  • n (Optional[float]) – Net axial force

Returns

Ultimate bending results object

Return type

UltimateBendingResults

ultimate_normal_force_convergence(d_n: float, n: float, ultimate_results: results.UltimateBendingResults) float[source]#

Given a neutral axis depth d_n and neutral axis angle theta, calculates the difference between the target net axial force n and the axial force.

Parameters
  • d_n (float) – Depth of the neutral axis from the extreme compression fibre

  • n (float) – Net axial force

  • ultimate_results (UltimateBendingResults) – Ultimate bending results object

Returns

Axial force convergence

Return type

float

calculate_ultimate_section_actions(d_n: float, ultimate_results: Optional[res.UltimateBendingResults] = None) results.UltimateBendingResults[source]#

Given a neutral axis depth d_n and neutral axis angle theta, calculates the resultant bending moments m_x, m_y, m_u and the net axial force n.

Parameters
  • d_n (float) – Depth of the neutral axis from the extreme compression fibre

  • ultimate_results (Optional[UltimateBendingResults]) – Ultimate bending results object

Returns

Ultimate bending results object

Return type

UltimateBendingResults

moment_interaction_diagram(theta: Optional[float] = 0, m_neg: Optional[bool] = False, n_points: Optional[int] = 24) MomentInteractionResults[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 (Optional[float]) – Angle (in radians) the neutral axis makes with the horizontal axis (\(-\pi \leq \theta \leq \pi\))

  • m_neg (Optional[bool]) – If set to true, also calculates the moment interaction for \(\theta = \theta + \pi\), i.e. sagging and hogging

  • n_points (Optional[int]) – Number of calculation points between the decompression point and the pure bending point

Returns

Moment interaction results object

Return type

MomentInteractionResults

biaxial_bending_diagram(n: Optional[float] = 0, n_points: Optional[int] = 48) BiaxialBendingResults[source]#

Generates a biaxial bending diagram given a net axial force n and n_points calculation points.

Parameters
  • n (Optional[float]) – Net axial force

  • n_points (Optional[int]) – Number of calculation points between the decompression

Returns

Biaxial bending results

Return type

BiaxialBendingResults

calculate_uncracked_stress(n: Optional[float] = 0, m_x: Optional[float] = 0, m_y: Optional[float] = 0) StressResult[source]#

Calculates stresses within the reinforced concrete section assuming an uncracked section.

Uses gross area section properties to determine concrete and steel stresses given an axial force n, and bending moments m_x and m_y.

Parameters
  • n (Optional[float]) – Axial force

  • m_x (Optional[float]) – Bending moment about the x-axis

  • m_y (Optional[float]) – Bending moment about the y-axis

Returns

Stress results object

Return type

StressResult

calculate_cracked_stress(cracked_results: CrackedResults, n: Optional[float] = 0, m: Optional[float] = 0) StressResult[source]#

Calculates stresses within the reinforced concrete section assuming a cracked section.

Uses cracked area section properties to determine concrete and steel stresses given an axial force n and bending moment m about the bending axis stored in cracked_results.

Parameters
  • cracked_results (CrackedResults) – Cracked results objects

  • n (Optional[float]) – Axial force

  • m (Optional[float]) – Bending moment

Returns

Stress results object

Return type

StressResult

calculate_service_stress(moment_curvature_results: MomentCurvatureResults, m: float, kappa: Optional[float] = None) StressResult[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, can provided a curvature which overrides the supplied moment.

Parameters
  • moment_curvature_results (MomentCurvatureResults) – Moment-curvature results objects

  • m (float) – Bending moment

  • kappa (Optional[float]) – Curvature, if provided overrides the supplied bending moment and plots the stress at the given curvature

Returns

Stress results object

Return type

StressResult

calculate_ultimate_stress(ultimate_results: UltimateBendingResults) StressResult[source]#

Calculates ultimate stresses within the reinforced concrete section.

Parameters

ultimate_results (UltimateBendingResults) – Ultimate bending results objects

Returns

Stress results object

Return type

StressResult

get_c_local(theta: float) Tuple[float][source]#

Returns the elastic centroid location in local coordinates.

Parameters

theta (float) – Angle (in radians) the neutral axis makes with the horizontal axis (\(-\pi \leq \theta \leq \pi\))

Returns

Elastic centroid in local coordinates (c_u, c_v)

Return type

Tuple[float]

get_pc_local(theta: float) Tuple[float][source]#

Returns the plastic centroid location in local coordinates.

Parameters

theta (float) – Angle (in radians) the neutral axis makes with the horizontal axis (\(-\pi \leq \theta \leq \pi\))

Returns

Plastic centroid in local coordinates (pc_u, pc_v)

Return type

Tuple[float]

plot_section(title: Optional[str] = 'Reinforced Concrete Section', background: Optional[bool] = False, **kwargs) matplotlib.axes.Axes[source]#

Plots the reinforced concrete section.

Parameters
  • title (Optional[str]) – Plot title

  • background (Optional[bool]) – If set to True, uses the plot as a background plot

  • kwargs – Passed to plotting_context()

Returns

Matplotlib axes object

Return type

matplotlib.axes.Axes