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) Axes[source]
Plots geometries that remain (compression/reinf.) after a cracked analysis.
- Parameters:
title (str) – Plot title. Defaults to
"Cracked Geometries".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) Axes[source]
Plots the moment curvature results.
- Parameters:
m_scale (float) – Scaling factor to apply to bending moment. Defaults
1e-6.fmt (str) – Plot format string. Defaults
"o-".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) 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. Defaults
1e-6.fmt (str) – Plot format string. Defaults
"o-".kwargs – Passed to
plotting_context()
- Returns:
Matplotlib axes object
- Return type:
- plot_failure_geometry(title: str = 'Failure Geometry', **kwargs) Axes[source]
Plots the geometry that fails in the moment curvature analysis.
- Parameters:
title (str) – Plot title. Defaults to
"Failure Geometry".kwargs – Passed to
plot_geometry()
- Returns:
Matplotlib axes object
- Return type:
- get_curvature(moment: float) float[source]
Given a moment, uses the moment-curvature results to interpolate a curvature.
- Parameters:
moment (float) – Bending moment at which to obtain curvature
- Raises:
ValueError – If supplied moment is outside bounds of moment-curvature results.
- Returns:
Curvature
- 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
- get_results_lists(moment: str) tuple[list[float], list[float]][source]
Returns a list of axial forces and moments.
- 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) Axes[source]
Plots a moment interaction diagram.
- Parameters:
n_scale (float) – Scaling factor to apply to axial force. Defaults to
1e-3.m_scale (float) – Scaling factor to apply to the bending moment. Defaults to
1e-6.moment (str) – Which moment to plot, acceptable values are
"m_x","m_y"or"m_xy". Defaults to"m_x".fmt (str) – Plot format string. Defaults to
"o-".labels (bool) – If set to True, also plots labels on the diagram. Defaults to
False.label_offset (bool) – If set to True, attempts to offset the label from the diagram. Defaults to
False.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) 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. Defaults to
1e-3.m_scale (float) – Scaling factor to apply to bending moment. Defaults to
1e-6.moment (str) – Which moment to plot, acceptable values are
"m_x","m_y"or"m_xy". Defaults to"m_x".fmt (str) – Plot format string. Defaults to
"o-".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
- get_results_lists() tuple[list[float], list[float]][source]
Returns a list and moments about the
xandyaxes.
- plot_diagram(m_scale: float = 1e-06, fmt: str = 'o-', **kwargs) Axes[source]
Plots a biaxial bending diagram.
- Parameters:
m_scale (float) – Scaling factor to apply to bending moment. Defaults to
1e-6.fmt (str) – Plot format string. Defaults to
"o-".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) 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. Defaults to
None.m_scale (float) – Scaling factor to apply to bending moment. Defaults to
1e-6.fmt (str) – Plot format string. Defaults to
"o-".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 = '-') 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. Defaults to
1e-3.m_scale (float) – Scaling factor to apply to bending moment. Defaults to
1e-6.fmt (str) – Plot format string. Defaults to
"-".
- 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) Axes[source]
Plots concrete and steel stresses on a concrete section.
- Parameters:
title (str) – Plot title. Defaults to
"Stress".conc_cmap (str) – Colour map for the concrete stress. Defaults to
"RdGy".reinf_cmap (str) – Colour map for the reinforcement stress. Defaults to
"bwr".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.