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.