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, fmt: Optional[str] = 'o-', **kwargs) matplotlib.axes.Axes[source]

Plots the moment curvature results.

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

  • fmt (Optional[str]) – Plot format string

  • 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, fmt: Optional[str] = 'o-', **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

  • fmt (Optional[str]) – Plot format string

  • 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
  • results (List[UltimateBendingResults]) – List of ultimate bending result objects

  • results_neg – List of ultimate bending result objects (for negative bending)

plot_diagram(n_scale: Optional[float] = 0.001, m_scale: Optional[float] = 1e-06, fmt: Optional[str] = 'o-', **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

  • fmt (Optional[str]) – Plot format string

  • 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, fmt: Optional[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 (Optional[float]) – Scaling factor to apply to axial force

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

  • fmt (Optional[str]) – Plot format string

  • kwargs – Passed to plotting_context()

Returns

Matplotlib axes object

Return type

matplotlib.axes.Axes

point_in_diagram(n: float, m: float) bool[source]

Determines whether or not the combination of axial force and moment lies within the moment interaction diagram.

Parameters
  • n (float) – Axial force

  • m (float) – Bending moment

Returns

True, if combination of axial force and moment is within the diagram

Return type

bool

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

results (List[UltimateBendingResults]) – List of ultimate bending result objects

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

Plots a biaxial bending diagram.

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

  • fmt (Optional[str]) – Plot format string

  • 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, fmt: Optional[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 (Optional[float]) – Scaling factor to apply to axial force

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

  • fmt (Optional[str]) – Plot format string

Returns

Matplotlib axes object

Return type

matplotlib.axes.Axes

point_in_diagram(m_x: float, m_y: float) bool[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-axis

  • m_y (float) – Bending moment about the y-axis

Returns

True, if combination of bendings moments is within the diagram

Return type

bool

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.

For uncracked and cracked analyses, the lever arm is the distance to the elastic centroid.

For service stress analyses, the lever arm is the distance to the computed centroid.

For ultimate stress analyses, the lever arm is the distance to the plastic centroid.

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, d_x, d_y)

  • 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, d_x, d_y)

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

Returns the sum of the internal moments.

Returns

Sum of internal moments about each axis and resultant moment (m_x, m_y, m)

Return type

Tuple[float]

See also

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