(前頁)<<      >>(次頁)          (Up)

3章 CommonMPの要素モデルを作成する
3.5 計算結果を 他の要素モデルへ送る
3.5.2 要素モデル間の接続方法 ・・・・ 接続線上の伝送情報(その1)


 接続された2つの要素モデル間の接続線上の伝送データがどのように管理されているかを考えてみたいと思います。
 前頁で、データはセルに格納される事を説明しました。 このセルを接続線上に流すためには、単体または複数のセルをレコードという単位に纏め、レコード単位で接続線上に置いて行きます。 レコードには 出力側の要素モデルが設定した時刻が付与されています。 
 

   

 このレコードは、接続線上で「リスト構造」で管理され、時間の順に配置されます。
 レコードの中に入れるセルの個数や方法(配列の次元)は 次の4種類のパターンが準備されています。

 @レコード内のセル数が1個のみ  
   CommonMPでは、「ポイント時系列情報」と呼ばれ、種別(HySObjectKind)の ディファイン値として、McTranInfoDefine.SINGLE_CELL_SERIAL が定義されています。

 Aレコード内のセルが1次元配列 
   CommonMPでは、「1次元配列時系列情報」と呼ばれ、種別(HySObjectKind)の ディファイン値として、McTranInfoDefine.D1_CELL_SERIAL が定義されています。

 Bレコード内のセルが2次元配列  
   CommonMPでは、「2次元配列時系列情報」と呼ばれ、種別(HySObjectKind)の ディファイン値として、McTranInfoDefine.D2_CELL_SERIAL が定義されています。

 Cレコード内のセルが3次元配列 
   CommonMPでは、「3次元配列時系列情報」と呼ばれ、種別(HySObjectKind)の ディファイン値として、McTranInfoDefine.D3_CELL_SERIAL が定義されています



  これらの伝送データはCommonMPのライブラリ管理画面上で 時系列データフォルダーに表示されます。

       

 主に、上記の4種類の伝送データが使用されますが、他にも レコードに時刻情報を持たない「非時系列データ」 及び、レコードにGIS範囲情報(緯度、経度情報)を追加した「GISデータ」 があります。


 送信側では、毎回新しいレコードを生成し、レコード内のセルに情報を格納した後 レコードを接続線に乗せます。 

    


 受信側は欲しい時刻のレコードを取得し、内部のセルから格納された情報を取得します。
 送信側で送信したレコードの時刻と、受信側が欲しい時刻が合致しない時は、その時刻に内挿したレコードを取得することも可能です。(デフォルトで線形内挿有り)

     

(補足説明)
 レコードは[Serializable]宣言されています。 これは、将来 MPI等を適応して要素モデルが別なマシンに配置されたとしても 少しの改造で対応できるようにする為です。



 接続線には、毎回新しいレコードが追加されていきますが、そこに蓄えられるレコードの数には、限りがあります。 各接続線に保持するレコード数はセル型伝送情報結線設定ダイアローグの「最大レコード保持数」で設定できます。 

       

 接続線に保持されたレコード数が最大数を超えると、古いレコードから順に破棄されます。
 

(最大レコード保持数が有限であることの注意)

 最大レコード保持数が有限であるため 大きく異なったδTを持つ要素モデルを接続する時には注意が必要です。 例えば、前接続要素モデル側にδTが1秒、 後接続要素モデルのδTが3600秒の場合を考えます。 この場合(計算方法によっても異なりますが、普通に考えると) 接続線のレコード数は 3600個以上にしておく必要があります。 一方、前δT=3600秒、後δT=1秒ならば、保持数は2個もあれば十分です。  CommonMPで設定された全ての接続線に保持する最大レコード数を全て手動で行うのは大変なので、CommonMPでは、自動でレコードの最大保持数を調整させることができます。(Ver1.2以降)

    


  
 尚、接続線に乗せるレコードの型式は、計算の最中に変更することはできません。



(前頁)<<      >>(次頁) 

初版:2013/06/23 |