PrestressedSection#
- class concreteproperties.prestressed_section.PrestressedSection(geometry: CompoundGeometry, moment_centroid: tuple[float, float] | None = None, geometric_centroid_override: bool = True)[source]#
Bases:
ConcreteSection
Class for a prestressed concrete section.
Note
Prestressed concrete sections analysed in
concreteproperties
must be symmetric about their vertical (y
) axis, with all flexure assumed to be about thex
axis.Warning
The only meshed geometries that are permitted are concrete geometries.
Methods
Generates a biaxial bending diagram.
Calculate cracked section properties.
Calculates cracked streses.
Calculates the cracking moment.
Calculates and stores gross section area properties.
Calculates service stresses within the prestressed concrete section.
Caclculate ultimate section actions.
Calculates ultimate stresses within the prestressed concrete section.
Calculates uncracked streses.
Calculates cracked netural axis convergence.
Calculates cracked section properties.
Decodes a neutral axis depth given a control point
cp
.Calculates depth to the extreme bar.
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 an applied axial force
n
.Generates a moment interaction diagram.
Plots the reinforced concrete section.
Calculates service convergence.
Given axial force
n
, calculates the ultimate bending capacity.Calculates ultimate convergence.
- __init__(geometry: CompoundGeometry, moment_centroid: tuple[float, float] | None = None, geometric_centroid_override: bool = True) None [source]#
Inits the ConcreteSection class.
- Parameters:
geometry (CompoundGeometry) –
sectionproperties
CompoundGeometry
object describing the prestressed concrete sectionmoment_centroid (tuple[float, float] | None) – If specified, all moments for service and ultimate analyses are calculated about this point. If not specified, all moments are calculated about the gross cross-section centroid, i.e. no material properties applied.
geometric_centroid_override (bool) – If set to True, sets
moment_centroid
to the geometric centroid i.e. material properties applied
- Raises:
ValueError – If the section is not symmetric about the y-axis
ValueError – If meshed reinforcement geometries are provided
- calculate_cracked_properties(m_ext: float, n_ext: float = 0) CrackedResults [source]#
Calculate cracked section properties.
Calculates cracked section properties given an axial loading and bending moment.
- Parameters:
- Raises:
AnalysisError – If the provided loads do not result in tension within the concrete
- Returns:
Cracked results object
- Return type:
- calculate_cracking_moment(n: float, m_int: float, positive: bool) float [source]#
Calculates the cracking moment.
Calculates the cracking moment given an axial load
n
and internal bending momentm_int
.
- cracked_neutral_axis_convergence(d_nc: float, cracked_results: CrackedResults) float [source]#
Calculates cracked netural axis convergence.
Given a trial cracked neutral axis depth
d_nc
, determines the minimum concrete stress. For a cracked elastic analysis this should be zero (no tension allowed).- Parameters:
d_nc (float) – Trial cracked neutral axis
cracked_results (CrackedResults) – Cracked results object
- Returns:
Cracked neutral axis convergence
- Return type:
- moment_curvature_analysis(positive: bool = True, n: float = 0, kappa_inc: float = 1e-07, kappa_mult: float = 2, kappa_inc_max: float = 5e-06, delta_m_min: float = 0.15, delta_m_max: float = 0.3, progress_bar: bool = True) MomentCurvatureResults [source]#
Performs a moment curvature analysis given an applied axial force
n
.Analysis continues until a material reaches its ultimate strain.
- Parameters:
positive (bool) – If set to True, performs the moment curvature analysis for positive bending, otherwise performs the moment curvature analysis for negative bending
n (float) – Axial force
kappa_inc (float) – Initial curvature increment
kappa_mult (float) – Multiplier to apply to the curvature increment
kappa_inc
whendelta_m_max
is satisfied. Whendelta_m_min
is satisfied, the inverse of this multipler is applied tokappa_inc
.kappa_inc_max (float) – Maximum curvature increment
delta_m_min (float) – Relative change in moment at which to reduce the curvature increment
delta_m_max (float) – Relative change in moment at which to increase the curvature increment
progress_bar (bool) – If set to True, displays the progress bar
- Returns:
Moment curvature results object
- Return type:
- ultimate_bending_capacity(positive: bool = True, n: float = 0) UltimateBendingResults [source]#
Given axial force
n
, calculates the ultimate bending capacity.Note that
k_u
is calculated only for lumped (non-meshed) geometries.- Parameters:
- Returns:
Ultimate bending results object
- Return type:
- moment_interaction_diagram()[source]#
Generates a moment interaction diagram.
- Raises:
NotImplementedError – This feature has not yet been implemented.
- biaxial_bending_diagram()[source]#
Generates a biaxial bending diagram.
- Raises:
NotImplementedError – This feature has not yet been implemented.
- calculate_uncracked_stress(n: float = 0, m: float = 0) StressResult [source]#
Calculates uncracked streses.
Calculates stresses within the prestressed concrete section assuming an uncracked section. Uses gross area section properties to determine concrete, reinforcement and strand stresses given an axial force
n
and bending momentm
.- Parameters:
- Returns:
Stress results object
- Return type:
- calculate_cracked_stress(cracked_results: CrackedResults) StressResult [source]#
Calculates cracked streses.
Calculates stresses within the prestressed concrete section assuming a cracked section. Uses cracked area section properties to determine concrete, reinforcement and strand stresses given the actions provided during the cracked analysis.
- Parameters:
cracked_results (CrackedResults) – Cracked results objects
- Returns:
Stress results object
- Return type:
- calculate_service_stress(moment_curvature_results: MomentCurvatureResults, m: float, kappa: float | None = None) StressResult [source]#
Calculates service stresses within the prestressed 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 objects
m (float) – Bending moment
kappa (float | None) – Curvature, if provided overrides the supplied bending moment and calculates the stress at the given curvature
- Raises:
AnalysisError – If the analysis fails
- Returns:
Stress results object
- Return type:
- calculate_ultimate_stress(ultimate_results: UltimateBendingResults) StressResult [source]#
Calculates ultimate stresses within the prestressed concrete section.
- Parameters:
ultimate_results (UltimateBendingResults) – Ultimate bending results objects
- Returns:
Stress results object
- Return type:
- calculate_ultimate_section_actions(d_n: float, ultimate_results: UltimateBendingResults | None = None) UltimateBendingResults #
Caclculate ultimate section actions.
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 fibre
ultimate_results (UltimateBendingResults | None) – Ultimate bending results object
- Raises:
ValueError – If d_n is not positive
- Returns:
Ultimate bending results object
- Return type:
- cracked_section_properties(cracked_results: CrackedResults) None #
Calculates cracked section properties.
Given a list of cracked geometries (stored in
cracked_results
), determines the cracked section properties and stores incracked_results
.- Parameters:
cracked_results (CrackedResults) – Cracked results object with stored cracked geometries
- decode_d_n(theta: float, cp: tuple[str, float], d_t: float) float #
Decodes a neutral axis depth given a control point
cp
.- Parameters:
- Raises:
ValueError – If D is not greater than zero
ValueError – If d_n is not greater than zero
- Returns:
Decoded neutral axis depth
- Return type:
- extreme_bar(theta: float) tuple[float, float] #
Calculates depth to the extreme bar.
Given neutral axis angle
theta
, determines the depth of the furthest lumped reinforcement from the extreme compressive fibre and also returns its yield strain.
- get_gross_properties() GrossProperties #
Returns the gross section properties of the reinforced concrete section.
- Returns:
Gross concrete properties object
- Return type:
- get_transformed_gross_properties(elastic_modulus: float) TransformedGrossProperties #
Transforms gross section properties given a reference elastic modulus.
- Parameters:
elastic_modulus (float) – Reference elastic modulus
- Returns:
Transformed concrete properties object
- Return type:
- plot_section(title: str = 'Reinforced Concrete Section', background: bool = False, **kwargs) matplotlib.axes.Axes #
Plots the reinforced concrete section.
- Parameters:
title (str) – Plot title
background (bool) – If set to True, uses the plot as a background plot
kwargs – Passed to
plotting_context()
- Returns:
Matplotlib axes object
- Return type:
- service_normal_force_convergence(eps0: float, kappa: float, moment_curvature: MomentCurvatureResults) float #
Calculates service convergence.
Given a neutral axis depth
d_n
and curvaturekappa
, returns the the net axial force.- Parameters:
eps0 (float) – Strain at top fibre
kappa (float) – Curvature
moment_curvature (MomentCurvatureResults) – Moment curvature results object
- Returns:
Net axial force
- Return type:
- ultimate_normal_force_convergence(d_n: float, n: float, ultimate_results: UltimateBendingResults) float #
Calculates ultimate convergence.
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 fibre
n (float) – Net axial force
ultimate_results (UltimateBendingResults) – Ultimate bending results object
- Returns:
Axial force convergence
- Return type: