DIFSUB
Modeling制御DIFFエンティティの微分方程式の値を計算するために使用します。
使用
ユーザー定義の微分方程式に基づく制御diffステートメント:
<Control_Diff
label = "Diff/301001"
id = "301001"
is_implicit = "FALSE"
ic = "0."
ic_dot = "0."
is_static_hold = "FALSE"
type = "USERSUB"
usrsub_param_string = "USER(30102020,30101010)"
usrsub_dll_name = "NULL"
/>
フォーマット
- Fortranの呼出し構文
-
SUBROUTINE DIFSUB (ID, TIME, PAR, NPAR, DFLAG, IFLAG, VALUE)
- C/C++の呼出し構文
-
void STDCALL DIFSUB (int *id, double *time, double *par, int *npar, int *dflag, int *iflag, double *value)
- Pythonの呼出し構文
-
def DIFSUB(id, time, par, npar, dflag, iflag): return values
- MATLABの呼出し構文
-
function value = DIFSUB(id, time, par, npar, dflag, iflag)
属性
- ID
- [整数]
- TIME
- [倍精度]
- PAR
- [倍精度]
- NPAR
- [整数]
- DFLAG
- [論理]
- IFLAG
- [論理]
出力
- VALUE
- [倍精度]
例
def DIFSUB(id, time, par, npar, dflag, iflag):
ipar =2*[0]
ipar[0] =int(par[0])
ipar[1] =int(par[1])
[dz, errflg] = py_sysfnc("DZ", ipar)
py_errmes(errflg,"Error calling SYSFNC for DZ",id,"STOP")
ipar =1*[0]
ipar[0] =id
[dif, errflg] = py_sysfnc("DIF", ipar)
py_errmes(errflg,"Error calling SYSFNC for DIF",id,"STOP")
value = dz-dif
return value