アンテナや光導波路の挙動をシミュレーションするための電磁場計算として、FDTD(finite-difference time-domain)という手法があります。
市販のソフトを買うと十万円以上はするらしいのですが、Unix上で動作するMeepというソフトは無償で配布されています。 Cygwin環境でこのソフトを動作させる事に成功したので、覚え書きを兼ねてここに書いておく事にします。色々と細かい設定などがあり、動作するところまでこぎ着けるのにかなり苦労しました。 (1) Cygwinのインストール まず、こちらのページからCygwinのインストーラ (setup.exe) をダウンロードします。この中にCygwin本体は含まれていません。 Internet Explorerを使った場合setup.exeを保存せずそのまま実行する事も出来ますが、たぶん繰り返し事項する事になるのでご自分のPCに保存しておいた方がよいでしょう。 インストールの詳細については、他のページに詳しく載ってますので(例えばこちら)ここでは省略します。 注意点 ・ "Select Root Install Directory"の画面で、右下にある"Default Text File Type"はUnixを選択する。Dosを選ぶと、後でコンパイルする際エラーが起きます。 ・ ダウンロードサイトはレスポンスの早いところを選択しましょう。.jpで終わる国内のサーバを選ぶのが無難です。 ・ インストールするパッケージとして、Devel, Editors, Libs, Math, Mingwは必ず選択します。(その他も含めて全部のパッケージを選択してもかまいませんが、ダウンロードの時間とディスク容量が必要になります。) ・ Guileというソフトが含まれますが、最新の1.8.1-6では後でlibctlをインストールする際に失敗しました。右上にある[View]と書かれたボタンを押してその右の表示をFullに切り替えます。(このボタンを押すごとに表示が切り替わり、何回目かで元に戻ります。)Package列がアルファベット順に並んでますから、guileで始まるものを探し(3つあります)New列の回転矢印記号を何回か押して、これらのバージョンを1.6.7-4に切り替えます。guile-develについてはSrc?列にもチェックを入れソースファイルもインストールします。 ・ 同じ要領で、Shellsパッケージ中のtcshとrxvtもインストールしておくと便利です。(以後、インストールされているとして説明を続けます。) (2) 環境設定 こうしてインストールした状態でCygwinを起動すると、コンソールウインドウが現れます。(終了するには、このウインドウ内で"exit"とコマンドを入力するか、ウインドウ自体を閉じる。)このウインドウはマウスのスクロールボタンや、マウス操作による文字列の選択が無効なので、若干不便です。 そこで、メモ帳などを使って次の様な内容のバッチファイルを作り、C:\cygwin\cygwin-tcsh.batという名前で保存します。 @echo off C:\cygwin\bin\rxvt.exe -fg white -bg black -fn msgothic-12 -fm msgothic-12 -e tcsh -l "C:\cygwin"の部分は、Cygwinをインストールしたドライブやフォルダに応じて変えて下さい。 このバッチファイルのショートカットを作製し、使いやすいところ(デスクトップなど)に移動させます。 ここから先、Cygwinを起動してUnix環境での作業になります。 先ほど作製したショートカットから、Cygwinを起動します。 環境変数を設定するため、テキストエディタを起動して設定ファイル".tcshrc"を作製します。ここでは、nanoというエディタを使います。 Cygwinコンソール内で次の様に入力して下さい。 >nano .tcshrc すると、コンソール内がテキストエディタ画面に切り替わります。 そこに、次の様に入力して下さい。 setenv LD_LIBRARY_PATH "/usr/local/lib" setenv LDFLAGS "-L/usr/local/lib" setenv CPPFLAGS "-I/usr/local/include" setenv F9X "/usr/local/bin/g95" 正しく入力出来たら、キーボードのCtrlキーを押しながらOを押します。(画面下部に書かれている ^O WriteOut の操作です。その後でCtrlとX (^X)を押すとnanoが終了します。 Unixのコンソールに戻るので、 > ls -a と入力してみて下さい。表示されたファイル一覧の中に".tcshrc"がある事を確認して下さい。 ここで一旦Cygwinを終了します。 再びショートカットからCygwinを起動し、コンソール内で次のコマンドを入力して下さい。 >setenv 環境変数が沢山表示されますが、その中に先ほど入力した内容が含まれている事を確認して下さい。 以上で、環境設定は終了です。何故この様な設定が必要か、詳細はMeep Installationのページに書かれています。 また、Unixの基本的なコマンドについては他のページ(例えばここ)を参考にして下さい。 (3) コンパイラのコピー これはMeepのコンパイル時に発生するエラーを回避するための手続きです。なお、2007年7月に次のバージョンのソフト使用環境であった事にご留意下さい。 Cygwin.dll-1.5.24-2 hdf5-1.8.0-beta2 szip-2.0 libctl-3.0.2 zlib-1.2.1 harminv-1.3.1 meep-0.10 先ず、Windowsのエクスプローラなどで、 c:\cygwin\usr\lib\gcc\i686-pc-cygwin\3.4.4 というフォルダが存在するか調べて下さい。たぶん、gcc 以下のフォルダは無いと思います。 代わりに c:\cygwin\lib\gcc\i686-pc-cygwin\3.4.4 があるはずです。(例によって、c:\cygwinの部分はCygwinをインストールしたフォルダに変えて下さい。) この場合、エクスプローラなど用いて c:\cygwin\lib\gcc をフォルダごと c:\cygwin\usr へコピーして下さい。 次に、Cygwinを起動し、ディレクトリを移動します。 >cd /usr/lib/gcc/i686-pc-cygwin/3.4.4 そこに"libg2c.la"というファイルがあるはずです。このファイルを編集します。 >nano libg2c.la 最終行に libdir='/usr/lib/gcc/i686-pc-cygwin' とありますが、これを libdir='/usr/lib/gcc/i686-pc-cygwin/3.4.4' に修正します。 nanoを用いたのであれば^Oで内容を書き出し、終了します。 最後に、今修正した"libg2c.la"を上のディレクトリにもコピーします。 >cp libg2c.la ../ CygwinかMeepの相性の問題で、上記の処理をしないとコンパイルの途中でエラーになります。 人気blogランキングへ 続く
by tosakam
| 2007-07-20 16:32
| 解析
|
ファン申請 |
||