Dsl (Digital Simulation Library) for .Net
The Processor type exposes the following members.
プロパティ
名前 | 説明 | |
---|---|---|
AfterAlgebraicComputation |
代数計算実行後に呼ばれる delegate です。
Run()が代数計算実行後に呼び出します。
代数計算は各積分ステップ毎に計算されるので終了時間に達するまで繰り返し呼び出されます。
詳細はOnAfterAlgebraicComputationを参照してください。
|
|
AfterBlockComputation |
代数計算中の連立方程式を解いた直後に呼ばれる delegate です。
Run()が呼び出します。
詳細はOnAfterBlockComputationを参照してください。
|
|
AfterComputation |
計算実行後に呼ばれる delegate です。
DeterminateOrder()と
Run()が計算実行直後に呼び出します。
どちらのメソッドから呼び出されたかは ExecutionStatus で区別できます。
|
|
AfterIntegration |
積分計算実行後に呼ばれる delegate です。
Run()が積分計算実行後に呼び出します。
積分は各積分ステップ毎に計算されるので終了時間に達するまで繰り返し呼び出されます。
詳細はOnAfterIntegrationを参照してください。
|
|
AfterRestore |
Processor オブジェクトの情報を TextReader から読み込む Restore() メソッドの終了時に
呼び出されるメソッドです。
|
|
AfterSave |
Processor オブジェクトの情報を TextWriter に出力する Save() メソッドの処理終了時に
呼び出されるメソッドです。
|
|
BeforeAlgebraicComputation |
代数計算実行前に呼ばれる delegate です。
Run()が代数計算実行前に呼び出します。
代数計算は各積分ステップ毎に計算されるので終了時間に達するまで繰り返し呼び出されます。
|
|
BeforeBlockComputation |
代数計算中の連立方程式を解く直前に呼ばれる delegate です。
Run()が呼び出します。
詳細はOnBeforeBlockComputationプロパティを参照してください。
|
|
BeforeComputation |
計算実行前に呼ばれる delegate です。
DeterminateOrder()と
Run()が実行直前に呼び出します。
どちらのメソッドから呼び出されたかは ExecutionStatus で区別できます。
|
|
BeforeIntegration |
積分計算実行前に呼ばれる delegate です。
Run()が積分計算実行前に呼び出します。
積分は各積分ステップ毎に計算されるので終了時間に達するまで繰り返し呼び出されます。
詳細はOnBeforeIntegrationを参照してください。
|
|
BeforeRestore |
Processor オブジェクトの情報を TextReader から読み込む Restore() メソッドの開始直前に
呼び出されるメソッドです。
|
|
BeforeSave |
Processor オブジェクトの情報を TextWriter に出力する Save() メソッドの直前に
呼び出されるメソッドです。
|
|
BornTime |
Processorオブジェクトが作成された時刻。
|
|
ComputingOrder |
計算順序に従って並べられた Variable の配列です。
DeterminateOrder()が正常に終了した後でないと意味を持ちません。
また配列の順序や登録されている Variable の属性などを変更すると以後のRun()メソッドが正常に
実行できなくなります。
|
|
DerivativeRatio |
連立方程式(y=f(x))を解く場合 Jacobian 行列 dy/dx を計算します。
dy/dx を計算する場合 Dsl では数値微分を実行します。
(数式微分は現バージョンではサポートしていません)。ここで数値微分を計算する場合
まず x を dx だけ変化させた時の y の変化分 dy を計算して「数値微分値 = dy/dx」とするわけですが、
このときの dx の初期値を決定する際に DerivativeRatio が使用されます(初期値は 100.0)。
最初に dx = |x| / DerivativeRatio を計算して、 dx がゼロ(に近い)なら次に
dx = |y| / DerivativeRatio 、それでも小さければ dx = DerivativeRatio / 1000 と計算します。
dx は計算の過程で自動的に調節されるので DerivativeRatio の値を変更する必要性は少ないと考えられます。
|
|
Eps |
収束判定誤差定数(デフォルト値は 1.0E-6)
全て|<T>変数の (現在値-目的地)の二乗和 < Eps なら収束とみなします。
|
|
ExecutionStatus |
実行中の状態を返します。
詳細はEXECUTION_STATUSを参照してください。
|
|
FileVersion |
Processorオブジェクトの内容を Restore() した場合のバージョン番号配列。
つまり、Save() した Dsl のバージョン番号になりますので、Restore() 後でなければ意味がありません。
|
|
FtCheckLimit |
連立方程式を組み立てる際に<F>型と<T>型変数の個数が一致して、かつ、<F>型から<T>型に達する
独立したルートが存在する必要があります。
ただ「独立したルートが存在」のチェックは比較的コストの高い処理なので、<F>型(または<T>型)変数の数が FtCheckLimit 以上のときは
実行されません。もし「独立したルートが存在」しない場合、計算実行時に Jacobian 行列の行列式がゼロ(Singular)になり連立方程式を解くことはできません
(もちろん「独立したルートが存在」しても連立方程式が解けない場合はあります)。その場合は FtCheckLimit を大きくして再度 DeterminateOrder() を
実行してみて下さい(デフォルト値は 500 です)。
|
|
IncrementTime |
積分計算実行前に呼ばれる delegate で、次の積分開始時間を計算します。
Run()が積分計算実行後に呼び出します。
積分は各積分ステップ毎に計算されるので終了時間に達するまで繰り返し呼び出されます。
詳細はOnIncrementTimeを参照してください。
|
|
IntegrationMethod |
常微分方程式の解法を指定します。
詳細はINTEGRATORを参照してください。
|
|
IsPrintTime |
代数計算実行前に呼ばれる delegate で、与えられた時刻が「印刷」時刻かどうかを判定します。
「印刷」時刻の場合、COMPUTED_PRINT_TIME のフラグを持つ Variable が計算対象に追加されます。
Run()が代数計算実行直前に呼び出します。
代数計算は各積分ステップ毎に計算されるので終了時間に達するまで繰り返し呼び出されます。
詳細はOnIsPrintTimeを参照してください。
|
|
LogFile |
Processor の実行状況を書き込むログファイル(StreamWriter)オブジェクト。
デフォルトは null ですので設定しなければログファイルは作成されません。
ログファイルに書き込まれる内容はLOG_ITEMを
SetLogItem()等を利用して設定します。
書き込まれる内容は Processor のバージョン等により変更されます。
|
|
LogItem |
ログ出力する項目。個々のログ項目は直接設定することができます。または
SetLogItem()で
オン、またはオフに設定できます。
|
|
Name |
プロセッサーオブジェクトの名前(任意)です。タブ等の特殊文字を含めないでください。
|
|
NumDivided |
<DD>型変数の個数(ループの数)です。DeterminateOrder()が正常終了した後でないと意味がありません。
|
|
Silent |
true ならエラー時等にメッセージを表示しない、falseならメッセージを表示します。
デフォルトは false です。
|
|
SolverMethod |
代数計算中の連立方程式の解法をです。現状は EQUATION_SOLVER.NEWTON 固定です。
|
|
SparseCriteria |
Jacobian行列の非ゼロ要素の割合(%)が SparseCriteria を下回るとスパース専用の解法に移行します。
つまり、SparseCriteria = 100 なら常にスパース専用解法が用いられます。
逆に SparseCriteria = 0 ならスパース専用解法は用いられません。
デフォルトは 20(%)。
|
|
SteadyStateComputation |
DeterminateOrder()に定常状態計算の指定をした場合(引数の値)
true になります。
|
|
Step |
積分の時間ステップ値です。積分実行中に調節することも可能です。
|
|
Tag |
ユーザが任意のオブジェクトを設定できます。
Processor が参照することはありません。
|
|
Time |
積分開始時刻であると同時に積分進行中の現在時刻です。
Run()()()()メソッド中での計算進行時間です。
積分開始時刻として設定できますが、Run() メソッド実行中は値をセットできません。
|
|
TimeLimit |
Run()メソッドで指定された積分終了時間です。
|
|
UseMklSolver |
true の場合、CPU に最適化されたインテル社の高速な Mkl を使用します。
true ならJacobian行列の非ゼロ要素の割合(%)が SparseCriteria を下回るとスパース専用の解法に移行します。
ここで「ゼロ要素」とは「計算の結果たまたまゼロ」という意味ではなく関数関係が無いため「恒久的にゼロ」という意味です。
false なら Mkl とスパース専用の解法は使用せず、C# で記述された内部の行列解法を用います。
特に2つの解法を比較するような場合を除いて、true でご使用ください。
デフォルトは true。
|
|
Variables |
Processor オブジェクトに登録されている Variable の配列です。グラフ処理の対象になります。
|