Section#
- class sectionproperties.analysis.section.Section(geometry: Geometry | CompoundGeometry, time_info: bool = False)[source]#
Bases:
object
Class for structural cross-sections.
Stores the finite element geometry, mesh and material information and provides methods to compute the cross-section properties.
- Variables:
geometry (Geometry | CompoundGeometry) – Cross-section geometry
materials (list[Material]) – List of materials in the geometry
material_groups (list[MaterialGroup]) – List of class:~sectionproperties.pre.pre.MaterialGroup objects, which contain the finite elements and stress results (if applicable) for each defined material
mesh (dict[str, Any]) – Finite element mesh generated by
triangle
num_nodes (int) – Number of nodes in the finite element mesh
elements (list[Tri6]) – List of finite element objects describing the cross-section mesh
mesh_search_tree (STRtree) – STRtree to enable efficient lookup of elements in the mesh
section_props (SectionProperties) – Class to store calculated section properties
Methods
Assembles the warping stiffness matrix.
Calculates section properties to be used for frame analysis.
Calculates geometric (area) properties.
Calculates plastic properties.
Calculates cross-section stresses.
Calculates warping properties.
Prints mesh statistics to the command line.
Prints the results that have been calculated to the terminal.
Returns the cross-section area.
Returns the cross-section centroidal axis shear area.
Returns the cross-section princicpal axis shear area.
Returns the cross-section global monosymmetry constants.
Returns the cross-section principal monosymmetry constants.
Returns the cross-section elastic centroid.
Returns the cross-section effective elastic modulus.
Extract transformed elastic modulus from e_ref (float or material).
Returns the cross-section axial rigidity.
Returns modulus-weighted the cross-section centroidal axis shear area.
Returns the modulus-weighted cross-section princicpal axis shear area.
Returns the modulus-weighted cross-section warping constant.
Returns the modulus-weighted cross-section centroidal second moments of area.
Returns the modulus-weighted cross-section global second moments of area.
Returns the modulus-weighted cross-section principal second moments of area.
Returns the modulus-weighted cross-section St Venant torsion constant.
Returns the modulus-weighted cross-section first moments of area.
Returns the modulus-weighted cross-section centroidal elastic section moduli.
Returns the modulus-weighted cross-section principal elastic section moduli.
Returns the cross-section effective shear modulus.
Returns the cross-section warping constant.
Returns the cross-section centroidal second moments of area.
Returns the cross-section global second moments of area.
Returns the cross-section principal second moments of area.
Returns the cross-section St Venant torsion constant.
Returns the cross-section mass.
Returns the cross-section plastic moment about the centroidal axis.
Returns the cross-section plastic moment about the principal axis.
Returns the cross-section effective Poisson's ratio.
Returns the cross-section centroidal axis plastic centroid.
Returns the cross-section principal axis plastic centroid.
Returns the cross-section perimeter.
Returns the cross-section principal bending angle.
Returns the cross-section first moments of area.
Returns the cross-section centroidal radii of gyration.
Returns the cross-section principal radii of gyration.
Returns the cross-section centroidal plastic section moduli.
Returns the cross-section centroidal shear centre (elasticity).
Returns the cross-section principal shear centre (elasticity).
Returns the cross-section centroidal shear centre (Trefftz's method).
Returns the cross-section centroidal axis shape factors.
Returns the cross-section principal axis shape factors.
Returns the cross-section principal axis plastic section moduli.
Calculates the stress for a list of points.
Returns the cross-section centroidal elastic section moduli.
Returns the cross-section principal elastic section moduli.
Returns whether or not a composite section is being analysed.
Plots the calculated centroids over the mesh.
Plots the finite element mesh.
Plots the warping function over the mesh.
- __init__(geometry: Geometry | CompoundGeometry, time_info: bool = False) None [source]#
Inits the Section class.
The constructor extracts information from the provided mesh object and creates and stores the corresponding finite element objects.
- Parameters:
geometry (Geometry | CompoundGeometry) – Cross-section geometry object used to generate the mesh
time_info (bool) – If set to True, a detailed description of the computation and the time cost is printed to the terminal for every computation performed
- Raises:
ValueError – If geometry does not contain a mesh
AssertionError – If the number of materials does not equal the number of regions
- calculate_geometric_properties() None [source]#
Calculates geometric (area) properties.
Calculates the geometric properties of the cross-section and stores them in the
SectionProperties
object contained in thesection_props
variable.Note
If materials are specified for the cross-section, the moments of area and section moduli are elastic modulus weighted.
Geometric Properties
Below is a list of the section properties calculated by the
calculate_geometric_properties()
method:Cross-sectional area
Cross-sectional perimeter
Cross-sectional mass
Area weighted material properties (composite only) \(E_{eff}\), \(G_{eff}\), \({\nu}_{eff}\)
Modulus weighted area (axial rigidity)
First moments of area
Second moments of area about the global axis
Second moments of area about the centroidal axis
Elastic centroid
Centroidal section moduli
Radii of gyration
Principal axis properties
- calculate_warping_properties(solver_type: str = 'direct') None [source]#
Calculates warping properties.
Calculates all the warping properties of the cross-section and stores them in the
SectionProperties
object contained in thesection_props
variable.- Parameters:
solver_type (str) – Solver used for solving systems of linear equations, either using the
"direct"
method or"cgs"
iterative method- Raises:
RuntimeError – If the geometric properties have not been calculated prior to calling this method
Note
If materials are specified, the values calculated for the torsion constant, warping constant and shear areas are elastic modulus weighted.
Warning
The geometric properties must be calculated prior to the calculation of the warping properties.
Warping Properties
Below is a list of the section properties calculated by the
calculate_warping_properties()
method:Torsion constant
Shear centre
Shear area
Warping constant
Monosymmetry constant
- calculate_frame_properties(solver_type: str = 'direct') tuple[float, float, float, float, float, float] [source]#
Calculates section properties to be used for frame analysis.
Calculates and returns the properties required for a frame analysis. The properties are also stored in the
SectionProperties
object contained in thesection_props
variable.This method is more efficient than running a geometric and warping analysis as unnecessary values are not calculated.
- Parameters:
solver_type (str) – Solver used for solving systems of linear equations, either using the
"direct"
method or"cgs"
iterative method- Returns:
Cross-section properties to be used for a frame analysis (
area
,ixx
,iyy
,ixy
,j
,phi
)- Return type:
Note
If materials are specified, the values calculated for the moments of area and the torsion constant are elastic modulus weighted.
Warping Properties
Below is a list of the section properties calculated by the
calculate_frame_properties()
method:Cross-sectional area
Second moments of area about the centroidal axis
Torsion constant
Principal axis angle
- calculate_plastic_properties(verbose: bool = False) None [source]#
Calculates plastic properties.
Calculates the plastic properties of the cross-section and stores them in the
SectionProperties
object contained in thesection_props
variable.- Parameters:
verbose (bool) – If set to True, the number of iterations required for each plastic axis is printed to the terminal.
- Raises:
RuntimeError – If the geometric properties have not been calculated prior to calling this method
Note
If materials are specified, the values calculated for the plastic section moduli are displayed as plastic moments (i.e \(M_p = f_y S\)) and the shape factors are not calculated.
Warning
The geometric properties must be calculated prior to the calculation of the plastic properties.
Plastic Properties
Below is a list of the section properties calculated by the
calculate_plastic_properties()
method:Plastic centroids (centroidal and principal axes)
Plastic section moduli (centroidal and principal axes)
Shape factors, non-composite only (centroidal and principal axe)
- calculate_stress(n: float = 0.0, vx: float = 0.0, vy: float = 0.0, mxx: float = 0.0, myy: float = 0.0, m11: float = 0.0, m22: float = 0.0, mzz: float = 0.0) StressPost [source]#
Calculates cross-section stresses.
Calculates the cross-section stress resulting from design actions and returns a
StressPost
object allowing the post-processing of the stress results.- Parameters:
n (float) – Axial force
vx (float) – Shear force acting in the x-direction
vy (float) – Shear force acting in the y-direction
mxx (float) – Bending moment about the centroidal xx-axis
myy (float) – Bending moment about the centroidal yy-axis
m11 (float) – Bending moment about the centroidal 11-axis
m22 (float) – Bending moment about the centroidal 22-axis
mzz (float) – Torsion moment about the centroidal zz-axis
- Returns:
Object for post-processing cross-section stresses
- Raises:
RuntimeError – If a geometric and warping analysis (if required) have not been performed prior to calling this method
- Return type:
Note
A geometric analysis must be performed prior to performing a stress analysis. Further, if the shear force or torsion is non-zero a warping analysis must also be performed.
- assemble_torsion(progress: Progress | None = None, task: TaskID | None = None) tuple[csc_matrix, ndarray[Any, dtype[float64]]] [source]#
Assembles the warping stiffness matrix.
Assembles stiffness matrices to be used for the computation of warping properties and the torsion load vector (
f_torsion
). A Lagrangian multiplier (k_lg
) stiffness matrix is returned. The stiffness matrix is assembled using the sparse COO format and returned in the sparse CSC format.- Parameters:
progress (Progress | None) – Rich progress object
task (TaskID | None) – Rich task object
- Returns:
Lagrangian multiplier stiffness matrix and torsion load vector (
k_lg
,f_torsion
)- Return type:
tuple[csc_matrix, ndarray[Any, dtype[float64]]]
- plot_mesh(alpha: float = 0.5, materials: bool = True, mask: list[bool] | None = None, title: str = 'Finite Element Mesh', **kwargs: Any) matplotlib.axes.Axes [source]#
Plots the finite element mesh.
- Parameters:
alpha (float) – Transparency of the mesh outlines: \(0 \leq \alpha \leq 1\)
materials (bool) – If set to True shades the elements with the specified material colors
mask (list[bool] | None) – Mask array, of length
num_nodes
, to mask out trianglestitle (str) – Plot title
kwargs (Any) – Passed to
plotting_context()
- Returns:
Matplotlib axes object
- Return type:
Example
The following example plots the mesh for a rectanglular steel-timber composite section:
from sectionproperties.pre import Material from sectionproperties.pre.library import rectangular_section from sectionproperties.analysis import Section steel = Material( name="Steel", elastic_modulus=200e3, poissons_ratio=0.3, density=7.85e-6, yield_strength=250, color="grey", ) timber = Material( name="Timber", elastic_modulus=8e3, poissons_ratio=0.35, density=6.5e-7, yield_strength=20, color="burlywood", ) geom_steel = rectangular_section(d=50, b=50, material=steel) geom_timber = rectangular_section(d=50, b=50, material=timber) geom = geom_timber.align_to(geom_steel, on="right") + geom_steel geom.create_mesh(mesh_sizes=[10, 5]) Section(geometry=geom).plot_mesh()
(
Source code
,png
,hires.png
,pdf
)
- plot_centroids(alpha: float = 0.5, title: str = 'Centroids', **kwargs: Any) matplotlib.axes.Axes [source]#
Plots the calculated centroids over the mesh.
Plots the elastic centroid, the shear centre, the plastic centroids and the principal axis, if they have been calculated, on top of the finite element mesh.
- Parameters:
alpha (float) – Transparency of the mesh outlines: \(0 \leq \alpha \leq 1\)
title (str) – Plot title
kwargs (Any) – Passed to
plotting_context()
- Returns:
Matplotlib axes object
- Return type:
Example
The following example analyses a 200 PFC section and displays a plot of the centroids:
from sectionproperties.pre.library import channel_section from sectionproperties.analysis import Section geom = channel_section(d=200, b=75, t_f=12, t_w=6, r=12, n_r=8) geom.create_mesh(mesh_sizes=[20]) section = Section(geometry=geom) section.calculate_geometric_properties() section.calculate_warping_properties() section.calculate_plastic_properties() section.plot_centroids()
(
Source code
,png
,hires.png
,pdf
)
- plot_warping_function(title: str = 'Warping Function', level: int = 20, cmap: str = 'viridis', alpha: float = 0.2, with_lines: bool = True, **kwargs: Any) matplotlib.axes.Axes [source]#
Plots the warping function over the mesh.
- Parameters:
- Raises:
RuntimeError – If a warping analysis has not been performed
- Returns:
Matplotlib axes object
- Return type:
- display_results(fmt: str = '8.6e') None [source]#
Prints the results that have been calculated to the terminal.
- Parameters:
fmt (str) – Number formatting string, see https://docs.python.org/3/library/string.html
- is_composite() bool [source]#
Returns whether or not a composite section is being analysed.
If the only material is the default material, a regular analysis is being conducted. Otherwise, a composite analysis is being conducted.
- Returns:
Whether or not a composite section is being analysed.
- Return type:
- get_e_ref(e_ref: float | Material) float [source]#
Extract transformed elastic modulus from e_ref (float or material).
- get_area() float [source]#
Returns the cross-section area.
- Returns:
Cross-section area
- Raises:
AssertionError – If a geometric analysis has not been performed
- Return type:
- get_perimeter() float [source]#
Returns the cross-section perimeter.
- Returns:
Cross-section perimeter
- Raises:
AssertionError – If a geometric analysis has not been performed
- Return type:
- get_mass() float [source]#
Returns the cross-section mass.
This is a composite only property, as such this can only be returned if material properties have been applied to the cross-section.
- Returns:
Cross-section mass
- Raises:
RuntimeError – If material properties have not been applied
AssertionError – If a geometric analysis has not been performed
- Return type:
- get_ea(e_ref: float | Material = 1) float [source]#
Returns the cross-section axial rigidity.
This is a composite only property, as such this can only be returned if material properties have been applied to the cross-section.
This value can be transformed by providing a reference elastic modulus or a material property.
- Parameters:
e_ref (float | Material) – Reference elastic modulus or material property by which to transform the results
- Returns:
Modulus weighted area (axial rigidity)
- Raises:
RuntimeError – If material properties have not been applied
AssertionError – If a geometric analysis has not been performed
- Return type:
- get_q() tuple[float, float] [source]#
Returns the cross-section first moments of area.
This is a geometric only property, as such this can only be returned if material properties have not been applied to the cross-section.
- Returns:
First moments of area about the global axis (
qx
,qy
)- Raises:
RuntimeError – If material properties have been applied
AssertionError – If a geometric analysis has not been performed
- Return type:
- get_eq(e_ref: float | Material = 1) tuple[float, float] [source]#
Returns the modulus-weighted cross-section first moments of area.
This is a composite only property, as such this can only be returned if material properties have been applied to the cross-section.
This value can be transformed by providing a reference elastic modulus or a material property.
- Parameters:
e_ref (float | Material) – Reference elastic modulus or material property by which to transform the results
- Returns:
Modulus-weighted first moments of area about the global axis (
e.qx
,e.qy
)- Raises:
RuntimeError – If material properties have not been applied
AssertionError – If a geometric analysis has not been performed
- Return type:
- get_ig() tuple[float, float, float] [source]#
Returns the cross-section global second moments of area.
This is a geometric only property, as such this can only be returned if material properties have not been applied to the cross-section.
- Returns:
Second moments of area about the global axis (
ixx_g
,iyy_g
,ixy_g
)- Raises:
RuntimeError – If material properties have been applied
AssertionError – If a geometric analysis has not been performed
- Return type:
- get_eig(e_ref: float | Material = 1) tuple[float, float, float] [source]#
Returns the modulus-weighted cross-section global second moments of area.
This is a composite only property, as such this can only be returned if material properties have been applied to the cross-section.
This value can be transformed by providing a reference elastic modulus or a material property.
- Parameters:
e_ref (float | Material) – Reference elastic modulus or material property by which to transform the results
- Returns:
Modulus weighted second moments of area about the global axis (
e.ixx_g
,e.iyy_g
,e.ixy_g
)- Raises:
RuntimeError – If material properties have not been applied
AssertionError – If a geometric analysis has not been performed
- Return type:
- get_c() tuple[float, float] [source]#
Returns the cross-section elastic centroid.
- Returns:
Elastic centroid (
cx
,cy
)- Raises:
AssertionError – If a geometric analysis has not been performed
- Return type:
- get_ic() tuple[float, float, float] [source]#
Returns the cross-section centroidal second moments of area.
This is a geometric only property, as such this can only be returned if material properties have not been applied to the cross-section.
- Returns:
Second moments of area about the centroidal axis (
ixx_c
,iyy_c
,ixy_c
)- Raises:
RuntimeError – If material properties have been applied
AssertionError – If a geometric analysis has not been performed
- Return type:
- get_eic(e_ref: float | Material = 1) tuple[float, float, float] [source]#
Returns the modulus-weighted cross-section centroidal second moments of area.
This is a composite only property, as such this can only be returned if material properties have been applied to the cross-section.
This value can be transformed by providing a reference elastic modulus or a material property.
- Parameters:
e_ref (float | Material) – Reference elastic modulus or material property by which to transform the results
- Returns:
Modulus weighted second moments of area about the centroidal axis (
e.ixx_c
,e.iyy_c
,e.ixy_c
)- Raises:
RuntimeError – If material properties have not been applied
AssertionError – If a geometric analysis has not been performed
- Return type:
- get_z() tuple[float, float, float, float] [source]#
Returns the cross-section centroidal elastic section moduli.
This is a geometric only property, as such this can only be returned if material properties have not been applied to the cross-section.
- Returns:
Elastic section moduli about the centroidal axis with respect to the top and bottom fibres (
zxx_plus
,zxx_minus
,zyy_plus
,zyy_minus
)- Raises:
RuntimeError – If material properties have been applied
AssertionError – If a geometric analysis has not been performed
- Return type:
- get_ez(e_ref: float | Material = 1) tuple[float, float, float, float] [source]#
Returns the modulus-weighted cross-section centroidal elastic section moduli.
This is a composite only property, as such this can only be returned if material properties have been applied to the cross-section.
This value can be transformed by providing a reference elastic modulus or a material property.
- Parameters:
e_ref (float | Material) – Reference elastic modulus or material property by which to transform the results
- Returns:
Modulus weighted elastic section moduli about the centroidal axis with respect to the top and bottom fibres (
e.zxx_plus
,e.zxx_minus
,e.zyy_plus
,e.zyy_minus
)- Raises:
RuntimeError – If material properties have not been applied
AssertionError – If a geometric analysis has not been performed
- Return type:
- get_rc() tuple[float, float] [source]#
Returns the cross-section centroidal radii of gyration.
- Returns:
Radii of gyration about the centroidal axis (
rx
,ry
)- Raises:
AssertionError – If a geometric analysis has not been performed
- Return type:
- get_ip() tuple[float, float] [source]#
Returns the cross-section principal second moments of area.
This is a geometric only property, as such this can only be returned if material properties have not been applied to the cross-section.
- Returns:
Second moments of area about the principal axis (
i11_c
,i22_c
)- Raises:
RuntimeError – If material properties have been applied
AssertionError – If a geometric analysis has not been performed
- Return type:
- get_eip(e_ref: float | Material = 1) tuple[float, float] [source]#
Returns the modulus-weighted cross-section principal second moments of area.
This is a composite only property, as such this can only be returned if material properties have been applied to the cross-section.
This value can be transformed by providing a reference elastic modulus or a material property.
- Parameters:
e_ref (float | Material) – Reference elastic modulus or material property by which to transform the results
- Returns:
Modulus weighted second moments of area about the principal axis (
e.i11_c
,e.i22_c
)- Raises:
RuntimeError – If material properties have not been applied
AssertionError – If a geometric analysis has not been performed
- Return type:
- get_phi() float [source]#
Returns the cross-section principal bending angle.
- Returns:
Principal bending axis angle
- Raises:
AssertionError – If a geometric analysis has not been performed
- Return type:
- get_zp() tuple[float, float, float, float] [source]#
Returns the cross-section principal elastic section moduli.
This is a geometric only property, as such this can only be returned if material properties have not been applied to the cross-section.
- Returns:
Elastic section moduli about the principal axis with respect to the top and bottom fibres (
z11_plus
,z11_minus
,z22_plus
,z22_minus
)- Raises:
RuntimeError – If material properties have been applied
AssertionError – If a geometric analysis has not been performed
- Return type:
- get_ezp(e_ref: float | Material = 1) tuple[float, float, float, float] [source]#
Returns the modulus-weighted cross-section principal elastic section moduli.
This is a composite only property, as such this can only be returned if material properties have been applied to the cross-section.
This value can be transformed by providing a reference elastic modulus or a material property.
- Parameters:
e_ref (float | Material) – Reference elastic modulus or material property by which to transform the results
- Returns:
Modulus weighted elastic section moduli about the principal axis with respect to the top and bottom fibres (
e.z11_plus
,e.z11_minus
,e.z22_plus
,e.z22_minus
)- Raises:
RuntimeError – If material properties have not been applied
AssertionError – If a geometric analysis has not been performed
- Return type:
- get_rp() tuple[float, float] [source]#
Returns the cross-section principal radii of gyration.
- Returns:
Radii of gyration about the principal axis (
r11
,r22
)- Raises:
AssertionError – If a geometric analysis has not been performed
- Return type:
- get_nu_eff() float [source]#
Returns the cross-section effective Poisson’s ratio.
This is a composite only property, as such this can only be returned if material properties have been applied to the cross-section.
- Returns:
Effective Poisson’s ratio
- Raises:
RuntimeError – If material properties have not been applied
AssertionError – If a geometric analysis has not been performed
- Return type:
- get_e_eff() float [source]#
Returns the cross-section effective elastic modulus.
This is a composite only property, as such this can only be returned if material properties have been applied to the cross-section.
- Returns:
Effective elastic modulus based on area
- Raises:
RuntimeError – If material properties have not been applied
AssertionError – If a geometric analysis has not been performed
- Return type:
- get_g_eff() float [source]#
Returns the cross-section effective shear modulus.
This is a composite only property, as such this can only be returned if material properties have been applied to the cross-section.
- Returns:
Effective shear modulus based on area
- Raises:
RuntimeError – If material properties have not been applied
AssertionError – If a geometric analysis has not been performed
- Return type:
- get_j() float [source]#
Returns the cross-section St Venant torsion constant.
This is a geometric only property, as such this can only be returned if material properties have not been applied to the cross-section.
- Returns:
St. Venant torsion constant
- Raises:
RuntimeError – If material properties have been applied
AssertionError – If a warping analysis has not been performed
- Return type:
- get_ej(e_ref: float | Material = 1) float [source]#
Returns the modulus-weighted cross-section St Venant torsion constant.
This is a composite only property, as such this can only be returned if material properties have been applied to the cross-section.
This value can be transformed by providing a reference elastic modulus or a material property.
- Parameters:
e_ref (float | Material) – Reference elastic modulus or material property by which to transform the results
- Returns:
Modulus weighted St. Venant torsion constant
- Raises:
RuntimeError – If material properties have not been applied
AssertionError – If a warping analysis has not been performed
- Return type:
- get_sc() tuple[float, float] [source]#
Returns the cross-section centroidal shear centre (elasticity).
- Returns:
Centroidal axis shear centre (elasticity approach) (
x_se
,y_se
)- Raises:
AssertionError – If a warping analysis has not been performed
- Return type:
- get_sc_p() tuple[float, float] [source]#
Returns the cross-section principal shear centre (elasticity).
- Returns:
Principal axis shear centre (elasticity approach) (
x11_se
,y22_se
)- Raises:
AssertionError – If a warping analysis has not been performed
- Return type:
- get_sc_t() tuple[float, float] [source]#
Returns the cross-section centroidal shear centre (Trefftz’s method).
- Returns:
Centroidal axis shear centre (Trefftz’s method) (
x_st
,y_st
)- Raises:
AssertionError – If a warping analysis has not been performed
- Return type:
- get_gamma() float [source]#
Returns the cross-section warping constant.
This is a geometric only property, as such this can only be returned if material properties have not been applied to the cross-section.
- Returns:
Warping constant
- Raises:
RuntimeError – If material properties have been applied
AssertionError – If a warping analysis has not been performed
- Return type:
- get_egamma(e_ref: float | Material = 1) float [source]#
Returns the modulus-weighted cross-section warping constant.
This is a composite only property, as such this can only be returned if material properties have been applied to the cross-section.
This value can be transformed by providing a reference elastic modulus or a material property.
- Parameters:
e_ref (float | Material) – Reference elastic modulus or material property by which to transform the results
- Returns:
Modulus weighted warping constant
- Raises:
RuntimeError – If material properties have not been applied
AssertionError – If a warping analysis has not been performed
- Return type:
- get_as() tuple[float, float] [source]#
Returns the cross-section centroidal axis shear area.
This is a geometric only property, as such this can only be returned if material properties have not been applied to the cross-section.
- Returns:
Shear area for loading about the centroidal axis (
a_sx
,a_sy
)- Raises:
RuntimeError – If material properties have been applied
AssertionError – If a warping analysis has not been performed
- Return type:
- get_eas(e_ref: float | Material = 1) tuple[float, float] [source]#
Returns modulus-weighted the cross-section centroidal axis shear area.
This is a composite only property, as such this can only be returned if material properties have been applied to the cross-section.
This value can be transformed by providing a reference elastic modulus or a material property.
- Parameters:
e_ref (float | Material) – Reference elastic modulus or material property by which to transform the results
- Returns:
Modulus weighted shear area for loading about the centroidal axis (
e.a_sx
,e.a_sy
)- Raises:
RuntimeError – If material properties have not been applied
AssertionError – If a warping analysis has not been performed
- Return type:
- get_as_p() tuple[float, float] [source]#
Returns the cross-section princicpal axis shear area.
This is a geometric only property, as such this can only be returned if material properties have not been applied to the cross-section.
- Returns:
Shear area for loading about the princicpal bending axis (
a_s11
,a_s22
)- Raises:
RuntimeError – If material properties have been applied
AssertionError – If a warping analysis has not been performed
- Return type:
- get_eas_p(e_ref: float | Material = 1) tuple[float, float] [source]#
Returns the modulus-weighted cross-section princicpal axis shear area.
This is a composite only property, as such this can only be returned if material properties have been applied to the cross-section.
This value can be transformed by providing a reference elastic modulus or a material property.
- Parameters:
e_ref (float | Material) – Reference elastic modulus or material property by which to transform the results
- Returns:
Modulus weighted shear area for loading about the princicpal bending axis (
e.a_s11
,e.a_s22
)- Raises:
RuntimeError – If material properties have not been applied
AssertionError – If a warping analysis has not been performed
- Return type:
- get_beta() tuple[float, float, float, float] [source]#
Returns the cross-section global monosymmetry constants.
- Returns:
Monosymmetry constants for bending about both global axes (
beta_x_plus
,beta_x_minus
,beta_y_plus
,beta_y_minus
).- Return type:
Note
The
plus
value relates to the top flange in compression and theminus
value relates to the bottom flange in compression.
- get_beta_p() tuple[float, float, float, float] [source]#
Returns the cross-section principal monosymmetry constants.
- Returns:
Monosymmetry constant for bending about both principal axes (
beta_11_plus
,beta_11_minus
,beta_22_plus
,beta_22_minus
)- Return type:
Note
The
plus
value relates to the top flange in compression and theminus
value relates to the bottom flange in compression.
- get_pc() tuple[float, float] [source]#
Returns the cross-section centroidal axis plastic centroid.
- Returns:
Centroidal axis plastic centroid (
x_pc
,y_pc
)- Raises:
AssertionError – If a plastic analysis has not been performed
- Return type:
- get_pc_p() tuple[float, float] [source]#
Returns the cross-section principal axis plastic centroid.
- Returns:
Principal bending axis plastic centroid (
x11_pc
,y22_pc
)- Raises:
AssertionError – If a plastic analysis has not been performed
- Return type:
- get_s() tuple[float, float] [source]#
Returns the cross-section centroidal plastic section moduli.
This is a geometric only property, as such this can only be returned if material properties have not been applied to the cross-section.
- Returns:
Plastic section moduli about the centroidal axis (
sxx
,syy
)- Raises:
RuntimeError – If material properties have been applied
AssertionError – If a plastic analysis has not been performed
- Return type:
- get_mp() tuple[float, float] [source]#
Returns the cross-section plastic moment about the centroidal axis.
This is a composite only property, as such this can only be returned if material properties have been applied to the cross-section.
- Returns:
Plastic moment (\(M_p = f_y S\)) about the centroidal axis (
mp_xx
,mp_yy
)- Raises:
RuntimeError – If material properties have not been applied
AssertionError – If a plastic analysis has not been performed
- Return type:
- get_sp() tuple[float, float] [source]#
Returns the cross-section principal axis plastic section moduli.
This is a geometric only property, as such this can only be returned if material properties have not been applied to the cross-section.
- Returns:
Plastic section moduli about the principal bending axis (
s11
,s22
)- Raises:
RuntimeError – If material properties have been applied
AssertionError – If a plastic analysis has not been performed
- Return type:
- get_mp_p() tuple[float, float] [source]#
Returns the cross-section plastic moment about the principal axis.
This is a composite only property, as such this can only be returned if material properties have been applied to the cross-section.
- Returns:
Plastic moment (\(M_p = f_y S\)) about the principal axis (
mp_11
,mp_22
)- Raises:
RuntimeError – If material properties have not been applied
AssertionError – If a plastic analysis has not been performed
- Return type:
- get_sf() tuple[float, float, float, float] [source]#
Returns the cross-section centroidal axis shape factors.
This is a geometric only property, as such this can only be returned if material properties have not been applied to the cross-section.
- Returns:
Centroidal axis shape factors with respect to the top and bottom fibres (
sf_xx_plus
,sf_xx_minus
,sf_yy_plus
,sf_yy_minus
)- Raises:
RuntimeError – If material properties have been applied
AssertionError – If a plastic analysis has not been performed
- Return type:
- get_sf_p() tuple[float, float, float, float] [source]#
Returns the cross-section principal axis shape factors.
This is a geometric only property, as such this can only be returned if material properties have not been applied to the cross-section.
- Returns:
Principal bending axis shape factors with respect to the top and bottom fibres (
sf_11_plus
,sf_11_minus
,sf_22_plus
,sf_22_minus
)- Raises:
RuntimeError – If material properties have been applied
AssertionError – If a plastic analysis has not been performed
- Return type:
- get_stress_at_points(pts: list[tuple[float, float]], n: float = 0.0, mxx: float = 0.0, myy: float = 0.0, m11: float = 0.0, m22: float = 0.0, mzz: float = 0.0, vx: float = 0.0, vy: float = 0.0, agg_func: ~typing.Callable[[list[float]], float] = <function average>) list[tuple[float, float, float] | None] [source]#
Calculates the stress for a list of points.
Calculates the stress at a set of points within an element for given design actions and returns the global stress components for each point.
- Parameters:
pts (list[tuple[float, float]]) – A list of points
[(x, y), ..., ]
n (float) – Axial force
mxx (float) – Bending moment about the centroidal xx-axis
myy (float) – Bending moment about the centroidal yy-axis
m11 (float) – Bending moment about the centroidal 11-axis
m22 (float) – Bending moment about the centroidal 22-axis
mzz (float) – Torsion moment about the centroidal zz-axis
vx (float) – Shear force acting in the x-direction
vy (float) – Shear force acting in the y-direction
agg_func (Callable[[list[float]], float]) – A function that aggregates the stresses if the point is shared by several elements. If the point,
pt
, is shared by several elements (e.g. if it is a node or on an edge), the stresses are retrieved from each element and combined according to this function.
- Raises:
RuntimeError – If a warping analysis has not been carried out and a shear force or a torsion moment is supplied
- Returns:
Resultant normal and shear stresses (
sigma_zz
,tau_xz
,tau_yz
) for each pointpt
. If a point is not in the section thenNone
is returned for that element in the list.- Return type: