MarkerNodeODE1Coordinate
A node-Marker attached to a ODE1 coordinate of a node.
Interface
Provides:
CoordinateConnectors, constraints and loads that can use it: ObjectConnectorCoordinateSpringDamper, ObjectConnectorCoordinateSpringDamperExt, ObjectConnectorCoordinate, ObjectContactCoordinate, LoadCoordinate
Parameters
The parameters of the item; in a dictionary, its type is ‘NodeODE1Coordinate’:
name |
type |
size |
default |
description |
|---|---|---|---|---|
name |
String |
‘’ |
marker’s unique name |
|
nodeNumber |
NodeIndex |
invalid (-1) |
node number to which marker is attached to |
|
coordinate |
UInt |
invalid (-1) |
coordinate of node to which marker is attached to; must be given: the default is only a placeholder |
|
visualization |
VMarkerNodeODE1Coordinate |
parameters for visualization of item |
Visualization parameters
VMarkerNodeODE1Coordinate has no parameters.
Drawing
The item draws nothing.
Detailed description
Marker quantities
quantity |
symbol |
as computed |
|---|---|---|
coordinate |
\(c = y_i\) |
the current ODE1 coordinate |
There is no velocity: an ODE1 coordinate has no time derivative of its own in the solver.
Jacobians
\(\Jm = \ev_i\tp\), a row of the unit matrix. On a node without ODE1 coordinates the value is zero and the Jacobian empty.
Mini example
#a coordinate of a first-order system: a constant input to q_t = -q + f
node = mbs.AddNode(NodeGenericODE1(numberOfODE1Coordinates=1, referenceCoordinates=[0],
initialCoordinates=[0]))
mbs.AddObject(ObjectGenericODE1(nodeNumbers=[node], systemMatrix=[[-1]]))
mCoord = mbs.AddMarker(MarkerNodeODE1Coordinate(nodeNumber=node, coordinate=0))
mbs.AddLoad(LoadCoordinate(markerNumber=mCoord, load=1))
mbs.Assemble()
mbs.SolveDynamic(solverType=exu.DynamicSolverType.RK44)
#q(1) = 1 - exp(-1)
exu.sys['testResult'] = mbs.GetNodeOutput(node, exu.OutputVariableType.Coordinates) #0.632