VFOSUB

Modeling力ベクトルエンティティの並進力成分を計算します。

使用

VFOSUBを呼び出すユーザー定義のベクトル力:

<Force_Vector_TwoBody
     id                    = "30701"
     type                  = "ForceOnly"
     i_marker_id           = "30701010"
     body1_id              = "30301"
     j_floating_marker_id  = "30701012"
     body2_id              = "30101"
     ref_marker_id         = "30301010"
     ref_body_id           = "30101"
     usrsub_param_string   = "USER(1,30800,30700,30301)"
     usrsub_dll_name       = "NULL">
  </Force_Vector_TwoBody>

フォーマット

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

属性

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

出力

RESULTS
[倍精度]
VFOSUBが計算した力値成分(X、Y、およびZ)を含む次元3の出力値配列。

def VFOSUB(id, time, par, npar, dflag, iflag):

    results = [0,0,0]

    [dx, errflg] = py_sysfnc("DX", [par[1],par[2]])
    [vx, errflg] = py_sysfnc("VX", [par[3],par[4]])
    [vector, errflg] = py_impact(dx, vx, par[5], par[6], par[7], par[8], par[9],0)
    results[0] = vector[0]

    return results