Model ElementMforceは、MotionSolveで弾性体(CMS)上の分布力を定義します。
説明
Mforceは、次の3つの方法で実装できます:
- 力形状を関数式でスケーリングする。
- 力形状をコンパイルされたユーザーサブルーチンでスケーリングする。
- 力形状を記述されたユーザーサブルーチンでスケーリングする。
属性の概要
名前 |
プロパティ |
コマンドで変更可能か |
設計可能か |
id |
Int () |
|
× |
label |
Str () |
○ |
case_index |
Int () |
○ |
scale |
Function () |
○ |
flex_body |
Reference (FlexBody) |
○ |
function |
Function ("MFOSUB") |
○ |
force |
Function () |
○ |
routine |
Routine () |
|
active |
Bool () |
○ |
使用法
#1: Scale factor defined in an expression for scaling a modal force shape
Mforce (flex_body=objFlexBody, case_index=int, scale=double, optional_attributes)
#2: Scale factor or modal force defined in an compiled user-written subroutine
Mforce (flex_body=objFlexBody, function=userString, routine=string optional_attributes)
#3: Scale factor defined in a Python functionMforce (flex_body=objFlexBody, function=userString, routine=functionPointer, optional_attributes)
属性
- flex_body
- Flex_Bodyへの参照。
- モード荷重が適用される弾性体のIDを定義します。
- flex_body属性は必須です。
- case_index
- 整数
- 分布荷重の形状を定義するために使用されるモード荷重ケース番号を指定します。
- case_index属性は必須です。
- scale
- 倍精度
- case_indexによって参照される荷重ケースに適用されるスケールファクターの式を指定します。
- scale属性は必須です。
力形状をコンパイル済みのユーザーサブルーチンでスケーリング
- flex_body
- Flex_Bodyへの参照。
- モード荷重が適用される弾性体のIDを定義します。
- flex_body属性は必須です。
- function
- 文字列
- データファイルからユーザー定義のサブルーチンに渡されるパラメータのリスト。
- function属性は必須です。
- routine
- 文字列
- ユーザーサブルーチンの代替名を指定します。この名前は、“∷”で区切られた情報の2つの部分で構成されます。1つ目は、ユーザー定義のFieldの応答を計算する関数を含む共有ライブラリへのパス名です。2つ目は、計算を実行する共有ライブラリ内の関数の名前です。
- 例: routine="/staff/altair/myfield.dll::mymfosub".
- "/staff/altair/mymfosub.dllはDLLです。
- "mymfosub"は、計算を実行するこのDLL内の関数です。
- routine属性は省略可能です。指定しない場合は、デフォルトでMFOSUBになります。
- force
- 文字列
- ユーザーサブルーチンが、スケーリングされる形状と実際のモード力自体のどちらを返すかを指定します。MFOSUBが実際の力を返すように指定するには、これを"USER"に設定します。
- force属性は省略可能です。指定しない場合、MotionSolveは、ユーザーサブルーチンがモード力ではなくスケールファクターを計算すると見なします。
力形状をスクリプト化されたユーザーサブルーチンでスケーリング
- flex_body
- Flex_Bodyへの参照。
- モード荷重が適用される弾性体のIDを定義します。
- flex_body属性は必須です。
- function
- 有効なユーザー関数MotionSolve式を定義する文字列。
- データファイルから、Variableが定義されるユーザー定義のサブルーチンに渡されるパラメータのリスト。
- function属性は必須です。
- routine
- Python内の呼び出し可能な関数へのポインタ。
- 例:routine=myModalLoad.
- myModalLoadは、モデルが存在する場所ならどこからでも呼び出すことが可能なPython関数またはメソッドです。
- 属性routineは省略可能です。
- 指定しない場合、routineはデフォルトでMFOSUBになります。
- force
- 文字列
- ユーザーサブルーチンが、スケーリングされる形状と実際の力自体のどちらを返すかを指定します。MFOSUBが実際の力を返す場合は、これを"USER"に設定します。
- force属性は省略可能です。指定しない場合、MotionSolveは、ユーザーサブルーチンがモード力ではなくスケールファクターを計算すると見なします。
オプション属性 - すべてのバリアントに使用できます。
- id
- 整数
- 要素識別番号を指定します。この番号は、モデル内のすべてのMforceオブジェクトの中で一意にする必要があります。
- この属性は省略可能です。MotionSolveは、IDが指定されていない場合、自動的にこれを作成します。
- 値の範囲:id > 0
- label
- 文字列
- Mforceオブジェクトの名前を指定します。
- この属性は省略可能です。指定しない場合は、MotionSolveが代わりにラベルを作成します。
- active
- ブール
- TrueとFalseのどちらかを選択します。
- Trueは、要素がモデル内でアクティブであり、システムの動作に影響を与えていることを示します。
- Falseは、要素がモデル内で非アクティブであり、システムの動作に影響を与えていないことを示します。エンティティがモデルから削除される場合とほとんど同じですが、必要に応じて“ON”にできる点が異なります。
- 属性activeは省略可能です。指定しない場合、activeはデフォルトでTrueになります。
例
次の例は、
Mforceの定義を示しています。
disturbanceLoad = Mforce (label="Disturbance", flex_body=wing, case_index=1, scale="1.0 + 0.2*sin(360d*time) + 0.1*sin(360d*time*3)")