Dsl (Digital Simulation Library) for .Net

The Processor type exposes the following members.

メソッド

  名前 説明
Public method AddVariables
Processor オブジェクトに Variable(複数可)を登録します。 既に登録されている Variable は登録されません(二重登録のチェックが実行されます)。
Public method DeterminateOrder()()()()
Processor オブジェクトが保持する配列 Variables に登録された Variable の(非定常状態)計算順序を決定し、必要なら連立方程式を組み立てます。
Public method DeterminateOrder(Boolean)
配列 Variables に登録された Variable の計算順序を決定し、必要なら連立方程式を組み立てます。
Public method Equals
指定した Object が、現在の Object と等しいかどうかを判断します。
(Inherited from Object.)
Protected method Finalize
Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。
(Inherited from Object.)
Public method GetHashCode
特定の型のハッシュ関数として機能します。
(Inherited from Object.)
Public method GetType
現在のインスタンスの Type を取得します。
(Inherited from Object.)
Public method GetValueBeforeIntegration
与えられた Variable の各時間ステップ毎の積分計算開始前における値を返します。 <I>型以外の変数は単にその時の値(Value)が返ります。<I>型変数の場合 積分計算開始前に内部で保存されている(1ステップ前の)値が帰ります。
Public method IsLeafVariable
代数計算時、指定した Variable が「右辺変数」を持たないとき true、値(Value)が別な変数から計算される場合は false になります。 <S>型や<T>型変数等(代数計算時に「定数」とみなされるもの)からのみ直接または間接的に計算される変数も true と なります(これは DeterminateOrder() の結果に依存します)。
Public method LogFlush
ログファイル出力を確定(Flush)させる。
Public method LogString
ログファイルに文字列を書き込む
Public method LogTime
Processor オブジェクトが作成された時刻(BornTime)からの経過時間と現在時刻を文字列として返します。
Public method LogWrite
"LogTime()+st"の形式でログファイルに出力する。
Public method LogWriteLine
"LogTime()+st"の形式でログファイルに出力後、改行する。
Protected method MemberwiseClone
現在の Object の簡易コピーを作成します。
(Inherited from Object.)
Public method OnAfterAlgebraicComputation
代数計算実行直後に呼ばれる メソッドです。 Run()が代数計算実行直後に呼び出します。 本メソッドは virtual です。base は AfterAlgebraicComputation が設定されていればそちらを呼び出します。 設定されていなければ単にリターンします。 代数計算は各積分ステップ毎に計算されるので終了時間に達するまで繰り返し呼び出されます。
Public method OnAfterBlockComputation
代数計算中の連立方程式を解いた直後に呼ばれるメソッドです。 Run()が連立方程式計算実行直後に呼び出します。 本メソッドは virtual です。base は AfterBlockComputation が設定されていればそちらを呼び出します。 代数計算は各積分ステップ毎に計算されます。通常、代数計算には複数の連立方程式が含まれますので、それぞれの 連立方程式が計算された直後に本メソッドが呼ばれることになります(連立方程式が無ければ呼ばれません)。
Public method OnAfterComputation
計算実行後に呼ばれる メソッドです。 DeterminateOrder()Run()が実行直後に呼び出します。 どちらのメソッドから呼び出されたかは ExecutionStatus で区別できます。本メソッドは virtual です。 base は AfterComputation が設定されていればそちらを呼び出します。設定されていなければ 単にリターン。
Public method OnAfterIntegration
各積分ステップで常微分方程式を解いた直後に呼ばれるメソッドです。 Run()が常微分方程式を解いた直後に呼び出します。 本メソッドは virtual です。base は AfterIntegration が設定されていればそちらを呼び出します。 代数計算は各積分ステップ毎に計算されます。
Public method OnAfterRestore
Processor オブジェクトの情報を TextReader から読み込む Restore(Object, TextReader)RestoreContents(Object, TextReader) メソッドの終了時に 呼び出されるメソッドです。最初は Restore() の終了時、次に RestoreContents() の終了時です。 終了処理が必要な場合は override します。 base クラスでは AfterRestore が設定されていればそれを呼び出します。 AfterRestore が設定されていなければ何もせず true をリターンします。
Public method OnAfterSave
Processor オブジェクトの情報を TextWriter に出力するSave(Object, TextWriter)SaveContents(Object, TextWriter)メソッドの終了時に 呼び出されるメソッドです。呼び出しは2回です。最初は Save() の終了時、次に SaveContents() の終了時です。 終了処理が必要な場合は override します。 base クラスでは AfterSave が設定されていればそれを呼び出します。 AfterSave が設定されていなければ何もせずリターンします。
Public method OnBeforeAlgebraicComputation
代数計算実行直前に呼ばれるメソッドです。 Run()が代数計算実行直前に呼び出します。 本メソッドは virtual です。base は BeforeAlgebraicComputation が設定されていればそちらを呼び出します。 設定されていなければ単に true をリターンします。 代数計算は各積分ステップ毎に計算されるので終了時間に達するまで繰り返し呼び出されます。
Public method OnBeforeBlockComputation
代数計算中の連立方程式を解く直前に呼ばれるメソッドです。 Run()が代数計算中の連立方程式を解く直前に呼び出します。 本メソッドは virtual です。base は BeforeBlockComputation が設定されていればそちらを呼び出します。 設定されていなければ単に true をリターンします。 代数計算は各積分ステップ毎に計算されます。通そして、通常、代数計算には複数の連立方程式が含まれますので、それぞれの 連立方程式が計算される直前に本メソッドが呼ばれることになります(連立方程式が無ければ呼ばれません)。
Public method OnBeforeComputation
計算実行前に呼ばれるメソッドです。 DeterminateOrder()Run()が実行直前に呼び出します。 どちらのメソッドから呼び出されたかは ExecutionStatus で区別できます。本メソッドは virtual です。 base は BeforeComputation が設定されていればそちらを呼び出します。設定されていなければ 単に true を返します。
Public method OnBeforeIntegration
各積分ステップで常微分方程式を解く直前に呼ばれるメソッドです。 Run()が常微分方程式を解く直前に呼び出します。 本メソッドは virtual です。base は BeforeIntegration が設定されていればそちらを呼び出します。 代数計算は各積分ステップ毎に計算されます。
Public method OnBeforeRestore
Processor オブジェクトの情報を TextReader から読み込むRestore(Object, TextReader)RestoreContents(Object, TextReader)メソッドの直前に 呼び出されるメソッドです。呼び出しは2回です。最初は Restore() の開始時、次に RestoreContents() の開始時です。 開始処理が必要な場合は override します。 base クラスでは BeforeRestore が設定されていればそれを呼び出します。 BeforeRestore が設定されていなければ何もせず true をリターンします。
Public method OnBeforeSave
Processor オブジェクトの情報を TextWriter に出力するSave(Object, TextWriter)SaveContents(Object, TextWriter) メソッドの開始直前に 呼び出されるメソッドです。呼び出しは2回です。最初は Save() の呼び出し時、次に SaveContents() の呼び出し時です。 開始処理が必要な場合は override します。 base クラスでは BeforeSave が設定されていればそれを呼び出します。 BeforeSave が設定されていなければ何もせず true をリターンします。
Public method OnIncrementTime
積分計算実行前に呼ばれるメソッドで、次の積分開始時間を計算します。 Run()が積分計算実行後に呼び出します。 積分は各積分ステップ毎に計算されるので終了時間に達するまで繰り返し呼び出されます。
Public method OnIsPrintTime
代数計算実行前に呼ばれる delegate で、与えられた時刻が「印刷」時刻かどうかを判定します。 「印刷」時刻の場合、COMPUTED_PRINT_TIME のフラグを持つ Variable が計算対象に追加されます。 Run()が代数計算実行直前に呼び出します。 代数計算は各積分ステップ毎に計算されるので終了時間に達するまで繰り返し呼び出されます。
Public method Reset
Processorの状態を DeterminateOrder() 呼び出し前の状態に戻します。
Public method ResetIndex
変数の Index と OrderIndex を設定します。DeterminateOrder() が終了したときに自動的に Processor 内部で呼び出されますが、 変数を Processor に追加したり削除したりした場合、呼び出すことができます。ただし、当然ですが OrderIndex は DeterminateOrder() が 正常終了した後以外は意味がありません。また、これらの整数領域は DeterminateOrder() が内部で作業用に使用します。従って、 DeterminateOrder() 呼び出しの途中(delegate内部などで)に呼び出さないでください。
Public method Restore
Processor オブジェクトの情報を TextReader から読み込み復元します。

※Processorに登録されている変数は一旦全て解放され、再作成されてから登録されます。 従って、以下の例の変数 x は Rsstore() 後に Processor とは無関係になります。さらに再作成された 変数は Save() 時の値や属性は保持しますが計算式 ComputeValueAt 等の delegate は再構築されません。 Restore()後に必ず、delegate 等を別途再設定してください。詳細はリファレンスの例題等を参照してください。

 コピー イメージコードをコピー
Processor pr = new Processor("Example");
Variable  x  = new Variable(pr,"x");
............ 
x.ComputeValueAt = delegate (Processor p,Variable v,double time,double step)
{
    return v[1]+v[2];
};
............ 
pr.Save(...); pr.SaveContents(...);
............ // x は pr に登録されています。
int ix = x.Index;
pr.Restore(...);pr.RestoreContents(...);
............ // x は pr から削除され、登録されていません。
x = pr.Variables[ix];  // 同じ x を使用してプロパティは x.Name 等と以前と同様にアクセスできます。
// しかし、delegate は以下のように再定義する必要があります。
x.ComputeValueAt = delegate (Processor p,Variable v,double time,double step)
{
    return v[1]+v[2];
};

Public method RestoreContents
Processor オブジェクトの情報を TextReader から読み込み復元します。
Public method Static member ResultString
リザルトコード res の文字列表現を返す。
Public method Run()()()()
DeterminateOrder()で決定された計算順序に従って、時刻 Time から TimeLimit まで刻み Step で計算します。
Public method Run(Double)
DeterminateOrder()で決定された計算順序に従って、時刻 Time から endTime まで刻み Step で計算します。 TimeLimit には endTime が代入されます。
Public method Run(Double, Double)
DeterminateOrder()で決定された計算順序に従って、時刻 Time から endTime まで刻み step で計算します。 TimeLimit には endTime が、Step には step が代入されます。
Public method Run(Double, Double, Double)
DeterminateOrder()で決定された計算順序に従って、開始時刻 startTime、刻み幅 step で時刻 endTime まで計算します。 Time には startTime、TimeLimit には endTime 、Step には step が代入されます。
Public method Save
オブジェクト(obj)の作成情報を TextWriter sw に出力します。 Dslオブジェクトを継承した独自オブジェクトを使用している場合、 必要なら本メソッドをoverrideしてください。
IDsiSerializer メンバ
Public method SaveContents
Processor オブジェクトの情報を TextWriter に出力します。出力した情報は後に RestoreContents() メソッドで 復元することができます。
IDslSerializableメンバ
Public method SetLogItem
個々のログ項目をオン、またはオフに設定します。
Public method ToString
現在の Object を表す String を返します。
(Inherited from Object.)
Public method Variable(Int32)
Processor オブジェクトに登録されている Variable を返します。
Public method Variable(String)
指定した名前と一致した Variable を返します。
Public method VariableIndex(String)
指定した名前の Variable の登録インデックスを返します。 Processorは登録に際して名前の重複はチェックしません。従って同じ名前が複数ある時は一番小さいインデックス値が返ります。
Public method VariableIndex(Variable)
指定した Variable の登録インデックスを返します。

参照