From: Toshi Nagata Date: Sat, 6 Nov 2021 09:31:22 +0000 (+0900) Subject: memo.txt is removed from the repository X-Git-Tag: v1.0.2~10 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=efc93a6288e1854ee089c476897d296d3171beda;p=molby%2FMolby.git memo.txt is removed from the repository --- diff --git a/memo.txt b/memo.txt deleted file mode 100755 index ae9dbda..0000000 --- a/memo.txt +++ /dev/null @@ -1,784 +0,0 @@ -2010.1.25. - AmberTools1.3 をバンドルする方向で検討中。antechamber と sqm だけあればいいはず。 - -config.h, Makefile_at を手動で修正。 -src ディレクトリの中で、antechamber, blas, carpack, cblas, clapack, etc, f2c, include, lapack, lib, sff, sqm を残し、他は削除する。 - -make -f Makefile_at でビルド。 -なお、Mac 用の gfortran は http://r.research.att.com/tools/ にあるやつがいい。hpc.sourceforge.net のやつはいろいろと使い方が複雑。 -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 に持って行っても実行できたので、たぶん大丈夫じゃないかと。 -原子タイプのアサインだけなら、antechamber を -c オプション無しで走らせればいいんだな。気がついてなかった。(どれぐらい使えるのかは不明だが。) - -2010.2.2. - MD/Minimize のサブスレッドの処理を整理(よくフリーズしていたので)。 - サブスレッドから MM/MD をしているときは、指定したステップが終わるごとにリングバッファに座標データをためこみ、メインスレッドにイベントを投げる。メインスレッドはイベントを捕まえて、リングバッファから座標データを読み込んで、フレームを作成する。サブスレッドから Molecule を直接触ることがなくなったので、少しは安定すると期待しよう。また、ドキュメントを閉じるときにサブスレッドが走っている時は、エラーメッセージを出して閉じるのを拒否するようにした。 - -2010.2.21. - Ruby の Parameter/ParEnumerable の仕様がわかりにくい。グローバルパラメータを自動的に探しに行く機能はlookup メソッドに限定する。Parameter#lookup(par_type, atom_type_string, *options), ParEnumerable#lookup(atom_type_string, *options). - Parameter#bond, ParEnumerable#[] などで、原子タイプからの探索はやめにする。また、ローカルな Parameter の nbonds などがグローバルパラメータを含んだ値を返すのはやめる。 - Parameter#bond などをクラスメソッド・インスタンスメソッドとして二重に登録するのはやめた。グローバルパラメータはたとえば Parameter.builtin.atoms または Parameter::Builtin.atoms としてアクセスする。 - -2010.2.27. - Parameter タイプの atom というのはなんとも紛らわしい。element の方がまだましかも。 - -2010.3.8. - RubyDialog って名前はよくないな。Ruby のクラス名に "Ruby" って接頭辞をつけてどうすんだよ。全体を Molby というモジュールにして、暗黙に include Molby することにしようか。これなら、RubyDialog は Dialog でもいい。 - DialogItem を独立したクラスにしたいんだけど、オーナーシップをどうしようか? - DialogItem は常に Dialog#item で作成されるので、このとき作ったオブジェクトを Dialog._items に格納し、常にそれを返す。従って、Dialog#get_item(n) で返されるオブジェクトは常に同一。 - DialogItem は Dialog へのポインタとアイテム番号を保持すべき。アイテム番号はともかく、ポインタはどう保持するか? Dialog._items -> DialogItem -> Dialog という循環参照を作っても、Ruby の GC ならちゃんと回収してくれるから、これでいいんじゃないか。他のいい方法が思いつかん。 - DialogItem は C レベルのデータは持たず、単なる cDialogItem のインスタンスとする。属性は、今まで Dialog 中のハッシュに保持していたが、DialogItem のインスタンス変数として実装する。 - Dialog#item(:type, hash) でアイテムを作成。Dialog#set_attr, Dialog#get_attr はやめて、DialogItem#[], DialogItem#[]= で実装する。DialogItem#属性名, DialogItem#属性名= も実装する(ParameterRef と同様)。また、Dialog#action の引数はアイテム番号でなく DialogItem オブジェクトとする。 - DialogItem の action 属性は今までと同様だが、引数としてはアイテム番号でなく DialogItem オブジェクトそのものが渡される。 - -2010.3.21. - Pressure control を使えるようにしたい。フレームごとに unit cell パラメータを保持できるようにしないといけない。→ 一応実装した。 - -2010.4.25. - SVN メモ。タグの付け方。 -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" - -2010.4.25. - wxWidgets 絡みの厄介なバグをいくつか退治したのでメモ。 -・wxDocument::Close() が二重に呼ばれる問題。メニューから Close コマンドを選ぶと、普通は wxDocManager::CloseDocument() が呼び出される。これは、最初に wxDocument::Close() を呼び、成功したら wxDocument::DeleteAllViews() を呼ぶのだが、この中から wxView::Close() -> wxView::OnClose() -> wxDocument::Close() という呼び出しがあるため、wxDocument::Close() が2回呼ばれてしまう。2回目に何もしないで true を返せばいいのだが、下手なコーディングをするとおかしくなってしまう。今回は、MoleculeView::OnClose() を修正して、wxDocument::Close() の呼び出しをスキップした。 - 参考: http://trac.wxwidgets.org/ticket/11367 -・wxDocument::Close() をオーバーライドしたら、元の wxDocument::Close() を呼ばないといけない。こんな感じ。 -bool -MyDocument::Close() -{ - if (mol != NULL && mol->mutex != NULL) { - return false; /* クローズを拒否 */ - } - return wxDocument::Close(); -} - 理由は、wxDocument::Close() の中で、未保存のドキュメントを保存するかどうか尋ねる処理があるため。これを忘れて "return true;" としてしまうと、未保存のドキュメントの場合は wxDocument のデストラクタからこの処理が呼ばれてしまい、変なことになる。 -・wxMac で wxMDIParentFrame を使うとき、frame->Move(-10000, -10000); frame->Show(false); などとして不可視にするが、すべてのウィンドウが閉じられている状態でアプリケーションをバックグラウンドからフォアグラウンドに持って来た時など、何かの拍子にこのウィンドウが可視化されて Window メニューに現れてしまうことがある。これを防ぐ方法: -(1) wxMDIParentFrame のコンストラクタ中で、 -#if defined(__WXMAC__) - OSStatus sts; - sts = ChangeWindowAttributes((WindowRef)m_macWindow, 0, kWindowInWindowMenuAttribute); -#endif - ChangeWindowAttributes には が必要。ちなみに、Ruby のヘッダと同時に #include すると T_DATA が二重定義になるので、#include の前に #undef T_DATA を置く。 -(2) wxApp で Activate Event をつかまえて、そのたびに wxMDIParentFrame を不可視にする。なんとも強引だが、確実。 -EVT_ACTIVATE(MyApp::OnActivate) -void -MyApp::OnActivate(wxActivateEvent &event) -{ -#if defined(__WXMAC__) - MyFrame *frame = GetMainFrame(); - frame->Show(false); -#endif - event.Skip(); -} - -2010.4.25. -バージョン0.5.3をリリースしました。 -・フレームごとに可変な単位格子を設定可能。 -・パラメータテーブルのコピー/カット/ペーストを改善。 -・Mac 版で、隠れウィンドウの "Molby" がときどき Window メニューに現れる不具合を修正。 -・テーブルの編集時の不具合(Windows はクラッシュ、Mac はテキストフィールドが残ってしまう)の修正。 -Version 0.5.3 is out. -* Frames can now have variable unit cell parameters. -* Improved handling of copy/cut/paste in the parameter table. -* Fix the problem in the Mac version in which the hidden top-level window gets sometimes visible in the Window menu. -* Bugs in the list control were (hopefully) fixed. - -2010.4.29. - 4/25 に修正した wxDocument::Close() 二重呼び出しの件、どうも修正の仕方がまずいみたいで、Windows でクラッシュを起こす。元に戻した。 - -2010.5.4. - いろいろ変なクラッシュが起きる。malloc/free 関係のバグくさいのだが、なかなか特定できない。Mac 上では GuardMalloc を使い、MolAction.c:562 の -- usave = *up; -+ ParameterCopyOneWithType(&usave, up, i); -が原因と特定できた。つまり、up は BondPar/AnglePar/etc. の配列へのポインタを UnionPar * にキャストしたものなので、up が配列の最後の要素を指しているときに *up をアクセスすると、存在しないメモリ領域を読み出すことになってしまう。(これでバスエラーが起きるのは相当不運なケースだが)。 - Windows の方は本当に困ってしまった。開発ツールへの投資をけちるとこういうところでつまづくんだな。チェック用ツールをいろいろ探して、kmmalloc (http://www.vector.co.jp/soft/dos/prog/se026997.html) を使うことにした。使い方は同梱の kmmalloc.txt に全部書いてあるのだが、少し手こずってしまったのでメモしておく。 -・インストールの仕方: -(1) kmmalloc-2.5.3.zip をダウンロード、解凍。 -(2) $ cd kmmalloc-2.5.3 -(3) patch -c < mingw.dif -(4) xalloc.h を編集して、次の5行を追加。 -#define EFREEP 120 -#define EFREEBLK 121 -#define EALLOCBLK 122 -#define EFREEWRT 123 -#define ETRAILWRT 124 -(5) mingw.mak を編集する。 --LIBDIR = /usr/local/lib -+LIBDIR = /mingw/lib -(6) make PACKAGE=KMMALLOC _MEM_DEBUG=1 -f mingw.mak - 途中で一回「問題が発生したため、test_mem.exe を終了します。」というダイアログが出る。仕様なのか不具合なのか不明。 -(7) mkdir /mingw/include/kmmalloc; cp xalloc.h yalloc.h /mingw/include/kmmalloc -・使い方 -(1) ビルド時に -lkmmalloc_debug フラグをリンカに渡す。これで malloc/free/realloc が kmmalloc のものと置き換わる。 -(2) 問題のソースに #include を入れておくと、malloc/free/realloc のコール時に __FILE__, __LINE__ を渡すようにしてくれるが、これをしなくてもデバッガを使えば何とかなる。 -(3) export MEMCHECK=2 # kmmalloc のデバッグ機能を有効にする。ログを書き出すなら export MEMCHECK=4; export MEMFP=ファイル名 とする。 -(4) デバッガで mem_error() 関数にブレークポイントを指定して実行。実行は非常に遅くなる場合がある(それほどでもない場合もある)。 -(5) strdup, wcsdup 中の malloc はこの方法では置き換えられないようなので、自前で malloc を使うバージョンを用意して使う。(Missing.c 参照) → どうも wxWidgets の中の strdup コールはこれでは置き換わってくれないらしく、かえって変なことが起きているような気がする。kmmalloc.a をリンクする条件で wxWidgets を再コンパイルしないとだめか? → マルチスレッドに未対応? 無理かも… - -2011.4.26. - GaussianW のフォーマットチェックポイントファイルが読めないことが判明。改行コードの問題だった。Molecule.c の sSeparateTokens() を修正して解決。 - また、GaussianW では formchk で作ったファイルの拡張子が fch になるので、fch, fchk 両方とも Gaussian Checkpoint File として認識するように修正。 - -2011.4.26. -バージョン 0.5.5 をリリース。 - -原子座標を修正したあとの MM/MD の不具合を修正。 -wrap_unit_cell コマンドの不具合を修正。 -単位格子が定義されているときに、周期的なイメージを表示する機能を実装。 -周期境界条件での vdW/静電力計算の不具合を修正。 -mbsf ファイルにスケール、配向などの表示に関する設定を保存。 -MD パラメータがない分子に他の分子からのパラメータをペーストできない不具合を修正。 -GaussianW の fch(k) ファイルが読めない不具合を修正。また、拡張子 ".fch" を Gaussian Checkpoint File として認識するよう設定。 - -Incomplete MM/MD re-initialization after modification of coordinates was fixed. -The Ruby command wrap_unit_cell now works correctly. -Periodic images can be displayed when a unit cell is defined. -Wrong calculation of vdw/elect forces under periodic boundary conditions was fixed. -The native format (mbsf) now preserves the display conditions, such as scale, orientation etc. -Pasting MD parameters to a molecule with no parameters now works correctly. -Importing GaussianW fch(k) files was not working; fixed. The extension ".fch" is now recognized as a Gaussian formatted checkpoint files. - -2011.7.5. -sander 用入力を作れるようにする。prmtop, inpcrd は一応作れるようになった。あとは sander の入力ファイル。関係ありそうな設定パラメータ: - -General flags -imin = 0 (no minimization), 1 (minimization) -ntx = 1 (read coords), 5 (read coords and velocities and box [if ntb>0]. velocities are used only if irest > 0. -irest = 0 (no restart), 1 (restart) -ntpr : every NTPR steps energy info are printed to mdout/mdinfo (default 50). -ntwx : every ntwx steps coords are written to mdcrd (default 0: no output) - -Minimization and dynamics: -maxcyc: maximum number of cycles of minimization -nstlim: number of MD-steps to be performed -dt: time step (psec). Recommended value is 0.002 when SHAKE is used or 0.001 otherwise. -nrespa: frequency for calculation of slow forces. nrespa * dt > 0.004 causes instablitity. - -Temperature control: -ntt: temperature control 0: constant energy, 1: constant temperature, 2: Andersen temperature, 3: Langevin dynamics -temp0: target temperature -tempi: initial temperature -tautp: time constant for heat bath coupling. Should be 0.5-5.0ps. -gamma_ln: collision frequency for Langevin dynamics. -vlimit: limiting velocity, default 20. - -Pressure control: -ntp: constant pressure dynamics 0: no pressure scaling, 1: isotropic position scaling, 2: anisotropic pressure scaling -pres0: reference pressure (default 1 bar) -taup: pressure relaxation time (default 1.0 ps) - -SHAKE constraint: -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 - -Potential function parameters: -ntf: force evaluation 1: complete interaction, 2: omit hydrogen (with ntc=2), 3: omit all bonds (with ntc=3) -ntb: 0 (no periodicity), 1 (constant volume), 2 (constant pressure) -cut: nonbonded cutoff, default 8.0 (for PME this is good); for igb > 0, larger values should be used - -Generalized Born/Surface Area: -igb: 0 (no GB), 1 (Hawkins/Cramer/Truhlar GB), 2 (Onufriev/Bashford/Case GB), etc. -extdiel: external dielectric constant. default 78.5. -saltcon: salt concentraction (M), GB plus Debye-Huckel model. -rgbmax: cutoff for estimation of effective Born radii. Default 25 A. -gbsa: 0 (no surface area calc), 1 (LCPO surface area model), 2 (recursive approximation of spheres; used only in single point calc) -surften: surface tension. default 0.005 kcal/mol/A^2 -rdt: (only used in LES) - -sander -O -i min.in -o NAME.out -p NAME.prmtop -c NAME.inpcrd -x NAME.mdcrd -r NAME.restrt - -2011.7.8. - MoleculeMerge(), MoleculeUnmerge() の仕様を見直した方がいい。undo サポート用に、bond/angle/dihedral/improper を指定した位置に入れる機能が欲しい。パラメータも、すべての種類のパラメータを指定した位置に入れる機能が必要。IntGroup の配列でパラメータを与えるか? - -2011.7.29. - テーブルをクリックしてもフォーカスされないことがあっておかしいと思っていたのだが、発生条件をどうやら特定できた。セル編集中に MyGLCanvas をクリックしてそちらにフォーカスが移ると、テーブルをクリックしても MyGLCanvas からフォーカスが動かない。もう一度セルをダブルクリックして編集状態にすると正常に戻る。この症状は Windows では起こらない。修正する方法がなかなか見つからない。wxMac のソースを読んでも、Carbon だからよくわからんし。→ 編集状態でなくなった時に wxTextCtrl を Destroy するといいみたい。ただし、Windows ではこれでクラッシュすることがある(しないこともある)。よくわからんが、#ifdef で分けてしのぐことにした。 - -2011.7.30. - バージョン 0.5.6 をリリース。 - -Gaff, parm99 パラメータ: 結合長を小数点以下3桁まで有効にした。 -Antechamber/parmchk ダイアログ(および Ruby で書かれたその他のダイアログ)のクラッシュを修正。 -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. -分子力学: 構造最適化計算の安定性が向上。"Solvate" コマンドで溶媒分子に "SOLV" セグメント名が付与されるようになった。 -新しいメニューコマンド:"Create New Atom", "Create New Parameter", "Create SANDER Input", "Import AMBER Lib", "Import AMBER Frcmod". -新しいファイルフォーマット: cif(読み込み), AMBER mdcrd(読み込み)。 -属性テーブルでのカット/コピー/ペーストの安定性が向上。 -Mac: 属性テーブルがときどきフォーカスされない問題を解決。 - -Gaff and parm99 parameters: the equilibrium bond lengths have now three significant digits after the decimal point. -Crash on antechamber/parmchk dialog (and other Ruby-based dialogs as well) is fixed. -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. -MM/MD: minimization gets improved stability; the "solvate" command now sets the segment name 'SOLV' for the solvent atoms. -New menu commands: "Create New Atom", "Create New Parameter", "Create SANDER Input", "Import AMBER Lib", "Import AMBER Frcmod". -New file formats: cif (import), AMBER mdcrd (import). -Tables: cut/copy/paste in parameter table is improved. Mac: table did not get focus under certain conditions; fixed. - -2011.8.3. -gfortran 絡みの厄介な問題を発見。AmberTools の resp, sqm が libgfortran.dylib をリンクしているため、実行時に libgfortran がないとクラッシュする。libgfortran.dylib を同梱して DYLD_LIBRARY_PATH を設定するのは一案だが、libgfortran.dylib が 8 MB もあるので、ちょっとどうかと思う。静的にリンクする方法をいろいろ探った。どうやら2つ方法がありそう。 -(1) libgfortran.dylib をリネームして見えなくしてしまい、同じディレクトリの libgfortran.a を優先させる。 -(2) libgfortran.a を libgfortran-static.a とリネームした上で、明示的にリンクオプションに記述する。-nodefaultlibs -lgfortran-static -lgcc -lc -lm -lSystem -lSystemStubs -lgfortranbegin --lgfortran-static だけではダメ。また、-static-gfortran も機能しない。 - -(1) の方が簡単だが、開発者が libgfortran.dylib に依存するバイナリを使っていると問題が起きるので、amber11 の Makefile に手を入れて (2) の方針でいく。変更しないといけないのは gfortran を使って実行ファイルを作っているところで、etc/Makefile の nucgen/ambpdb/resp, lib/Makefile の neww2oldparm, sqm/Makefile の sqm ターゲット。config.h に -FLDFLAGS= -nodefaultlibs -lgfortran-static -lgcc -lc -lm -lSystem -lSystemStubs -lgfortranbegin -という一行を加えて、上のそれぞれのコマンドラインに $(FLDFLAGS) を加えた。 - -なお、/usr/local/lib/libgfortran.a は、strip しておかないと "can't find atom for N_GSYM stabs" という警告が出る。次のようにする。 -% cd /usr/local/lib -% sudo cp libgfortran.a libgfortran-static.a -% sudo strip -S libgfortran-static.a -% sudo ranlib libgfortran-static.a - -2011.8.3. -0.5.6.1 を公開。 - -Crash on running antechamber/parmchk on PPC Mac is (hopefully) fixed. -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 -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. -Loading GAMESS dat file now can be interrupted by ESC. -Disable close box of RubyDialogFrame. -On importing frcmod, atom type with a single character (like "c") was not recognized properly. Fixed. -MO import from GAMESS log/dat files are implemented. -ruby-1.8.7-p160.tar.gz is added (required for building) - -PPC Mac での antechamber/parmchk のクラッシュを修正。 -Mac: resp, sqm(半経験的量子化学計算)のクラッシュを修正。AmberTools の config.h/Makefile を修正して gfortran のライブラリを静的リンクするようにした。 -Antechamber などのサブプロセスの終了が検出できず、ゾンビになっていることがあった。一応修正したが、まだ問題があるかも。 -GAMESS dat ファイルの読み込みが ESC で中断できるようになった。 -RubyDialogFrame のクローズボタンをなくした。 -Frcmod インポート(antechamber/parmchk 後の読み込みを含む)で、原子タイプが一文字のものを正しく読めるように修正。 -GAMESS dat, log ファイルから MO を読み込むように修正。 - -2011.8.23. -0.5.6.2. - -Gaussian fchk のインポートができなくなっていた (0.5.6.1 で発生)。修正。 -最後にコンパイルした日時を 'About' ダイアログで表示するようにした。 -Amber mdcrd のインポートで、座標が8桁になる時にエラーが発生していたので修正。 -構造最適化で時々クラッシュしていたのを修正。 - -Fchk import was broken (enbug in 0.5.6.1); fixed. -Final compile date/time is now shown in the 'About' window. -Fix mdcrd import to allow coordinates using full 8 digits (like -123.456 or 1234.567). -Occasional crash during minimization is fixed. - -2011.9.30. - Windows の文字コードで厄介なバグを発見。内部コードを UTF-8 にしているのだが、Dir.pwd などは Windows の内部コードそのもの(Shift-JIS?)で動作するので、Molecule#path などと矛盾が生じる。さらに、Ruby_FileStringValuePtr などは Shift-JIS を前提としているので、Molecule#path などもおかしな文字列を生成してしまう。このため、パスに日本語が入っていると open(mol.path + "/test.txt", "w") などがうまくいかない。さてどうしたものか? -→ wxConvUTF8 の代わりに Windows では *wxConvCurrent を使うようにした。 - -2011.10.06. - フレームの扱い。「何もフレームがない状態」でも、「現在の状態」は存在する訳だから、nframes = 1 であるべきなのではないか? -・フレームがない時は nframes = 1 とする。 -・nframes が 2 -> 1 になるとき、すべてのフレーム関係のメモリを解放する。 - -2011.10.15. -Version 0.6 -Mac: a command line version is included in the binary distribution. -On Windows, Molby::{Mbsf,Resource,Script}Path return slash-separated strings instead of backslash-separated strings. -The solvate command does not correctly remove conflicting solvent molecules. Fixed. -Ruby: find_conflicts now exclude atom pairs separated by 0-3 bonds. -export_prmtop can now be used from script -Merging molecule was resulting in strange order of merged parameters. Fixed. -Occasional crash on merging molecules is fixed. (Duplicating parameters was causing problems.) -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. -rotate_with_axis now can accept atom indices or names as the first three arguments. -Setting external forces during MM/MD is implemented. -Special parameters with atom indices were not working. Fixed. -Inserting/removing frames now work more consistently. The minimum number of frames is 1 instead of 0. -Atoms to be excluded from MM/MD calculations can be specified by the atom property "mm_exclude." -MM/MD calculation crashed when periodic cell is removed after calculation with non-nil cell. Fixed. -On windows, Molecule#path, Molecule#dir does not work correctly when the path includes double-byte characters. Fixed. -After MD run, coordinates are copied back to the molecule even when MD stopped abnormally. -MDArena#init_velocities and MDArena#scale_velocities are implemented. -Improved crd/mdcrd import. -The 'r_eq14' parameter was not editable in the property table. Fixed. -Crash occurs when a Ruby exception is raised while editing property table. Fixed. -Ruby: Molecule#dup now duplicates the unit cell, symmetry operations, and MD settings. -Remove 'build xxxxxxxx' string from the version description. -AtomRef.exclusion causes bus error when the MDArena is not yet built. Fixed. -After loading the molecule, occupancy factors are checked, and if all atoms have zero occupancy then all are set to 1.0. -Ruby command get_coord_from_frame(index, group=nil, cflag=nil) is implemented. -The MO info table is renamed to MO energy, and the alpha and beta orbitals of same indices are shown in the same row. -MO import from GAMESS log file was broken -Fchk import: zero is accepted as the number of alpha/beta electrons - -2011.11.30. -Version 0.6.1 -Release Note -縮環構造をコピー・ペースト、および「ダブルクリック+構造入力」で作れるようにした。 -さまざまな環構造(シクロアルカン、芳香族)と溶媒ボックスが「Open Predefined」メニューから開けるようにした。 -CIFインポートを修正。計算で置いた水素原子を含む結合が表示されないことがあった。 -分子動力学の dcd トラジェクトリファイルのインポートを実装。 -AMBER の prmtop を作成する際に、AMBER8 コンパチブルなフォーマット(NAMD 等で使える)を指定可能。 - -Ring fusion can be performed by copy-paste or "double-click and type-in". -Various ring structures (cycloalkanes, aromatics) and solvent boxes are accessible from "Open Predefined" menu. -CIF import is improved, so that bonds including the calculated hydrogen atoms are created by guess. -Import/export of dcd trajectory files is implemented. -Creating AMBER input now allows to select between AMBER8 (also for NAMD) and AMBER11 formats. - -ChangeLog -Document on ring fusion capability is written. -Selection after ring fusion by 'double-click and type-in' now includes all atoms in the newly formed ring. -Behavior of paste is improved when two dangling bonds are present in the fragment and the target molecule (i.e. ring fusion does work) -Some typical cyclic structures as well as solvent boxes are now accessible from 'Open Predefined' menu. -Ruby: Molecule object is now unique to each open molecule, i.e. the same Molecule object is returned when requested for the same molecule. -Ring fusion (e.g. expanding benzene to naphthalene) is implemented; still experimental, but seems to be working. -__FILE__ is now set to the script file during execute_script. -Some cleanup to suppress warnings -CIF import is improved, so that bonds including the calculated hydrogen atoms are created by guess. -Ruby: Molecule#find_close_atoms is implemented. -Enable undo for importing pdb and dcd. -Import/export of dcd format is implemented. -Creating AMBER input now allows to select between AMBER8 (also for NAMD) and AMBER11 formats. - -2011.11.30. - molby_doc.zip の作り方。OS X のコマンドラインで、Documents フォルダに cd したあと、 -$ zip -r molby_doc.zip doc -x \*.DS_Store - コマンドライン版の zip はリソースフォークなどを付加しないらしい。.DS_Store は残ってしまうので、それは明示的に除く。 - -2012.2.2. -Version 0.6.2 - -Release note -- グラフィックオブジェクトを分子に重ねて書けるようにした。ただし Ruby でのコーディングが必要。 -- Ruby ダイアログでモードレスな動作ができるようにした。 -- Ruby スクリプトの先頭行コメントに coding:shift-jis または coding:utf-8 が書けるようにした。今のところこの2つしか認識しない。 -- Ruby の LAMatrix (linear algebra matrix) クラスを実装し、任意の行列演算ができるようにした。ドキュメントはまだ書いていない。 -- Empty Console Window コマンドを実装。 -- 分子動力学のドキュメントを作成。 -- MM/MD で "log file" フィールドは明示的に指定しない限り空にするようにした。 -- CIF ファイルの読み込みで、座標値の標準偏差を認識するようにした。ただしmbsfへの保存はされない。 - -- Graphic objects can be drawn together with the molecule (requires Ruby coding). -- Modeless operation of Ruby Dialog is implemented. -- 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. -- LAMatrix (linear algebra matrix) class is implemented in Ruby, which allow matrix arithmetic of arbitrary dimension. No document is provided yet. -- Empty Console Window command is implemented. -- Document for MD calculation is written. -- Rms of crystallographic parameters (from the CIF file) are now kept in the molecule. Copying/saving of such parameters are not yet supported. - -ChangeLog -- Document is updated to include new graphic objects in the model view. -- 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. -- Drawing custom graphics on the model view is implemented. -- Ruby Dialog: modeless dialog is now implemented, and interval timer is implemented. -- Ruby: $KCODE is set on startup, and coding:{shift-jis, utf-8} is recognized as the source code encoding (for executing script from file). -- Molecule#all returns IntGroup[0] when the molecule is empty (it should return IntGroup[]), which causes crash on Molecule#delete. -- Dialog#layout: the :align and :vertical_align options can now be specified as item attributes -- The separator line in the Ruby Dialog was not working correctly. -- Vector3D and Transform objects are converted to LAMatrix object with dimensions 3 or 4 depending upon the context. -- LAMatrix#new errornously allows matrix with dimension 0. Fixed. -- AtomRef#molecule is implemented. -- Empty Console Window command is implemented. -- LAMatrix.multiply was not working correctly when the first argument is a scalar. Fixed. -- General matrix calculation (LAMatrix class in Ruby) is implemented. Seems to be working, but not documented yet. -- In the document, navigation between the English/Japanese versions is possible in most pages. -- Document for MD calculation is written. -- The "log file" field is set to blank unless explicitly set by the user. -- The structure Mat33 and Transform are now column-first arrangement (no change on Ruby interface and mbsf file format) -- Rms of crystallographic parameters (from the CIF file) are now kept in the molecule. Copying/saving of such parameters are not yet supported. - -2012.6.18. -Version 0.6.3 - -リリースノート -- LAMatrix クラスのドキュメントを作成。 -- 量子化学計算ソフトウェアとの連携のドキュメントを作成。 -- CIFファイルから読み込んだ座標値・異方性温度因子・セルパラメータの標準偏差を mbsf ファイルに保存するようにした。 -- Ruby コマンド新設: Molecule#fit_coordinates, Molecule#amend_by_symmetry, Molecule#set(get)_view_center, Molecule#hidden_atoms, Molecule#set_hidden_atoms, Molecule#charge, Kernel#lookup_menu -- Bond, angle などのテーブルから分子力学パラメータを編集するとき、Universal Force Field (UFF) で力の定数を見積もる機能をつけた。 -- 分子力学パラメータを原子のインデックスで指定できるようにした(実はもともとあった機能だが、分子を編集してもパラメータが維持されるようになった)。 -- その他バグ修正(ChangeLog を参照) - -- Document for the LAMatrix class was written. -- Document for the collaboration with other quantum chemistry softwares was written. -- Mbsf files now retain sigmas for the crystallographic parameters (imported from CIF). -- New Ruby commands: Molecule#fit_coordinates, Molecule#amend_by_symmetry, Molecule#set(get)_view_center, Molecule#hidden_atoms, Molecule#set_hidden_atoms, Molecule#charge, Kernel#lookup_menu -- When the MM parameters are edited from the bond/angle table, the force constant can be guessed by Universal Force Field (UFF). -- The MM parameters can now be specified by explicit atom indices. -- Other bug fixes (see the change log). - -ChangeLog -- Features of Molecule#cell and Molecule#box are modified so that the handling of the sigma values of the cell parameters looks more consistent. -- Mbsf format now retains anisotropic parameters and sigma (for crystallographic data) -- Crash during creating bonds when ellipsoid display is on is fixed. -- Ruby: Molecule#fit_coordinates is implemented. -- LAMatrix#new, #zero, #submatrix now accept arguments in 'column,row' order. -- MM forces are updated after 'run(0)' -- Load/save mbsf files were broken when atom type variants were used for atom types with 3 or 4 characters. Fixed. -- The order of parameters in cmd_edit_local_parameter_in_mainview dialog was inconsistent. Fixed. Also fixed Ruby exception in UFF guess dialog. -- Molecule#transform, rotate, invert, etc. are now aware of symmetry related atoms. That is, the symmetry operation is updated so that the atoms are also symmetry related after transformation. -- Ruby: AtomRef#symop can now be set from script. -- Ruby: Molecule#amend_by_symmetry is implemented. -- Ruby: Molecule#set(get)_view_translation is now obsolete and replaced by set(get)_view_center. -- The order of the anisotropic thermal parameters is changed to 'b11, b22, b33, b12, b13, b23'. Inconsistency in some of the codes is fixed. TODO: when symmetry expansion is done, the anisotropic thermal parameters should be correctly converted. -- Ruby: Molecule#hidden_atoms and Molecule#set_hidden_atoms are implemented. -- The order of columns for MD parameters in the bond/angle/dihedral tables are changed, so that the columns appear in the same order as in the parameter table. -- UFF parameter guess is implemented. -- Molecule#neutralize was not working correctly. Fixed, and Molecule#charge was implemented. -- The load/unload global parameters dialog is sometimes out of the screen. Fixed. -- Windows version does not display last build date in the about dialog. Fixed. -- Parameters now can be specified by using both explicit indices and atom types, like '7-ca-8'. -- Parameter editing is improved. -- Restructure MolAction.c. -- Atom range specification for the vdw cutoff parameter is now made obsolete. -- Vector3D[] and Transform[] are modified to accept an LAMatrix argument. The document is written for LAMatrix. -- Load Script Menu caused crash when no window is open. Fixed. -- Ruby: Kernel#lookup_menu is implemented. -- Document is written for LAMatrix. -- LAMatrix#multiply was not working correctly when on-the-fly size conversion was required. Fixed. -- Execute Script command was broken. Fixed. -- CIF import may fail when _geom_bond_site_symmetry_1 field is missing. Fixed. -- Document was written for the collaboration with other quantum chemistry softwares. -- .log and .out are both accepted as the extension of the Gaussian and GAMESS log files. -- update_version.rb is improved. - -2012.10.13. - -Version 0.6.4 - -リリースノート -- bond/angle/dihedral/improper の属性テーブルを開くと、分子力学パラメータを検索するようにした(ただし、結合情報から angle/dihedral テーブルの再構成はやらない。これは MM/MD ウィンドウを開いたときに起きる) -- 属性テーブルに単位格子を表示できるようにした。 -- "Show Graphite" コマンドが間違った C-C 結合距離を使っていたので修正。正しくは 1.42Å。 -- 最適平面計算を実装(Script メニューの Best-fit Plane) -- リビジョン番号を About ダイアログに表示するようにした。 -- 単位格子の最適化機能を実装(まだ実験的) -- 原子当たりの結合数の上限 (12) を撤廃した。 -- Ruby: Dialog#filter_kit を実装。使い方がドキュメントの付録に書かれている。 -- Ruby: LAMatrix#svd (singular value decomposition) を実装。 -- Ruby: bond_par, angle_par, dihedral_par, improper_par, vdw_par メソッドを Molecule から MDArena に移した。 -- その他多くのバグ修正(ChangeLog 参照) - -Release Note -- Opening bond/angle/dihedral/improper table now triggers searching MD parameters (but not rebuilding angle/dihedral/improper tables). -- Property table can now list the unit cell parameters. -- "Show Graphite" command was using _very_ wrong C-C bond length. Now it uses correct length (1.42 angstrom). -- Best-fit plane calculations are implemented. -- The revision number is displayed in the about dialog. -- Cell parameter minimization is implemented (still experimental). -- The restriction on the number of bonds (12) is removed. -- Ruby: Dialog#filter_kit is implemented. The how-to is described in the document (appendix). -- Ruby: LAMatrix#svd (singular value decomposition) was implemented. -- Ruby: The methods bond_par, angle_par, dihedral_par, improper_par, vdw_par are moved from Molecule to MDArena. -- Bug fixes (see the ChangeLog) - -ChangeLog -- Ruby: Dialog#filter_kit is implemented. -- Crash when loading a new molecule was fixed. -- ORTEP export did not generate the same orientation as in the screen. Fixed. -- Ruby: Molecule#bond_par, angle_par, dihedral_par, improper_par, vdw_par are made obsolete, and instead MDArena#bond_par, angle_par, dihedral_par, improper_par, vdw_par are implemented. These methods returns the 'cached' parameters in the MDArena. The ParameterRef record for these parameters have a negative index, which represents the parameter belongs to the MDArena instead of the molecule. -- Opening bond/angle/dihedral/improper table now triggers search of MD parameters (but not rebuilding angle/dihedral/improper tables from bond information) -- Handling of view-related attributes of Molecule is improved (specifically, methods like Molecule#show_periodic_image= now work). -- Best-fit plane dialog is not working in Windows; fixed. -- Some fields in md_arena were not properly copied when a molecule is duplicated. Fixed. -- 'Show Graphite' command was using wrong C-C bond length. Fixed. -- Some unused fields of Molecule were removed. -- LAMatrix#svd (singular value decomposition) was implemented. -- Ruby: create_graphic was not working correctly when :ellipsoid is given with a single radius. -- Loading multiple-frame mbsf sometimes fails to load the cell parameter for the last frame. Fixed. -- Property table can now list the unit cell parameters. -- Documents for Dialog#show, Dialog#hide are written. (These were somehow missing) -- Cell minimization was not working correctly when no symmetry operations are defined. Fixed. -- MDArena#prepare was not working correctly when unit cell is added/created after initialization of MDArena. Fixed. -- Handling of selection from Ruby script was partially broken. Fixed. -- Best fit plane dialog was behaving strangely Fixed. -- Handling of Molecule object was not consistent. Hopefully fixed... -- Export ORTEP (improved) and best-fit plane calculations are implemented in Scripts/crystal.rb. -- The revision number is displayed in the about dialog (and is used for labeling clipboard contents) -- Copy/paste of molecules was broken when it had atoms with more than ATOMS_CONNECTS_LIMIT bonds. Fixed. -- Documents for some missing Ruby methods are written. -- Cell minimization is improved (hopefully...) -- Remove printf() for debugging cell minimization -- Implemented minimization of cell parameters. Looks like working... -- Handling of flexible cells were still inconsistent. -- Molecule#cell_flexibility and set_cell_flexibility are implemented, and enable/disable_cell_flexibility are removed. -- Figures for the Ruby tutorial are added to the repository. -- Handling of periodic box during MD is being reworked. -- Ruby: Molecule#box= was not working as expected. Fixed. -- Memory leak bugs are examined and removed. -- amend_by_symmetry in MD was still broken. Hopefully fixed. -- Tutorial for the Ruby interpreter was (finally) written. -- amend_by_symmetry during MD run was causing crash. Fixed. -- Graphite potential calculation is further modified (hope this is complete now!) -- When no molecule is open, Ruby scripts are evaluated in the context of 'main' (the toplevel object) -- Graphite potential calculation is improved. -- The current working directory is set to the document home on startup. -- The anisotropic parameters for the symmetry expanded atoms are now correctly handled. -- Pressure control and surface potential are removed from the GUI; they are not well tested and should be used with great care. -- The load commands can now include error messages in Ruby exception. -- MD minimize was not working properly (especially for the second run with the same molecule). Fixed. -- Symmetry expansion in CIF import is improved. (May not be complete yet) -- Molecule#expand_by_symmetry now returns an array of atom indices instead of IntGroup. -- Molecule#symop_for_transform and transform_for_symop are implemented. The symmetry expansion of CIF import is being reworked, but still incomplete. -- Molecule#is_atom_hidden and AtomRef#hidden, hidden= are implemented, and Molecule#hidden_atoms and hidden_atoms= are made obsolete. -- Molecule#set/get_view_rotation: the sign of the angle is made opposite (left-hand screw in respect to the axis), so that it is consistent with Transform#rotation. This is opposite to the convention of the OpenGL rotator. -- The restriction on the number of bonds (12) is removed (modified so heavily, that it is likely that there is still some bugs left...) -- Include periodicity flags in the 'define unit cell' dialog -- Problem on guessing UFF angle parameter was fixed. -- Fixed a very stupid bug in drawing unit cell. -- Handling of frame-specific cell parameters was very inconsistent. Hopefully fixed, but may be still incomplete. -- Graphite potential in MM/MD gets recalculated much less frequently now. -- Building verlet list was reworked to implement complete search of the periodic lattice points. Still in progress. -- Symmetry operations from the CIF file were not read correctly for hexagonal system. Fixed. -- Mac (only 10.6?): when the graphite display is on, the lighting of the molecule model looks strange. Fixed. - -2012.6.15. - Version 0.6.5 を公開したのだが、GAMESS の構造最適化中のコンソールメッセージが変。同じ NSERCH に対応する行が複数表示されてしまう。要修正。 - 理想的には、GAMESS も MM/MD と同じように実行中はいったん Molby に制御を戻して、表示を自由に変更できるようにするのがよい(編集は禁止)。さらに、複数の分子についてそれぞれ計算を走らせることも可能にできればなおよい。これはかなりの大改造が必要。 - -2013.11. -・wxWidgets 3.0.0 への移行 - -1. wxWidgets ビルド -../configure --with-macosx-sdk=/Developer/SDKs/MacOSX10.5.sdk --with-macosx-version-min=10.5 --enable-universal_binary=ppc,i386 --disable-shared --with-opengl --enable-monolithic - -2. fftw ビルド - README 記載と同じ。ただし、ディレクトリ名を "osx-build-3" とする。 -$ cd $MOLBY/../fftw-3.3.2 -$ ./configure --prefix=$PWD/osx-build --disable-fortran CFLAGS="-isysroot /Developer/SDKs/MacOSX10.4u.sdk -mmacosx-version-min=10.4 -arch i386 -O2" CC="gcc-4.0" CXX="g++-4.0" CPP="gcc-4.0 -E" CXXCPP="g++-4.0 -E" -$ make && make install # sudo is not necessary -$ ./configure --prefix=$PWD/osx-ppc-build --disable-fortran CFLAGS="-isysroot /Developer/SDKs/MacOSX10.4u.sdk -mmacosx-version-min=10.4 -arch ppc -O2" CC="gcc-4.0" CXX="g++-4.0" CPP="gcc-4.0 -E" CXXCPP="g++-4.0 -E" -$ make && make install # sudo is not necessary -$ cd osx-build/lib -$ mv libfftw3.a libfftw3.i386.a -$ lipo -create libfftw3.i386.a ../../osx-ppc-build/lib/libfftw3.a -output libfftw3.a -$ ranlib libfftw3.a - -3. Ruby ビルド - ruby-1.8.7-p160 を $MOLBY/.. にコピーする。osx-build-3 内にビルドする。 -$ cd $MOLBY/../ruby-1.8.7-p160 -$ CFLAGS='-isysroot /Developer/SDKs/MacOSX10.5.sdk -mmacosx-version-min=10.5 -arch i386 -arch ppc -O2' ./configure --prefix=$PWD/osx-build-3 --disable-shared -$ make && make install -$ mkdir osx-build-3/include -$ cp *.h osx-build-3/include - ビルドが終わったら make clean しておく。(osx-build-3 内のファイルは残る) - -※ ruby-2.0.0 の場合 -$ CFLAGS='-isysroot /Developer/SDKs/MacOSX10.5.sdk -mmacosx-version-min=10.5 -O2' ./configure --prefix=$PWD/osx-build --with-arch=i386,ppc --disable-shared --with-ext=date --disable-install-rdoc - -4. Xcode 設定 -ヘッダ検索パス -$(PROJECT_DIR)/../../fftw-3.3.2/osx-build-3/include $(PROJECT_DIR)/../../wxWidgets-3.0.0/include $(PROJECT_DIR)/../../wxWidgets-3.0.0/osx-build/lib/wx/include/osx_cocoa-unicode-static-3.0 $(PROJECT_DIR)/../../ruby-1.8.7-p160 - -ライブラリ検索パス -$(PROJECT_DIR)/../../fftw-3.3.2/osx-build-3/lib $(PROJECT_DIR)/../../wxWidgets-3.0.0/osx-build/lib $(PROJECT_DIR)/../../ruby-1.8.7-p160/osx-build-3/lib - -その他のCフラグ (C++フラグも同じものになる) --D_FILE_OFFSET_BITS=64 -D__WXMAC__ -D__WXOSX__ -D__WXOSX_COCOA__ -(デバッグビルドはこれに加えて -DDEBUG=1) - -リンカフラグ (-framework ... は Xcode プロジェクトで設定。その他のものをターゲットオプションで設定する) --L$(PROJECT_DIR)/../../wxWidgets-3.0.0/osx-build/lib -framework IOKit -framework Carbon -framework Cocoa -framework AudioToolbox -framework System -framework OpenGL -framework QuickTime $(PROJECT_DIR)/../../wxWidgets-3.0.0/osx-build/lib/libwx_osx_cocoau-3.0.a -framework WebKit -lwxregexu-3.0 -lwxtiff-3.0 -lwxjpeg-3.0 -lwxpng-3.0 -lz -lpthread -liconv -ターゲットオプションとして設定するもの: -lfftw3 -lwx_osx_cocoau-3.0 -lwx_osx_cocoau_gl-3.0 -lwxregexu-3.0 -lwxtiff-3.0 -lwxjpeg-3.0 -lwxpng-3.0 -lz -lpthread -liconv -lruby-static - -大量に警告が出る。 -deprecated conversion from string constant to 'char*' -→ ターゲットオプションで、「文字列を読み込み専用にする」フラグを外す。 -XXXX has different visibility (default) in ..../yyyy.o and (hidden) in ..../zzzz.o -→ ターゲットオプションで、「インラインメソッドを隠す (Inline Methods Hidden)」フラグを外す。 - - -2013.11.23. -Windows7/MSYS/TDM-GCC-32-471 でビルドしてみる。 - -CLAPACK -$(MOLBY)/.. に clapack3.1.1.1.tgz を展開し、CLAPACK-3.1.1.1-mingw とリネーム。 -patch -p0 <$(MOLBY)/clapack-3.1.1.1-mingw.patch -cd CLAPACK-3.1.1.1-mingw -make -# 最初 uninit.c でエラーが出ていたのだが、CLAPACK-3.1.1.1-mingw を作り直してビルドしたらあっさり通った。何だったんだ? -# その後やっぱりエラーが出ることが判明。GCC の float.h に修正が必要。 -c:/TDM-GCC-32-471/lib/gcc/mingw32/4.7.1/include/float.h の最後の #endif の直前に #include_next を加える。 - - -make blas_testing -いろいろエラーが出ているが、結果を目視すると深刻ではなさそう(最後の桁で1違うとかそのレベル)。 -make lapack_testing -これもいろいろエラーが出る。 -$ cd TESTING; grep fail *.out -csep.out: CST drivers: 1 out of 11664 tests failed to pass the threshold -csep.out: CST: 1 out of 4662 tests failed to pass the threshold -dgd.out: DXV drivers: 200 out of 5000 tests failed to pass the threshold -dsep.out: DST drivers: 1 out of 14256 tests failed to pass the threshold -sgd.out: SXV drivers: 37 out of 5000 tests failed to pass the threshold -ssep.out: SST: 1 out of 4662 tests failed to pass the threshold -ssvd.out: SBD: 1 out of 5510 tests failed to pass the threshold -zgd.out: ZXV drivers: 24 out of 5000 tests failed to pass the threshold - しかし、https://icl.cs.utk.edu/lapack-forum/viewtopic.php?t=167 によると、これらは深刻ではないらしい… - - libf2c から main.o を除き、CLAPACK-3.1.1.1-mingw/lib にライブラリをコピー(名前が lib... になるように変更) -$ cd F2CLIBS -$ cp libf2c.a libf2c_nomain.a -$ ar d libf2c_nomain.a main.o -$ cd .. -$ mkdir lib -$ cp blasMinGW.a lib/libblasMinGW.a -$ cp lapackMinGW.a lib/liblapackMinGW.a -$ cp tmglibMinGW.a lib/libtmgMinGW.a -$ cp F2CLIBS/libf2c_nomain.a lib - -Ruby -$ cd $(MOLBY)/../ruby-1.8.7-p160 -$ ./configure --prefix="z:/wxMySamples/ruby-1.8.7-p160/msw-build-3" --disable-shared -$ make && make install -ruby.exe をビルドするときに -mno-cygwin が認識されないオプションであるとしてエラーになるので、GNUmakefile 10行目の DLLWRAP += -mno-cygwin をコメントアウトした。 -make install で、$PWD=/z/.../ だと /z を mkdir しようとして permission denied でエラーになる。Ruby では File.exist?("/z") が false になってしまうため (File.exist?("z:") なら OK)。これは仕様なので、--prefix="z:/..." とドライブネーム形式のフルパスにしないといけないみたい。 -MinGW の make 遅すぎ。クロスコンパイル環境作ろうかな… → やってみたけど、あちこち不具合がでる。自分の技術力ではまだ無理だな。 -一応 mingw32 上でビルドできた。 -ヘッダファイルのコピー -$ mkdir msw-build-3/include -$ cp *.h msw-build-3/include -$ mkdir msw-build-3/include/win32 -$ cp win32/*.h msw-build-3/include/win32 - -FFTW -$ cd $MOLBY/../fftw-3.3.2 -$ ./configure --prefix=$PWD/msw-build-3 --disable-fortran CFLAGS="-O2" -$ make && make install # sudo is not necessary - make で ".libs/****.la が作成できない" というエラーで頻繁に止まったが、これは、前の (OSX 上での) ビルドでシンボリックリンクが残っていたためらしい。non-unix システムだからしょうがないね。ちゃんと OSX 上で make clean しとかないといけない。 -??? なんか結局失敗した。よくわからん? -(2013.11.26.)再挑戦。 -gcc -std=gnu99 -O2 -o bench.exe bench-bench.o bench-hool.o bench-fftw-bench.o ../.libs/libfftw3.a ../libbench2/libbench2.a で undefined reference to 'fftw_version', undefined reference to 'fftw_cc', undefined reference to 'fftw_codelet_optim' など大量にエラーが出る。なんじゃこれ? -その前に、Making all in . の中で libtool: link: (cd .libs/libfftw3.lax/libkernel.a && ar x "/z/wxMySamples/fftw-3.3.2/kernel/.libs/libkernel.a") の後に「ファイルが見つかりません - *.o」というエラーが出ている。これもよくわからない。 - ログをとりながら make: $ make 2>&1 | tee make.log (tee は MSYS に入っている。) - わかりました。MSYS に find が入ってないから、Windows の find.exe が実行されていたんだ。日本語のエラーメッセージが出るからおかしいと思った。./libtool スクリプトを調べて判明した。 - -In func_extract_archives(): - 4249 *) - 4250 func_extract_an_archive "$my_xdir" "$my_xabs" ← ここまではちゃんと通る - 4251 ;; - 4252 esac - 4253 my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP` ← この find が失敗する - 4254 done - -http://sourceforge.net/projects/mingw/files/MSYS/Base/findutils から findutils-4.4.2-2-msys-1.0.13-bin.tar.lzma を取得。展開して、bin 中の3つのファイルを /bin に移動する。 - -wxWidgets-3.0.0 -$ cd $MOLBY/../wxWidgets-3.0.0 -$ mkdir msw-build-3 -$ cd msw-build-3 -$ ../configure --with-msw --with-opengl --disable-shared --with-libjpeg=builtin --with-zlib=builtin --enable-monolithic && make 2>&1 | tee make.log - -Makefile 中で wx-config を呼び出しているところは書き換えた。(クロスコンパイルへの準備) - -一応ビルドはできるようになった模様。 - -2013.12.09. - いくつか仕様変更?があった部分を修正。ただし、MDIからマルチウィンドウ方式に最近変更したので、それが原因の変更もあると思う。 -・Document に属さないウィンドウが最前面の時、wxDocManager::GetCurrentView() は「最前面のドキュメント」を返してくれない。このため、View::Activate をオーバーライドして、現在開いている View の表示順を明示的に保持するようにした。 -・RubyDialogFrame は wxDIALOG_NO_PARENT を立てて、親なしのダイアログとして開くことにした。wxWidgets のドキュメントによれば、モーダルダイアログでは問題が起きることがあるようだが、今のところ特に不具合は見つかっていない。(ただ、モーダルダイアログが開いている最中にタスクバーからダイアログ以外のウィンドウを選ぶことができてしまう。この場合、ウィンドウは一見アクティブになっているが入力を受け付けない。この不具合はどう回避するかまだ不明。) -・OSX で wxToggleButton を作っても丸いボタンになってしまう。style に wxBORDER_SIMPLE を指定するとちゃんと四角いボタンになることを発見。→ wxMSW で見栄えがよろしくない。#ifdef で場合分けする。 - -2014.3.28. - ついに "1.0 beta" として公開することにした。長かった… - -今回からベータ版とします。 -グラフィックツールキットを wxWidgets 2.8 から wxWidgets 3.0 に変更。 -Windows: MDI インターフェイスを廃止し、マルチウィンドウにした。 -内蔵 Ruby を 1.8.7 から 2.0.0 に変更。 -C60 フラーレン、ねじれ舟型シクロヘキサン、金属の配位構造などを predefined structure として追加。 -Antechamber が原子タイプと電荷について別々に実行できるようにした。 -UFF パラメータを内蔵。 -Ruby ダイアログでグラフィック描画ができるようになった(ドキュメントはまだない) -メニューを整理。特に "Xtal" メニューを新設した。 -ORTEP3 を内蔵。グラフィックインターフェイスも作成した。 -メインウィンドウの印刷・エキスポートを実装。 -スペースフィリング表示を実装。 -その他バグ修正多数。 - -First beta release. -The graphic toolkit is changed from wxWidgets 2.8 to wxWidgets 3.0. -Windows: the application no longer uses MDI interface, but uses multi-window interface. -Embedded Ruby is now 2.0.0 instead of 1.8.7. -C60 fullerene, twist-boat cyclohexane, metal coordination motifs are introduced as the predefined structure. -Antechamber can be called for charge and atom types separately. -UFF parameters are included. -Graphic drawing is implemented in Ruby Dialog (not documented yet). -Main menu is rearranged (in particular, there is now a "Xtal" menu) -ORTEP3 is included, and graphic user interface for drawing ORTEP is provided. -Printing and exporting the main window is now supported. -Space-filling view is implemented. -Many bug fixes. - -2014.4.25. - 相変わらず wxProcess 回りが不安定。Mac 版で、たまに wxProcess の終了を検知できないことがある。OnEndProcess() で m_process を delete するのをやめる。wxSafeYield コールの場所を変える。while (m_process != NULL && (m_process->IsInputAvailable())) ループの最後に "else break" を入れる。改善されたようだが、どんなものか? - Mac 版で Window メニューがないのが気になっていた。menu.mm に手を入れて解決。-[NSApplication setWindowsMenu:] を使うのだが、ちょっと癖がある。同じメニューに対して2回このメソッドを呼ぶと、ウィンドウリストが二重に表示されてしまう。一度読んだら2回目は呼ばないように、覚えておかないといけない。 - Windows Vista 以降、ドキュメントホームが %USERPROFILE%\Documents (My Documents でなく) に変わったのを知らなかった。"My Documents" の部分のハードコーディングしていたので、Windows API を使うように変更。 - -2014.4.26. - Version 1.0b2 - -すべての外部プログラム (antechamber, resp, gamess, ortep) に対して共通のワーキングディレクトリを使用するようにした。(既定値はホームディレクトリ中の Molby)ワーキングディレクトリのパスは空白を含んでいてはいけない。 -MM/MD パラメータの読み込みの際に、同一パラメータの読み込み判定で丸め誤差を考慮するようにした。 -Symmetry Operation ダイアログで、新しい対称操作の追加ができなかったのを修正。 -GAMESS ダイアログで入力ファイルを編集できるようにした。 -Mac: "Window" メニューを実装した。 -Win: DLL がなくてクラッシュする問題を修正。 -Win: ドキュメントディレクトリを "My Documents" に決め打ちしていたのを修正。 -Win: "backquote" コマンドがうまく動いていなかったのを修正。 -Win: 二重に起動するとクラッシュしていた問題を修正。 - -Common "Scratch" directory is used for all external programs, namely antechamber, resp, gamess and ortep. Note: the scratch directory cannot contain whitespace characters. -In reading MM/MD parameters, check criteria for duplicate parameters are somewhat relaxed (i.e. comparison of floating numbers is allowed for rounding errors) -Symmetry Operations dialog was not working for setting new symmetry. Fixed. -GAMESS dialog is modified so that manual editing is possible. -Mac: 'Window' menu is implemented. -Win: crash caused by the 'missing DLL' problems was fixed. -Win: document_home is modified to use the Windows API, instead of hard-coded path (which was wrong on Windows Vista and later). -Win: "backquote" method was not working well. -Win: when the program is started twice, the second invocation was causing crash. Hopefully fixed. - -2019.8.17. - Version 1.0。「ベータ」を外して正式版とする。 - -"About" ダイアログの表示を改良。 -ダブルクリックで構造式を入力する時、直前の入力を覚えておくようにした。 -構造式で NO2, SO(スルホニル基), SO3H を認識するようにした。 -Create GAMESS にオプションを追加。 -等高面の表示がおかしかったので修正。 -Create MO Surface: デフォルトの不透明度を 0.8 から 0.6 に変更。 -電子密度が非常に小さい (1e-100未満) 時に create cube が失敗していたので修正。 -Show MO Surface ダイアログに create cube ボタンを追加。 -複数構造を持つ CIF ファイルが開けるようにした(複数のドキュメントが開く) -[Mac版] -PowerPC と 32 bit Intel はサポートしない。64 bit Intel のみ。動作要件は 10.6 以上とする。 -アプリケーションアイコンに log ファイルをドラッグ&ドロップしたときの不安定さを改善。 -スタートアップ時に、前回のファイルを読み込もうとしてクラッシュしていたのを修正。 -修正済みのドキュメントファイルをクローズボックスで閉じる時にクラッシュしていたのを修正。 -[Windows版] -インストーラで 32bit/64bit の両方がインストールできるようにした(OS の仕様に合わせる)。zip アーカイブは 32bit と 64bit を別に用意する。 -Ruby ダイアログでテキストフィールドを使った時にエラーが出ていたのを修正。 -[組み込みRuby] -モーダルダイアログがときどきクラッシュしていたのを修正。 -from_dump が機能していなかったので修正。 -エラーダイアログ表示中はタイマー割り込みを止めるようにした。 -create_graphic を :poly で使用した時の法線ベクトルの取り扱いを改善。 -ドキュメントを整備。 -export_graphic コマンドで画像の横・縦サイズを指定できるようにした。 -cubegen で mo=0 を可能にした。これは「任意のベクトル」を意味する。 - -About dialog is improved. -On double-clicking and entering formula, the last input string is remembered and shown as the default input -NO2, SO (sulfonyl) and SO3H (sulfonic acid) are now recognized as known fragments. -More options in Create GAMESS dialog. -Handling of the surface normals was incomplete. Fixed. -Create MO Surface: default opacity is set to 0.8 instead of 0.6. -Creating cube file was failing when very small electron density (<1e-100) appeared. Fixed. -Show MO surface dialog now has 'Create Cube' button. -A CIF file with multiple structures now can be processed (multiple documents are opened in this case) -[Mac] -PowerPC and 32-bit intel are no longer supported. The binary is 64-bit Intel only. Minimum requirement is now 10.6. -Fix unstable behavior on drag-and-dropping a log file on the application icon. -On startup, re-opening the last opened documents was causing crash. Fixed. -Fixed crash on closing a modified window with a close box. -[Windows] -The installer now can install 64bit or 32bit version according to the OS architecture. -Fix assertion failure on using text field in Ruby dialog. -[Embedded Ruby] -Modal dialog caused crash sometimes on activation. Fixed (hopefully) -from_dump was not working because String#each is no longer implemented. Fixed. -Stop timer before showing error dialog -In create_graphic with :poly argument, handling of the normal vectors is improved. -Document for the Ruby extension is updated. -export_graphic now allows specification of the width and height of the captured image. -cubegen now accepts mo=0, which means 'arbitrary vector'