Skip to content

Shell โ€‹

Shell elements carry both in-plane (membrane) and out-of-plane (bending, shear) actions, and are the right choice for anything thin relative to its other two dimensions โ€” slabs, walls, plates, folded plates, roofs, tanks.

Alpaca4d uses the ASDShell family from ASDEA:

  • ASDShellQ4 โ€” 4-node quadrilateral.
  • ASDShellT3 โ€” 3-node triangle.

๐Ÿ”ง Grasshopper component โ€‹

ASD ShellAlpaca4d โ–ธ 02_Element
ASDQ4/ASDT3 component
Inputs
MeshMeshSurface mesh, in m. Quads and triangles may be mixed.
SectionSectionShell section โ€” a Plate Fiber Section, which carries the thickness and an nD material.
ColourColourAlpaca4d shell colourDisplay colour in the Rhino viewport.
LocalXLocal X AxisVectorelement defaultDirection the element's local x axis is aligned to.
Sets the axes that Shell Forces are reported in. It is flattened onto each face, so it only has to point roughly the right way, but not along the shell's normal: within 1ยฐ of the normal of any face is an error that names those faces. Leave empty to let OpenSees pick per face.
IsCorotationalBooleanfalseUse the corotational formulation, for large displacements and rotations.
ElementIdText(empty)Optional name for the elements, used to pull their results out later or to load them by name.
Every face of the mesh takes it, so a whole slab is one group and asking for the name returns all of it. Free text, and yours to repeat. To name parts apart, give them as separate meshes with a list of names, one per mesh.

Note

Set Local X Axis on any model where you intend to read pxx, myy and the rest. Without it each face orients itself independently, and the per-face results are no longer comparable across the mesh.

Warning

The Local X Axis cannot stand square to the shell. It is flattened onto each face, and along a face's normal nothing is left to flatten: OpenSees stops at Run Analysis with only Analysis Failed to show for it, and a vector a hair off the normal gives an axis that turns with every tilt of the face. So ASD Shell turns away a Local X within 1ยฐ of the normal of any face and lists the faces, counting from 0. On a horizontal slab give a horizontal vector, not Z. On a curved shell, pick one that no face stands square to: a cylinder's own axis, or a horizontal vector on a dome that stops short of vertical. A shell whose faces turn to face every way has no such vector, so split it and give each part its own.

Outputs
ElementElementlistThe shell elements, one per mesh face, to be connected to Assemble.
They are on the branch their mesh came from, as beams are on their line's, so shells and beams wire into Assemble together without flattening.

One component covers both element types. The mesh is exploded into single faces, and each face becomes one element: 4 vertices โ†’ ASDShellQ4, 3 vertices โ†’ ASDShellT3.

๐Ÿ“ˆ When to use it โ€‹

Use it when

  • You are modelling slabs, walls, plates, shells or other thin surfaces.
  • Membrane and bending actions both matter โ€” floor diaphragms, shear walls, tanks.
  • A solid model would be unnecessarily heavy but a beam model is too coarse.

Do not use it when

๐Ÿ”— Relation to OpenSees
tcl
element ASDShellQ4 $eleTag $n1 $n2 $n3 $n4 $secTag <-corotational> <-local $x $y $z>
element ASDShellT3 $eleTag $n1 $n2 $n3      $secTag <-corotational> <-local $x $y $z>
  • Node tags come from the mesh face vertices, matched to model nodes by the Assemble tolerance.
  • $secTag is the Section input.
  • -corotational is emitted when Is Corotational is true.
  • -local is emitted only when Local X Axis is supplied.