Section¶
- class sectionproperties.analysis.section.Section(geometry: Geometry | CompoundGeometry, time_info: bool = False)[source]¶
Bases:
objectClass 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
CyTrianglenum_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.
Prints the transformed 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 yield moment for bending about the centroidal axis.
Returns the yield moment for bending 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. Defaults to
False.
- Raises:
ValueError – If geometry does not contain a mesh
ValueError – 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
SectionPropertiesobject contained in thesection_propsvariable.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
Yield moments (composite only)
- 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
SectionPropertiesobject contained in thesection_propsvariable.- Parameters:
solver_type (str) – Solver used for solving systems of linear equations, either using the
"direct"method or"cgs"iterative method. Defaults to"direct".- 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
SectionPropertiesobject contained in thesection_propsvariable.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. Defaults to"direct".- 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
SectionPropertiesobject contained in thesection_propsvariable.- Parameters:
verbose (bool) – If set to True, the number of iterations required for each plastic axis is printed to the terminal. Defaults to
False.- 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 calculated as the ratio between the plastic moment and the yield moment.
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 (centroidal and principal axes)
- 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
StressPostobject allowing the post-processing of the stress results.- Parameters:
n (float) – Axial force. Defaults to
0.0.vx (float) – Shear force acting in the x-direction. Defaults to
0.0.vy (float) – Shear force acting in the y-direction. Defaults to
0.0.mxx (float) – Bending moment about the centroidal xx-axis. Defaults to
0.0.myy (float) – Bending moment about the centroidal yy-axis. Defaults to
0.0.m11 (float) – Bending moment about the centroidal 11-axis. Defaults to
0.0.m22 (float) – Bending moment about the centroidal 22-axis. Defaults to
0.0.mzz (float) – Torsion moment about the centroidal zz-axis. Defaults to
0.0.
- 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, npt.NDArray[np.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, npt.NDArray[np.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\). Defaults to
0.5.materials (bool) – If set to True shades the elements with the specified material colors. Defaults to
True.mask (list[bool] | None) – Mask array, of length
num_nodes, to mask out triangles. Defaults toNone.title (str) – Plot title. Defaults to
"Finite Element Mesh".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)
Composite section mesh¶
- 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\). Defaults to
0.5.title (str) – Plot title. Defaults to
"Centroids".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)
200PFC centroids¶
- 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:
title (str) – Plot title. Defaults to
"Warping Function".level (int) – Number of contour levels. Defaults to
20.cmap (str) – Colormap. Defaults to
"viridis".alpha (float) – Transparency of the mesh outlines: \(0 \leq \alpha \leq 1\). Defaults to
0.2.with_lines (bool) – If set to True, contour lines are displayed. Defaults to
True.kwargs (Any) – Passed to
plotting_context()
- 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. Defaults to
"8.6e".
- display_transformed_results(e_ref: float | Material, fmt: str = '8.6e') None[source]¶
Prints the transformed results that have been calculated to the terminal.
All results that are scaled by the elastic modulus in
display_results()(e.g.e.ixx_c) are divided bye_ref.This is a composite only method, as such this can only be called if material properties have been applied to the cross-section.
- Parameters:
e_ref (float | Material) – Reference elastic modulus or material property by which to transform the results.
fmt (str) – Number formatting string, see https://docs.python.org/3/library/string.html. Defaults to
"8.6e".
- Raises:
RuntimeError – If material properties have not been applied
- 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:
RuntimeError – If a geometric analysis has not been performed
- Return type:
- get_perimeter() float[source]¶
Returns the cross-section perimeter.
- Returns:
Cross-section perimeter
- Raises:
RuntimeError – 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
RuntimeError – If a geometric analysis has not been performed
- Return type:
- get_ea(e_ref: float | Material = 1.0) 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. Defaults to
1.0.- Returns:
Modulus weighted area (axial rigidity)
- Raises:
RuntimeError – If material properties have not been applied
RuntimeError – 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
RuntimeError – If a geometric analysis has not been performed
- Return type:
- get_eq(e_ref: float | Material = 1.0) 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. Defaults to
1.0.- Returns:
Modulus-weighted first moments of area about the global axis (
e.qx,e.qy)- Raises:
RuntimeError – If material properties have not been applied
RuntimeError – 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
RuntimeError – If a geometric analysis has not been performed
- Return type:
- get_eig(e_ref: float | Material = 1.0) 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. Defaults to
1.0.- 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
RuntimeError – 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:
RuntimeError – 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
RuntimeError – If a geometric analysis has not been performed
- Return type:
- get_eic(e_ref: float | Material = 1.0) 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. Defaults to
1.0.- 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
RuntimeError – 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
RuntimeError – If a geometric analysis has not been performed
- Return type:
- get_ez(e_ref: float | Material = 1.0) 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. Defaults to
1.0.- 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
RuntimeError – If a geometric analysis has not been performed
- Return type:
- get_my() tuple[float, float][source]¶
Returns the yield moment for bending 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:
Yield moment for bending about the centroidal
xandyaxes (my_xx,my_yy)- Raises:
RuntimeError – If material properties have not been applied
RuntimeError – 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:
RuntimeError – 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
RuntimeError – If a geometric analysis has not been performed
- Return type:
- get_eip(e_ref: float | Material = 1.0) 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. Defaults to
1.0.- 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
RuntimeError – 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:
RuntimeError – 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
RuntimeError – If a geometric analysis has not been performed
- Return type:
- get_ezp(e_ref: float | Material = 1.0) 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. Defaults to
1.0.- 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
RuntimeError – If a geometric analysis has not been performed
- Return type:
- get_my_p() tuple[float, float][source]¶
Returns the yield moment for bending 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:
Yield moment for bending about the principal
11and22axes (my_11,my_22)- Raises:
RuntimeError – If material properties have not been applied
RuntimeError – 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:
RuntimeError – 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
RuntimeError – 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
RuntimeError – 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
RuntimeError – 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
RuntimeError – If a warping analysis has not been performed
- Return type:
- get_ej(e_ref: float | Material = 1.0) 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. Defaults to
1.0.- Returns:
Modulus weighted St. Venant torsion constant
- Raises:
RuntimeError – If material properties have not been applied
RuntimeError – 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:
RuntimeError – 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:
RuntimeError – 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:
RuntimeError – 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
RuntimeError – If a warping analysis has not been performed
- Return type:
- get_egamma(e_ref: float | Material = 1.0) 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. Defaults to
1.0.- Returns:
Modulus weighted warping constant
- Raises:
RuntimeError – If material properties have not been applied
RuntimeError – 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
RuntimeError – If a warping analysis has not been performed
- Return type:
- get_eas(e_ref: float | Material = 1.0) 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. Defaults to
1.0.- 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
RuntimeError – 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
RuntimeError – If a warping analysis has not been performed
- Return type:
- get_eas_p(e_ref: float | Material = 1.0) 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. Defaults to
1.0.- 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
RuntimeError – 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
plusvalue relates to the top flange in compression and theminusvalue 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
plusvalue relates to the top flange in compression and theminusvalue 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:
RuntimeError – 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:
RuntimeError – 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
RuntimeError – 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
RuntimeError – 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
RuntimeError – 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
RuntimeError – 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.
For a geometric-only analysis, the shape factor is defined as the ratio between the plastic section modulus and the elastic section modulus. For a composite analysis the shape factors is defined as the ratio between the plastic moment and the yield moment.
Note
For composite analyses, the
plusvalues will always equal theminusvalues as the yield moment occurs when the first fibre reaches its yield strength. For geometric-only analyses, the elastic section moduli is calculated with respect to the top and bottom fibres (i.e.plusandminus).
- get_sf_p() tuple[float, float, float, float][source]¶
Returns the cross-section principal axis shape factors.
For a geometric-only analysis, the shape factor is defined as the ratio between the plastic section modulus and the elastic section modulus. For a composite analysis the shape factors is defined as the ratio between the plastic moment and the yield moment.
Note
For composite analyses, the
plusvalues will always equal theminusvalues as the yield moment occurs when the first fibre reaches its yield strength. For geometric-only analyses, the elastic section moduli is calculated with respect to the top and bottom fibres (i.e.plusandminus).
- 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: 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. Defaults to
0.0.myy (float) – Bending moment about the centroidal yy-axis. Defaults to
0.0.m11 (float) – Bending moment about the centroidal 11-axis. Defaults to
0.0.m22 (float) – Bending moment about the centroidal 22-axis. Defaults to
0.0.mzz (float) – Torsion moment about the centroidal zz-axis. Defaults to
0.0.vx (float) – Shear force acting in the x-direction. Defaults to
0.0.vy (float) – Shear force acting in the y-direction. Defaults to
0.0.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. Defaults tonp.average.
- 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 thenNoneis returned for that element in the list.- Return type: