やるよ〜:
GRAPE-7(5) では、粒子分布を包み込む立方体を用意して、その最遠頂点同士を結ぶ距離で最小質量粒子(mmin)を計算したときに力がアンダーフローしないように座標をスケールして計算を行う。この作業は、g5_set_range(xmax,xmin,mmin) で行われ、この際に mmin を素質量とする離散的な対数質量のテーブルの生成も行われる。
内部で固定小数点を使っている関係上、このスケールの元で近接相互作用がオーバーフローしない距離というものが存在し、それは rmin 〜 10^-7 (xmax-xmin) となる。その結果重力ソフトニング (e_i) にも下限が付くことになる。具体的には e_i > rmin sqrt(m_i/mmin) (あるいは次のように書くとなんか意味がありそうな気がする: mmin/rmin^2 > m_i/e_i^2) でなければならないと書いてある (この条件式はなんか変なんじゃないかという気がするが)。
さて、今ツリーを使っているので十分遠方での相互作用は当然質量 mmin よりも十分大きくなっているのでアンダーフローについてはもうちょっと緩い条件で大丈夫のはず。しかしながら、ライブラリ関数の中でスケーリングと対数質量テーブルの生成を同時に行ってしまっているため、mmin として適度に大きい質量を設定した後、mmin としてまっとうな数値を入れるという手続きはそのままでは出来ない。例えばあとから質量テーブルだけこっそり書き換えるとかで対応出来るのであろうか。
今時単精度 GRAPE はツリーと合わせて使うのが大前提なわけだから、ライブラリの方で自発的に対応すべきだと私は思いますがそのつもりはないのかしら。
デスマーチ/
Wolfram|Alpha/
IT戦士 岡田有花リンク集/
Flash Earth/
Garage/
SDSS/
GOLDMine Galaxy On Line Database Milano Network/
Peanuts/
男達が後ろから撃たれるスレ 衛生兵を呼べ
tt-craft/
トムとジェリーの夏休み/
orz/
法治国家つまみぐい/
Happymetal ハッピーメタル/
MARK A. GARLICK'S SPACE-ART.CO.UK
ここはジョークアベニューです
ペリー