Results#
After performing an analysis on a reinforced concrete cross-section (see
Analysis), concreteproperties
provides the user with a results object
specific to the conducted analysis. These results objects have methods tailored for the
post-processing of analysis results.
Gross Area Properties#
Gross area properties can be retrieved by calling the
get_gross_properties()
method.
- ConcreteSection.get_gross_properties() GrossProperties [source]
Returns the gross section properties of the reinforced concrete section.
- Returns:
Gross concrete properties object
- Return type:
This method returns a GrossProperties
object,
which stores all the calculated section properties as attributes. The gross area
properties can be printed to the terminal by calling the
print_results()
method.
- class concreteproperties.results.GrossProperties[source]
Class for storing gross concrete section properties.
All properties with an
e_
preceding the property are multiplied by the elastic modulus. In order to obtain transformed properties, call theget_transformed_gross_properties()
method.
Transformed gross area properties can be obtained by calling the
get_transformed_gross_properties()
method.
- ConcreteSection.get_transformed_gross_properties(elastic_modulus: float) TransformedGrossProperties [source]
Transforms gross section properties given a reference elastic modulus.
- Parameters:
elastic_modulus (float) – Reference elastic modulus
- Returns:
Transformed concrete properties object
- Return type:
This method returns a TransformedGrossProperties
object, which stores all the calculated transformed section properties as class
attributes. The transformed gross area properties can be printed to the terminal by
calling the
print_results()
method.
- class concreteproperties.results.TransformedGrossProperties[source]
Class for storing transformed gross concrete section properties.
- Parameters:
concrete_properties (GrossProperties) – Concrete properties object
elastic_modulus (float) – Reference elastic modulus
See also
For an application of the above, see the example Calculating Area Properties.
Cracked Area Properties#
Performing a cracked analysis with
calculate_cracked_properties()
returns a CrackedResults
object.
- class concreteproperties.results.CrackedResults[source]
Class for storing cracked concrete section properties.
All properties with an
e_
preceding the property are multiplied by the elastic modulus. In order to obtain transformed properties, call thecalculate_transformed_properties()
method.- Parameters:
theta (float) – Angle (in radians) the neutral axis makes with the horizontal axis (\(-\pi \leq \theta \leq \pi\))
- calculate_transformed_properties(elastic_modulus: float) None [source]
Calculates and stores transformed cracked properties.
- Parameters:
elastic_modulus (float) – Reference elastic modulus
- plot_cracked_geometries(title: str = 'Cracked Geometries', **kwargs) matplotlib.axes.Axes [source]
Plots geometries that remain (compression/reinf.) after a cracked analysis.
- Parameters:
title (str) – Plot title
kwargs – Passed to
plot_geometry()
- Returns:
Matplotlib axes object
- Return type:
Note
A PrestressedSection
object will
return a tuple
for the cracking moment m_cr
, with the first value the cracking
moment for positive bending and the second value the cracking moment for negative
bending.
Calling
calculate_transformed_properties()
on a CrackedResults
object stores the transformed
cracked properties as attributes within the current object.
See also
For an application of the above, see the example Calculating Cracked Properties.
Moment Curvature Analysis#
Running a
moment_curvature_analysis()
returns a MomentCurvatureResults
object. This
object can be used to plot moment curvature results.
- class concreteproperties.results.MomentCurvatureResults[source]
Class for storing moment curvature results.
- Parameters:
theta (float) – Angle (in radians) the neutral axis makes with the horizontal
n_target (float) – Target axial force axis (\(-\pi \leq \theta \leq \pi\))
m_x (list[float]) – List of bending moments about the x-axis
m_y (list[float]) – List of bending moments about the y-axis
failure_geometry – Geometry object of the region of the cross-section that failed, ending the moment curvature analysis
convergence (list[float]) – The critical ratio between the strain and the failure strain within the cross-section for each curvature step in the analysis. A value of one indicates failure.
- plot_results(m_scale: float = 1e-06, fmt: str = 'o-', **kwargs) matplotlib.axes.Axes [source]
Plots the moment curvature results.
- Parameters:
m_scale (float) – Scaling factor to apply to bending moment
fmt (str) – Plot format string
kwargs – Passed to
plotting_context()
- Returns:
Matplotlib axes object
- Return type:
- static plot_multiple_results(moment_curvature_results: list[MomentCurvatureResults], labels: list[str], m_scale: float = 1e-06, fmt: str = 'o-', **kwargs) matplotlib.axes.Axes [source]
Plots multiple moment curvature results.
- Parameters:
moment_curvature_results (list[MomentCurvatureResults]) – List of moment curvature results objects
labels (list[str]) – List of labels for each moment curvature diagram
m_scale (float) – Scaling factor to apply to bending moment
fmt (str) – Plot format string
kwargs – Passed to
plotting_context()
- Returns:
Matplotlib axes object
- Return type:
See also
For an application of the above, see the example Moment Curvature Analysis.
Ultimate Bending Capacity#
The
ultimate_bending_capacity()
method returns an UltimateBendingResults
object.
This object stores results relating to the analysis and allows the results to be printed
to the terminal by calling the
print_results()
method.
- class concreteproperties.results.UltimateBendingResults[source]
Class for storing ultimate bending results.
- Parameters:
theta (float) – Angle (in radians) the neutral axis makes with the horizontal axis (\(-\pi \leq \theta \leq \pi\))
d_n (float) – Ultimate neutral axis depth
k_u (float) – Neutral axis parameter (d_n / d)
n (float) – Resultant axial force
m_x (float) – Resultant bending moment about the x-axis
m_y (float) – Resultant bending moment about the y-axis
m_xy (float) – Resultant bending moment
label (str | None) – Result label
See also
For an application of the above, see the example Ultimate Bending Capacity.
Moment Interaction Diagram#
Calling the
moment_interaction_diagram()
method returns a MomentInteractionResults
object.
This object can be used to plot moment interaction results.
- class concreteproperties.results.MomentInteractionResults[source]
Class for storing moment interaction results.
- Parameters:
results (list[UltimateBendingResults]) – List of ultimate bending result objects
- plot_diagram(n_scale: float = 0.001, m_scale: float = 1e-06, moment: str = 'm_x', fmt: str = 'o-', labels: bool = False, label_offset: bool = False, **kwargs) matplotlib.axes.Axes [source]
Plots a moment interaction diagram.
- Parameters:
n_scale (float) – Scaling factor to apply to axial force
m_scale (float) – Scaling factor to apply to the bending moment
moment (str) – Which moment to plot, acceptable values are
"m_x"
,"m_y"
or"m_xy"
fmt (str) – Plot format string
labels (bool) – If set to True, also plots labels on the diagram
label_offset (bool) – If set to True, attempts to offset the label from the diagram
kwargs – Passed to
plotting_context()
- Returns:
Matplotlib axes object
- Return type:
- static plot_multiple_diagrams(moment_interaction_results: list[MomentInteractionResults], labels: list[str], n_scale: float = 0.001, m_scale: float = 1e-06, moment: str = 'm_x', fmt: str = 'o-', **kwargs) matplotlib.axes.Axes [source]
Plots multiple moment interaction diagrams.
- Parameters:
moment_interaction_results (list[MomentInteractionResults]) – List of moment interaction results objects
labels (list[str]) – List of labels for each moment interaction diagram
n_scale (float) – Scaling factor to apply to axial force
m_scale (float) – Scaling factor to apply to bending moment
moment (str) – Which moment to plot, acceptable values are
"m_x"
,"m_y"
or"m_xy"
fmt (str) – Plot format string
kwargs – Passed to
plotting_context()
- Returns:
Matplotlib axes object
- Return type:
See also
For an application of the above, see the example Moment Interaction Diagram.
Biaxial Bending Diagram#
The
biaxial_bending_diagram()
method returns a BiaxialBendingResults
object.
This object can be used to plot biaxial bending results.
- class concreteproperties.results.BiaxialBendingResults[source]
Class for storing biaxial bending results.
- Parameters:
n (float) – Net axial force
results (list[UltimateBendingResults]) – List of ultimate bending result objects
- plot_diagram(m_scale: float = 1e-06, fmt: str = 'o-', **kwargs) matplotlib.axes.Axes [source]
Plots a biaxial bending diagram.
- Parameters:
m_scale (float) – Scaling factor to apply to bending moment
fmt (str) – Plot format string
kwargs – Passed to
plotting_context()
- Returns:
Matplotlib axes object
- Return type:
- static plot_multiple_diagrams_2d(biaxial_bending_results: list[BiaxialBendingResults], labels: list[str] | None = None, m_scale: float = 1e-06, fmt: str = 'o-', **kwargs) matplotlib.axes.Axes [source]
Plots multiple biaxial bending diagrams in a 2D plot.
- Parameters:
biaxial_bending_results (list[BiaxialBendingResults]) – List of biaxial bending results objects
labels (list[str] | None) – List of labels for each biaxial bending diagram, if not provided labels are axial forces
m_scale (float) – Scaling factor to apply to bending moment
fmt (str) – Plot format string
kwargs – Passed to
plotting_context()
- Returns:
Matplotlib axes object
- Return type:
- static plot_multiple_diagrams_3d(biaxial_bending_results: list[BiaxialBendingResults], n_scale: float = 0.001, m_scale: float = 1e-06, fmt: str = '-') matplotlib.axes.Axes [source]
Plots multiple biaxial bending diagrams in a 3D plot.
- Parameters:
biaxial_bending_results (list[BiaxialBendingResults]) – List of biaxial bending results objects
n_scale (float) – Scaling factor to apply to axial force
m_scale (float) – Scaling factor to apply to bending moment
fmt (str) – Plot format string
- Returns:
Matplotlib axes object
- Return type:
See also
For an application of the above, see the example Biaxial Bending Diagram.
Stress Analysis#
Stress analyses can be performed by calling any of the following methods:
calculate_uncracked_stress()
,
calculate_cracked_stress()
,
calculate_service_stress()
and
calculate_ultimate_stress()
.
All these methods return a StressResult
object.
This object stores results relating to the stress analysis and can also be used to plot
stress results.
- class concreteproperties.results.StressResult[source]
Class for storing stress results.
The lever arm is computed to the elastic centroid.
- Parameters:
concrete_analysis_sections (list[AnalysisSection]) – List of concrete analysis section objects present in the stress analysis, which can be visualised by calling the
plot_mesh()
orplot_shape()
concrete_stresses (list[np.ndarray]) – List of concrete stresses at the nodes of each concrete analysis section
concrete_forces (list[tuple[float, float, float]]) – List of net forces for each concrete analysis section and its lever arm (
force
,d_x
,d_y
)meshed_reinforcement_sections (list[AnalysisSection]) – List of meshed reinforcement section objects present in the stress analysis
meshed_reinforcement_stresses (list[np.ndarray]) – List of meshed reinforcement stresses at the nodes of each meshed reinforcement analysis section
meshed_reinforcement_forces (list[tuple[float, float, float]]) – List of net forces for each meshed reinforcement analysis section and its lever arm (
force
,d_x
,d_y
)lumped_reinforcement_geometries (list[CPGeom]) – List of lumped reinforcement geometry objects present in the stress analysis
lumped_reinforcement_stresses (list[float]) – List of lumped reinforcement stresses for each lumped geometry
lumped_reinforcement_strains (list[float]) – List of lumped reinforcement strains for each lumped geometry
lumped_reinforcement_forces (list[tuple[float, float, float]]) – List of net forces for each lumped reinforcement geometry and its lever arm (
force
,d_x
,d_y
)strand_geometries (list[CPGeom]) – List of strand geometry objects present in the stress analysis
strand_stresses (list[float]) – List of strand stresses for each strand
strand_strains (list[float]) – List of strand strains for each strand
strand_forces (list[tuple[float, float, float]]) – List of net forces for each strand geometry and its lever arm (
force
,d_x
,d_y
)
- plot_stress(title: str = 'Stress', conc_cmap: str = 'RdGy', reinf_cmap: str = 'bwr', **kwargs) matplotlib.axes.Axes [source]
Plots concrete and steel stresses on a concrete section.
- Parameters:
title (str) – Plot title
conc_cmap (str) – Colour map for the concrete stress
reinf_cmap (str) – Colour map for the reinforcement stress
kwargs – Passed to
plotting_context()
- Returns:
Matplotlib axes object
- Return type:
- sum_forces() float [source]
Returns the sum of the internal forces.
- Returns:
Sum of internal forces
- Return type:
See also
For an application of the above, see the example Stress Analysis.