DMPSUB

Modeling弾性体のカスタムモード減衰比を計算するために使用します。

使用

DMPSUBで計算される減衰比を使用した弾性体:

<Body_Flexible
     id                  = "30103"
     lprf_id             = "63330103"
     h3d_file            = "../qa_depot/h3d/beam.h3d"
     is_user_damp        = "TRUE"
     usrsub_param_string = "USER(30102020,30101010)"
     usrsub_dll_name     = "NULL"
     flexdata_id         = "30102"
     v_ic_x              = "0."
     v_ic_y              = "0."
     v_ic_z              = "0."
     w_ic_x              = "0."
     w_ic_y              = "0."
     w_ic_z              = "0."
     v_ic_x_flag         = "FALSE"
     v_ic_y_flag         = "FALSE"
     v_ic_z_flag         = "FALSE"
     w_ic_flag           = "FALSE">
  </Body_Flexible>

フォーマット

Fortranの呼出し構文
SUBROUTINE DMPSUB (ID, TIME, PAR, NPAR, FREQ, NMODE, H, CRATIOS)
C/C++の呼出し構文
void STDCALL DMPSUB (int *ID, double *time, double *par, int *npar, double *freq, double *nmode, double *h, double *cratios)
Pythonの呼出し構文
def DMPSUB(id, time, par, npar, freq, nmode, h):
    return cratios
MATLABの呼出し構文
function cratios = DMPSUB(id, time, par, npar, freq, nmode, h)

属性

ID
[整数]
弾性体識別子。
TIME
[倍精度]
現在のシミュレーション時間。
PAR
[倍精度]
ユーザー定義のステートメントで提供されたリストにある定数引数を格納した配列。
NPAR
[整数]
PAR配列のエントリの数。
FREQ
[倍精度]
固有周波数の配列。
NMODE
[倍精度]
弾性体に関連付けられたモードの数。
H
[倍精度]
積分器のステップサイズ。

出力

CRATIOS
[倍精度]
減衰比を臨界減衰の比として含む次元NMODEのベクトル出力値。

def DMPSUB(id, time, par, npar, freq, nmode, h):
    cratios = nmode*[0.0]
    [nq, errflg] = py_nmodes(id)
    if nq<=30:
        [mode, xfreq, errflg] = py_modinf(id)
    for i in xrange(nmode):
        if freq[i] < par[1]:
            cratios[i] = par[0]
        elif freq[i] < par[3]:
            cratios[i] = par[2]
        else:
            cratios[i] = par[4]
        return cratios