5. 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.
5.1. Gross Area Properties#
Gross area properties can be retrieved by calling the
get_gross_properties()
method.
- ConcreteSection.get_gross_properties()[source]
Returns the gross section properties of the reinforced concrete section.
- Returns
GrossProperties
– Gross concrete properties object
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 GrossProperties(total_area=0, concrete_area=0, reinf_meshed_area=0, reinf_lumped_area=0, strand_area=0, e_a=0, mass=0, perimeter=0, e_qx=0, e_qy=0, qx_gross=0, qy_gross=0, cx=0, cy=0, cx_gross=0, cy_gross=0, e_ixx_g=0, e_iyy_g=0, e_ixy_g=0, e_ixx_c=0, e_iyy_c=0, e_ixy_c=0, e_i11=0, e_i22=0, phi=0, e_zxx_plus=0, e_zxx_minus=0, e_zyy_plus=0, e_zyy_minus=0, e_z11_plus=0, e_z11_minus=0, e_z22_plus=0, e_z22_minus=0, conc_ultimate_strain=0, n_prestress=0, m_prestress=0)[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 the
get_transformed_gross_properties()
method.- print_results(fmt='8.6e')[source]
Prints the gross concrete section properties to the terminal.
- Parameters
fmt (
str
, default:'8.6e'
) – Number format
Transformed gross area properties can be obtained by calling the
get_transformed_gross_properties()
method.
- ConcreteSection.get_transformed_gross_properties(elastic_modulus)[source]
Transforms gross section properties given a reference elastic modulus.
- Parameters
elastic_modulus (
float
) – Reference elastic modulus- Returns
TransformedGrossProperties
– Transformed concrete properties object
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 TransformedGrossProperties(concrete_properties, elastic_modulus, area=0, qx=0, qy=0, ixx_g=0, iyy_g=0, ixy_g=0, ixx_c=0, iyy_c=0, ixy_c=0, i11=0, i22=0, zxx_plus=0, zxx_minus=0, zyy_plus=0, zyy_minus=0, z11_plus=0, z11_minus=0, z22_plus=0, z22_minus=0)[source]
Class for storing transformed gross concrete section properties.
- Parameters
concrete_properties (
GrossProperties
) – Concrete properties objectelastic_modulus (
float
) – Reference elastic modulus
- print_results(fmt='8.6e')[source]
Prints the transformed gross concrete section properties to the terminal.
- Parameters
fmt (
str
, default:'8.6e'
) – Number format
See also
For an application of the above, see the example Calculating Area Properties.
5.2. Cracked Area Properties#
Performing a cracked analysis with
calculate_cracked_properties()
returns a CrackedResults
object.
- class CrackedResults(theta, n=0, m=0, m_cr=0, d_nc=0, cracked_geometries=<factory>, e_a_cr=0, e_qx_cr=0, e_qy_cr=0, cx=0, cy=0, e_ixx_g_cr=0, e_iyy_g_cr=0, e_ixy_g_cr=0, e_ixx_c_cr=0, e_iyy_c_cr=0, e_ixy_c_cr=0, e_iuu_cr=0, e_i11_cr=0, e_i22_cr=0, phi_cr=0, elastic_modulus_ref=None, a_cr=None, qx_cr=None, qy_cr=None, ixx_g_cr=None, iyy_g_cr=None, ixy_g_cr=None, ixx_c_cr=None, iyy_c_cr=None, ixy_c_cr=None, iuu_cr=None, i11_cr=None, i22_cr=None)[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 the
calculate_transformed_properties()
method.- Parameters
theta (
float
) – Angle (in radians) the neutral axis makes with the horizontal axis (\(-\pi \leq \theta \leq \pi\))
- reset_results()[source]
Resets the analysis results.
- Return type
None
- calculate_transformed_properties(elastic_modulus)[source]
Calculates and stores transformed cracked properties using a reference elastic modulus.
- Parameters
elastic_modulus (
float
) – Reference elastic modulus
- plot_cracked_geometries(title='Cracked Geometries', **kwargs)[source]
Plots the geometries that remain (are in compression or are reinforcement) after a cracked analysis.
- Parameters
title (
str
, default:'Cracked Geometries'
) – Plot titlekwargs – Passed to
plot_geometry()
- Returns
Axes
– Matplotlib axes object
- print_results(fmt='8.6e')[source]
Prints the cracked concrete section properties to the terminal.
- Parameters
fmt (
str
, default:'8.6e'
) – Number format
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.
5.3. Moment Curvature Analysis#
Running a
moment_curvature_analysis()
returns a MomentCurvatureResults
object. This
object can be used to plot moment curvature results.
- class MomentCurvatureResults(theta, n_target, kappa=<factory>, n=<factory>, m_x=<factory>, m_y=<factory>, m_xy=<factory>, convergence=<factory>, _kappa=0, _n_i=0, _m_x_i=0, _m_y_i=0, _failure=False, _failure_convergence=0)[source]
Class for storing moment curvature results.
- Parameters
theta (
float
) – Angle (in radians) the neutral axis makes with the horizontaln_target (
float
) – Target axial force axis (\(-\pi \leq \theta \leq \pi\))kappa (
List
[float
], default:<factory>
) – List of curvaturesn (
List
[float
], default:<factory>
) – List of axial forcesm_x (
List
[float
], default:<factory>
) – List of bending moments about the x-axism_y (
List
[float
], default:<factory>
) – List of bending moments about the y-axism_xy (
List
[float
], default:<factory>
) – List of resultant bending momentsfailure_geometry – Geometry object of the region of the cross-section that failed, ending the moment curvature analysis
convergence (
List
[float
], default:<factory>
) – 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=1e-06, fmt='o-', **kwargs)[source]
Plots the moment curvature results.
- Parameters
m_scale (
float
, default:1e-06
) – Scaling factor to apply to bending momentfmt (
str
, default:'o-'
) – Plot format stringkwargs – Passed to
plotting_context()
- Returns
Axes
– Matplotlib axes object
- static plot_multiple_results(moment_curvature_results, labels, m_scale=1e-06, fmt='o-', **kwargs)[source]
Plots multiple moment curvature results.
- Parameters
moment_curvature_results (
List
[MomentCurvatureResults
]) – List of moment curvature results objectslabels (
List
[str
]) – List of labels for each moment curvature diagramm_scale (
float
, default:1e-06
) – Scaling factor to apply to bending momentfmt (
str
, default:'o-'
) – Plot format stringkwargs – Passed to
plotting_context()
- Returns
Axes
– Matplotlib axes object
See also
For an application of the above, see the example Moment Curvature Analysis.
5.4. 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 UltimateBendingResults(theta, d_n=0, k_u=0, n=0, m_x=0, m_y=0, m_xy=0, label=None)[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
, default:0
) – Ultimate neutral axis depthk_u (
float
, default:0
) – Neutral axis parameter (d_n / d)n (
float
, default:0
) – Resultant axial forcem_x (
float
, default:0
) – Resultant bending moment about the x-axism_y (
float
, default:0
) – Resultant bending moment about the y-axism_xy (
float
, default:0
) – Resultant bending momentlabel (
Optional
[str
], default:None
) – Result label
- print_results(fmt='8.6e')[source]
Prints the ultimate bending results to the terminal.
- Parameters
fmt (
str
, default:'8.6e'
) – Number format
See also
For an application of the above, see the example Ultimate Bending Capacity.
5.5. Moment Interaction Diagram#
Calling the
moment_interaction_diagram()
method returns a MomentInteractionResults
object.
This object can be used to plot moment interaction results.
- class MomentInteractionResults(results=<factory>)[source]
Class for storing moment interaction results.
- Parameters
results (
List
[UltimateBendingResults
], default:<factory>
) – List of ultimate bending result objects
- plot_diagram(n_scale=0.001, m_scale=1e-06, moment='m_x', fmt='o-', labels=False, label_offset=False, **kwargs)[source]
Plots a moment interaction diagram.
- Parameters
n_scale (
float
, default:0.001
) – Scaling factor to apply to axial forcem_scale (
float
, default:1e-06
) – Scaling factor to apply to the bending momentmoment (
str
, default:'m_x'
) – Which moment to plot, acceptable values are"m_x"
,"m_y"
or"m_xy"
fmt (
str
, default:'o-'
) – Plot format stringlabels (
bool
, default:False
) – If set to True, also plots labels on the diagramlabel_offset (
bool
, default:False
) – If set to True, attempts to offset the label from the diagramkwargs – Passed to
plotting_context()
- Returns
Axes
– Matplotlib axes object
- static plot_multiple_diagrams(moment_interaction_results, labels, n_scale=0.001, m_scale=1e-06, moment='m_x', fmt='o-', **kwargs)[source]
Plots multiple moment interaction diagrams.
- Parameters
moment_interaction_results (
List
[MomentInteractionResults
]) – List of moment interaction results objectslabels (
List
[str
]) – List of labels for each moment interaction diagramn_scale (
float
, default:0.001
) – Scaling factor to apply to axial forcem_scale (
float
, default:1e-06
) – Scaling factor to apply to bending momentmoment (
str
, default:'m_x'
) – Which moment to plot, acceptable values are"m_x"
,"m_y"
or"m_xy"
fmt (
str
, default:'o-'
) – Plot format stringkwargs – Passed to
plotting_context()
- Returns
Axes
– Matplotlib axes object
- point_in_diagram(n, m, moment='m_x')[source]
Determines whether or not the combination of axial force and moment lies within the moment interaction diagram.
- Parameters
n (
float
) – Axial forcem (
float
) – Bending momentmoment (
str
, default:'m_x'
) – Which moment to analyse, acceptable values are"m_x"
,"m_y"
or"m_xy"
- Returns
bool
– True, if combination of axial force and moment is within the diagram
See also
For an application of the above, see the example Moment Interaction Diagram.
5.6. Biaxial Bending Diagram#
The
biaxial_bending_diagram()
method returns a BiaxialBendingResults
object.
This object can be used to plot biaxial bending results.
- class BiaxialBendingResults(n, results=<factory>)[source]
Class for storing biaxial bending results.
- Parameters
n (
float
) – Net axial forceresults (
List
[UltimateBendingResults
], default:<factory>
) – List of ultimate bending result objects
- plot_diagram(m_scale=1e-06, fmt='o-', **kwargs)[source]
Plots a biaxial bending diagram.
- Parameters
m_scale (
float
, default:1e-06
) – Scaling factor to apply to bending momentfmt (
str
, default:'o-'
) – Plot format stringkwargs – Passed to
plotting_context()
- Returns
Axes
– Matplotlib axes object
- static plot_multiple_diagrams_2d(biaxial_bending_results, labels=None, m_scale=1e-06, fmt='o-', **kwargs)[source]
Plots multiple biaxial bending diagrams in a 2D plot.
- Parameters
biaxial_bending_results (
List
[BiaxialBendingResults
]) – List of biaxial bending results objectslabels (
Optional
[List
[str
]], default:None
) – List of labels for each biaxial bending diagram, if not provided labels are axial forcesm_scale (
float
, default:1e-06
) – Scaling factor to apply to bending momentfmt (
str
, default:'o-'
) – Plot format stringkwargs – Passed to
plotting_context()
- Returns
Axes
– Matplotlib axes object
- static plot_multiple_diagrams_3d(biaxial_bending_results, n_scale=0.001, m_scale=1e-06, fmt='-')[source]
Plots multiple biaxial bending diagrams in a 3D plot.
- Parameters
biaxial_bending_results (
List
[BiaxialBendingResults
]) – List of biaxial bending results objectsn_scale (
float
, default:0.001
) – Scaling factor to apply to axial forcem_scale (
float
, default:1e-06
) – Scaling factor to apply to bending momentfmt (
str
, default:'-'
) – Plot format string
- Returns
Axes
– Matplotlib axes object
- point_in_diagram(m_x, m_y)[source]
Determines whether or not the combination of bending moments lies within the biaxial bending diagram.
- Parameters
m_x (
float
) – Bending moment about the x-axism_y (
float
) – Bending moment about the y-axis
- Returns
bool
– True, if combination of bendings moments is within the diagram
See also
For an application of the above, see the example Biaxial Bending Diagram.
5.7. 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 StressResult(concrete_section, concrete_analysis_sections, concrete_stresses, concrete_forces, meshed_reinforcement_sections, meshed_reinforcement_stresses, meshed_reinforcement_forces, lumped_reinforcement_geometries, lumped_reinforcement_stresses, lumped_reinforcement_strains, lumped_reinforcement_forces, strand_geometries=<factory>, strand_stresses=<factory>, strand_strains=<factory>, strand_forces=<factory>, _m_net=None)[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 theplot_mesh()
orplot_shape()
concrete_stresses (
List
[ndarray
]) – List of concrete stresses at the nodes of each concrete analysis sectionconcrete_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 analysismeshed_reinforcement_stresses (
List
[ndarray
]) – List of meshed reinforcement stresses at the nodes of each meshed reinforcement analysis sectionmeshed_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 analysislumped_reinforcement_stresses (
List
[float
]) – List of lumped reinforcement stresses for each lumped geometrylumped_reinforcement_strains (
List
[float
]) – List of lumped reinforcement strains for each lumped geometrylumped_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
], default:<factory>
) – List of strand geometry objects present in the stress analysisstrand_stresses (
List
[float
], default:<factory>
) – List of strand stresses for each strandstrand_strains (
List
[float
], default:<factory>
) – List of strand strains for each strandstrand_forces (
List
[Tuple
[float
,float
,float
]], default:<factory>
) – List of net forces for each strand geometry and its lever arm (force
,d_x
,d_y
)
- plot_stress(title='Stress', conc_cmap='RdGy', reinf_cmap='bwr', **kwargs)[source]
Plots concrete and steel stresses on a concrete section.
- Parameters
title (
str
, default:'Stress'
) – Plot titleconc_cmap (
str
, default:'RdGy'
) – Colour map for the concrete stressreinf_cmap (
str
, default:'bwr'
) – Colour map for the reinforcement stresskwargs – Passed to
plotting_context()
- Returns
Axes
– Matplotlib axes object
- sum_forces()[source]
Returns the sum of the internal forces.
- Returns
float
– Sum of internal forces
- sum_moments()[source]
Returns the sum of the internal moments.
- Returns
Tuple
[float
,float
,float
] – Sum of internal moments about each axis and resultant moment (m_x
,m_y
,m
)
- get_concrete_stress_limits()[source]
Returns the minimum and maximum concrete stress.
- Returns
Tuple
[float
,float
] – Minimum concrete stress, maximum concrete stress
See also
For an application of the above, see the example Stress Analysis.