REQSUB

Modelingユーザー定義の要求要素の出力を計算するために使用します。これは、通常、出力量が明示的な関数として表すには複雑すぎる場合に実行されます。

使用

出力される量を計算するためにREQSUBを呼び出すユーザー定義の要求。
<Post_Request
     comment             = "reqsub"
     id                  = "70000006"
     type                = "USERSUB"
     usrsub_param_string = "USER(30102,30123,30003)"
     usrsub_dll_name     = "NULL"
  />

フォーマット

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

属性

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

出力

RESULTS
[倍精度]
計算された出力を含む次元8のベクトル出力値。

def REQSUB(id, time, par, npar, iflag):

    states =9*[0.0]
    ipar =3*[0]
    
    results =8*[0.0]

        ipar[0] =int(par[1])
        ipar[1] =int(par[2])
        ipar[2] =int(par[3])

        [states, errflg] = py_sysary("TFORCE", ipar)
        results[1] = states[0]
        results[2] = states[1]
        results[3] = states[2]

        [states, errflg] = py_sysary("RFORCE", ipar)
        results[5] = states[0]
        results[6] = states[1]
        results[7] = states[2]

    return results