Dsl (Digital Simulation Library) for .Net

The Processor type exposes the following members.

プロパティ

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

参照