Cells and Sections API
Section stiffness value objects.
BeamSection
dataclass
Centroidal beam-section stiffnesses for a tangent-plane stiffener member.
EA is the axial stiffness, EIy is the out-of-plane bending stiffness,
EIz is the in-plane bending stiffness retained for provenance, and
GJ is the torsional stiffness. kGAy and kGAz are optional shear
stiffnesses in the member-local in-plane transverse and normal directions.
Tensyl expects stiffness products in a consistent unit system; it does not
calculate them from cross-section dimensions.
EA
instance-attribute
EIy
instance-attribute
EIyz = 0.0
class-attribute
instance-attribute
EIz
instance-attribute
GJ
instance-attribute
kGAy = None
class-attribute
instance-attribute
kGAz = None
class-attribute
instance-attribute
metadata = field(default_factory=dict)
class-attribute
instance-attribute
__init__(EA, EIy, EIz, GJ, kGAy=None, kGAz=None, EIyz=0.0, metadata=dict())
__post_init__()
ThinWallSegment
dataclass
A rectangular wall segment in member-local section coordinates.
start_* and end_* are the segment midline endpoints in member-local
(y, z) coordinates. thickness is measured normal to that midline in
the same coordinate plane. For section constructors, z = 0 is a
construction datum, not automatically the skin mid-surface.
end_y
instance-attribute
end_z
instance-attribute
label = ''
class-attribute
instance-attribute
length
property
Segment midline length.
start_y
instance-attribute
start_z
instance-attribute
thickness
instance-attribute
__init__(start_y, start_z, end_y, end_z, thickness, label='')
__post_init__()
SectionProperties
dataclass
Centroidal geometric properties of a thin-wall section.
Iy
instance-attribute
Iyz
instance-attribute
Iz
instance-attribute
J
instance-attribute
area
instance-attribute
centroid_y
instance-attribute
centroid_z
instance-attribute
__init__(area, centroid_y, centroid_z, Iy, Iz, Iyz, J)
__post_init__()
ThinWallSection
dataclass
A geometry-derived isotropic thin-wall stiffener section.
centroid_y
property
Centroid y coordinate.
centroid_z
property
Centroid z coordinate, commonly used as member eccentricity.
material
instance-attribute
metadata = field(default_factory=dict)
class-attribute
instance-attribute
properties = field(init=False)
class-attribute
instance-attribute
section = field(init=False)
class-attribute
instance-attribute
segments
instance-attribute
shear_correction_y = None
class-attribute
instance-attribute
shear_correction_z = None
class-attribute
instance-attribute
__init__(material, segments, shear_correction_y=None, shear_correction_z=None, metadata=dict())
__post_init__()
thin_wall_section(*, material, segments, shear_correction_y=None, shear_correction_z=None, metadata=None)
Build an isotropic thin-wall section from rectangular wall segments.
Segment coordinates use the member-local (y, z) section plane. The
returned centroid_z is measured from the same z = 0 construction
datum used by the supplied segments; shift it before using it as a member
eccentricity when the wall reference surface is somewhere else.
blade_section(*, material, height, thickness, shear_correction_y=None, shear_correction_z=None, metadata=None)
Build a vertical blade stiffener rooted at z = 0.
The blade web rises in +z from the construction datum. If that datum is
the skin outer face and the wall reference surface is the skin mid-surface,
use 0.5 * skin_thickness + section.centroid_z as member eccentricity.
tee_section(*, material, web_height, web_thickness, flange_width, flange_thickness, shear_correction_y=None, shear_correction_z=None, metadata=None)
Build a tee stiffener with a vertical web and top flange.
The web root is at z = 0 and the flange sits above the web in +z.
zee_section(*, material, web_height, web_thickness, top_flange_width, bottom_flange_width, flange_thickness, shear_correction_y=None, shear_correction_z=None, metadata=None)
Build a zee stiffener with opposite top and bottom flanges.
The lower flange sits at the z = 0 datum and extends toward negative
y. The upper flange sits above the web and extends toward positive
y.
channel_section(*, material, web_height, web_thickness, flange_width, flange_thickness, shear_correction_y=None, shear_correction_z=None, metadata=None)
Build a channel stiffener with same-side top and bottom flanges.
Both flanges extend toward positive y. The lower flange sits at the
z = 0 construction datum.
hat_section(*, material, web_height, web_thickness, crown_width, crown_thickness, flange_width, flange_thickness, shear_correction_y=None, shear_correction_z=None, metadata=None)
Build an open hat stiffener with two webs, crown, and mounting flanges.
The open hat rises in +z. The mounting flanges sit on the z = 0
construction datum, so this is the usual external hat orientation rather
than a hat flipped down into the skin.
Tangent-plane canonical cell value objects and constructors.
BeamMember
dataclass
A straight stiffener member in a local tangent-plane unit cell.
angle_rad is measured from local e1 toward e2. eccentricity
is the signed distance from the reference surface to the member
centroid along +n.
angle_rad
instance-attribute
eccentricity
instance-attribute
label = ''
class-attribute
instance-attribute
length
instance-attribute
multiplicity = 1.0
class-attribute
instance-attribute
section
instance-attribute
__init__(section, length, angle_rad, eccentricity, multiplicity=1.0, label='')
__post_init__()
CellNode
dataclass
A node in a local tangent-plane graph cell.
label = ''
class-attribute
instance-attribute
x
instance-attribute
y
instance-attribute
__init__(x, y, label='')
__post_init__()
CellEdge
dataclass
A beam edge in a local tangent-plane graph cell.
eccentricity
instance-attribute
end
instance-attribute
label = ''
class-attribute
instance-attribute
multiplicity = 1.0
class-attribute
instance-attribute
section
instance-attribute
start
instance-attribute
__init__(start, end, section, eccentricity, multiplicity=1.0, label='')
__post_init__()
CanonicalUnitCell
dataclass
Canonical tangent-plane cell consumed by tangent-plane homogenizers.
area is the repeated tangent-plane area represented by members.
The cell frame and strain convention must match the skin ABD stiffness.
area
instance-attribute
convention = DEFAULT_STRAIN_CONVENTION
class-attribute
instance-attribute
frame = DEFAULT_FRAME
class-attribute
instance-attribute
members
instance-attribute
metadata = field(default_factory=dict)
class-attribute
instance-attribute
skin
instance-attribute
__init__(area, skin, members, frame=DEFAULT_FRAME, convention=DEFAULT_STRAIN_CONVENTION, metadata=dict())
__post_init__()
StiffenerFamily
dataclass
Continuous straight stiffener-family input for direct EC homogenization.
spacing is the family pitch normal to the member direction.
eccentricity uses the same signed +n convention as BeamMember.
angle_rad
instance-attribute
eccentricity
instance-attribute
label = ''
class-attribute
instance-attribute
multiplicity = 1.0
class-attribute
instance-attribute
section
instance-attribute
spacing
instance-attribute
__init__(section, spacing, angle_rad, eccentricity, multiplicity=1.0, label='')
__post_init__()
graph_unit_cell(*, area, skin, nodes, edges, frame=None, convention=None, metadata=None)
Convert a local graph cell into the canonical member representation.
Node coordinates are local tangent-plane coordinates in the same length
unit used by area.
unidirectional_cell(*, skin, member_section, spacing, eccentricity, angle_rad=0.0, frame=None, convention=None, label='unidirectional')
Create a one-family canonical strip cell.
orthogrid_cell(*, skin, stringer_section, rib_section, stringer_spacing, rib_spacing, stringer_eccentricity, rib_eccentricity, frame=None, convention=None)
Create an orthogrid cell with one stringer and one rib family.
Stringers run along local e1 and ribs run along local e2. The two
eccentricity inputs are signed centroid offsets along +n.
braced_orthogrid_cell(*, skin, stringer_section, rib_section, brace_section, stringer_spacing, rib_spacing, stringer_eccentricity, rib_eccentricity, brace_eccentricity, opposite_brace_section=None, opposite_brace_eccentricity=None, brace_pattern='double', frame=None, convention=None)
Create a braced orthogrid with alternating or crossed diagonal braces.
equilateral_isogrid_cell(*, skin, member_section, pitch, eccentricity, frame=None, convention=None)
Create an equilateral isogrid cell with three identical member families.
isosceles_triangle_grid_cell(*, skin, stringer_section, diagonal_section, base, height, stringer_eccentricity, diagonal_eccentricity, opposite_diagonal_section=None, opposite_diagonal_eccentricity=None, frame=None, convention=None)
Create Nemeth's isosceles-triangle grid cell.
kagome_cell(*, skin, stringer_section, diagonal_section, base, height, stringer_eccentricity, diagonal_eccentricity, opposite_diagonal_section=None, opposite_diagonal_eccentricity=None, frame=None, convention=None)
Create Nemeth's Kagome grid cell.
hexagonal_grid_cell(*, skin, rib_section, diagonal_section, half_width, diagonal_rise, rib_length, rib_eccentricity, diagonal_eccentricity, opposite_diagonal_section=None, opposite_diagonal_eccentricity=None, frame=None, convention=None)
Create Nemeth's hexagon-shaped grid cell.
regular_hexagonal_grid_cell(*, skin, member_section, pitch, eccentricity, frame=None, convention=None)
Create the identical-member regular hexagonal-grid special case.
star_cell(*, skin, stringer_section, diagonal_section, base, height, stringer_eccentricity, diagonal_eccentricity, opposite_diagonal_section=None, opposite_diagonal_eccentricity=None, frame=None, convention=None)
Create Nemeth's isosceles-star-cell grid.
equilateral_star_cell(*, skin, member_section, pitch, eccentricity, frame=None, convention=None)
Create the identical-member equilateral star-cell special case.
sandwich_hexagonal_core_cell(*, bottom_face, top_face, bottom_face_offset, top_face_offset, rib_section, diagonal_section, half_width, diagonal_rise, rib_length, frame=None, convention=None)
Create a hexagonal-core sandwich cell with shifted face sheets.
sandwich_orthogrid_core_cell(*, bottom_face, top_face, bottom_face_offset, top_face_offset, stringer_section, rib_section, stringer_spacing, rib_spacing, frame=None, convention=None)
Create an orthogrid-core sandwich cell with shifted face sheets.
sandwich_star_core_cell(*, bottom_face, top_face, bottom_face_offset, top_face_offset, stringer_section, diagonal_section, base, height, frame=None, convention=None)
Create a star-core sandwich cell with shifted face sheets.