concreteproperties.analysis_section.AnalysisSection#

class AnalysisSection(geometry)[source]#

Bases: object

Class for an analysis section to perform a fast analysis on meshed sections.

Inits the AnalysisSection class.

Parameters

geometry (CPGeom) – Geometry object

Methods

calculate_meshed_area

Calculates the area of the analysis section based on the generated mesh.

get_elastic_stress

Given section actions and section propreties, calculates elastic stresses.

get_service_stress

Given the neutral axis depth d_n and curvature kappa determines the service stresses within the section.

get_ultimate_stress

Given the neutral axis depth d_n and ultimate strain, determines the ultimate stresses with the section.

plot_mesh

Plots the finite element mesh.

plot_shape

Plots the coloured shape of the mesh with no outlines on ax.

service_analysis

Performs a service stress analysis on the section.

ultimate_analysis

Performs an ultimate stress analysis on the section.

calculate_meshed_area()[source]#

Calculates the area of the analysis section based on the generated mesh.

Returns

float – Meshed area (un-weighted by elastic modulus)

get_elastic_stress(n, m_x, m_y, e_a, cx, cy, e_ixx, e_iyy, e_ixy)[source]#

Given section actions and section propreties, calculates elastic stresses.

Parameters
  • n (float) – Axial force

  • m_x (float) – Bending moment about the x-axis

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

  • e_a (float) – Axial rigidity

  • cx (float) – x-Centroid

  • cy (float) – y-Centroid

  • e_ixx (float) – Flexural rigidity about the x-axis

  • e_iyy (float) – Flexural rigidity about the y-axis

  • e_ixy (float) – Flexural rigidity about the xy-axis

Returns

Tuple[ndarray, float, float, float] – Elastic stresses, net force and distance from neutral axis to point of force action

service_analysis(ecf, eps0, theta, kappa, centroid)[source]#

Performs a service stress analysis on the section.

Parameters
  • ecf (Tuple[float, float]) – Global coordinate of the extreme compressive fibre

  • eps0 (float) – Strain at top fibre

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

  • kappa (float) – Curvature

  • centroid (Tuple[float, float]) – Centroid about which to take moments

Returns

Tuple[float, float, float, float, float] – Axial force, section moments and min/max strain

get_service_stress(kappa, ecf, eps0, theta, centroid)[source]#

Given the neutral axis depth d_n and curvature kappa determines the service stresses within the section.

Parameters
  • kappa (float) – Curvature

  • ecf (Tuple[float, float]) – Global coordinate of the extreme compressive fibre

  • eps0 (float) – Strain at top fibre

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

  • centroid (Tuple[float, float]) – Centroid about which to take moments

Returns

Tuple[ndarray, float, float, float] – Service stresses, net force and distance from centroid to point of force action

ultimate_analysis(point_na, d_n, theta, ultimate_strain, centroid)[source]#

Performs an ultimate stress analysis on the section.

Parameters
  • point_na (Tuple[float, float]) – Point on the neutral axis

  • d_n (float) – Depth of the neutral axis from the extreme compression fibre

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

  • ultimate_strain (float) – Concrete strain at failure

  • centroid (Tuple[float, float]) – Centroid about which to take moments

Returns

Tuple[float, float, float] – Axial force and resultant moments about the global axes

get_ultimate_stress(d_n, point_na, theta, ultimate_strain, centroid)[source]#

Given the neutral axis depth d_n and ultimate strain, determines the ultimate stresses with the section.

Parameters
  • d_n (float) – Neutral axis depth

  • point_na (Tuple[float, float]) – Point on the neutral axis

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

  • ultimate_strain (float) – Concrete strain at failure

  • centroid (Tuple[float, float]) – Centroid about which to take moments

Returns

Tuple[ndarray, float, float, float] – Ultimate stresses net force and distance from neutral axis to point of force action

plot_mesh(alpha=0.5, title='Finite Element Mesh', **kwargs)[source]#

Plots the finite element mesh.

Parameters
  • alpha (float, default: 0.5) – Transparency of the mesh outlines

  • title (str, default: 'Finite Element Mesh') – Plot title

  • kwargs – Passed to plotting_context()

Returns

Axes – Matplotlib axes object

plot_shape(ax)[source]#

Plots the coloured shape of the mesh with no outlines on ax.

Parameters

ax (Axes) – Matplotlib axes object