```{raw} latex \clearpage ``` # General info for all super elements ## What a super element is A super element is a body that stands for many points at once - the nodes of a finite element mesh, the links of a robot - and computes their motion from its own coordinates. | object | coordinates | what it is for | |---|---|---| | `ObjectGenericODE2` | the coordinates of its nodes | a linear or nonlinear system of second order equations: mass, damping and stiffness matrices, user functions | | `ObjectFFRF` | a rigid body node and the nodes of the mesh | a flexible body in the floating frame of reference formulation, with all mesh coordinates | | `ObjectFFRFreducedOrder` | a rigid body node and a `NodeGenericODE2` of modal coordinates | the same, reduced to a few modes: the flexible body of choice, imported with `FEMinterface` | | `ObjectKinematicTree` | a `NodeGenericODE2` of joint coordinates | an open tree of rigid links in minimal coordinates, e.g. a serial robot | ## Mesh nodes The points a super element stands for are its **mesh nodes**, numbered from 0 within the object. A mesh node may be a node of the system (`ObjectGenericODE2`, `ObjectFFRF`) or exist only in the object and be computed from its coordinates (`ObjectFFRFreducedOrder`: from the modes). Each mesh node has output variables of its own - its position, displacement, velocity, and for the FFRF objects stresses and strains where the modes carry them - which `SensorSuperElement` measures and the contour plot draws. ## Marker interfaces Forces, connectors and joints act on a super element through its **own markers**: `MarkerSuperElementPosition` averages the positions of a set of mesh nodes with weights, and `MarkerSuperElementRigid` also a rotation, from mesh nodes that can represent a rigid body motion; the kinematic tree has `MarkerKinematicTreeRigid` at a link. Their Jacobians are those of the mesh nodes, weighted. The general body markers act on the FFRF objects' **reference frame** only, and not at all on `ObjectGenericODE2` and `ObjectKinematicTree`, where `Assemble()` refuses them; the page of each object says which. (sec-drawing-objectssuperelement)= ## Drawing A super element is drawn if `bodies.show` and its own `show` are True: its triangle mesh on its nodes, the deformation scaled by `bodies.deformationScaleFactor`, in its `color` or `bodies.defaultColor`; in a contour plot (`contour.outputVariable`, `contour.outputVariableComponent`) colored by the values at the nodes. `bodies.showNumbers` writes its number. The settings: [`bodies.show`](#sec-vsettingsbodies), [`bodies.showNumbers`](#sec-vsettingsbodies), [`bodies.defaultColor`](#sec-vsettingsbodies), [`bodies.deformationScaleFactor`](#sec-vsettingsbodies), [`contour.outputVariable`](#sec-vsettingscontour), [`contour.outputVariableComponent`](#sec-vsettingscontour).