PTdSFSUB

ModelingForce_PTdSFエンティティの垂直抗力と摩擦力を計算するために使用します。

使用

接触ポイントの変位と速度を使用して、PTDSFSUB内の垂直抗力と摩擦力を計算する、ユーザー定義のPTdSF力。

<Force_PTdSF
    id                   = "301001"
    i_marker_id          = "30103070"
    radius               = "0.1"
    ref_dsurface_id      = "301001"
    force_model          = "USERSUB"
    usersub_param_string = "USER(100, 1000, 0.1)"
    interpreter          = "Python"
    script_name          = "ptdsfsub.py"
    usrsub_fnc_name      = "PTDSFSUB"
 />

フォーマット

Fortranの呼出し構文
SUBROUTINE PTDSFSUB (ID, TIME, PAR, NPAR, DISP, VELO, DFLAG, IFLAG, NORMAL_FORCE, FRIC_FORCE)
C/C++の呼出し構文
void STDCALL PTDSFSUB (int*id,double*time,double*par,int*npar,double*disp,double*velo,int
*dflag,int*iflag,double*normal_force,double*fric_force)
Pythonの呼出し構文
def PTdSFSUB(id, time, par, npar, disp, velo, dflag, iflag):
    return [normal_force, friction_force]
MATLABの呼出し構文

非サポート

属性

ID
[整数]
ユーザー定義のモーション要素識別子。
TIME
[倍精度]
現在のシミュレーション時間。
PAR
[倍精度]
ユーザー定義のステートメントで提供されたリストにある定数引数を格納した配列。
NPAR
[整数]
PAR配列のエントリの数。
DISP
[倍精度]
変位データを含む配列。
disp[0]
D [貫入深さ、接触時は負]
disp[1]
X [サーフェス参照マーカーを基準にした接触ポイントのX]
disp[2]
Y [サーフェス参照マーカーを基準にした接触ポイントのY]
disp[3]
Z [サーフェス参照マーカーを基準にした接触ポイントのZ]
VELO
[倍精度]
速度データを含む配列。
velo[0]
D_dot [貫入速度]
velo[1]
X_dot [サーフェス参照マーカーを基準にした接触接線速度のX]
velo[2]
Y_dot [サーフェス参照マーカーを基準にした接触接線速度のY]
velo[3]
Z_dot [サーフェス参照マーカーを基準にした接触接線速度のZ]
DFLAG
[整数]
差分フラグ。
IFLAG
[論理]
初期化フラグ。

出力

NORMAL_FORCE
[倍精度]
計算された垂直抗力を含む出力値。このスカラー値は、変形可能サーフェス上の接触ポイントでのサーフェス法線の方向に適用されます。
FRIC_FORCE
[倍精度]
計算された摩擦力(Fric_x、ric_y、Fric_z)を含む出力配列。

PythonでのPTdSFSUBの記述方法の例を以下に示します。

def PTdSFSUB(id, time, par, npar, disp, velo, dflag, iflag):
    normal_force = [0]
    friction_force = [0,0,0]
    normal_force[0] = par[1]*disp[0] + par[2]*velo[0]
    friction_force[0] =0.01*normal_force[0]*velo[1]
    friction_force[1] =0.01*normal_force[0]*velo[2]
    friction_force[2] =0.01*normal_force[0]*velo[3]
    return [normal_force, friction_force]

コメント

Iマーカーを中心とする特定の半径の球が、変形可能サーフェスと接触していない場合や、uまたはv、あるいはその両方が範囲外の場合は、PTdSFSUBは収束した各時間ステップでのみ呼び出され、出力(垂直抗力と摩擦力)は完全に無視されます。