```{raw} latex \clearpage ``` (sec-item-nodegenericdata)= # NodeGenericData A node containing a number of data (history) variables. Use this node e.g. for contact (active set), friction or plasticity (history variables). ## Interface - Provides: `GenericData` - Objects that take this node: [](#sec-item-objectconnectorrigidbodyspringdamper), [](#sec-item-objectconnectortorsionalspringdamper), [](#sec-item-objectconnectorcoordinatespringdamperext), [](#sec-item-objectconnectorrollingdiscpenalty), [](#sec-item-objectcontactconvexroll), [](#sec-item-objectcontactcoordinate), [](#sec-item-objectcontactcirclecable2d), [](#sec-item-objectcontactfrictioncirclecable2d), [](#sec-item-objectcontactspheresphere), [](#sec-item-objectcontactspheretorus), [](#sec-item-objectcontactspheretriangle), [](#sec-item-objectcontactcurvecircles), [](#sec-item-objectjointsliding), [](#sec-item-objectjointsliding2d) ## Parameters The parameters of the item; in a dictionary, its type is 'GenericData': | name | type | size | default | description | |---|---|---|---|---| | **name** | String | | '' | node's unique name | | **initialCoordinates** | Vector | | [] | (symbol: $\xv\cIni = [x_0,\,\ldots,\,x_{n_c}]\tp\cIni$) initial data coordinates | | **numberOfDataCoordinates** | UInt | | 0 | (symbol: $n_c$) number of generic data coordinates (history variables) | | **visualization** | VNodeGenericData | | | parameters for visualization of item | ## Visualization parameters `VNodeGenericData` has no parameters. ## Drawing The item draws nothing. ## Output variables Available as `OutputVariableType` in sensors, `Get...Output()` and other functions: ```{tabularcolumns} \Y{0.25}\Y{0.25}\Y{0.5} ``` | output variable | symbol | description | |---|---|---| | Coordinates | $\xv\cConfig = [x_0,\,\ldots,\,x_{nc}]\tp\cConfig$ | data coordinates (history variables) vector of node | (description-nodegenericdata)= ## Detailed description ### Coordinates A number of data coordinates, `numberOfDataCoordinates`, whose meaning is **defined by the object that uses the node**: the contact state of a contact object, the stick or slip state and the last position of friction, plastic strains. Data coordinates are no unknowns of the equations of motion; the object updates them between steps, in its post Newton step. ### Action on the equations of motion None directly: the data coordinates change the equations of the object that owns them, e.g. by switching a contact on or off. (miniexample-nodegenericdata)= ## Mini example ```python #data coordinates hold a state that is no degree of freedom and that the object updates after each step: #here the limit stop of a connector, which a mass is pushed against node = mbs.AddNode(Node1D(referenceCoordinates=[0])) mbs.AddObject(ObjectMass1D(nodeNumber=node, mass=1)) mMass = mbs.AddMarker(MarkerNodeCoordinate(nodeNumber=node, coordinate=0)) mGround = mbs.AddMarker(MarkerNodeCoordinate(nodeNumber=nGround, coordinate=0)) nData = mbs.AddNode(NodeGenericData(numberOfDataCoordinates=3, initialCoordinates=[0,0,0])) mbs.AddObject(ObjectConnectorCoordinateSpringDamperExt(markerNumbers=[mGround, mMass], nodeNumber=nData, damping=20, useLimitStops=True, limitStopsLower=-1, limitStopsUpper=0.05, limitStopsStiffness=1e4, limitStopsDamping=100)) mbs.AddLoad(LoadCoordinate(markerNumber=mMass, load=10)) mbs.Assemble() mbs.SolveDynamic() #the mass rests at the stop, pressed into it by F/k_limits exu.sys['testResult'] = mbs.GetNodeOutput(node, exu.OutputVariableType.Coordinates) #0.05+0.001 ``` Relevant Examples (Ex) and TestModels (TM) with weblink to github: [`ANCFcontactCircle.py`](https://github.com/jgerstmayr/EXUDYN/blob/master/python/Examples/ANCFcontactCircle.py) (Ex), [`ANCFcontactCircle2.py`](https://github.com/jgerstmayr/EXUDYN/blob/master/python/Examples/ANCFcontactCircle2.py) (Ex), [`ANCFmovingRigidbody.py`](https://github.com/jgerstmayr/EXUDYN/blob/master/python/Examples/ANCFmovingRigidbody.py) (Ex), [`ANCFslidingJoint.py`](https://github.com/jgerstmayr/EXUDYN/blob/master/python/Examples/ANCFslidingJoint.py) (Ex), [`ANCFslidingJoint2D.py`](https://github.com/jgerstmayr/EXUDYN/blob/master/python/Examples/ANCFslidingJoint2D.py) (Ex), [`ANCFslidingJoint2Drigid.py`](https://github.com/jgerstmayr/EXUDYN/blob/master/python/Examples/ANCFslidingJoint2Drigid.py) (Ex), [`ANCFswitchingSlidingJoint2D.py`](https://github.com/jgerstmayr/EXUDYN/blob/master/python/Examples/ANCFswitchingSlidingJoint2D.py) (Ex), [`beltDriveALE.py`](https://github.com/jgerstmayr/EXUDYN/blob/master/python/Examples/beltDriveALE.py) (Ex), [`beltDriveReevingSystem.py`](https://github.com/jgerstmayr/EXUDYN/blob/master/python/Examples/beltDriveReevingSystem.py) (Ex), [`beltDrivesComparison.py`](https://github.com/jgerstmayr/EXUDYN/blob/master/python/Examples/beltDrivesComparison.py) (Ex), [`bicycleIftommBenchmark.py`](https://github.com/jgerstmayr/EXUDYN/blob/master/python/Examples/bicycleIftommBenchmark.py) (Ex), [`camFollowerExample.py`](https://github.com/jgerstmayr/EXUDYN/blob/master/python/Examples/camFollowerExample.py) (Ex), [`ANCFcontactCircleTest.py`](https://github.com/jgerstmayr/EXUDYN/blob/master/python/TestModels/ANCFcontactCircleTest.py) (TM), [`ANCFcontactFrictionTest.py`](https://github.com/jgerstmayr/EXUDYN/blob/master/python/TestModels/ANCFcontactFrictionTest.py) (TM), [`ANCFmovingRigidBodyTest.py`](https://github.com/jgerstmayr/EXUDYN/blob/master/python/TestModels/ANCFmovingRigidBodyTest.py) (TM), ...