/FUNCT_PYTHON
Blockフォーマットキーワード Pythonスクリプトで定義された関数を定義します。
フォーマット
(1) | (2) | (3) | (4) | (5) | (6) | (7) | (8) | (9) | (10) |
---|---|---|---|---|---|---|---|---|---|
/FUNCT_PYTHON/fct_ID | |||||||||
def function_name(argument) | |||||||||
…Python code… | |||||||||
return variable |
"return"の後の空白行は必須です。
(1) | (2) | (3) | (4) | (5) | (6) | (7) | (8) | (9) | (10) |
---|---|---|---|---|---|---|---|---|---|
空白行 |
定義
フィールド | 内容 | SI単位の例 |
---|---|---|
fct_ID | 関数の識別子 | |
function_name | 関数名。モデル内で一意である必要があります。 (テキスト) |
|
argument | (必須)関数の引数。 (テキスト) |
|
variable | (必須)出力変数。 (テキスト) |
Radioss変数
Pythonスクリプトでは、Radiossのグローバルデータ、節点データ、または基本データを使用できます。
キー | 定義 |
---|---|
TIME |
現在のシミュレーション時間。 |
DT |
現在の時間ステップ。 |
キー | 定義 |
---|---|
Ci(node_ID) |
全体座標系におけるnode_IDの座標 。 |
Di(node_ID) |
全体座標系におけるnode_IDの変位 。 |
Vi(node_ID) |
全体座標系におけるnode_IDの並進速度 。 |
Ai(node_ID) |
全体座標系におけるnode_IDの並進加速度 。 |
VRi(node_ID) |
全体座標系におけるnode_IDの回転速度 。 |
ARi(node_ID) |
全体座標系におけるnode_IDの回転加速度 。 |
DRi(node_ID) |
全体座標系におけるnode_IDの回転 。 |
キー | 定義 |
---|---|
ALPHA(ELEM_ID) |
要素ELEM_IDの材料/MAT/LAW58のせん断角度alpha(単位: 度)。 |
AMS(ELEM_ID) |
要素ELEM_IDの/DT/CST_AMSによりAMS時間ステップを使用する要素。 |
BFRAC(ELEM_ID) |
要素ELEM_IDの燃焼率。 |
BULK(ELEM_ID) |
要素ELEM_IDの人工粘性。 |
COLOR(ELEM_ID) |
要素ELEM_IDの体積率の色。 |
DAMi(ELEM_ID) |
要素ELEM_IDの局所亀裂スキュー方向 の主損傷値。 |
DAMA(ELEM_ID) |
要素ELEM_IDのすべての/FAIL基準の特定期間にわたる損傷最大値。 |
DAMG(ELEM_ID) |
要素ELEM_IDの板厚方向積分点の平均損傷(連成損傷モデルの場合のみ)。 |
DAMINI(ELEM_ID) |
要素ELEM_IDの応力軟化の計算前に開始変数を使用しているすべての破壊基準の間で最大の損傷開始変数(/FAIL/INIEVO)。 |
DENS(ELEM_ID) |
要素ELEM_IDの密度。 |
DOMAIN(ELEM_ID) |
要素ELEM_IDのSPMDドメイン数。 |
DT(ELEM_ID) |
要素ELEM_IDの時間ステップ。 |
EINT(ELEM_ID) |
要素ELEM_IDの単位体積あたりの要素内部エネルギー。 |
EINTM(ELEM_ID) |
要素ELEM_IDの比内部エネルギー。 |
EINTV(ELEM_ID) |
要素ELEM_IDの内部エネルギー密度。 |
ENER(ELEM_ID) |
要素ELEM_IDの比エネルギー密度(内部エネルギーを要素の質量で割った値)。 |
ENTH(ELEM_ID) |
要素ELEM_IDのエンタルピー。 |
ENTHM(ELEM_ID) |
要素ELEM_IDの質量エンタルピー。 |
ENTHV(ELEM_ID) |
要素ELEM_IDのエンタルピー密度。 |
EPSD(ELEM_ID) |
要素ELEM_IDの相当ひずみ速度。 |
EPSP(ELEM_ID) |
要素ELEM_IDの塑性ひずみ。 |
FAIL(ELEM_ID) |
要素ELEM_IDの破断層の数。 |
FAILURE(ELEM_ID) |
要素ELEM_IDのオプションの識別子fail_IDによって参照される特定の破壊基準の損傷。 |
FILL(ELEM_ID) |
要素ELEM_IDの充填パーセンテージ。 |
FLDF(ELEM_ID) |
要素ELEM_IDのFLD破壊モデルのFLD損傷係数の指標。 |
FLDZ(ELEM_ID) |
要素ELEM_IDのFLD破壊モデルのFLD破壊ゾーン係数。 |
GROUP(ELEM_ID) |
要素ELEM_IDの内部グループの識別子。 |
HC_DSSE_F(ELEM_ID) |
要素ELEM_IDのHC_DSSE損傷係数の指標。 |
HC_DSSE_Z(ELEM_ID) |
要素ELEM_IDのHC_DSSE破壊モデルのHC_DSSE破壊ゾーン係数。 |
HOURGLASS(ELEM_ID) |
要素ELEM_IDの単位質量あたりのアワグラスエネルギー。 |
K(ELEM_ID) |
要素ELEM_IDのCFDでの乱流エネルギーに特化。 |
MACH(ELEM_ID) |
要素ELEM_IDのMach数。 |
MASS(ELEM_ID) |
要素ELEM_IDの要素質量。 |
MOMi(ELEM_ID) |
要素ELEM_IDのインターフェースTYPE22でのFVMの方向 のセル運動量密度。 |
NL_EPSD(ELEM_ID) |
要素ELEM_IDの非局所塑性ひずみ速度。 |
NL_EPSP(ELEM_ID) |
要素ELEM_IDの非局所塑性ひずみ。 |
NXTF(ELEM_ID) |
要素ELEM_IDの/FAIL/NXT破壊モデルの不安定係数。 |
OFF(ELEM_ID) |
要素ELEM_IDのステータス。 |
P(ELEM_ID) |
要素ELEM_IDの圧力。 |
PHI(ELEM_ID) |
要素ELEM_IDの要素座標系と異方性の方向1の間の角度。 |
SCHLIEREN(ELEM_ID) |
要素ELEM_IDのシュリーレン像。 |
SIGEQ(ELEM_ID) |
要素ELEM_IDの材料の降伏基準に基づく相当応力。 |
SIGi(ELEM_ID) |
要素ELEM_IDの指定した方向の応力 。 |
SSP(ELEM_ID) |
要素ELEM_IDの音速。 |
TDEL(ELEM_ID) |
要素ELEM_IDが削除される時間。 |
TDET(ELEM_ID) |
要素ELEM_IDの爆発時間。 |
TEMP(ELEM_ID) |
要素ELEM_IDの温度。 |
THICK(ELEM_ID) |
要素ELEM_IDの板厚。 |
THIN(ELEM_ID) |
要素ELEM_IDのシェル厚減少率(%)。 |
TILLOTSON(ELEM_ID) |
要素ELEM_IDのTillotson状態方程式の領域識別子。 |
TSAIWU(ELEM_ID) |
要素ELEM_IDの材料のTsai-Wu基準。 |
TVIS(ELEM_ID) |
要素ELEM_IDのCFDでの乱流粘性に特化。 |
VDAMi(ELEM_ID) |
要素ELEM_IDの/FAIL/SNCONNECTの損傷値 。 |
VELi(ELEM_ID) |
要素ELEM_IDのインターフェースTYPE22でのFVMのセル速度 。 |
VFRAC1(ELEM_ID) |
要素ELEM_IDの体積率 。 |
VOLU(ELEM_ID) |
要素ELEM_IDの体積。 |
VONM(ELEM_ID) |
要素ELEM_IDのフォンミーゼス応力。 |
VORT(ELEM_ID) |
要素ELEM_IDのALE材料の渦度結果。 |
VORTi(ELEM_ID) |
要素ELEM_IDのALE材料の方向 での渦度。 |
例(TIME
を使用)
TIME
を使用した正弦関数#---1----|----2----|----3----|----4----|----5----|----6----|----7----|----8----|----9----|---10----|
/FUNCT_PYTHON/1
def disp_X(x):
import math
X = TIME
Y = 10*math.sin(X*20*math.pi)
return Y
#---1----|----2----|----3----|----4----|----5----|----6----|----7----|----8----|----9----|---10----|
例(/FUNCT_SMOOTH)
/FUNCT_SMOOTHと同じ関数
#---1----|----2----|----3----|----4----|----5----|----6----|----7----|----8----|----9----|---10----|
/FUNCT_PYTHON/1
def smooth_interpolation(x):
X = [0.0 , 1.00000E-02]
Y = [0.0 , -1.33000E+02]
N = len(X)
# Return Y[0] if x is less than the smallest X
if (x < X[0]):
return Y[0]
# Return Y[N-1] if x is greater than the largest X
if (x > X[-1]):
return Y[-1]
# Find the interval where X[i] <= x < X[i+1]
for i in range(N - 1):
if (X[i] <= x < X[i + 1]):
d = (x - X[i]) / (X[i + 1] - X[i])
return Y[i] + (Y[i + 1] - Y[i]) * d * d * d * (10 - 15 * d + 6 * d * d)
# In case x is exactly X[N-1]
return Y[-1]
#---1----|----2----|----3----|----4----|----5----|----6----|----7----|----8----|----9----|---10----|
例(節点)
節点情報を使用した例
#---1----|----2----|----3----|----4----|----5----|----6----|----7----|----8----|----9----|---10----|
/FUNCT_PYTHON/1
def velocity(x):
pos_X = CX(1)
vel_X = VX(1)
#
if (pos_X > 100):
Y = -2000.0
elif (pos_X < 1):
Y = 2000.0
else:
Y = vel_X
return Y
#---1----|----2----|----3----|----4----|----5----|----6----|----7----|----8----|----9----|---10----|
コメント
- "return"の後の空白行は必須です。
- 関数とテーブルで同一の識別子を共有することはできません。
- この関数は、以下のオプションで使用できます:/IMPDISP, /IMPVEL、/IMPACC、/IMPDISP/FGEO、/IMPVEL/FGEO、/IMPVEL/LAGMUL、/IMPTEMP、/CLOAD、/PLOAD、/GRAV、および/IMPFLUX。
- 関数内の行数は1000に制限されています。ただし、Python関数から別のPython関数を呼び出すことができるため、関数を複数の関数に分割することが可能です。
- Radioss変数は、Pythonから“読み出し専用”のモードです。
- Pythonの値は常に倍精度になります。
- 要求したRadioss変数と要素ELEM_IDのデータがない場合、返される値は0.0になります。
- Radiossは、HyperWorksインストールで利用可能なPythonライブラリを使用します。環境変数
RAD_PYTHON_PATH
を設定することで、別のPythonディストリビューションを使用することも可能です。 - RadiossでPythonスクリプトを明示的に使用することを確定するには、Starterコマンド行にオプション“
-python
”を追加する必要があります。