General info for all markers
What a marker is
A marker is the interface between the items that have coordinates - nodes and bodies - and the items that act on them - connectors, constraints, joints and loads. A joint does not need to know whether it is attached to a node or to a point of a body: it asks its markers for what it needs. The Interface of every connector and load names the marker types it requests, and the Interface of every marker the items that can use it; the table below lists all markers.
What a marker provides
A marker computes, in the current configuration, the marker quantities its types promise:
type |
quantities |
|---|---|
|
the global position \(\LU{0}{\pv}_m\) and velocity \(\LU{0}{\vv}_m\) |
|
the rotation matrix \(\LU{0m}{\Rot}\) and the local angular velocity \(\LU{m}{\tomega}\) |
|
one or several coordinates and their time derivatives |
|
only a Jacobian, for a load proportional to the mass |
and the Jacobians through which a force acts: the position Jacobian \(\LU{0}{\Jm_{pos}} = \partial \LU{0}{\vv}_m / \partial \dot\qv\), the rotation Jacobian \(\LU{0}{\Jm_{rot}} = \partial \LU{0}{\tomega}_m / \partial \dot\qv\), or for a coordinate a row of the unit matrix. A marker on a body takes position, orientation, velocity and angular velocity as the output variables of the body define them, at its local position, and the Jacobians from the body; a marker on a node takes them from the node.
How a force reaches the coordinates
The virtual work of a force \(\LU{0}{\fv}\) at the marker, \(\delta W = \delta \LU{0}{\pv}_m\tp \LU{0}{\fv}\), gives the generalized forces
and a torque \(\LU{0}{\ttau}\) gives \(\Qm = \LU{0}{\Jm_{rot}}\tp\, \LU{0}{\ttau}\); a force \(f\) on a
coordinate marker gives \(\Qm = \Jm\tp f\). A marker on the ground - a NodePointGround, an
ObjectGround - has an empty Jacobian, and nothing acts there.
With or without reference values
MarkerNodeCoordinate and MarkerNodeODE1Coordinate give the current coordinate, without its
reference value; MarkerNodeCoordinates, MarkerObjectODE2Coordinates and the cable and beam
markers give the coordinates including the reference values. A coordinate constraint between two
markers therefore means something different with the one and with the other.
Markers in sensors, and markers that are created
SensorMarker measures the marker quantities, in the current configuration. Most markers of a model
are added by the Create functions: CreateRevoluteJoint adds two MarkerBodyRigid, CreateForce a
MarkerBodyPosition or MarkerBodyRigid, CreateRigidBody with gravity a MarkerBodyMass.
Drawing
A marker with a position is drawn if markers.show and its own show are True: as a symbol of size
markers.defaultSize - a fraction of openGL.advanced.initialMaxSceneSize if -1 -, three crossed lines with
markers.drawSimplified, a cube otherwise, in markers.defaultColor; with markers.showBasis the frame of a marker
that has an orientation, of length markers.basisSize (general.axesTiling). markers.showNumbers writes its
number. A marker on coordinates has no position and draws nothing.
The settings: markers.show, markers.defaultSize, markers.defaultColor, markers.drawSimplified, markers.showNumbers, markers.showBasis, markers.basisSize, general.axesTiling, openGL.advanced.initialMaxSceneSize.
All markers
marker |
attached to |
provides |
usable by |
|---|---|---|---|
a body |
|
1 item |
|
a body |
|
10 items |
|
a body |
|
23 items |
|
a node with |
|
10 items |
|
a node with |
|
23 items |
|
a node |
|
5 items |
|
a node |
|
1 item |
|
a node |
|
5 items |
|
a node with |
|
5 items |
|
two bodies |
|
5 items |
|
two bodies |
|
5 items |
|
mesh nodes of a super element |
|
10 items |
|
mesh nodes of a super element |
|
23 items |
|
a link of a kinematic tree |
|
23 items |
|
a body |
|
1 item |
|
a body |
|
5 items |
|
a body |
|
5 items |
|
a body |
|
the items that name it |