AnalysisSection#
- class concreteproperties.analysis_section.AnalysisSection(geometry: CPGeom)[source]#
Bases:
object
Class for an analysis section to perform a fast analysis on meshed sections.
Methods
Calculates the area of the analysis section based on the generated mesh.
Given section actions and section propreties, calculates elastic stresses.
Determines the service stresses.
Determines the ultimate stresses.
Plots the finite element mesh.
Plots the coloured shape of the mesh with no outlines on
ax
.Performs a service analysis on the section.
Performs an ultimate analysis on the section.
- __init__(geometry: CPGeom) None [source]#
Inits the AnalysisSection class.
- Parameters:
geometry (CPGeom) – Geometry object
- calculate_meshed_area() float [source]#
Calculates the area of the analysis section based on the generated mesh.
- Returns:
Meshed area (un-weighted by elastic modulus)
- Return type:
- 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) tuple[ndarray, float, 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
- Returns:
Elastic stresses, net force and distance from neutral axis to point of force action
- Return type:
- service_analysis(ecf: tuple[float, float], eps0: float, theta: float, kappa: float, centroid: tuple[float, float]) tuple[float, float, float, float, float] [source]#
Performs a service 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:
Axial force, section moments and min/max strain
- Return type:
- get_service_stress(kappa: float, ecf: tuple[float, float], eps0: float, theta: float, centroid: tuple[float, float]) tuple[ndarray, float, float, float] [source]#
Determines the service stresses.
Given the neutral axis depth
d_n
and curvaturekappa
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:
Service stresses, net force and distance from centroid to point of force action
- Return type:
- ultimate_analysis(point_na: tuple[float, float], d_n: float, theta: float, ultimate_strain: float, centroid: tuple[float, float]) tuple[float, float, float] [source]#
Performs an ultimate analysis on the section.
- Parameters:
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:
Axial force and resultant moments about the global axes
- Return type:
- get_ultimate_stress(d_n: float, point_na: tuple[float, float], theta: float, ultimate_strain: float, centroid: tuple[float, float]) tuple[ndarray, float, float, float] [source]#
Determines the ultimate stresses.
Given the neutral axis depth
d_n
and ultimate strain, determines the ultimate stresses with the section.- Parameters:
- Returns:
Ultimate stresses net force and distance from neutral axis to point of force action
- Return type:
- plot_mesh(alpha: float = 0.5, title: str = 'Finite Element Mesh', **kwargs) matplotlib.axes.Axes [source]#
Plots the finite element mesh.
- Parameters:
alpha (float) – Transparency of the mesh outlines
title (str) – Plot title
kwargs – Passed to
plotting_context()
- Returns:
Matplotlib axes object
- Return type:
- plot_shape(ax: matplotlib.axes.Axes) None [source]#
Plots the coloured shape of the mesh with no outlines on
ax
.- Parameters:
ax (matplotlib.axes.Axes) – Matplotlib axes object