SFOSUB

Modeling力エンティティの力の値を計算するために使用します。

使用

力の大きさを計算するためにSFOSUBを呼び出すユーザー定義の要求。
<Force_Scalar_TwoBody
     id                  = "30101"
     type                = "Force"
     i_marker_id         = "30103031"
     body1_id            = "30103"
     j_marker_id         = "30104041"
     body2_id            = "30104"
     usrsub_param_string = "USER(50,1000)"
     usrsub_dll_name     = "NULL">
  </Force_Scalar_TwoBody>

フォーマット

Fortranの呼出し構文
SUBROUTINE SFOSUB (ID, TIME, PAR, NPAR, DFLAG,IFLAG, VALUE)
C/C++の呼出し構文
void STDCALL SFOSUB (int *id, double *time, double *par, int *npar, int *dflag, int *iflag, double *result)
Pythonの呼出し構文
def SFOSUB(id, time, par, npar, dflag, iflag):
    return value
MATLABの呼出し構文
function result = SFOSUB(id, time, par, npar, dflag, iflag)

属性

ID
[整数]
ユーザー定義の力要素識別子。
TIME
[倍精度]
現在のシミュレーション時間。
PAR
[倍精度]
ユーザー定義のステートメントで提供されたリストにある定数引数を格納した配列。
NPAR
[整数]
PAR配列のエントリの数。
DFLAG
[論理]
差分フラグ。
IFLAG
[論理]
初期化フラグ。

出力

VALUE
[倍精度]
SFOSUBが計算した力の値を含む出力値。

def SFOSUB(id, time, par, npar, dflag, iflag):
    [dm, errflg] = py_sysfnc("DM", [par[0],par[1]])
    [vm, errflg] = py_sysfnc("VM", [par[2],par[3]])
    [vector, errflg] = py_impact(dm, vm, par[4], par[5], par[6], par[7], par[8],0)

    return vector[0]