HyperWorks Solvers

Ptdsff

Ptdsff

Previous topic Next topic No expanding text in this topic  

Ptdsff

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

Model Element

Class Name

Ptdsff

Description

Ptdsff defines a force between a point and a deformable surface. The deformable surface is defined using the Reference_DeformSurface element.  A sphere of a specified radius is located at the origin of the I Marker.  When the distance between the origin of the I Marker and the surface becomes less than the sphere radius, a repulsive contact force is generated.

Attribute Summary

Name

Property

Modifiable by command?

id    

Int ()

 

label

Str ()

dsurface  

Reference ("DeformableSurface")

i        

Reference ("Marker")

flip_normal

Bool (False)

radius  

Double ()

force_model

Enum ("UNDEFINED LINEAR POISSON HERTZIAN USERSUB")

stiffness

Double ()

 

damping  

Double ()

 

penalty  

Double ()

restitution_coefficient

Double (0.0)

active

Bool ()

Usage

Four implementations of PTDSFF are currently available.

#1: Linear contact force model

Ptdsff (i=objMarker, dsurface=objDeformableSurface, force_model= "LINEAR", optional_attributes)

#2: Nonlinear contact force using the POISSON model

Ptdsff (i=objMarker, dsurface=objDeformableSurface, force_model= "POISSON", optional_attributes)

#3: Nonlinear contact force implemented in a compiled DLL

Ptdsff (i=objMarker, dsurface=objDeformableSurface, force_model= "USERSUB", function=userString, routine=string, optional_attributes)

#4: Nonlinear contact force implemented in a Python function

Ptdsff (i=objMarker, dsurface=objDeformableSurface, force_model= "USERSUB", function=userString, routine= functionPointer, optional_attributes)

Attribute Description

#1: Linear contact force

i

Reference to an existing Marker object

Specifies a Marker used to define a sphere geometry.  The sphere is centered at the origin of the Marker and is attached to the parent body of the Marker. The sphere geometry is used for detecting contact with the deformable surface.

The i attribute is mandatory.

dsurface

Reference to an existing DeformableSurface object

Specifies the deformable surface to be used for the contact.

The dsurface attribute is mandatory.

force_model

String

Specifies the force model.  Must be set to “LINEAR” for a linear contact model.

The force_model attribute is mandatory.

stiffness

Double

Specifies the stiffness coefficient for the LINEAR contact force model.

The stiffness attribute is optional.

When not specified, it is set to zero.

damping

Double

Specifies the damping coefficient for the LINEAR contact force model.

The damping attribute is optional.

When not specified, it is set to zero.

#2: Nonlinear contact force using the POISSON model

i

Reference to an existing Marker object

Specifies a Marker used to define a sphere geometry.  The sphere is centered at the origin of the Marker and is attached to the parent body of the Marker. The sphere geometry is used for detecting contact with the deformable surface.

The i attribute is mandatory.

dsurface

Reference to an existing DeformableSurface object

Specifies the deformable surface to be used for the contact.

The dsurface attribute is mandatory.

force_model

String

Specifies the force model.  Must be set to “POISSON” for a Poisson contact model.

The force_model attribute is mandatory.

penalty

Double

Specifies the penalty parameter for the POISSON contact force model.

The penalty attribute is optional. When not specified, penalty=0.

penalty ≥ 0

restitution_coef

Double

Specifies the restitution coefficient for the POISSON contact force model.

The restitution_coef attribute is optional. When not specified, restitution_coef =1.

0 ≤ restitution_coef ≤ 1

#3: Nonlinear contact force implemented in a compiled DLL

i

Reference to an existing Marker object

Specifies a Marker used to define a sphere geometry.  The sphere is centered at the origin of the Marker and is attached to the parent body of the Marker. The sphere geometry is used for detecting contact with the deformable surface.

The i attribute is mandatory.

dsurface

Reference to an existing DeformableSurface object

Specifies the deformable surface to be used for the contact.

The dsurface attribute is mandatory.

force_model

String

Specifies the force model.  Must be set to “POISSON” for a Poisson contact model.

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

An example is: routine=”/staff/Altair/engine.dllmyPtdsff

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

The attribute routine is optional.

When not specified, routine defaults to PTDSFSUB.

 

 

#4: Nonlinear contact force implemented in a Python function

i

Reference to an existing Marker object

Specifies a Marker used to define a sphere geometry.  The sphere is centered at the origin of the Marker and is attached to the parent body of the Marker. The sphere geometry is used for detecting contact with the deformable surface.

The i attribute is mandatory.

dsurface

Reference to an existing DeformableSurface object

Specifies the deformable surface to be used for the contact.

The dsurface attribute is mandatory.

force_model

String

Specifies the force model.  Must be set to “POISSON” for a Poisson contact model.

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

The function attribute is mandatory.

routine

Pointer to a callable function in Python

An example is: routine=myPtdsff

myPtdsff 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 PTDSFSUB.

Optional attributes – Available to all variants

id

Integer

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

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

flip_normal

Boolean (True/False).

Specifies whether the normals are to be generated

True means that the element normals are generated using the right hand rule.  Specifically, if one curls the fingers of the right hand in the order N1, N2, and N3 of a triangular element, then the thumb provides the direction of the normal vector.
False means the converse: The normal vector points in the direction opposite to the right hand thumb.

This attribute is optional. When not specified, flip_normal = False.

radius

Double

Specifies the radius of the spherical geometry centered at marker I.

This attribute is optional. When not specified, radius=0.

radius ≥ 0

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

Comments

1.See Properties, for an explanation about what properties are, why they are used and how you can extend these.
2.For a more detailed explanation about Ptdsff, see the Comments in the XML syntax section.

Example

1.Express the XML example shown below using the Python interface.

 

# Create the I Marker

imrkr = Marker (label="ptdsff-i", body=p3030)

 

# Define the deformable surface points

mkrMatrix = [[m30101490, m30101500, m30101510, m30101520, m30101530, m30101540, m30101540],

            [m30101420, m30109781, m30113791, m30117801, m30121811, m30125821, m30101480],

            [m30101350, m30108711, m30112721, m30116731, m30120741, m30124751, m30101410],

            [m30101120, m30102061, m30103071, m30104081, m30105091, m30106101, m30101130],

            [m30101140, m30110571, m30114581, m30118591, m30122601, m30126611, m30101200],

            [m30101210, m30111641, m30115651, m30119661, m30123671, m30127681, m30101270],

            [m30101280, m30101290, m30101300, m30101310, m30101320, m30101330, m30101340]]

 

# Create the deformable surface object

ds = Dsurface (markers=mkrmatrix))

 

# Create the Ptdsff object

ptdsff1 = Ptdsff (i=imrkr, dsurface=ds, radius=10, force_model="LINEAR", stiffness=1000,

                 damping=0.1)