concreteproperties.prestressed_section.PrestressedSection#
- class PrestressedSection(geometry, moment_centroid=None, geometric_centroid_override=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.
Inits the ConcreteSection class.
- Parameters
geometry (
CompoundGeometry
) – sectionproperties CompoundGeometry object describing the prestressed concrete sectionmoment_centroid (
Optional
[Tuple
[float
,float
]], default: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
, default:True
) – If set to True, setsmoment_centroid
to the geometric centroid i.e. material properties applied
Methods
Generates a biaxial bending diagram given a net axial force
n
andn_points
calculation points.Calculates cracked section properties given an axial loading and bending moment.
Calculates stresses within the prestressed concrete section assuming a cracked section.
Calculates the cracking moment given an axial load
n
and internal bending momentm_int
.Calculates and stores gross section area properties.
Calculates service stresses within the prestressed 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 prestressed concrete section.
Calculates stresses within the prestressed concrete section assuming an uncracked section.
Given a trial cracked neutral axis depth
d_nc
, determines the minimum concrete stress.Given a list of cracked geometries (stored in
cracked_results
), determines the cracked section properties and stores incracked_results
.Decodes a neutral axis depth given a control point
cp
.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 an applied axial force
n
.Generates a moment interaction diagram given a neutral axis angle
theta
.Plots the reinforced concrete section.
Given a neutral axis depth
d_n
and curvaturekappa
, returns the the net axial force.Given axial force
n
, 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.- calculate_cracked_properties(m_ext, n_ext=0)[source]#
Calculates cracked section properties given an axial loading and bending moment.
- Parameters
m_ext (
float
) – External bending momentn_ext (
float
, default:0
) – External axial force
- Raises
ValueError – If the provided loads do not result in tension within the concrete
- Returns
CrackedResults
– Cracked results object
- calculate_cracking_moment(n, m_int, positive)[source]#
Calculates the cracking moment given an axial load
n
and internal bending momentm_int
.- Parameters
n (
float
) – Axial loadm_int (
float
) – Internal bending momentpositive (
bool
) – If set to True, determines the cracking moment for positive bending, otherwise determines the cracking moment for negative bending
- Returns
float
– Cracking moment
- cracked_neutral_axis_convergence(d_nc, cracked_results)[source]#
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 axiscracked_results (
CrackedResults
) – Cracked results object
- Returns
float
– Cracked neutral axis convergence
- moment_curvature_analysis(positive=True, n=0, kappa_inc=1e-07, kappa_mult=2, kappa_inc_max=5e-06, delta_m_min=0.15, delta_m_max=0.3, progress_bar=True)[source]#
Performs a moment curvature analysis given an applied axial force
n
.Analysis continues until a material reaches its ultimate strain.
- Parameters
positive (
bool
, default:True
) – If set to True, performs the moment curvature analysis for positive bending, otherwise performs the moment curvature analysis for negative bendingn (
float
, default:0
) – Axial forcekappa_inc (
float
, default:1e-07
) – Initial curvature incrementkappa_mult (
float
, default:2
) – Multiplier to apply to the curvature incrementkappa_inc
whendelta_m_max
is satisfied. Whendelta_m_min
is satisfied, the inverse of this multipler is applied tokappa_inc
.kappa_inc_max (
float
, default:5e-06
) – Maximum curvature incrementdelta_m_min (
float
, default:0.15
) – Relative change in moment at which to reduce the curvature incrementdelta_m_max (
float
, default:0.3
) – Relative change in moment at which to increase the curvature incrementprogress_bar (
bool
, default:True
) – If set to True, displays the progress bar
- Returns
MomentCurvatureResults
– Moment curvature results object
- ultimate_bending_capacity(positive=True, n=0)[source]#
Given axial force
n
, calculates the ultimate bending capacity.Note that
k_u
is calculated only for lumped (non-meshed) geometries.- Parameters
positive (
bool
, default:True
) – If set to True, calculates the positive bending capacity, otherwise calculates the negative bending capacity.n (
float
, default:0
) – Net axial force
- Returns
UltimateBendingResults
– Ultimate bending results object
- moment_interaction_diagram()[source]#
Generates a moment interaction diagram given a neutral axis angle
theta
.limits
andcontrol_points
accept a list of tuples that define points on the moment interaction diagram. The first item in the tuple defines the type of control points, while the second item defines the location of the control point. Types of control points are detailed below:Control points
"D"
- ratio of neutral axis depth to section depth"d_n"
- neutral axis depth"fy"
- yield ratio of the most extreme tensile bar"N"
- net (nominal) axial force"kappa0"
- zero curvature compression (N.B second item in tuple is not used)
- Parameters
theta – Angle (in radians) the neutral axis makes with the horizontal axis (\(-\pi \leq \theta \leq \pi\))
limits – List of control points that define the start and end of the interaction diagram. List length must equal two. The default limits range from concrete decompression strain to zero curvature tension.
control_points – List of additional control points to add to the moment interatction diagram. The default control points include the pure compression point (
kappa0
), the balanced point (fy=1
) and the pure bending point (N=0
). Control points may lie outside the limits of the moment interaction diagram as long as equilibrium can be found.labels – List of labels to apply to the
limits
andcontrol_points
for plotting purposes. The first two values inlabels
apply labels to thelimits
, the remaining values apply labels to thecontrol_points
. If a single value is provided, this value will be applied to bothlimits
and allcontrol_points
. The length oflabels
must equal1
or2 + len(control_points)
.n_points – Number of points to compute including and between the
limits
of the moment interaction diagram. Generates equally spaced neutral axis depths between thelimits
.n_spacing – If provided, overrides
n_points
and generates the moment interaction diagram usingn_spacing
equally spaced axial loads. Note that usingn_spacing
negatively affects performance, as the neutral axis depth must first be located for each point on the moment interaction diagram.max_comp – If provided, limits the maximum compressive force in the moment interaction diagram to
max_comp
max_comp_labels – Labels to apply to the
max_comp
intersection points, first value is at zero moment, second value is at the intersection with the interaction diagramprogress_bar – If set to True, displays the progress bar
- Returns
Moment interaction results object
- biaxial_bending_diagram()[source]#
Generates a biaxial bending diagram given a net axial force
n
andn_points
calculation points.- Parameters
n – Net axial force
n_points – Number of calculation points
progress_bar – If set to True, displays the progress bar
- Returns
Biaxial bending results
- calculate_uncracked_stress(n=0, m=0)[source]#
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
n (
float
, default:0
) – Axial forcem (
float
, default:0
) – Bending moment
- Returns
StressResult
– Stress results object
- calculate_cracked_stress(cracked_results)[source]#
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
StressResult
– Stress results object
- calculate_service_stress(moment_curvature_results, m, kappa=None)[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 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 prestressed concrete section.
- Parameters
ultimate_results (
UltimateBendingResults
) – Ultimate bending results objects- Returns
StressResult
– Stress results object
- calculate_gross_area_properties()#
Calculates and stores gross section area properties.
- Return type
None
- calculate_ultimate_section_actions(d_n, ultimate_results=None)#
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
- cracked_section_properties(cracked_results)#
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- Return type
None
- decode_d_n(theta, cp, d_t)#
Decodes a neutral axis depth given a control point
cp
.- Parameters
theta (
float
) – Angle (in radians) the neutral axis makes with the horizontal axis (\(-\pi \leq \theta \leq \pi\))cp (
Tuple
[str
,float
]) – Control point to decoded_t (
float
) – Depth to extreme tensile fibre
- Returns
float
– Decoded neutral axis depth
- extreme_bar(theta)#
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
- get_gross_properties()#
Returns the gross section properties of the reinforced concrete section.
- Returns
GrossProperties
– Gross concrete properties object
- get_transformed_gross_properties(elastic_modulus)#
Transforms gross section properties given a reference elastic modulus.
- Parameters
elastic_modulus (
float
) – Reference elastic modulus- Returns
TransformedGrossProperties
– Transformed concrete properties object
- plot_section(title='Reinforced Concrete Section', background=False, **kwargs)#
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
- service_normal_force_convergence(eps0, kappa, moment_curvature)#
Given a neutral axis depth
d_n
and curvaturekappa
, returns the the net axial force.- Parameters
eps0 (
float
) – Strain at top fibrekappa (
float
) – Curvaturemoment_curvature (
MomentCurvatureResults
) – Moment curvature results object
- Returns
float
– Net axial force
- ultimate_normal_force_convergence(d_n, n, ultimate_results)#
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