Ptdsff

Model ElementPtdsffは、ポイントと変形可能サーフェス間の力を定義します。

クラス名

Ptdsff

説明

変形可能サーフェスは、Reference_DeformSurface要素を使用して定義されます。指定された半径の球がIマーカーの原点にあります。Iマーカーの原点とサーフェス間の距離が球の半径より小さくなると、接触反発力が生じます。

属性の概要

名前 プロパティ コマンドで変更可能か 設計可能か
id Int ()    
label Str ()  
dsurface Reference ("DeformableSurface")
i Reference ("Marker")
flip_normal Bool (False)  
radius Double () FDのみ
radius_x Double () FDのみ
radius_y Double () FDのみ
radius_z Double () FDのみ
force_model Enum ("UNDEFINED LINEAR POISSON HERTZIAN USERSUB")  
stiffness Double ()   FDのみ
damping Double ()   FDのみ
penalty Double () FDのみ
restitution_coefficient Double (0.0) FDのみ
active Bool ()  

使用法

現在、PTDSFFの4つの実装を使用できます。
#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)

属性

線形接触力
i
既存のMarkerオブジェクトへの参照。
球の形状の定義に使用するMarkerを指定します。球の中心はMarkerの原点に置かれ、Markerの親ボディに結合されます。この球形状は、変形可能サーフェスとの接触を検出するために使用されます。
i属性は必須です。
dsurface
既存のDeformableSurfaceオブジェクトへの参照。
接触に使用する変形可能サーフェスを指定します。
dsurface属性は必須です。
force_model
文字列
力モデルを指定します。線形接触モデルの場合は、"LINEAR"に設定する必要があります。
force_model属性は必須です。
stiffness
倍精度
LINEAR接触力モデルの剛性係数を指定します。
stiffness属性は省略可能です。
指定しない場合は、0に設定されます。
damping
倍精度
LINEAR接触力モデルの減衰係数を指定します。
damping属性は省略可能です。
指定しない場合は、0に設定されます。
POISSONモデルを使用した非線形接触力
i
既存のMarkerオブジェクトへの参照。
球の形状の定義に使用するMarkerを指定します。球の中心はMarkerの原点に置かれ、Markerの親ボディに結合されます。この球形状は、変形可能サーフェスとの接触を検出するために使用されます。
i属性は必須です。
dsurface
既存のDeformableSurfaceオブジェクトへの参照。
接触に使用する変形可能サーフェスを指定します。
dsurface属性は必須です。
force_model
文字列
力モデルを指定します。ポアソン接触モデルの場合は、"POISSON"に設定する必要があります。
force_model属性は必須です。
penalty
倍精度
POISSON接触力モデルのペナルティパラメータを指定します。
penalty属性は省略可能です。指定しない場合は、penalty=0になります。
penalty ≥ 0
restitution_coef
倍精度
POISSON接触力モデルの反発係数を指定します。
restitution_coef属性は省略可能です。指定しない場合は、restitution_coef=1になります。
0 ≤ restitution_coef ≤ 1。
コンパイルされたDLLで実装される非線形接触力
i
既存のMarkerオブジェクトへの参照。
球の形状の定義に使用するMarkerを指定します。球の中心はMarkerの原点に置かれ、Markerの親ボディに結合されます。この球形状は、変形可能サーフェスとの接触を検出するために使用されます。
i属性は必須です。
dsurface
既存のDeformableSurfaceオブジェクトへの参照。
接触に使用する変形可能サーフェスを指定します。
dsurface属性は必須です。
force_model
文字列
力モデルを指定します。ポアソン接触モデルの場合は、"POISSON"に設定する必要があります。
force_model属性は必須です。
function
有効なユーザー関数MotionSolve式を定義する文字列。
データファイルから、Ptdsffが定義されるユーザー定義のサブルーチンに渡されるパラメータのリスト。
function属性は必須です。
routine
文字列
ユーザーサブルーチンの代替名を指定します。この名前は、“∷”で区切られた情報の2つの部分で構成されます。1つ目は、ユーザー定義のPtdsffの応答を計算する関数を含む共有ライブラリへのパス名です。2つ目は、計算を実行する共有ライブラリ内の関数の名前です。
例: routine="/staff/Altair/engine.dllmyPtdsff"
  • "/staff/Altair/engine.dllはDLLです。
  • "myPtdsff"は、計算を実行するこのDLL内の関数です。
属性routineは省略可能です。
指定しない場合、routineはデフォルトでPTDSFSUBになります。
Python関数で実装される非線形接触力
i
既存のMarkerオブジェクトへの参照。
球の形状の定義に使用するMarkerを指定します。球の中心はMarkerの原点に置かれ、Markerの親ボディに結合されます。この球形状は、変形可能サーフェスとの接触を検出するために使用されます。
i属性は必須です。
dsurface
既存のDeformableSurfaceオブジェクトへの参照。
接触に使用する変形可能サーフェスを指定します。
dsurface属性は必須です。
force_model
文字列
力モデルを指定します。ポアソン接触モデルの場合は、"POISSON"に設定する必要があります。
force_model属性は必須です。
function
有効なユーザー関数MotionSolve式を定義する文字列。
データファイルから、Variableが定義されるユーザー定義のサブルーチンに渡されるパラメータのリスト。
function属性は必須です。
routine
Python内の呼び出し可能な関数へのポインタ。
例:routine=myPtdsff
  • myPtdsffは、モデルが存在する場所ならどこからでも呼び出すことが可能なPython関数またはメソッドです。
属性routineは省略可能です。
指定しない場合、routineはデフォルトでPTDSFSUBになります。
オプション属性 - すべてのバリアントに使用できます。
id
整数
要素識別番号を指定します。この番号は、モデル内のすべてのPtdsffオブジェクトの中で一意にする必要があります。
この属性は省略可能です。MotionSolveは、IDが指定されていない場合、自動的にこれを作成します。
値の範囲:id > 0。
label
文字列
Ptdsffオブジェクトの名前を指定します。
この属性は省略可能です。指定しない場合は、MotionSolveが代わりにラベルを作成します。
flip_normal
ブール(True/False)。
法線を生成するかどうかを指定します。
  • Trueは、要素の法線が右手の法則を使用して生成されることを意味します。具体的には、三角形要素のN1、N2、およびN3の順序で右手の指を丸めた場合に、親指の向きが法線ベクトルの方向になります。
  • Falseはこの反対を意味します。法線ベクトルは、右手の親指とは反対の方向を指します。
この属性は省略可能です。指定しない場合は、flip_normal = Falseになります。
radius
倍精度
マーカーIを中心とする球形状の半径を指定します。
この属性は省略可能です。指定しない場合は、radius=0になります。
radius ≥ 0。
radius_x
倍精度
マーカーIを中心とする楕円体形状のX方向の半径を指定します。
この属性は省略可能です。指定しない場合は、radius_x=0になります。radius_x ≥ 0。
radius_y
倍精度
マーカーIを中心とする楕円体形状のY方向の半径を指定します。
この属性は省略可能です。指定しない場合は、radius_y=0になります。radius_y ≥ 0。
radius_z
倍精度
マーカーIを中心とする楕円体形状のZ方向の半径を指定します。
この属性は省略可能です。指定しない場合は、radius_z=0になります。radius_z ≥ 0。
active
ブール
TrueFalseのどちらかを選択します。
  • Trueは、要素がモデル内でアクティブであり、システムの動作に影響を与えていることを示します。
  • Falseは、要素がモデル内で非アクティブであり、システムの動作に影響を与えていないことを示します。エンティティがモデルから削除される場合とほとんど同じですが、必要に応じて“ON”にできる点が異なります。
属性activeは省略可能です。指定しない場合、activeはデフォルトでTrueになります。

下に示すXMLの例を、Pythonインターフェースを使用して表現します。
<Reference_DeformSurface
     id             = "1"
     end_type       = "NATURAL"
     num_marker_row = "7"
     num_marker_col = "7">
       30101490 30101500 30101510 30101520 30101530 30101540 30101540
       30101420 30109781 30113791 30117801 30121811 30125821 30101480
       30101350 30108711 30112721 30116731 30120741 30124751 30101410
       30101120 30102061 30103071 30104081 30105091 30106101 30101130
       30101140 30110571 30114581 30118591 30122601 30126611 30101200
       30101210 30111641 30115651 30119661 30123671 30127681 30101270
       30101280 30101290 30101300 30101310 30101320 30101330 30101340
</Reference_DeformSurface
<Force_PTdSF
     id              = "1"   
     i_marker_id     = "30107850"
     radius          = "10.0"
     ref_dsurface_id = "1"
     force_model     = "LINEAR"
     stiffness       = "1000.0"
     damping         = "0.1"
/>
# 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)

コメント

  1. プロパティの概要、使用理由、および拡張方法については、プロパティをご参照ください。