Class NameGforce Description |
||||||||||||||||||||||||||||||||||||||||||||||
Gforce defines a general force and torque acting between two markers. The force and torque vectors are defined by their three components with respect to a third marker. The components may be defined using MotionSolve expressions or a user-defined subroutine. They may be a function of any system state and time. |
||||||||||||||||||||||||||||||||||||||||||||||
Attribute Summary
UsageGforce is available in three flavors. |
||||||||||||||||||||||||||||||||||||||||||||||
#1. Force and Torque defined in a MotionSolve expression Gforce (i=objMarker, j=objMarker, fx=expressionString, fy=expressionString, fz=expressionString, tx=expressionString, ty=expressionString, tz=expressionString, optional_attributes)
#2. Force and Torque defined in a compiled DLL Gforce (i=objMarker, j=objMarker, function=userString, routine=string, optional_attributes)
#3. Force and Torque Python/Matlab script Gforce (i=objMarker, j=objMarker, function=userString, routine=functionPointer, optional_attributes) |
||||||||||||||||||||||||||||||||||||||||||||||
Attribute Description |
||||||||||||||||||||||||||||||||||||||||||||||
Force and Torque defined in a MotionSolve expression |
||||||||||||||||||||||||||||||||||||||||||||||
i |
Reference to an existing Marker object Specifies the marker at which the force and torque are applied. This is designated as the point of application of the force. The i attribute is mandatory. |
|||||||||||||||||||||||||||||||||||||||||||||
j |
Reference to an existing floating Marker object Specifies the marker at which the reaction force and torque are applied. This is designated as the point of reaction of the force. The j attribute is mandatory. |
|||||||||||||||||||||||||||||||||||||||||||||
fx |
String defining a valid MotionSolve expression Specifies the MotionSolve expression that defines the force acting along the x-axis of the reference coordinate system (see rm below). Any valid run-time MotionSolve expression can be provided as input. The fx attribute is mandatory. |
|||||||||||||||||||||||||||||||||||||||||||||
fy |
String defining a valid MotionSolve expression Specifies the MotionSolve expression that defines the force acting along the y-axis of the reference coordinate system (see rm below). Any valid run-time MotionSolve expression can be provided as input. The fy attribute is mandatory. |
|||||||||||||||||||||||||||||||||||||||||||||
fz |
String defining a valid MotionSolve expression Specifies the MotionSolve expression that defines the force acting along the z-axis of the reference coordinate system (see rm below). Any valid run-time MotionSolve expression can be provided as input. The fz attribute is mandatory. |
|||||||||||||||||||||||||||||||||||||||||||||
tx |
String defining a valid MotionSolve expression Specifies the MotionSolve expression that defines the torque acting about the x-axis of the reference coordinate system (see rm below). Any valid run-time MotionSolve expression can be provided as input. The tx attribute is mandatory. |
|||||||||||||||||||||||||||||||||||||||||||||
ty |
String defining a valid MotionSolve expression Specifies the MotionSolve expression that defines the torque acting about the y-axis of the reference coordinate system (see rm below). Any valid run-time MotionSolve expression can be provided as input. The ty attribute is mandatory. |
|||||||||||||||||||||||||||||||||||||||||||||
tz |
String defining a valid MotionSolve expression Specifies the MotionSolve expression that defines the torque acting about the z-axis of the reference coordinate system (see rm below). Any valid run-time MotionSolve expression can be provided as input. The tz attribute is mandatory. |
|||||||||||||||||||||||||||||||||||||||||||||
Force and Torque defined in a compiled DLL |
||||||||||||||||||||||||||||||||||||||||||||||
i |
Reference to an existing Marker object Specifies the marker at which the force/torque is applied. This is designated as the point of application of the force. The i attribute is mandatory. |
|||||||||||||||||||||||||||||||||||||||||||||
j |
Reference to an existing floating Marker object Specifies the marker at which the reaction force/torque is applied. This is designated as the point of reaction of the force. The j attribute is mandatory. |
|||||||||||||||||||||||||||||||||||||||||||||
function |
String defining a valid user function MotionSolve expression The list of parameters that are passed from the data file to the user defined subroutine where the Gforce is defined. The function attribute is mandatory. |
|||||||||||||||||||||||||||||||||||||||||||||
routine |
String Specifies an alternative name for the user subroutine. The name consists of two pieces of information, separated by “∷”. The first is the pathname to the shared library containing the function that computes the response of the user-defined Vforce. The second is the name of the function in the shared library that does the computation. An example is: routine=”/staff/Altair/engine.dll∷myGforce”
The attribute routine is optional. When not specified, routine defaults to GFOSUB. |
|||||||||||||||||||||||||||||||||||||||||||||
Force and Torque defined in a Python function |
||||||||||||||||||||||||||||||||||||||||||||||
i |
Reference to an existing Marker object Specifies the marker at which the torque is applied. This is designated as the point of application of the force. The i attribute is mandatory. |
|||||||||||||||||||||||||||||||||||||||||||||
j |
Reference to an existing floating Marker object Specifies the marker at which the reaction torque is applied. This is designated as the point of reaction of the force. The j attribute is mandatory. |
|||||||||||||||||||||||||||||||||||||||||||||
function |
String defining a valid user function MotionSolve expression The list of parameters that are passed from the data file to the user defined subroutine where the Vtorque is defined. The function attribute is mandatory. |
|||||||||||||||||||||||||||||||||||||||||||||
routine |
Pointer to a callable function in Python An example is: routine=myGforce
The attribute routine is optional. When not specified, routine defaults to GFOSUB. |
|||||||||||||||||||||||||||||||||||||||||||||
Optional attributes – Available to all variants |
||||||||||||||||||||||||||||||||||||||||||||||
id |
Integer Specifies the element identification number. This number must be unique among all the Gforce objects in the model. This attribute is optional. MotionSolve will automatically create an ID when one is not specified. Range of values: id > 0 |
|||||||||||||||||||||||||||||||||||||||||||||
label |
String Specifies the name of the Gforce object. This attribute is optional. When not specified, MotionSolve will create a label for you. |
|||||||||||||||||||||||||||||||||||||||||||||
rm |
Reference to an existing Marker object Specifies the marker in whose coordinate system the torque components are computed. rm can be on any body, including Ground The rm attribute is optional. When not specified, rm defaults to the global coordinate system. |
|||||||||||||||||||||||||||||||||||||||||||||
active |
Bool Select one from True or False.
The attribute active is optional. When not specified, active defaults to True |
|||||||||||||||||||||||||||||||||||||||||||||
Comments
|
||||||||||||||||||||||||||||||||||||||||||||||
Example
|
||||||||||||||||||||||||||||||||||||||||||||||
gfo1 = gforce (label="nonlinear bushing", i=m1801, jfloat=m1901, rm=m1903, fx="-1e3*DX(1801,1903,1903)”, fz="-1e3*DZ(1801,1903,1903)”, tz="-5e3*AZ(1801,1903) – 2*WZ(1801,1903,1903)**3” ) |
||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||
# Define the user subroutine first def myGfosub (id, time, par, npar, dflag, iflag): i = par[0] j = par[1] k = par[2] kt= par[3] ct= par[4]
# Get the state of the bushing dx = DX(i,j,j) dy = DY(i,j,j) dz = DZ(I,j,j)
ax = AX(i,j) ay = AY(i,j) az = AZ(i,j)
wx = WX(i,j,j) wy = WY(i,j,j) wz = WZ(i,j,j)
# Compute force & torque fx = -k*dx fy = -k*dy fz = -k*dz tx = -kt*ax – ct*(wx**3) ty = -kt*ay – ct*(wy**3) tz = -kt*az – ct*(wz**3)
return [fx, fy, fz, tx, ty, tz]
# Define a bushing with nonlinear damping gfo2 = Gforce (label="nonlinear bushing", i=m1801, jfloat=m1901, rm=m1903, function=”user(1801,1903,1000.0,5000.0, 2.0)”, routine=myGfosub ) |