DMPSUB
ModelingUsed to compute a custom modal damping ratio for a flexible body.
Use
Flexible Body using the damping ration computed in a 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>
Format
- Fortran Calling Syntax
-
SUBROUTINE DMPSUB (ID, TIME, PAR, NPAR, FREQ, NMODE, H, CRATIOS)
- C/C++ Calling Syntax
-
void STDCALL DMPSUB (int *ID, double *time, double *par, int *npar, double *freq, double *nmode, double *h, double *cratios)
- Python Calling Syntax
-
def DMPSUB(id, time, par, npar, freq, nmode, h): return cratios
- MATLAB Calling Syntax
-
function cratios = DMPSUB(id, time, par, npar, freq, nmode, h)
Attributes
- ID
- [integer]
- TIME
- [double precision]
- PAR
- [double precision]
- NPAR
- [integer]
- FREQ
- [double precision]
- NMODE
- [double precision]
- H
- [double precision]
Output
- CRATIOS
- [double precision]
Example
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