engineeringkit.structural_engineering#

Elasticity, beams, columns, stress transformations and planar trusses.

Structural engineering: stress, beams, columns, trusses, and energy methods.

class engineeringkit.structural_engineering.BeamResult(x, shear, moment, deflection, reactions)[source]#

Bases: object

Parameters:
  • x (ndarray)

  • shear (ndarray)

  • moment (ndarray)

  • deflection (ndarray)

  • reactions (tuple[float, float])

deflection: ndarray#
moment: ndarray#
plot()[source]#
reactions: tuple[float, float]#
shear: ndarray#
summary()[source]#
x: ndarray#
class engineeringkit.structural_engineering.PlanarTruss(nodes, members, young_modulus, area)[source]#

Bases: object

Parameters:
  • nodes (ndarray)

  • members (tuple)

  • young_modulus (float)

  • area (float)

area: float#
members: tuple#
nodes: ndarray#
solve(loads, fixed_dofs)[source]#

Solve a pin-jointed 2-D truss by the direct stiffness method.

young_modulus: float#
class engineeringkit.structural_engineering.SimplySupportedBeam(length, young_modulus, second_moment)[source]#

Bases: object

Parameters:
  • length (float)

  • young_modulus (float)

  • second_moment (float)

length: float#
second_moment: float#
solve_point_load(load, position=None, n=401)[source]#
Parameters:
  • load (float)

  • position (float | None)

  • n (int)

solve_uniform_load(w, n=401)[source]#
Parameters:
  • w (float)

  • n (int)

young_modulus: float#
class engineeringkit.structural_engineering.TrussResult(displacements, reactions, member_forces, member_stresses)[source]#

Bases: object

Parameters:
  • displacements (ndarray)

  • reactions (ndarray)

  • member_forces (ndarray)

  • member_stresses (ndarray)

displacements: ndarray#
member_forces: ndarray#
member_stresses: ndarray#
plot(nodes, members, scale=1.0)[source]#
reactions: ndarray#
summary()[source]#
engineeringkit.structural_engineering.axial_deformation(force, length, area, E)[source]#

Axial deformation.

Parameters:
  • force (N) – Input in the units stated above.

  • length (m) – Input in the units stated above.

  • area (m^2) – Input in the units stated above.

  • E (Pa) – Input in the units stated above.

Returns:

Return type:

result

Notes

Assumptions, governing equations and validity limits are discussed in Structural engineering: loads, signs and linear elasticity. SI inputs are required; raw numbers carry no dimensional metadata.

engineeringkit.structural_engineering.bending_stress(M, y, I)[source]#

Bending stress.

Parameters:
  • M (N m) – Input in the units stated above.

  • y (m) – Input in the units stated above.

  • I (m^4) – Input in the units stated above.

Returns:

Pa.

Return type:

result

Notes

Assumptions, governing equations and validity limits are discussed in Structural engineering: loads, signs and linear elasticity. SI inputs are required; raw numbers carry no dimensional metadata.

engineeringkit.structural_engineering.castigliano_deflection(dU_dP)[source]#

Return a caller-computed strain-energy derivative (not an energy solver).

Parameters:

dU_dP (m) – Input in the units stated above.

Returns:

Return type:

result

Notes

Assumptions, governing equations and validity limits are discussed in Structural engineering: loads, signs and linear elasticity. SI inputs are required; raw numbers carry no dimensional metadata.

engineeringkit.structural_engineering.euler_buckling_load(E, I, L, K=1.0)[source]#

Euler buckling load.

Parameters:
  • E (Pa) – Input in the units stated above.

  • I (m^4) – Input in the units stated above.

  • L (m) – Input in the units stated above.

  • K (1) – Input in the units stated above.

Returns:

Return type:

result

Notes

Assumptions, governing equations and validity limits are discussed in Structural engineering: loads, signs and linear elasticity. SI inputs are required; raw numbers carry no dimensional metadata.

engineeringkit.structural_engineering.hooke_stress(E, strain)[source]#

Hooke stress.

Parameters:
  • E (float) – Input in the units stated above.

  • strain (1) – Input in the units stated above.

Returns:

Pa.

Return type:

result

Notes

Assumptions, governing equations and validity limits are discussed in Structural engineering: loads, signs and linear elasticity. SI inputs are required; raw numbers carry no dimensional metadata.

engineeringkit.structural_engineering.maxwell_betti_reciprocity(delta_ij, delta_ji, rtol=1e-09, atol=1e-12)[source]#

Check Maxwell-Betti reciprocal displacement equality.

Parameters:
  • delta_ij (m) – Input in the units stated above.

  • delta_ji (m) – Input in the units stated above.

  • rtol (1) – Input in the units stated above.

  • atol (m (absolute displacement tolerance)) – Input in the units stated above.

Returns:

bool.

Return type:

result

Notes

Assumptions, governing equations and validity limits are discussed in Structural engineering: loads, signs and linear elasticity. SI inputs are required; raw numbers carry no dimensional metadata.

engineeringkit.structural_engineering.mohr_circle(sx, sy, txy)[source]#

Mohr circle.

Parameters:
  • sx (Pa) – Input in the units stated above.

  • sy (Pa) – Input in the units stated above.

  • txy (Pa) – Input in the units stated above.

Returns:

(center, radius, maximum principal stress, minimum principal stress), all Pa.

Return type:

result

Notes

Assumptions, governing equations and validity limits are discussed in Structural engineering: loads, signs and linear elasticity. SI inputs are required; raw numbers carry no dimensional metadata.

engineeringkit.structural_engineering.parallel_axis(Ic, A, d)[source]#

Parallel axis.

Parameters:
  • Ic (m^4) – Input in the units stated above.

  • A (m^2) – Input in the units stated above.

  • d (m) – Input in the units stated above.

Returns:

m^4.

Return type:

result

Notes

Assumptions, governing equations and validity limits are discussed in Structural engineering: loads, signs and linear elasticity. SI inputs are required; raw numbers carry no dimensional metadata.

engineeringkit.structural_engineering.poisson_lateral_strain(axial_strain, nu)[source]#

Poisson lateral strain.

Parameters:
  • axial_strain (1) – Input in the units stated above.

  • nu (1) – Input in the units stated above.

Returns:

Return type:

result

Notes

Assumptions, governing equations and validity limits are discussed in Structural engineering: loads, signs and linear elasticity. SI inputs are required; raw numbers carry no dimensional metadata.

engineeringkit.structural_engineering.radius_of_gyration(I, A)[source]#

Radius of gyration.

Parameters:
  • I (m^4) – Input in the units stated above.

  • A (m^2) – Input in the units stated above.

Returns:

Return type:

result

Notes

Assumptions, governing equations and validity limits are discussed in Structural engineering: loads, signs and linear elasticity. SI inputs are required; raw numbers carry no dimensional metadata.

engineeringkit.structural_engineering.rectangular_second_moment(b, h)[source]#

Rectangular second moment.

Parameters:
  • b (m) – Input in the units stated above.

  • h (m) – Input in the units stated above.

Returns:

m^4.

Return type:

result

Notes

Assumptions, governing equations and validity limits are discussed in Structural engineering: loads, signs and linear elasticity. SI inputs are required; raw numbers carry no dimensional metadata.

engineeringkit.structural_engineering.rectangular_section_modulus(b, h)[source]#

Elastic section modulus Z = I/c for a rectangle [m^3].

Parameters:
  • b (m) – Input in the units stated above.

  • h (m) – Input in the units stated above.

Returns:

m^3.

Return type:

result

Notes

Assumptions, governing equations and validity limits are discussed in Structural engineering: loads, signs and linear elasticity. SI inputs are required; raw numbers carry no dimensional metadata.

engineeringkit.structural_engineering.slenderness_ratio(L, K, r)[source]#

Slenderness ratio.

Parameters:
  • L (m) – Input in the units stated above.

  • K (1) – Input in the units stated above.

  • r (m) – Input in the units stated above.

Returns:

Return type:

result

Notes

Assumptions, governing equations and validity limits are discussed in Structural engineering: loads, signs and linear elasticity. SI inputs are required; raw numbers carry no dimensional metadata.

engineeringkit.structural_engineering.strain_energy_axial(force, length, area, E)[source]#

Linear-elastic axial strain energy P^2 L/(2AE) [J].

Parameters:
  • force (N) – Input in the units stated above.

  • length (m) – Input in the units stated above.

  • area (m^2) – Input in the units stated above.

  • E (Pa) – Input in the units stated above.

Returns:

Return type:

result

Notes

Assumptions, governing equations and validity limits are discussed in Structural engineering: loads, signs and linear elasticity. SI inputs are required; raw numbers carry no dimensional metadata.

engineeringkit.structural_engineering.strain_energy_bending_constant_moment(moment, length, E, I)[source]#

Bending strain energy for constant moment M^2 L/(2EI) [J].

Parameters:
  • moment (N m) – Input in the units stated above.

  • length (m) – Input in the units stated above.

  • E (Pa) – Input in the units stated above.

  • I (m^4) – Input in the units stated above.

Returns:

Return type:

result

Notes

Assumptions, governing equations and validity limits are discussed in Structural engineering: loads, signs and linear elasticity. SI inputs are required; raw numbers carry no dimensional metadata.

engineeringkit.structural_engineering.thermal_strain(alpha, delta_T)[source]#

Thermal strain.

Parameters:
  • alpha (1/K) – Input in the units stated above.

  • delta_T (K (temperature difference)) – Input in the units stated above.

Returns:

Return type:

result

Notes

Assumptions, governing equations and validity limits are discussed in Structural engineering: loads, signs and linear elasticity. SI inputs are required; raw numbers carry no dimensional metadata.

engineeringkit.structural_engineering.torsion_angle(T, L, G, J)[source]#

Torsion angle.

Parameters:
  • T (N m) – Input in the units stated above.

  • L (m) – Input in the units stated above.

  • G (Pa) – Input in the units stated above.

  • J (m^4) – Input in the units stated above.

Returns:

rad.

Return type:

result

Notes

Assumptions, governing equations and validity limits are discussed in Structural engineering: loads, signs and linear elasticity. SI inputs are required; raw numbers carry no dimensional metadata.

engineeringkit.structural_engineering.torsion_shear_stress(T, r, J)[source]#

Torsion shear stress.

Parameters:
  • T (N m) – Input in the units stated above.

  • r (m) – Input in the units stated above.

  • J (m^4) – Input in the units stated above.

Returns:

Pa.

Return type:

result

Notes

Assumptions, governing equations and validity limits are discussed in Structural engineering: loads, signs and linear elasticity. SI inputs are required; raw numbers carry no dimensional metadata.