HyperWorks Solvers

Vtorque

Vtorque

Previous topic Next topic No expanding text in this topic  

Vtorque

Previous topic Next topic JavaScript is required for expanding text JavaScript is required for the print function  

Model Element

Class Name

Vtorque

Description

Vtorque defines a general torque acting between two markers. The torque vector is defined by its 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

Name

Property

Modifiable by command?

id    

Int ()

 

label

Str ()

 

i      

Reference (Marker)

jfloat

Reference (Marker)

rm    

Reference (Marker)

tx    

Function  ()

ty    

Function  ()

tz    

Function  ()

function

Function  ("VTOSUB")

routine

Routine   ()

 

active

Bool ()

Usage

Vtorque is available in three flavors.

#1. Torque defined in a MotionSolve expression

Vtorque (i=objMarker, j=objMarker, fx=expressionString, fy=expressionString, fz=expressionString, optional_attributes)

 

#2. Torque defined in a compiled DLL

Vtorque (i=objMarker, j=objMarker, function=userString, routine=string, optional_attributes)

 

#3. Torque y

Vtorque (i=objMarker, j=objMarker, function=userString, routine=functionPointer,

        optional_attributes)

Attributes

Description

Torque defined in a MotionSolve expression

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.

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.

Torque defined in a compiled DLL

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 torque.

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 torque.

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

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.dllmyVtorque

”/staff/Altair/ engine.dll is the dll
“myVtorque” is the function within this DLL that performs the calculations

The attribute routine is optional.

When not specified, routine defaults to VTOSUB.

Torque or torque magnitude 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 torque.

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 torque.

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=myVtorque

myVtorque is a Python function or method that can be called from wherever the model resides.

The attribute routine is optional.

When not specified, routine defaults to VTOSUB.

Optional attributes – Available to all variants

id

Integer

Specifies the element identification number.  This number must be unique among all the Vtorque 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 Vtorque 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.

Comments

1.See Properties for an explanation about what properties are, why they are used, and how you can extend these.

For a more detailed explanation about Vtorque, see the Comments in the XML syntax section.

Example

1.Vtorque defined via expressions.

vto1 = Vtorque (label="nonlinear bushing", i=m1801, jfloat=m1901, rm=m1903,

  fx="-1e3*AX(1801,1903) – 2*(WX(1801,1903,1903))**3”,
  fy="-1e3*AY(1801,1903) – 2*(WY(1801,1903,1903))**3”,

  fz="-1e3*AZ(1801,1903) – 2*(WZ(1801,1903,1903))**3” )

2.Vtorque in previous example defined in a Python function.

# Define the user subroutine first

def myVtosub (id, time, par, npar, dflag, iflag):

 i = par[0]

 j = par[1]

 k = par[2]

 c = par[3]

 

 # Get the state of the bushing

 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

 tx = -k*ax – c*(wx**3)

 ty = -k*ay – c*(wy**3)

 tz = -k*az – c*(wz**3)

 

 return [tx, ty, tz]

 

# Refer to the user subroutine in the bushing statement

 

vto1 = Vtorque (label="nonlinear bushing", i=m1801, jfloat=m1901, rm=m1903,

  function=”user(1801,1903,1000.0,2.0)”, routine=myVtosub )