http://natsci.kyokyo-u.ac.jp/~takasima/pukiwikiSougou/index.php
強磁性体としては鉄があるが、温度を高くすると磁化しなくなる。
太陽や地球にも磁場がある。黒点は磁場と関係がある。以下のページからjpegファイルをダウンロードして黒点の変化のアニメーションを作成する。
http://swc.nict.go.jp/sunspot/
http://sohowww.nascom.nasa.gov/sunspots/
図の下のlist of all available imagesをクリックすると以下のページに飛ぶ。
http://sohowww.nascom.nasa.gov/data/synoptic/sunspots_earth/
過渡現象は抵抗、コンデンサー、コイルが登場する。直列に接続すると、線形方程式となる。コイルは起電力とするので電圧降下と反対の場所に配置する。
このプログラムでで
である。またdeff_eq1は
の微分が
であることを示す関数となることを記述している。またdeff_eq2は
の微分が
となることを記述している。
ちょっとこれでは複雑なので、ルンゲクッタ法は時間発展を記述し、より簡単なオイラー法を発展させたものであることを理解する。まずはコンデンサーの放電を記述する式から見てみる。
ただしこのプログラムはそのままではgnuplotで描画出来ない。rlc_runge.fと同じように変更する。
誘電体の正電荷部分を赤、負電荷部分をシアンで表現すると重なったところが白になって、中性を表現するのはどうか。同じ大きさの長方形を描き、赤をマウスの位置に合わせて移動できるようにする。楽にプログラムできるのはjavaも良さそうだが、いまやコード配布やjavascriptしかないかも。
電束が真電荷なしでは変化しない。よって境界で誘電率と電場の積は変化しないことを境界条件とする。これは二つの誘電体のコンデンサーにも応用できる。
set contour splot 'relax2.dat' with pm3d
set pm3d set samples 30 set isosamples 30 splot [-2:2] [-2:2] 1/(1+x**2+y**2)**1.5 with pm3d
さらに一様電場の中に金属球を置いた場合の電位分布の表示。金属球は半径1
pr(x,y)=sqrt(x*x+y*y) splot [-2:2][-2:2] pr(x,y) >1. ? -5.*x+5.*x/pr(x,y)**3 : 0. with pm3d
また、一様に帯電した原子核の周りの電位分布。やはり半径1を原子核の大きさとする。このモデルでは電子は半径4と1の間に分布しています。最大の電場強度は何処になるでしょう。また原子核を相対的に小さくしていくと電位や電場強度はどうなるか?
splot [-4:4][-4:4] pr(x,y) >1. ? -1./8.+1/(3*pr(x,y))+pr(x,y)**2/384. : 3./8.-63.*pr(x,y)**2/384. with pm3d
高橋・早野著の計算物理にあったものの出力をgnuplot用に変更した。
g77でコンパイルしてrelax1.exeを作成
gnuplot set pm3d splot 'relax1.dat' with pm3d
電磁気学を勉強したら、実際のデジタル回路設計をやってみよう。デジタル回路の要素はAND,OR,NOTから組み合わせ回路ができる。Dフリップフロップと呼ばれる要素から時間順序回路ができる。
これから複雑な加算器、計数器ができるが、これを電子回路で実現するには回路接続を計算機から制御できるFPGAやCPLDを使い、作成されたビット列をFPGAやCPLDに送る。
そのビット列を作るには、HDL(Hardware Description Language)で電子回路を記述する。HDLを使い、電子回路を記述し、各電極の電圧変化をシミュレーションしてみよう。ツールとしてはiverilog(icarus)を使う。
IPCの環境でインストールを行った。容量が心配な人は自分のノートPCのCygwinに入れたらよいでしょう。
tar zxvf ../Downloads/verilog-0.9.5.tar.gz cd verilog-0.9.5 ./configure --prefix=/cygdrive/z/cygwin/iverilog make make install
Macにも入れてみた
tar zxvf ../Downloads/verilog-20120501.tar.gz cd verilog-20120501/ ./configure make sudo make install cd ../ tar zxvf ../Downloads/gtkwave-3.3.36.tar.gz cd gtkwave-3.3.36/ /usr/bin/ruby -e "$(/usr/bin/curl -fsSL https://raw.github.com/mxcl/homebrew/master/Library/Contributions/install_homebrew.rb)" brew install xz ... brew install gtk+ make sudo make install
実用入門 デジタル回路とverilog-HDLの例ではTSTのプログラムのincludeをコメントアウトする。またMacとWindowsで改行が違うせいで、最終行でエラーが出る時がある。最後の文字を消して書き直すなどが必要?
export iverilog -o morgan1 MORGAN1.V MORGAN1-TST.V vvp morgan1 gtkwave morgan1.vcd
とかでシミュレーションまで行くはずなんですが、Windowsのcygwinでないほうは動いたんですがMacでは今のところ動いてないです。
windows用のバイナリインストールでは問題ないです。
http://hw001.spaaqs.ne.jp/k-okada/design/verilog/verilog_free.html
export PATH=/cygdrive/z/cygwin/iverilog/bin:${PATH} export LD_LIBRARY_PATH=/cygdrive/z/cygwin/iverilog/lib iverilog -o test test_ins.v test_tb2.v vvp test gtkwave test.vcd
信号をinsert やappendで入れて、マイナスボタンを押して、時間スケールを変更します。GTKWaveを授業で使えるように、Cygwinでコンパイルしてます。どうもできそうです。configureのところでxzが入らないときは--disable-xzを入れましょう。大学のcygwinではtclに問題があり動かない。
点対称、線対称、面対称をつかってガウス面を定義する方法を作図することによって示せ。作図はAdobe illustratorを利用する。はさみツールを利用して隠れ線をカットすること。
高橋、早野著の計算物理のコード例のプロットコマンドをコメントにした。
g77 -o denka denka.f ./denka.exe > denka.dat gnuplot plot denka.dat
電圧が高いところに誘電率の高い物体を配置
gnuplotでプロットを作成する簡単なスクリプト
以上のファイルを自分のcygwin\poissonに入れる。
mkdir -p cygwin/poisson cd cygwin/poisson emacs -nw poissonDi.cc //ここでコピペ Ctl-s,Ctl-xで書いて出る。 g++ -o poissonDi poissonDi.cc ./poissonDi > poisson.dat gnuplot load 'poisson.gnu'
http://homepage2.nifty.com/ysc/rikisen.pdf
gnuplotで媒介変数を使った3次元での立体の表示をしてみた。x-y平面の円をy軸の周りに回転する行列をかけて、10枚のファイルを作る。これをImageMagickを使って、アニメのファイルに変換する。
上の例では、線分となっているが、トーラスを使ってもよい。レンジを変えていけば、円弧がのびていくアニメーションもできる。密度が減少する様子は半径の2乗のところに描いていくといいだろう。
メカニカルユニバースでみている通り。電場は少し難しいができないことはないはず。