<目次>
実用に近い使用方法を体験しシミュレーションの結果の意味するところを考えてみるということに実習の主眼をおきます.
プログラムの中身は解説しません.動かしてみて,結果をレポートにまとめることを課題とします.
課題の内容は,指導書を見てください.このページではそれを行うための,具体的な方法を,順を追って説明します.
前置き Wikipediaで「強誘電体」http://ja.wikipedia.org/wiki/%E5%BC%B7%E8%AA%98%E9%9B%BB%E4%BD%93
[前置き]
各自が所有するパソコンに必要なソフトウェアをインストールし、それで実習することを強く薦めます。自分のパソコンにインストールできた人は、実習時に持ってきてください。そうでない人は、情報処理教室の端末を利用します。
どのソフトも多機能でファイルサイズも大きいです。したがって、時間に余裕があるときに良いネットワーク環境でダウンロードするようにしてください。大学にパソコンを持ってきて、学内のネットワークにつないで、作業することを薦めます。
JavaはCと並んで研究、開発現場でよく用いられている言語ですし、オブジェクト指向言語の典型として、学習用にも用いられています。(EEでは、授業で用いられることは今のところありませんが。)
eclipseは、開発環境という意味でVisual Studio(プログラミングI,II,IIIで使用)と似ていますし、Scilabは、プログラミングIIIで利用する予定です。
そのような意味で、これらをインストールしておくことは、将来の学習にも意義があると思います。
Java言語のコンパイルと実行にはJava Development Kit (通称JDK)が必要です。JDKはOracleのページからダウンロードインストールできます。
Web上にたくさんの情報があります。
http://www.javadrive.jp/install/jdk/index1.html
などを参考に、JDKの最新版をインストールしましょう。なお、下のpleiadesのフルバージョンをインストールすれば、それだけでもOKです。(むしろ、これを推奨すべきかも。)
プログラム作成・コンパイル・実行・デバグを統合的に行うためのソフトは「開発環境」と呼ばれます。Javaの開発環境としては、eclipseが有名です。(eclipseは、プラグインを追加することにより、様々な言語での開発に使えます。)
ここでは、日本語化eclipseパッケージとして有名なpleiadesを使いましょう。
http://mergedoc.sourceforge.jp/index.html#/pleiades.html
から、最新版のJava Full Editionをインストールしましょう。(Full Editionには、javaのコンパイル、実行環境も入っています。)
Matlabに似た数値処理研究環境 Scilab を利用してみます。Scilabのページ
よりインストールしましょう。
情報処理教室の端末には上記のソフトはすべてWindows上にインストールされていますので,それを使います.
プログラムを作成するのに便利な様々なツールを備え,デバッグ,実行もできるGUIを「開発環境」と呼び,その代表格がeclipseです.
この節では,開発環境eclipseを立ち上げて準備(新規の「プロジェクト」作成)を行い,本研究室で作成したプログラムソースをプロジェクトに追加する作業を説明します.
1. eclipseを立ち上げ、eeIntroPracをプロジェクトに登録します。
ソースファイル名をダブルクリックするとソースが編集画面に現れます.
シミュレーションプログラムは3つのファイルから成り立っています。
clockModelGr.javaを読み込んで、メニューの「実行」→「実行」を選択すると、実行されます。起動すると、次のような画面になります。ボタンを押したり、係数(条件)を変えたりして時間変化を眺めてみてください。
「開始」ボタンを押すと、四角のウィンドウに分極配向パターンの時間変化が現れます。
パターンの描画と共に、eclipseの下の方のフレームに、時間(ステップ数)と渦中心の数が出力されます。
条件によりパターンの変化がどのように違うかをレポート(高度な仕事ししては学術論文)にまとめるには、文章に図を貼り付けたり、数値データ(今の場合は渦点の数の時間変化)をグラフにする必要があります。その体験をしてみましょう。
開始する前に、「パターンの定期保存」にチェックを入れておくと、分極のパターンが500ステップごとにファイルに書き出されます。
下の図は、1つだけ書きだしたところです。フォルダの中には
Explorerで開いたところ | eclipseで開いたところ(プロジェクトフレームで右クリック「リフレッシュ」する必要があります。) |
![]() |
![]() |
フォルダの中には、時間ごとの分極ベクトルが数値としてカンマで区切られて格納されています。最初にx成分、次にy成分が記録されています。今の場合、システムが80X80の大きさなので、80列160行の大きさのデータです。カンマで区切られたデータ(CSV形式)の場合、WindowsではExcelで開くよう指定されていますので、ダブルクリックするとその内容を見ることができます。
シミュレーションのリアルタイム描画では、格子上の分極は線で描かれていますが、本当はベクトル(頭と尻尾の区別がある)です。矢印を描画するのが面倒なので、線だけで表示しています。論文に載せる場合には、きちんと矢印で表したいわけです。
そのような描画に使えるツールは沢山ありますが、ここでは、将来も使える可能性があるフリーソフトScilabを使ってみます。
シミュレーション用のJavaプログラムの中に".sce"という拡張子をもったファイルが置かれています。(Scilabがインストールされていれば、アイコンがScilabのものになっているはず.)
snapshots.sceというファイルがあります.これをダブルクリックするとScilabが立ち上がり,Scilab用のプログラム編集ツールSciNoteにsnaphots.sceが読み込まれます.
このプログラムの中頃に,次のような,データがあるディレクトリと,表示したいデータのディレクトリ名,そして,時間ステップを書き込む行があります.ここを各自の設定に変更し,メニューの「実行」→「保存して実行」(あるはF5キー)を押して実行します.
// カレントディレクトリ chdir('c:\Users\toyoki\workplace\eeIntroPrac') // このファイルがあるディレクトリ名 // データ処理 basename0 = "op80P0.0N0.0F0.08T0.050" // データフォルダの名前 basename = ".\"+ basename0 + "\"+ basename0 +"-" tstr = ["1000", "2000", "3000", "6000"] // 表示したい時間を4つ filename = basename + tstr + ".csv"
この部分では,読み込むファイル名を組み立てますので,tstrという変数へは実在するファイルの時刻部分を入れる必要があります.ファイルが存在しないとScilabのコンソールに「xxx.csvが存在しません」というようなメッセージがでます.
うまく読み込まれると次のような図になります.配向ベクトルが描かれていますが,小さいと方向がよくわかりませんね.scilabのメニューにある「虫眼鏡」で一部を拡大して見ることができますので,それで見てみるとたしかに矢印が描かれていることがわかります.
しかし,論文などに変化の様子を図示するには,適当とは言えません.そこで,方向を色で表示することを考えてみます.
同じディレクトリに,Matplot.secというファイルがあります.これをScilabで開いて実行してみましょう.
上と同様に,各自のディレクトリとファイル名にあうように書き換えて実行します.
うまく行くと次のような図が現れます.これは,配向の方向[ーπ,π]を虹色に対応させて塗ったものです.図を縮小しても,全体の配向パターンがわかるので,便利ですね.
Scilab図をいろいろな形式のファイルに書きだす機能があります.「エクスポート」,「ベクトルでエクスポート」からファイル形式を選べます.後で拡大縮小するには後者のほうが便利ですが,ここでは簡便のために「エクスポート」→「PNG」を用いましょう. ファイル名には拡張子「.png」をつけます.(大文字でも小文字でいいです.)
保存したファイルは,Wordなどに図として貼り付けることができます.
スナップショットデータが格納されているディレクトリには,"defectNumT.csv"という名前で,時刻(ステップ数)とともに渦点の数がどのように減っていくかを記録したファイルがあります.これを,横軸=時刻,縦軸=渦点数として両対数グラフにしてみましょう. 道具は何でも良いですが,参考のために上述のプログラムとおなじディレクトリにplotDefectNums.sceを用意してあるので使ってみてください.