StackDatabase#

class pynumad.objects.stackdb.Stack#

Bases: object

A stack of composite plies for a single blade surface region.

Parameters:
  • name (str) – Human-readable label, e.g. '00_01_HP_SPAR'.

  • indices (list[int]) – [inboard station, outboard station, keypoint start, keypoint end]

  • plygroups (list[Ply]) – Ordered list of Ply groups, inboard to outboard.

Notes

Consecutive plies from the same component at the same angle are automatically consolidated by addply() (incrementing nPlies).

addply(ply: Ply) Stack#

Append ply to this stack, consolidating with the last group if compatible.

Two plies are consolidated when they share the same component name and fabric angle; in that case nPlies on the last group is incremented rather than appending a new Ply.

Parameters:

ply (Ply)

Returns:

self

layer_thicknesses() ndarray#

Return total thickness contributed by each ply group.

Returns:

ndarray – 1-D array of nPlies * thickness values, one per ply group.

class pynumad.objects.stackdb.Ply(component: str | None = None, materialid: str | None = None, thickness: float | None = None, angle: float | None = None, nPlies: int | None = None)#

Bases: object

A single ply (or consolidated ply group) within a Stack.

component#

Name of the parent blade component.

Type:

str

materialid#

Material identifier key into the blade material dictionary.

Type:

str

thickness#

Nominal thickness of a single ply [mm].

Type:

float

angle#

Fibre orientation angle [degrees].

Type:

float

nPlies#

Number of plies in this group.

Type:

int