カスタム荷重関数について
カスタム荷重アプリケーションが開始されると、そのアプリケーションと Mechanism Dynamics との間のやりとりは関数を直接呼び出すことによって行われます。ある関数は、カスタム荷重アプリケーションから Mechanism Dynamics によって呼び出されます。ほかの関数は、Mechanism Dynamics において用意されており、カスタム荷重アプリケーションによって呼び出されます。各関数にはオプションの引数がいくつかある場合があり、必要に応じて関数定義に追加することができます。
カスタム荷重アプリケーションに固有の関数について以下に簡単に説明します。
カスタム荷重アプリケーションによって用意され、カスタム荷重開発者によって記述される関数
CLUSEREvalCustomLoad()
CLUSERDefineInit()
CLUSERRunInit()
CLUSERGetStateVariablesSize()
CLUSERInitStateVariables()
CLUSERGetStateVariableDerivatives()
Mechanism Dynamics によって用意され、カスタム荷重開発者が呼び出すことができる関数
CLEvalMeasure()
CLEvalStateVariables()
CLUSEREvalCustomLoad() だけは、カスタム荷重アプリケーションにおいて常に使用されます。カスタム荷重を参照する解析をユーザーが実行すると、この関数は解析の時間ステップごとに呼び出されます。そしてそのカスタム荷重の値を返します。この値を使用してこの時間ステップのフォースと加速度が計算されます。
CLUSEREvalCustomLoad() はカスタム荷重名を引数として渡すため、同じカスタム荷重実行プログラムでさまざまなカスタム荷重がサポートされます。
CLUSEREvalCustomLoad() 内でユーザーは CLEvalMeasure() を呼び出すことができます。CLEvalMeasure() は、モデル内に存在するメジャー名を入力引数としてとります。カスタム荷重アプリケーションを開発するときは、カスタム荷重のドキュメントに、ユーザーがモデル内に作成するべきメジャーのタイプを記述しておくようにしてください。
CLUSEREvalCustomLoad() は解析の実行中に何度も呼び出されるので、この関数ができるだけ短時間で完了することが重要です。この関数の実行に時間がかかると、解析の実行速度が大幅に低下します。この関数の呼び出し中に UI 操作やモデル変更を行うべきではありません。
もう 1 つの重要な関数が CLUSERDefineInit() です。この関数は、ユーザーが新しいフォースモーターや外部フォース/トルクを作成するときに呼び出されます。この関数を使用することにより、カスタム荷重アプリケーションにおいて、ユーザーに対してそのカスタム荷重に特有のデータをクエリーすることができます。このデータは、保存しておいて後から CLUSEREvalCustomLoad() 関数で使用することができます。たとえば、カスタム荷重がばねに関するものである場合、CLUSERDefineInit() 関数ではユーザーに対して、この荷重のばね定数を指定するよう求めることができます。
CLUSERRunInit() は、カスタム荷重を参照する任意の解析をユーザーが実行する前に呼び出されます。
残りの関数は、カスタム荷重を使った制御システムを使用するのに役立ちます。カスタム荷重アプリケーションは、時間ステップごとに積分される導関数値のセットを提供できます。
* 
これらの初期化ルーチンは解析を実行する前に呼び出されるので、これらのルーチンから CLEValMeasure() または CLEvalStateVariables() を呼び出すのは適切ではありません。
CLUSERGetStateVariablesSize() は解析を実行する前に呼び出されます。カスタム荷重アプリケーションから渡されるステート変数のサイズがゼロではない場合、Mechanism Dynamics は解析を実行する前に CLUSERGetStateVariables() を呼び出します。それから、時間ステップごとに CLUSERGetStateVariableDerivatives() を呼び出して現在の導関数値を取得します。