concreteproperties.analysis_section.AnalysisSection#

class AnalysisSection(geometry: Geometry)[source]#

Bases: object

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

Inits the AnalysisSection class.

Parameters

geometry (sectionproperties.pre.geometry.Geometry) – Geometry object

Methods

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_stress_analysis

Performs a service stress analysis on the section.

ultimate_stress_analysis

Performs an ultimate stress analysis on the section.

get_elastic_stress(n: float, m_x: float, m_y: float, e_a: float, cx: float, cy: float, e_ixx: float, e_iyy: float, e_ixy: float, theta: float) Tuple[ndarray, float, float][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

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

Returns

Elastic stresses, net force and distance from neutral axis to point of force action

Return type

Tuple[numpy.ndarray, float, float]

service_stress_analysis(point_na: Tuple[float], d_n: float, theta: float, kappa: float, na_local: float) Tuple[float][source]#

Performs a service stress analysis on the section.

Parameters
  • point_na (Tuple[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\))

  • kappa (float) – Curvature

  • na_local (float) – y-location of the neutral axis in local coordinates

Returns

Axial force, resultant moment and max strain

Return type

Tuple[float]

get_service_stress(d_n: float, kappa: float, point_na: Tuple[float], theta: float, na_local: float) Tuple[ndarray, float, float][source]#

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

Parameters
  • d_n (float) – Neutral axis depth

  • kappa (float) – Curvature

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

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

  • na_local (float) – y-location of the neutral axis in local coordinates

Returns

Service stresses, net force and distance from neutral axis to point of force action

Return type

Tuple[numpy.ndarray, float, float]

ultimate_stress_analysis(point_na: Tuple[float], d_n: float, theta: float, ultimate_strain: float, pc_local: float) Tuple[float][source]#

Performs an ultimate stress analysis on the section.

Parameters
  • point_na (Tuple[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

  • pc_local (float) – y-location of the plastic centroid in local coordinates

Returns

Axial force and resultant moment

Return type

Tuple[float]

get_ultimate_stress(d_n: float, point_na: Tuple[float], theta: float, ultimate_strain: float, pc_local: float) Tuple[ndarray, float, float][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]) – 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

  • pc_local (float) – y-location of the plastic centroid in local coordinates

Returns

Ultimate stresses net force and distance from neutral axis to point of force action

Return type

Tuple[numpy.ndarray, float, float]

plot_mesh(alpha: Optional[float] = 0.5, title: Optional[str] = 'Finite Element Mesh', **kwargs) matplotlib.axes.Axes[source]#

Plots the finite element mesh.

Parameters
  • alpha (Optional[float]) – Transparency of the mesh outlines

  • title (Optional[str]) – Plot title

  • kwargs – Passed to plotting_context()

Returns

Matplotlib axes object

Return type

matplotlib.axes.Axes

plot_shape(ax: matplotlib.axes.Axes)[source]#

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

Parameters

ax (matplotlib.axes.Axes) – Matplotlib axes object