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() ConcreteProperties[source]

Returns the gross section properties of the reinforced concrete section.

Returns

Concrete properties object

Return type

ConcreteProperties

This method returns a ConcreteProperties 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[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: Optional[str] = '8.6e')[source]

Prints the gross concrete section properties to the terminal.

Parameters

fmt (Optional[str]) – Number format

Transformed gross area properties can be obtained by calling the get_transformed_gross_properties() method.

ConcreteSection.get_transformed_gross_properties(elastic_modulus: float) TransformedConcreteProperties[source]

Transforms gross section properties given a reference elastic modulus.

Parameters

elastic_modulus (float) – Reference elastic modulus

Returns

Transformed concrete properties object

Return type

TransformedConcreteProperties

This method returns a TransformedConcreteProperties 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 TransformedConcreteProperties[source]

Class for storing transformed gross concrete section properties.

Parameters
  • concrete_properties (ConcreteProperties) – Concrete properties object

  • elastic_modulus (float) – Reference elastic modulus

print_results(fmt: Optional[str] = '8.6e')[source]

Prints the transformed gross concrete section properties to the terminal.

Parameters

fmt (Optional[str]) – Number format

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 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 the calculate_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)[source]

Calculates and stores transformed cracked properties using a reference elastic modulus.

Parameters

elastic_modulus (float) – Reference elastic modulus

plot_cracked_geometries(title: Optional[str] = 'Cracked Geometries', **kwargs) matplotlib.axes.Axes[source]

Plots the geometries that remain (are in compression or are steel) after a cracked analysis.

Parameters
  • title (Optional[str]) – Plot title

  • kwargs – Passed to plot_geometry()

Returns

Matplotlib axes object

Return type

matplotlib.axes.Axes

print_results(fmt: Optional[str] = '8.6e')[source]

Prints the cracked concrete section properties to the terminal.

Parameters

fmt (Optional[str]) – Number format

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 MomentCurvatureResults[source]

Class for storing moment curvature results.

Parameters

theta (float) – Angle (in radians) the neutral axis makes with the horizontal axis (\(-\pi \leq \theta \leq \pi\))

Variables
  • kappa (List[float]) – List of curvatures

  • moment (List[float]) – List of bending moments

  • failure_geometry (sectionproperties.pre.geometry.Geometry) – Geometry object of the region of the cross-section that failed, ending the moment curvature analysis

plot_results(m_scale: Optional[float] = 1e-06, **kwargs) matplotlib.axes.Axes[source]

Plots the moment curvature results.

Parameters
  • m_scale (Optional[float]) – Scaling factor to apply to bending moment

  • kwargs – Passed to plotting_context()

Returns

Matplotlib axes object

Return type

matplotlib.axes.Axes

static plot_multiple_results(moment_curvature_results: List[MomentCurvatureResults], labels: List[str], m_scale: Optional[float] = 1e-06, **kwargs) matplotlib.axes.Axes[source]

Plots multiple moment curvature results.

Parameters
  • moment_curvature_results – List of moment curvature results objects

  • labels (List[str]) – List of labels for each moment curvature diagram

  • m_scale (Optional[float]) – Scaling factor to apply to bending moment

  • kwargs – Passed to plotting_context()

Returns

Matplotlib axes object

Return type

matplotlib.axes.Axes

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 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\))

Variables
  • 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_u (float) – Resultant bending moment about the u-axis

print_results(fmt: Optional[str] = '8.6e')[source]

Prints the ultimate bending results to the terminal.

Parameters

fmt (Optional[str]) – Number format

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 MomentInteractionResults[source]

Class for storing moment interaction results.

Variables
  • n (List[float]) – List of axial forces

  • m (List[float]) – List of bending moments

plot_diagram(n_scale: Optional[float] = 0.001, m_scale: Optional[float] = 1e-06, **kwargs) matplotlib.axes.Axes[source]

Plots a moment interaction diagram.

Parameters
  • n_scale (Optional[float]) – Scaling factor to apply to axial force

  • n_scale – Scaling factor to apply to axial force

  • kwargs – Passed to plotting_context()

Returns

Matplotlib axes object

Return type

matplotlib.axes.Axes

static plot_multiple_diagrams(moment_interaction_results: List[MomentInteractionResults], labels: List[str], n_scale: Optional[float] = 0.001, m_scale: Optional[float] = 1e-06, **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 (Optional[float]) – Scaling factor to apply to axial force

  • m_scale (Optional[float]) – Scaling factor to apply to bending moment

  • kwargs – Passed to plotting_context()

Returns

Matplotlib axes object

Return type

matplotlib.axes.Axes

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 BiaxialBendingResults[source]

Class for storing biaxial bending results.

Parameters

n (float) – Net axial force

Variables
  • m_x (List[float]) – List of bending moments about the x-axis

  • m_y (List[float]) – List of bending moments about the y-axis

plot_diagram(m_scale: Optional[float] = 1e-06, **kwargs) matplotlib.axes.Axes[source]

Plots a biaxial bending diagram.

Parameters
  • m_scale (Optional[float]) – Scaling factor to apply to bending moment

  • kwargs – Passed to plotting_context()

Returns

Matplotlib axes object

Return type

matplotlib.axes.Axes

static plot_multiple_diagrams(biaxial_bending_results: List[BiaxialBendingResults], n_scale: Optional[float] = 0.001, m_scale: Optional[float] = 1e-06) 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 (Optional[float]) – Scaling factor to apply to axial force

  • m_scale (Optional[float]) – Scaling factor to apply to bending moment

Returns

Matplotlib axes object

Return type

matplotlib.axes.Axes

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 StressResult[source]

Class for storing stress results.

Variables
  • 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() or plot_shape()

  • concrete_stresses (List[numpy.ndarray]) – List of concrete stresses at the nodes of each concrete analysis section

  • concrete_forces (List[Tuple[float]]) – List of net forces for each concrete analysis section and its lever arm to the neutral axis (force, lever_arm)

  • steel_geometries (List[sectionproperties.pre.geometry.Geometry]) – List of steel geometry objects present in the stress analysis

  • steel_stresses (List[float]) – List of steel stresses for each steel geometry

  • steel_strains (List[float]) – List of steel strains for each steel geometry

  • steel_forces (List[Tuple[float]]) – List of net forces for each steel geometry and its lever arm to the neutral axis (force, lever_arm)

plot_stress(title: Optional[str] = 'Stress', conc_cmap: Optional[str] = 'RdGy', steel_cmap: Optional[str] = 'bwr', **kwargs) matplotlib.axes.Axes[source]

Plots concrete and steel stresses on a concrete section.

Parameters
  • title (Optional[str]) – Plot title

  • conc_cmap (Optional[str]) – Colour map for the concrete stress

  • steel_cmap (Optional[str]) – Colour map for the steel stress

  • kwargs – Passed to plotting_context()

Returns

Matplotlib axes object

Return type

matplotlib.axes.Axes

sum_forces() float[source]

Returns the sum of the internal forces.

Returns

Sum of internal forces

Return type

float

sum_moments() float[source]

Returns the sum of the internal moments.

Returns

Sum of internal moments

Return type

float

See also

For an application of the above, see the example Stress Analysis.