OSDN Git Service

38801af031febe3358f0c9000ebb12c51ad3eda6
[molby/Molby.git] / memo.txt
1 2010.1.25.
2   AmberTools1.3 をバンドルする方向で検討中。antechamber と sqm だけあればいいはず。
3
4 config.h, Makefile_at を手動で修正。
5 src ディレクトリの中で、antechamber, blas, carpack, cblas, clapack, etc, f2c, include, lapack, lib, sff, sqm を残し、他は削除する。
6
7 make -f Makefile_at でビルド。
8 なお、Mac 用の gfortran は http://r.research.att.com/tools/ にあるやつがいい。hpc.sourceforge.net のやつはいろいろと使い方が複雑。
9 OS 10.4 用のユニバーサルバイナリは、export ISYSROOT='-isysroot /Developer/SDKs/MacOSX10.4u.sdk -mmacosx-version-min=10.4 -arch ppc -arch i386' としたあと make -f Makefile_at とすると作ることができる。MacBook 上でビルドして、PowerPC の 10.4 に持って行っても実行できたので、たぶん大丈夫じゃないかと。
10 原子タイプのアサインだけなら、antechamber を -c オプション無しで走らせればいいんだな。気がついてなかった。(どれぐらい使えるのかは不明だが。)
11
12 2010.2.2.
13   MD/Minimize のサブスレッドの処理を整理(よくフリーズしていたので)。
14   サブスレッドから MM/MD をしているときは、指定したステップが終わるごとにリングバッファに座標データをためこみ、メインスレッドにイベントを投げる。メインスレッドはイベントを捕まえて、リングバッファから座標データを読み込んで、フレームを作成する。サブスレッドから Molecule を直接触ることがなくなったので、少しは安定すると期待しよう。また、ドキュメントを閉じるときにサブスレッドが走っている時は、エラーメッセージを出して閉じるのを拒否するようにした。
15
16 2010.2.21.
17   Ruby の Parameter/ParEnumerable の仕様がわかりにくい。グローバルパラメータを自動的に探しに行く機能はlookup メソッドに限定する。Parameter#lookup(par_type, atom_type_string, *options), ParEnumerable#lookup(atom_type_string, *options).
18   Parameter#bond, ParEnumerable#[] などで、原子タイプからの探索はやめにする。また、ローカルな Parameter の nbonds などがグローバルパラメータを含んだ値を返すのはやめる。
19   Parameter#bond などをクラスメソッド・インスタンスメソッドとして二重に登録するのはやめた。グローバルパラメータはたとえば Parameter.builtin.atoms または Parameter::Builtin.atoms としてアクセスする。
20
21 2010.2.27.
22   Parameter タイプの atom というのはなんとも紛らわしい。element の方がまだましかも。
23
24 2010.3.8.
25   RubyDialog って名前はよくないな。Ruby のクラス名に "Ruby" って接頭辞をつけてどうすんだよ。全体を Molby というモジュールにして、暗黙に include Molby することにしようか。これなら、RubyDialog は Dialog でもいい。
26   DialogItem を独立したクラスにしたいんだけど、オーナーシップをどうしようか?
27   DialogItem は常に Dialog#item で作成されるので、このとき作ったオブジェクトを Dialog._items に格納し、常にそれを返す。従って、Dialog#get_item(n) で返されるオブジェクトは常に同一。
28   DialogItem は Dialog へのポインタとアイテム番号を保持すべき。アイテム番号はともかく、ポインタはどう保持するか? Dialog._items -> DialogItem -> Dialog という循環参照を作っても、Ruby の GC ならちゃんと回収してくれるから、これでいいんじゃないか。他のいい方法が思いつかん。
29   DialogItem は C レベルのデータは持たず、単なる cDialogItem のインスタンスとする。属性は、今まで Dialog 中のハッシュに保持していたが、DialogItem のインスタンス変数として実装する。
30   Dialog#item(:type, hash) でアイテムを作成。Dialog#set_attr, Dialog#get_attr はやめて、DialogItem#[], DialogItem#[]= で実装する。DialogItem#属性名, DialogItem#属性名= も実装する(ParameterRef と同様)。また、Dialog#action の引数はアイテム番号でなく DialogItem オブジェクトとする。
31   DialogItem の action 属性は今までと同様だが、引数としてはアイテム番号でなく DialogItem オブジェクトそのものが渡される。
32
33 2010.3.21.
34   Pressure control を使えるようにしたい。フレームごとに unit cell パラメータを保持できるようにしないといけない。→ 一応実装した。
35
36 2010.4.25.
37   SVN メモ。タグの付け方。
38 svn copy svn+ssh://toshinagata1964@svn.sourceforge.jp/svnroot/molby/trunk svn+ssh://toshinagata1964@svn.sourceforge.jp/svnroot/molby/tags/version_x_y_z -m "version x.y.z"
39
40 2010.4.25.
41   wxWidgets 絡みの厄介なバグをいくつか退治したのでメモ。
42 ・wxDocument::Close() が二重に呼ばれる問題。メニューから Close コマンドを選ぶと、普通は wxDocManager::CloseDocument() が呼び出される。これは、最初に wxDocument::Close() を呼び、成功したら wxDocument::DeleteAllViews() を呼ぶのだが、この中から wxView::Close() -> wxView::OnClose() -> wxDocument::Close() という呼び出しがあるため、wxDocument::Close() が2回呼ばれてしまう。2回目に何もしないで true を返せばいいのだが、下手なコーディングをするとおかしくなってしまう。今回は、MoleculeView::OnClose() を修正して、wxDocument::Close() の呼び出しをスキップした。
43   参考: http://trac.wxwidgets.org/ticket/11367 
44 ・wxDocument::Close() をオーバーライドしたら、元の wxDocument::Close() を呼ばないといけない。こんな感じ。
45 bool
46 MyDocument::Close()
47 {
48         if (mol != NULL && mol->mutex != NULL) {
49                 return false;  /*  クローズを拒否  */
50         }
51         return wxDocument::Close();
52 }
53  理由は、wxDocument::Close() の中で、未保存のドキュメントを保存するかどうか尋ねる処理があるため。これを忘れて "return true;" としてしまうと、未保存のドキュメントの場合は wxDocument のデストラクタからこの処理が呼ばれてしまい、変なことになる。
54 ・wxMac で wxMDIParentFrame を使うとき、frame->Move(-10000, -10000); frame->Show(false); などとして不可視にするが、すべてのウィンドウが閉じられている状態でアプリケーションをバックグラウンドからフォアグラウンドに持って来た時など、何かの拍子にこのウィンドウが可視化されて Window メニューに現れてしまうことがある。これを防ぐ方法:
55 (1) wxMDIParentFrame のコンストラクタ中で、
56 #if defined(__WXMAC__)
57         OSStatus sts;
58         sts = ChangeWindowAttributes((WindowRef)m_macWindow, 0, kWindowInWindowMenuAttribute);
59 #endif
60  ChangeWindowAttributes には <Carbon/Carbon.h> が必要。ちなみに、Ruby のヘッダと同時に #include すると T_DATA が二重定義になるので、#include <Carbon/Carbon.h> の前に #undef T_DATA を置く。
61 (2) wxApp で Activate Event をつかまえて、そのたびに wxMDIParentFrame を不可視にする。なんとも強引だが、確実。
62 EVT_ACTIVATE(MyApp::OnActivate)
63 void
64 MyApp::OnActivate(wxActivateEvent &event)
65 {
66 #if defined(__WXMAC__)
67        MyFrame *frame = GetMainFrame();
68        frame->Show(false);
69 #endif
70        event.Skip();
71 }
72
73 2010.4.25.
74 バージョン0.5.3をリリースしました。
75 ・フレームごとに可変な単位格子を設定可能。
76 ・パラメータテーブルのコピー/カット/ペーストを改善。
77 ・Mac 版で、隠れウィンドウの "Molby" がときどき Window メニューに現れる不具合を修正。
78 ・テーブルの編集時の不具合(Windows はクラッシュ、Mac はテキストフィールドが残ってしまう)の修正。
79 Version 0.5.3 is out.
80 * Frames can now have variable unit cell parameters.
81 * Improved handling of copy/cut/paste in the parameter table.
82 * Fix the problem in the Mac version in which the hidden top-level window gets sometimes visible in the Window menu.
83 * Bugs in the list control were (hopefully) fixed.
84
85 2010.4.29.
86   4/25 に修正した wxDocument::Close() 二重呼び出しの件、どうも修正の仕方がまずいみたいで、Windows でクラッシュを起こす。元に戻した。
87
88 2010.5.4.
89   いろいろ変なクラッシュが起きる。malloc/free 関係のバグくさいのだが、なかなか特定できない。Mac 上では GuardMalloc を使い、MolAction.c:562 の
90 -                               usave = *up;
91 +                               ParameterCopyOneWithType(&usave, up, i);
92 が原因と特定できた。つまり、up は BondPar/AnglePar/etc. の配列へのポインタを UnionPar * にキャストしたものなので、up が配列の最後の要素を指しているときに *up をアクセスすると、存在しないメモリ領域を読み出すことになってしまう。(これでバスエラーが起きるのは相当不運なケースだが)。
93   Windows の方は本当に困ってしまった。開発ツールへの投資をけちるとこういうところでつまづくんだな。チェック用ツールをいろいろ探して、kmmalloc (http://www.vector.co.jp/soft/dos/prog/se026997.html) を使うことにした。使い方は同梱の kmmalloc.txt に全部書いてあるのだが、少し手こずってしまったのでメモしておく。
94 ・インストールの仕方:
95 (1) kmmalloc-2.5.3.zip をダウンロード、解凍。
96 (2) $ cd kmmalloc-2.5.3
97 (3) patch -c < mingw.dif
98 (4) xalloc.h を編集して、次の5行を追加。
99 #define EFREEP 120
100 #define EFREEBLK 121
101 #define EALLOCBLK 122
102 #define EFREEWRT 123
103 #define ETRAILWRT 124
104 (5) mingw.mak を編集する。
105 -LIBDIR = /usr/local/lib
106 +LIBDIR = /mingw/lib
107 (6) make PACKAGE=KMMALLOC _MEM_DEBUG=1 -f mingw.mak
108  途中で一回「問題が発生したため、test_mem.exe を終了します。」というダイアログが出る。仕様なのか不具合なのか不明。
109 (7) mkdir /mingw/include/kmmalloc; cp xalloc.h yalloc.h /mingw/include/kmmalloc
110 ・使い方
111 (1) ビルド時に -lkmmalloc_debug フラグをリンカに渡す。これで malloc/free/realloc が kmmalloc のものと置き換わる。
112 (2) 問題のソースに #include <kmmalloc/xalloc.h> を入れておくと、malloc/free/realloc のコール時に __FILE__, __LINE__ を渡すようにしてくれるが、これをしなくてもデバッガを使えば何とかなる。
113 (3) export MEMCHECK=2  #  kmmalloc のデバッグ機能を有効にする。ログを書き出すなら export MEMCHECK=4; export MEMFP=ファイル名 とする。
114 (4) デバッガで mem_error() 関数にブレークポイントを指定して実行。実行は非常に遅くなる場合がある(それほどでもない場合もある)。
115 (5) strdup, wcsdup 中の malloc はこの方法では置き換えられないようなので、自前で malloc を使うバージョンを用意して使う。(Missing.c 参照) → どうも wxWidgets の中の strdup コールはこれでは置き換わってくれないらしく、かえって変なことが起きているような気がする。kmmalloc.a をリンクする条件で wxWidgets を再コンパイルしないとだめか? → マルチスレッドに未対応? 無理かも…
116
117 2011.4.26.
118  GaussianW のフォーマットチェックポイントファイルが読めないことが判明。改行コードの問題だった。Molecule.c の sSeparateTokens() を修正して解決。
119  また、GaussianW では formchk で作ったファイルの拡張子が fch になるので、fch, fchk 両方とも Gaussian Checkpoint File として認識するように修正。
120
121 2011.4.26.
122 バージョン 0.5.5 をリリース。
123
124 原子座標を修正したあとの MM/MD の不具合を修正。
125 wrap_unit_cell コマンドの不具合を修正。
126 単位格子が定義されているときに、周期的なイメージを表示する機能を実装。
127 周期境界条件での vdW/静電力計算の不具合を修正。
128 mbsf ファイルにスケール、配向などの表示に関する設定を保存。
129 MD パラメータがない分子に他の分子からのパラメータをペーストできない不具合を修正。
130 GaussianW の fch(k) ファイルが読めない不具合を修正。また、拡張子 ".fch" を Gaussian Checkpoint File として認識するよう設定。
131
132 Incomplete MM/MD re-initialization after modification of coordinates was fixed.
133 The Ruby command wrap_unit_cell now works correctly.
134 Periodic images can be displayed when a unit cell is defined.
135 Wrong calculation of vdw/elect forces under periodic boundary conditions was fixed.
136 The native format (mbsf) now preserves the display conditions, such as scale, orientation etc.
137 Pasting MD parameters to a molecule with no parameters now works correctly.
138 Importing GaussianW fch(k) files was not working; fixed. The extension ".fch" is now recognized as a Gaussian formatted checkpoint files.
139
140 2011.7.5.
141 sander 用入力を作れるようにする。prmtop, inpcrd は一応作れるようになった。あとは sander の入力ファイル。関係ありそうな設定パラメータ:
142
143 General flags
144 imin = 0 (no minimization), 1 (minimization)
145 ntx = 1 (read coords), 5 (read coords and velocities and box [if ntb>0]. velocities are used only if irest > 0.
146 irest = 0 (no restart), 1 (restart)
147 ntpr : every NTPR steps energy info are printed to mdout/mdinfo (default 50).
148 ntwx : every ntwx steps coords are written to mdcrd (default 0: no output)
149
150 Minimization and dynamics:
151 maxcyc: maximum number of cycles of minimization
152 nstlim: number of MD-steps to be performed
153 dt: time step (psec). Recommended value is 0.002 when SHAKE is used or 0.001 otherwise.
154 nrespa: frequency for calculation of slow forces. nrespa * dt > 0.004 causes instablitity.
155
156 Temperature control:
157 ntt: temperature control 0: constant energy, 1: constant temperature, 2: Andersen temperature, 3: Langevin dynamics
158 temp0: target temperature
159 tempi: initial temperature
160 tautp: time constant for heat bath coupling. Should be 0.5-5.0ps.
161 gamma_ln: collision frequency for Langevin dynamics.
162 vlimit: limiting velocity, default 20.
163
164 Pressure control:
165 ntp: constant pressure dynamics 0: no pressure scaling, 1: isotropic position scaling, 2: anisotropic pressure scaling
166 pres0: reference pressure (default 1 bar)
167 taup: pressure relaxation time (default 1.0 ps)
168
169 SHAKE constraint:
170 ntc: SHAKE algorithm. generally ntf and ntc should be the same. 1: SHAKE is not perfomred, 2: bonds involving hydrogen are constrained, 3: all bonds are constrained
171
172 Potential function parameters:
173 ntf: force evaluation 1: complete interaction, 2: omit hydrogen (with ntc=2), 3: omit all bonds (with ntc=3)
174 ntb: 0 (no periodicity), 1 (constant volume), 2 (constant pressure)
175 cut: nonbonded cutoff, default 8.0 (for PME this is good); for igb > 0, larger values should be used
176
177 Generalized Born/Surface Area:
178 igb: 0 (no GB), 1 (Hawkins/Cramer/Truhlar GB), 2 (Onufriev/Bashford/Case GB), etc.
179 extdiel: external dielectric constant. default 78.5.
180 saltcon: salt concentraction (M), GB plus Debye-Huckel model.
181 rgbmax: cutoff for estimation of effective Born radii. Default 25 A.
182 gbsa: 0 (no surface area calc), 1 (LCPO surface area model), 2 (recursive approximation of spheres; used only in single point calc)
183 surften: surface tension. default 0.005 kcal/mol/A^2
184 rdt: (only used in LES)
185
186 sander -O -i min.in -o NAME.out -p NAME.prmtop -c NAME.inpcrd -x NAME.mdcrd -r NAME.restrt
187
188 2011.7.8.
189  MoleculeMerge(), MoleculeUnmerge() の仕様を見直した方がいい。undo サポート用に、bond/angle/dihedral/improper を指定した位置に入れる機能が欲しい。パラメータも、すべての種類のパラメータを指定した位置に入れる機能が必要。IntGroup の配列でパラメータを与えるか?
190
191 2011.7.29.
192  テーブルをクリックしてもフォーカスされないことがあっておかしいと思っていたのだが、発生条件をどうやら特定できた。セル編集中に MyGLCanvas をクリックしてそちらにフォーカスが移ると、テーブルをクリックしても MyGLCanvas からフォーカスが動かない。もう一度セルをダブルクリックして編集状態にすると正常に戻る。この症状は Windows では起こらない。修正する方法がなかなか見つからない。wxMac のソースを読んでも、Carbon だからよくわからんし。→ 編集状態でなくなった時に wxTextCtrl を Destroy するといいみたい。ただし、Windows ではこれでクラッシュすることがある(しないこともある)。よくわからんが、#ifdef で分けてしのぐことにした。
193
194 2011.7.30.
195  バージョン 0.5.6 をリリース。
196
197 Gaff, parm99 パラメータ: 結合長を小数点以下3桁まで有効にした。
198 Antechamber/parmchk ダイアログ(および Ruby で書かれたその他のダイアログ)のクラッシュを修正。
199 Ruby: 新しいメソッド: AtomRef#exclusion, Molecule#resize_to_fit, Molecule#bond_par/angle_par/dihedral_par/improper_par/vdw_par, $stdin.gets, $stdin.readline. 改良したメソッド: Molecule#each_atom, Molecule#duplicate, Molecule#open, Kernel#message_box, Dialog#item.
200 分子力学: 構造最適化計算の安定性が向上。"Solvate" コマンドで溶媒分子に "SOLV" セグメント名が付与されるようになった。
201 新しいメニューコマンド:"Create New Atom", "Create New Parameter", "Create SANDER Input", "Import AMBER Lib", "Import AMBER Frcmod".
202 新しいファイルフォーマット: cif(読み込み), AMBER mdcrd(読み込み)。
203 属性テーブルでのカット/コピー/ペーストの安定性が向上。
204 Mac: 属性テーブルがときどきフォーカスされない問題を解決。
205
206 Gaff and parm99 parameters: the equilibrium bond lengths have now three significant digits after the decimal point.
207 Crash on antechamber/parmchk dialog (and other Ruby-based dialogs as well) is fixed.
208 Ruby: New methods: AtomRef#exclusion, Molecule#resize_to_fit, Molecule#bond_par/angle_par/dihedral_par/improper_par/vdw_par, $stdin.gets, $stdin.readline. Improved: Molecule#each_atom, Molecule#duplicate, Molecule#open, Kernel#message_box, Dialog#item.
209 MM/MD: minimization gets improved stability; the "solvate" command now sets the segment name 'SOLV' for the solvent atoms.
210 New menu commands: "Create New Atom", "Create New Parameter", "Create SANDER Input", "Import AMBER Lib", "Import AMBER Frcmod".
211 New file formats: cif (import), AMBER mdcrd (import).
212 Tables: cut/copy/paste in parameter table is improved. Mac: table did not get focus under certain conditions; fixed. 
213
214 2011.8.3.
215 gfortran 絡みの厄介な問題を発見。AmberTools の resp, sqm が libgfortran.dylib をリンクしているため、実行時に libgfortran がないとクラッシュする。libgfortran.dylib を同梱して DYLD_LIBRARY_PATH を設定するのは一案だが、libgfortran.dylib が 8 MB もあるので、ちょっとどうかと思う。静的にリンクする方法をいろいろ探った。どうやら2つ方法がありそう。
216 (1) libgfortran.dylib をリネームして見えなくしてしまい、同じディレクトリの libgfortran.a を優先させる。
217 (2) libgfortran.a を libgfortran-static.a とリネームした上で、明示的にリンクオプションに記述する。-nodefaultlibs -lgfortran-static -lgcc -lc -lm -lSystem -lSystemStubs -lgfortranbegin
218 -lgfortran-static だけではダメ。また、-static-gfortran も機能しない。
219
220 (1) の方が簡単だが、開発者が libgfortran.dylib に依存するバイナリを使っていると問題が起きるので、amber11 の Makefile に手を入れて (2) の方針でいく。変更しないといけないのは gfortran を使って実行ファイルを作っているところで、etc/Makefile の nucgen/ambpdb/resp, lib/Makefile の neww2oldparm, sqm/Makefile の sqm ターゲット。config.h に
221 FLDFLAGS= -nodefaultlibs -lgfortran-static -lgcc -lc -lm -lSystem -lSystemStubs -lgfortranbegin
222 という一行を加えて、上のそれぞれのコマンドラインに $(FLDFLAGS) を加えた。
223
224 なお、/usr/local/lib/libgfortran.a は、strip しておかないと "can't find atom for N_GSYM stabs" という警告が出る。次のようにする。
225 % cd /usr/local/lib
226 % sudo cp libgfortran.a libgfortran-static.a
227 % sudo strip -S libgfortran-static.a
228 % sudo ranlib libgfortran-static.a
229
230 2011.8.3.
231 0.5.6.1 を公開。
232
233 Crash on running antechamber/parmchk on PPC Mac is (hopefully) fixed.
234 Mac: resp and sqm (semiempirial QM calculation invoked by antechamber) caused crash unless gfortran is installed. To fix this, config.h/Makefiles for AmberTools is modified so that gfortran library is statically linked
235 Occasionally, termination of the subprocess (like antechamber) was not detected properly, and the subprocess was left as a zombie. Improved, but may not be completely fixed.
236 Loading GAMESS dat file now can be interrupted by ESC.
237 Disable close box of RubyDialogFrame.
238 On importing frcmod, atom type with a single character (like "c") was not recognized properly. Fixed.
239 MO import from GAMESS log/dat files are implemented.
240 ruby-1.8.7-p160.tar.gz is added (required for building)
241
242 PPC Mac での antechamber/parmchk のクラッシュを修正。
243 Mac: resp, sqm(半経験的量子化学計算)のクラッシュを修正。AmberTools の config.h/Makefile を修正して gfortran のライブラリを静的リンクするようにした。
244 Antechamber などのサブプロセスの終了が検出できず、ゾンビになっていることがあった。一応修正したが、まだ問題があるかも。
245 GAMESS dat ファイルの読み込みが ESC で中断できるようになった。
246 RubyDialogFrame のクローズボタンをなくした。
247 Frcmod インポート(antechamber/parmchk 後の読み込みを含む)で、原子タイプが一文字のものを正しく読めるように修正。
248 GAMESS dat, log ファイルから MO を読み込むように修正。
249
250 2011.8.23.
251 0.5.6.2.
252
253 Gaussian fchk のインポートができなくなっていた (0.5.6.1 で発生)。修正。
254 最後にコンパイルした日時を 'About' ダイアログで表示するようにした。
255 Amber mdcrd のインポートで、座標が8桁になる時にエラーが発生していたので修正。
256 構造最適化で時々クラッシュしていたのを修正。
257
258 Fchk import was broken (enbug in 0.5.6.1); fixed.
259 Final compile date/time is now shown in the 'About' window.
260 Fix mdcrd import to allow coordinates using full 8 digits (like -123.456 or 1234.567).
261 Occasional crash during minimization is fixed.
262
263 2011.9.30.
264  Windows の文字コードで厄介なバグを発見。内部コードを UTF-8 にしているのだが、Dir.pwd などは Windows の内部コードそのもの(Shift-JIS?)で動作するので、Molecule#path などと矛盾が生じる。さらに、Ruby_FileStringValuePtr などは Shift-JIS を前提としているので、Molecule#path などもおかしな文字列を生成してしまう。このため、パスに日本語が入っていると open(mol.path + "/test.txt", "w") などがうまくいかない。さてどうしたものか?
265 → wxConvUTF8 の代わりに Windows では *wxConvCurrent を使うようにした。
266
267 2011.10.06.
268  フレームの扱い。「何もフレームがない状態」でも、「現在の状態」は存在する訳だから、nframes = 1 であるべきなのではないか?
269 ・フレームがない時は nframes = 1 とする。
270 ・nframes が 2 -> 1 になるとき、すべてのフレーム関係のメモリを解放する。
271
272 2011.10.15.
273 Version 0.6
274 Mac: a command line version is included in the binary distribution.
275 On Windows, Molby::{Mbsf,Resource,Script}Path return slash-separated strings instead of backslash-separated strings.
276 The solvate command does not correctly remove conflicting solvent molecules. Fixed.
277 Ruby: find_conflicts now exclude atom pairs separated by 0-3 bonds.
278 export_prmtop can now be used from script
279 Merging molecule was resulting in strange order of merged parameters. Fixed.
280 Occasional crash on merging molecules is fixed. (Duplicating parameters was causing problems.)
281 Some solvent box are included in Scripts/mbsf folder. MolbyResourcePath is now called Molby::ResourcePath (old name is still usable for backward compatibility). Molby::ScriptPath, Molby::MbsfPath are also implemented.
282 rotate_with_axis now can accept atom indices or names as the first three arguments.
283 Setting external forces during MM/MD is implemented.
284 Special parameters with atom indices were not working. Fixed.
285 Inserting/removing frames now work more consistently. The minimum number of frames is 1 instead of 0.
286 Atoms to be excluded from MM/MD calculations can be specified by the atom property "mm_exclude."
287 MM/MD calculation crashed when periodic cell is removed after calculation with non-nil cell. Fixed.
288 On windows, Molecule#path, Molecule#dir does not work correctly when the path includes double-byte characters. Fixed.
289 After MD run, coordinates are copied back to the molecule even when MD stopped abnormally.
290 MDArena#init_velocities and MDArena#scale_velocities are implemented.
291 Improved crd/mdcrd import.
292 The 'r_eq14' parameter was not editable in the property table. Fixed.
293 Crash occurs when a Ruby exception is raised while editing property table. Fixed.
294 Ruby: Molecule#dup now duplicates the unit cell, symmetry operations, and MD settings.
295 Remove 'build xxxxxxxx' string from the version description.
296 AtomRef.exclusion causes bus error when the MDArena is not yet built. Fixed.
297 After loading the molecule, occupancy factors are checked, and if all atoms have zero occupancy then all are set to 1.0.
298 Ruby command get_coord_from_frame(index, group=nil, cflag=nil) is implemented.
299 The MO info table is renamed to MO energy, and the alpha and beta orbitals of same indices are shown in the same row.
300 MO import from GAMESS log file was broken
301 Fchk import: zero is accepted as the number of alpha/beta electrons
302
303 2011.11.30.
304 Version 0.6.1
305 Release Note
306 縮環構造をコピー・ペースト、および「ダブルクリック+構造入力」で作れるようにした。
307 さまざまな環構造(シクロアルカン、芳香族)と溶媒ボックスが「Open Predefined」メニューから開けるようにした。
308 CIFインポートを修正。計算で置いた水素原子を含む結合が表示されないことがあった。
309 分子動力学の dcd トラジェクトリファイルのインポートを実装。
310 AMBER の prmtop を作成する際に、AMBER8 コンパチブルなフォーマット(NAMD 等で使える)を指定可能。
311
312 Ring fusion can be performed by copy-paste or "double-click and type-in".
313 Various ring structures (cycloalkanes, aromatics) and solvent boxes are accessible from "Open Predefined" menu.
314 CIF import is improved, so that bonds including the calculated hydrogen atoms are created by guess.
315 Import/export of dcd trajectory files is implemented.
316 Creating AMBER input now allows to select between AMBER8 (also for NAMD) and AMBER11 formats.
317
318 ChangeLog
319 Document on ring fusion capability is written.
320 Selection after ring fusion by 'double-click and type-in' now includes all atoms in the newly formed ring.
321 Behavior of paste is improved when two dangling bonds are present in the fragment and the target molecule (i.e. ring fusion does work)
322 Some typical cyclic structures as well as solvent boxes are now accessible from 'Open Predefined' menu.
323 Ruby: Molecule object is now unique to each open molecule, i.e. the same Molecule object is returned when requested for the same molecule.
324 Ring fusion (e.g. expanding benzene to naphthalene) is implemented; still experimental, but seems to be working.
325 __FILE__ is now set to the script file during execute_script.
326 Some cleanup to suppress warnings
327 CIF import is improved, so that bonds including the calculated hydrogen atoms are created by guess.
328 Ruby: Molecule#find_close_atoms is implemented.
329 Enable undo for importing pdb and dcd.
330 Import/export of dcd format is implemented.
331 Creating AMBER input now allows to select between AMBER8 (also for NAMD) and AMBER11 formats.
332
333 2011.11.30.
334   molby_doc.zip の作り方。OS X のコマンドラインで、Documents フォルダに cd したあと、
335 $ zip -r molby_doc.zip doc -x \*.DS_Store
336   コマンドライン版の zip はリソースフォークなどを付加しないらしい。.DS_Store は残ってしまうので、それは明示的に除く。
337
338 2012.2.2.
339 Version 0.6.2
340
341 Release note
342 - グラフィックオブジェクトを分子に重ねて書けるようにした。ただし Ruby でのコーディングが必要。
343 - Ruby ダイアログでモードレスな動作ができるようにした。
344 - Ruby スクリプトの先頭行コメントに coding:shift-jis または coding:utf-8 が書けるようにした。今のところこの2つしか認識しない。
345 - Ruby の LAMatrix (linear algebra matrix) クラスを実装し、任意の行列演算ができるようにした。ドキュメントはまだ書いていない。
346 - Empty Console Window コマンドを実装。
347 - 分子動力学のドキュメントを作成。
348 - MM/MD で "log file" フィールドは明示的に指定しない限り空にするようにした。
349 - CIF ファイルの読み込みで、座標値の標準偏差を認識するようにした。ただしmbsfへの保存はされない。
350
351 - Graphic objects can be drawn together with the molecule (requires Ruby coding).
352 - Modeless operation of Ruby Dialog is implemented.
353 - The first comment line of the Ruby script (that is to be imported by "Execute Ruby Script" command) can now contain "coding:shift-jis" or "coding:utf-8" instruction. At present, only these two codings are recognized.
354 - LAMatrix (linear algebra matrix) class is implemented in Ruby, which allow matrix arithmetic of arbitrary dimension. No document is provided yet.
355 - Empty Console Window command is implemented.
356 - Document for MD calculation is written.
357 - Rms of crystallographic parameters (from the CIF file) are now kept in the molecule. Copying/saving of such parameters are not yet supported.
358
359 ChangeLog
360 - Document is updated to include new graphic objects in the model view.
361 - Ruby: Molecule#make_front, set_name, get_view_rotation, get_view_scale, get_view_translation, set_view_rotation, set_view_scale, set_view_translation, set_graphic_color, hide_graphic, show_graphic are implemented.
362 - Drawing custom graphics on the model view is implemented.
363 - Ruby Dialog: modeless dialog is now implemented, and interval timer is implemented.
364 - Ruby: $KCODE is set on startup, and coding:{shift-jis, utf-8} is recognized as the source code encoding (for executing script from file).
365 - Molecule#all returns IntGroup[0] when the molecule is empty (it should return IntGroup[]), which causes crash on Molecule#delete.
366 - Dialog#layout: the :align and :vertical_align options can now be specified as item attributes
367 - The separator line in the Ruby Dialog was not working correctly.
368 - Vector3D and Transform objects are converted to LAMatrix object with dimensions 3 or 4 depending upon the context.
369 - LAMatrix#new errornously allows matrix with dimension 0. Fixed.
370 - AtomRef#molecule is implemented.
371 - Empty Console Window command is implemented.
372 - LAMatrix.multiply was not working correctly when the first argument is a scalar. Fixed.
373 - General matrix calculation (LAMatrix class in Ruby) is implemented. Seems to be working, but not documented yet.
374 - In the document, navigation between the English/Japanese versions is possible in most pages.
375 - Document for MD calculation is written.
376 - The "log file" field is set to blank unless explicitly set by the user.
377 - The structure Mat33 and Transform are now column-first arrangement (no change on Ruby interface and mbsf file format)
378 - Rms of crystallographic parameters (from the CIF file) are now kept in the molecule. Copying/saving of such parameters are not yet supported.