This manual provides a detailed list and usage information regarding command statements, model statements, functions and
the Subroutine Interface available in MotionSolve.

Model ElementCoupler defines an algebraic relationship between the degrees of freedom of two or three joints. This constraint element
may be used to model idealized spur gears, rack and pinion gears, and differentials as simple constraints that relate
the displacements in a set of joints.

Model ElementThe DeformCurve element allows you to represent a curve defined in the model as a DeformableCurve element. The graphic is defined by a number of straight line segments connecting vertices on the curve defined by
DeformableCurve reference.

Model ElementThe DeformSurface element allows you to represent a deformable surface defined in the model as a DeformSurface element. The graphic is defined by a number of straight line segments connecting vertices on the surface defined
by DeformSurface reference.

Model ElementDv defines a special type of solver state variable. It is used in the evaluation and computation of design sensitivity
as a design parameter. Its value is modified during the simulation in case of Design Sensitivity Analysis.

Model ElementEquilibrium defines the solution control parameters for Static and Quasi-static analysis. These parameters control the accuracy
the solution and the method to be used for solution.

Model ElementField defines a force and torque acting between two markers, I and J. The force and torque can only be a function of time
and the relative displacement between the I and J markers. The six components (three forces and three moments) are defined
in the coordinate system of the J marker.

Model ElementFlex_Body defines a flexible body object in MotionSolve. This entity has mass and inertia properties just like a rigid body. In addition, it has flexibility
properties that allow it to deform under loads.

Model ElementThe Friction element is used to specify joint friction in a specific joint in your model. Friction is supported only in the following
types of joints: revolute, spherical, translational, cylindrical and universal. MotionSolve uses the LuGre (Lundt-Grenoble) model for friction.

Model ElementThe Frustumelement allows you to represent the portion of a cone that remains after its upper part has been cut off by a plane
parallel to its base, or that is intercepted between two such planes.

Model ElementThe GCON element is used to specify a user defined general constraint. Your constraint equations may involve position as well
as velocity measures of the system. Although MotionSolve provides a large set of constraints to choose from (see JOINT), there are situations that require non-standard constraints.

Model ElementGse is an abstract modeling element that defines a generic dynamic system. The dynamic system is characterized by a vector
of inputs u, a vector of dynamic states x, and a vector of outputs y. The state vector x is defined through a set of differential equations.

Model ElementJprim is used to remove degrees of freedom between two bodies by specifying
conditions in which the relative translational or rotational motion can occur. Jprim differs from JOINT in that the former specifies mathematical constraints, which may not have
concrete physical realizations like the latter.

Model ElementThe LineMesh element connects a number of vertices in space with straight lines. It is similar to the Outline element except it does not require markers. You can pass coordinates to the LineMesh geometry.

Model ElementMarker defines an orthonormal, right-handed coordinate system and reference frame in MotionSolve. A Marker must belong to a part. The body can be any type: rigid, flexible, or point.

Model ElementMate is used to specify general mating constraints between geometric
primitives. Mate differs from JOINT and JPRIM in that it specifies more general constraints based on distance, tangency,
and coincidence relations between mating
geometries.

Model ElementNforce defines a force and torque acting between many markers. The force and the torque can only be linear functions of
the relative displacement and velocity of the various markers.

Model ElementThe ParamCurve element allows you to represent a curve defined in the model as a Curve element. The graphic is defined by a number of straight line segments connecting vertices on the curve defined by
Curve reference.

Model ElementPtcv defines a higher pair constraint. A fixed point on one body slides on a curve that is fixed on a second body. The
point is not allowed to lift off the curve.

Model ElementPTSF defines a higher pair constraint. A fixed point on one body slides on a surface that is fixed on a second body. The
point is not allowed to lift off the surface.

Model ElementRv defines a special type of solver state variable. It is used in the evaluation and computation of design sensitivity
as a response variable.

Model ElementSfsf defines a higher pair constraint. The constraint consists of a surface on one body rolling and sliding on a surface
on a second body. The surfaces are required to have a unique contact point.

Model ElementThe UserMsg element allows you to control the output of MotionSolve messages. Any message that MotionSolve prints to standard output goes through the

This manual provides a detailed list and usage information regarding command statements, model statements, functions and
the Subroutine Interface available in MotionSolve.

Model ElementDiff defines a single, first order, user-defined differential equation in
MotionSolve.

Class Name

Diff

Description

For additional information on the definition of DIFF, please see
Control_Diff. The
Diff may be defined in the three different ways:

An explicit or implicit function of system state and time defined in a MotionSolve expression

An explicit or implicit function of system state and time defined in a compiled
DLL

An explicit or implicit function of system state and time defined in a user-defined
script

Attribute Summary

Name

Property

Modifiable by
command?

Designable?

id

Int ()

label

String ()

Yes

ic

Double ([],
count=0)

Yes

FD Only

static_hold

Bool ()

implicit

Bool ()

function

Function
()

Yes

routine

Routine ()

active

Bool ()

Yes

script

Script ()

Usage

# Defined in a MotionSolve expressionDiff (function=expressionString,optional_attributes)# Defined in a compiled user-subroutineDiff (function=userString, routine=stringoptional_attributes)# Defined in a Python functionDiff (function=userString, routine=functionPointeroptional_attributes)

Attributes

Defined as a MotionSolve expression

function

String

A MotionSolve expression defining the
Diff.

The function attribute is mandatory

Defined as a user-subroutine in a compiled DLL

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 Variable 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
Variable. The second is the name of the function in the shared
library that does the computation.

An example is: routine="/staff/Altair/engine.dll::myDiff"

"/staff/Altair/engine.dll is
the dll

"myDiff" is the function within this DLL
that performs the calculations

The attribute routine is optional.

When not specified, routine defaults to
DIFSUB.

Defined as a user-subroutine in a Python script

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 Variable is defined.

The function attribute is mandatory.

routine

Pointer to a callable function in Python

An example is: routine=myDiff

myDiff 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
DIFSUB.

Optional attributes - Available to all variants

id

Integer

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

This attribute is optional. When not specified, MotionSolve will create a label for you.

ic

Double or list of two doubles

Specifies the initial conditions associated the differential equation. For explicit
differential equations only one value is needed. For implicit differential equations,
two values must be specified.

The first value defines the initial condition for the dynamic state.

This parameter is required.

If not specified, it defaults to 0.0.

The second value defines the initial condition for the time derivative of the
dynamic state.

This is required only when the differential equation is implicitly defined. It
is not required for explicit differential equations

If not specified, it defaults to 0.0.

This attribute is optional.

static hold

Boolean

Specifies whether the value of the dynamic state is kept fixed or not during static
equilibrium and quasi-static solutions.

"TRUE" implies that the value of the dynamic state is kept
constant during static and quasi-static solutions.

"FALSE" implies that the value of the dynamic state is allowed
to change during static equilibrium or quasi-static solutions.

If not specified, it defaults to FALSE.

This attribute is optional.

implicit

Boolean

Specifies whether the derivative of the state is implicitly defined by the
differential equation or not.

"True" implies that the derivative is implicitly defined.

"False" implies that the derivative is explicitly defined.

If not specified, IMPLICIT defaults to FALSE.

active

Bool

Select one from True or False.

True indicates that the element is active in the model and it
affects the behavior of the system

False indicates that the element is inactive in the model and
it does not affect the behavior of the system. It is almost as if the entity was
removed from the model, of course with the exception that can be turned "ON" when
desirable.

The attribute active is optional. When not specified,
active defaults to True

Example

Describing the spring-mass system as explicit differential equations using
expressions.