SURSUB

Modeling参照サーフェス要素用にユーザー定義のサーフェス要素とその導関数を指定するために使用します。

使用

通常、ユーザー定義のサーフェスは、ポイント-サーフェス間および曲線-サーフェス間の拘束と組み合わせて使用されます。値を計算するためにSURSUBを呼び出すユーザー定義のサーフェス:

<Reference_ParamSurface
     id                  = "555"
     is_u_closed         = "TRUE"
     is_v_closed         = "TRUE"
     u_start             = "-1."
     u_end               = "1."
     v_start             = "-1."
     v_end               = "1."
     usrsub_param_string = "USER(1,400,100)"
     usrsub_dll_name     = "NULL"
/>

フォーマット

Fortranの呼出し構文
SUBROUTINE SURSUB (ID, PAR, NPAR, ALPHA, BETA, IORD, IFLAG, VALUES)
C/C++の呼出し構文
void STDCALL SURSUB (int *id, double *par, int *npar, double *alpha, double *beta, int *iord, int *iflag, double *values)
Pythonの呼出し構文
def SURSUB(id, par, npar, alpha, beta, iord, iflag):
    return values
MATLABの呼出し構文
function values = SURSUB(id, par, npar, alpha, beta, iord, iflag)

属性

ID
[整数]
ユーザー定義のパラメータサーフェス要素識別子。
TIME
[倍精度]
現在のシミュレーション時間。
PAR
[倍精度]
ユーザー定義のステートメントで提供されたリストにある定数引数を含む配列。
NPAR
[整数]
PAR配列のエントリの数。
IORD
[整数]
時間導関数の次数。
0
サーフェス座標。
1
ALPHABETAに関するサーフェス1次導関数。
2
ALPHABETAに関するサーフェス2次導関数。
ALPHA
[倍精度]
制限がu_startu_endによって定義される1つ目の独立パラメータの値。
BETA
[倍精度]
制限がv_startv_endによって定義される2つ目の独立パラメータの値。
IFLAG
[論理]
初期化フラグ。

出力

VALUE
[倍精度]
計算されたサーフェス座標、1次および2次導関数を含む出力値配列。特に、IORDが0の場合は、VALUEがX、Y、およびZ座標をuとvの関数として含む次元3の配列になります。

def SURSUB(id, par, npar, alpha, beta, iord, iflag):

    isurtyp =int(par[0])

    cosa = cos(pi*(alpha))
    cosb = cos(pi*(beta))
    sina = sin(pi*(alpha))
    sinb = sin(pi*(beta))

    values = []
    r = par[1]
    if iord == 0:
        values.append(r*cosa*cosb)
        values.append(r*cosa*sinb)
        values.append(r*sina)

    return values