Next: Up: Previous:

問題の記述

一次元メッシュ上での 緩和ステップの可能な記述を考える.

cprogram90

         図2.1: leftフィールドと rightフィールドでつながれたセルオブジェクト

class cell
{
  // value in the current/next step
  double value, new_value;
  // pointers to neighbors
  cell * left, * right;
public:
  double current_value () { return value; }
  void step ();   
};

void cell::step ()
{
  double lv = left->current_value ();
  double rv = right->current_value ();
  new_value = ((lv + rv) - (value * 2.0)) / 2.0;
}

図2.1のように, cell オブジェクトの集合がleftrightを 通じて二重リンクリストを形づくる. 緩和のステップでは, 全てのセルオブジェクトで step メソッドを 起動する. 各 step メソッドはまず current_value メソッドによって 現在の隣接するセルの値を問い合わせ, それらの値を使って 自分自身を更新する.



Mitsubishi Research Institute,Inc.
Mon Feb 24 19:24:01 JST 1997