2000/08/29    Physics Simulation Package

JSFSpring::ReadBases の中で、Userin() を呼ぶ場所が悪かったため、Spring で Bases のヒストグラムがコピーされない問題があった。結果には問題がないが気持ち悪いので修正。Physsim では、bases.C と sim.C での共有ライブラリの動的ロードをやめる(JSF が jsf.conf に従ってやってくれるようになったため)。

[0] 開発環境の更新

Franz Sirl の最新版を、ftp://devel.linuxppc.org/users/fsirl/R5/RPMS/ppc より入手。
glibc-2.1.3-15e.ppc.rpm
glibc-devel-2.1.3-15e.ppc.rpm
glibc-profile-2.1.3-15e.ppc.rpm
を "rpm -Uvh" で放り込む。

[1] 物理の解析パッケージ(jsf-1-15.29, physsim-2000a-5)の更新

最新版のソースファイルは
jsf-1-15.29.tar.gz
lclib-2000-1.tar.gz
physsim-2000a-5.tar.gz
これは、root_v2.25.02 以降のバージョンでないと正常動作しない可能性があるので注意。
 

[2] Garfield-6.34

チェンバーシミュレーションプログラム Garfield の 6.x 系列の最新版。
使った SPEC はこれ(garfield-6.34-1a.spec)。使った私家版パッチは
garfield-6.34-garfield.patch
garfield-6.34-big.patch
garfield-6.34-html.patch
garfield-6.34-icons.patch
garfield-6.34-makefile.patch
で、できたRPMは
garfield-6.34-1a.ppc.rpm
SRPMは
garfield-6.34-1a.src.rpm
である。garfield-*-big patch で MANYWIRE を有効にし、MXLIST も増やしてある。

Garfield-7 も試してみたが、これには

--- garfield-7.01/garfield-7.car.ORIG   Thu Aug 24 01:50:09 2000
+++ garfield-7.01/garfield-7.car        Thu Aug 24 22:17:46 2000
@@ -2183,10 +2183,10 @@
        GLBVAL(5)=1
        GLBVAR(6)='INPUT     '
        GLBMOD(6)=1
-       CALL STRBUF('STORE',IREF,'Standard input',14)
+       CALL STRBUF('STORE',IREF,'Standard input',14,IFAIL)
        GLBVAL(6)=IREF
        GLBVAR(7)='OUTPUT    '
-       CALL STRBUF('STORE',IREF,'Standard output',15)
+       CALL STRBUF('STORE',IREF,'Standard output',15,IFAIL)
        GLBMOD(7)=1
        GLBVAL(7)=IREF
        GLBVAR(8)='X         '
のようなパッチをあてないと segfault した。ドリフト速度、ローレンツ角の計算の所でも、まず magboltz の呼び方であるが、電場と磁場との角度を1つだけ指定する際には、
magboltz CO2 90 ISOBUTANE 10 ...
angle 90. e/p-range 0.4 2.6 n-e/p 4 ...
monte-carlo-integration collisions 800
のようにする必要がある。以前のように
n-angle 1 angle-range 80 100
という指定法では動かない。また magboltz の結果を使ってドリフト速度やローレンツ角を求める際も
call drift_velocity(0,0,E,0,0,0,drift)
call lorentz_angle(0,0,E,0,0,0,lorentz)
のように、磁場 (0,0,0) (こうすると磁場は電場に垂直で値は magboltz の計算で使われた磁場になる)を与えておかないと動かないなど、garfield-6.x とはだいぶ様子が違う。シミュレーション自体も、magboltz のバージョンが 2.x に上がり、ガス中での電子の運動をモンテカルロで扱うように変更になった。
ドリフト速度の結果は 6.x と矛盾しないが、ローレンツ角の方は、モンテカルロ法のためか、上のように collisions を指定しないと誤差が大きいようである(ディフォールトは collisons 5 )。collisions 800 とかすると猛烈に時間がかかるので要注意。

いちおうRPM

garfield-7.01-1a.ppc.rpm
garfield-7.01-1a.src.rpm
も作ったが使う場合は自己責任


Back to Keisuke Fujii's MkLinux/LinuxPPC Life