Daijiro's profileドレスデン午前4時PhotosBlogLists Tools Help

Blog


    November 02

    地球の歩き方に載ってない町(マグデブルグ)

    週末にブラウンシュヴァイクとマグデブルグに行った。
    ブラウンシュヴァイクは地球の歩き方に1ページしか載ってないけど、
    見どころが多かった。デッサウを削除かページを減らすなりして(デッサウで日本人が「何もない...」というのを直で聞いたしw)
    ブラウンシュヴァイクをもっとプッシュしてもいいんじゃないかと思う。どうだろうw。

    帰りがけにマグデブルグに寄った。州都なのに歩き方には載っていない。
    ベルリンから近いので行きやすいと思う。
    質実剛健というイメージを受ける。ごっつく分厚い建物が多い印象がある。重厚長大。
    きらびやかではないドイツの堅いイメージをそのまま町にした感じ。ただ通りのスペースの取り方はほかのどの街より広い。
    道幅も異様に広い。
    ちなみにこれがマグデブルグの大聖堂。圧巻。
    コロンの大聖堂に勝るとも劣らぬスケール。
    こんなにすごいのにガイドに載ってないのは少し不思議。
    その他の写真を少し,,,

    その他にも駅周辺に見ごたえのある建物やショッピングアーケード(しかもドイツらしからぬことに日曜もあいてる。)もあるから
    悪くはないとは思うけど。




    October 31

    論文の読みやすさの相性。

    英語がまだ下手なのにどうこう言うのもあれなんですが。
    いろんな国の研究機関の論文を読んでるとその著者の母国語の癖というのが
    なんとなくわかってきます。明らかにネイティブと比べて、違う言い回しだとか、
    文章構成の違いだとかを感じることができます。

    で、ある国出身の論文は非常に読みずらいとかたまにありますw
    特にブラジルw。
    あとどうもスカンジナビアの著者もなかなか読み進まなかったりします。



    October 30

    チケットを買う。

    今日は忙しかったが、まぁTo do listの項目が結構さばけたので気持ちが楽になった。
    PC100台に一気に計算を流した。しばらくは自由な時間ができる。
    ポルトガルとスペインを両方旅行したかったけど、またドタバタになりそうなので、ポルトガルだけにしようと決意。チケットを買った。
    スペインはすぐとなりなので、リスボンからバスか電車で国境の町までいってスペインの町も見てみたい。
    まだ予定を立ててないけど、まだ時間があるからいいや(現地で考えればいいや、くらいの気持ちでいるw)。飛行機代は往復で240ユーロ。安い...。





    October 28

    メモ

    新しい概念とか、論文読んでて知らないことが出てきたりするとそれを学ばなければならないわけだけど、難しいだろうという先入観があるためか、なかなか取り込もうとしなかったり、取りかかってみたらみたで、もう頭が固く保守的になってしまったがゆえにすんなり頭に入らなかったりします。
    今日閉曲線積分の式を見て、被積分項のフェルミ関数の変数項が複素数なのを見て、さらに「フェルミ準位の虚数軸に極があって」という記述を見て「なんだこりゃ?難しそう。」と思った。でもよー考えたら、
    f(E,μ) = [exp{(E-μ)/kT}+1]^(-1)だからE=Ef+2ikTπn(nは整数)の時は分母が0になるからフェルミ関数が極を持ちますね。

    フェルミ関数の変数が、実数じゃなくて複素数平面でも活躍するとは知りませんでした。


    October 18

    勝手に好きな街ランキング

    天気とか体調とか滞在した時間、その日の気分にもよるけど、
    印象的だった順にあえて並べるならば...
    ドイツ内
    (1) バンベルク
    (2) ウルツブルグ
    (3) エアフルト
    (4) ブラウンシュヴァイク
    (5) ニュルンベルグ
    (6) ベルリン
    (7) ミュンヘン
    (8) ワイマール
    (9) ハンブルグ 
    (10) マグデブルグ
    (11) コロン
    (12) マイセン
    (13) トリアー
    (14) ポツダム
    (15) ライプチヒ
    (16) ハレ
    (17) ヴィッテンベルク
    (18) コブレンツ
    (19) ゲルリッツ
    (20) ブレマーハーフェン
    (21) レーゲンスブルグ
    (22) バイロイト
    (23) ブレーメン
    (24) バウッツェン
    (25) ナウムブルグ
    (26) デュッセルドルフ
    (27) ザイフェン 
    (28) フランクフルト
    (29) デッサウ
    (30) コットブス
    (31) ケムニッツ
    (32) イェナ
    (33) ツィッタウ
    (34) アイゼナハ
    (33)   

    EU内(ドイツ以外)
    (1) ブダペスト
    (2) パリ 
    (3) ルクセンブルグ
    (4) エジンバラ
    (5) ウィーン
    (6) プラハ
    (7) アムステルダム
    (8) グラスゴー
    (9) ロンドン
    (10) トリエステ
    (10)    








    スペインとポルトガル行こうかな。

    残りの有給2週間をつかってラテンの国を散策しようかなと思う。
    スペイン、ポルトガル共に興味がある。
    スペインは今後も何回か行くことになると思う。
    マラガからエルチョロ、そしてかの有名な世界一危険な道カミニト・デル・レイに挑んでみたい気もする。

    その前にやるべき仕事を終えたい。一日のある限られた時間(9時~5時)で集中しないと。
    長い時間いるだけで仕事をするふりをしたり、結果が出てないと意味がない。苦労自慢は嫌いです。

    NJPの投稿の後は、今度はPRLにチャレンジしてみたい気もする。

    そういえばPovrayを使ってAngewの表紙だけ(笑)飾ることができました。(リンク先の下の絵です。)
    PovRayがここまで役に立つとは思わなんだ。




    October 10

    Maybe it was little bit too much.

    ずっと前にグループでなんちゃってワインの品評会をした時に、
    飲み過ぎて次の日の朝に同僚にこぼした言葉なんだけど、
    遠まわしすぎる言い方がとても面白かったらしく、
    今日BBQをしたときに指摘された。

    そう言えばそんなことも言ったっけ?
    意識せず結構そういう表現を使ってるかも。


    October 07

    Long cats in tooth brush

    "Long cat"の素材を使って、一度どこかで見たことがあるけど見つけることが出来なかったLong catのパロディを自分なりに再現してみました。
    Photoshopのいい練習になりました。





    October 06

    Marcos Valleで一番好きな曲

    ブラジルという国はリオとかサンパウロとか大都会は結構危険なんだけど、
    そでを差し引いてもこの国は非常に魅力的です。
    何気なくYoutubeで検索していいなぁと思った曲がこれです。
    何言語を習得したいと思ったらやっぱり歌の歌詞から文法を
    覚えるのは確かに効率的かもと思った。
        




    October 05

    MUDPACKを触る。

    偏微分方程式を数値的に解くパッケージMUDPACK(泥パックではありません)。偏微分方程式を解く数値計算のソフトは応用範囲が広く
    需要がそこそこあると思うんですが、ネットで調べても日本語のページは全く見当たらなかったので(検索の仕方が悪い?^ ^;)、
    超々初心者ど素人ながら防備録も兼ねて使い方をメモしたいと思います。
    日本語へたくそで、間違いもあるかもしれないですけど、そこはどうか。。。

    そもそもこのパッケージを使おうと思ったのは、
    Poisson方程式を数値的に解いて、
    電位の空間分布を調べる方法を習得したかったからです。

    Poisson方程式は、∇2φ = -ρ/ε0であらわされます。∇はナブラと読み、∇ = (/∂x +/∂y +/∂z )です。
    φは電位で、φ=φ(x,y,z)のように空間座標の関数です。
    ρは電荷密度でρ=ρ(x,y,z)のように空間座標の関数です。。
    Poisson方程式は、与えられた電荷密度の分布ρと境界条件からφ電位の分布を求める際に用いられる方程式で、
    これを(数値的にあるいは分析的に)解くことにより空間における電位の分布(並びにその空間微分である電界)を求めることができます。

    MUDPACKのパッケージ群に関する情報は
    http://www.cisl.ucar.edu/css/software/mudpack/ にまとめられています。
    ライセンスに同意して下記のフォームを入力すると
    http://www.cisl.ucar.edu/css/software/mudpack/mud.form.html
    ソフトを入手することができます。

    この記事で問題とする方程式はPoisson方程式であり、
    2φ = 2φ/∂x2 +2φ/∂y2 +2φ/∂z2 = -ρ/ε0の形をしています。
    えーと、だから3次元で、分離可能(x、y、zの各次元で独立してる。)で、なおかつ電位φと電化密度ρは
    実数なので、用いるサブルーチン(サブプログラム)は2nd order/real 3D separable (mud3p)か
    4th order/real 3D separable (mud34p)となります。

    4th orderと2nd orderの違いがわからないので(たぶん精度の違いだと思う)、とりあえずは
    シンプルであろう2nd order(mud3p)を用いて話を進めたいと思います。
    サブルーチンmud3sp.f の仕様は 下記のURLで詳しく解説されています。
    http://www.cisl.ucar.edu/css/software/mudpack/mud3sp.txt
    サブルーチンmud3sp.f を用いたサンプルコード(test code)は 下記のURLで見ることができます。
    http://www.cisl.ucar.edu/css/software/mudpack/tmud3sp.txt
    また、なんのこっちゃわからないんですけど予備のコード(residual code, )は 下記のURLで見ることができます。
    http://www.cisl.ucar.edu/css/software/mudpack/resm3sp.txt

    それではサブルーチンmud3sp.f の仕様について見ていきましょう。
    これがまた小難しく、見た瞬間に意識が飛びそうになりますが、辛抱強く一つづつ。。。。

    (1) 2行目はこのファイル名です。 .dはドキュメントを表す拡張子です。
    (2) 10行くらいコピーライトの記述が続きます。
    (3) サブルーチンmud3sp.f はインプット(引数)としてiparm, fparm, work, cofx, cofy, cofz, bndyc, rhs, phi, mgopt, ierror が必要です。
    (4) サンプルコードは”tmud3sp.f”です。と言ってます。
    (5) このパッケージ群を開発・コーディングしたジョン・C・アダムスさんの署名です。
    (6) サブルーチンmud3sp.fを実行する際に必要となる親プログラムはmudcom.f とあります。
    (7) 目的: サブルーチンmud3sp.fは自動的に空間を区分化し、2ndオーダーの有限差分法を、ある境界条件のもと(ジリクレ境界条件、周期的境界条件など)、
    箱形の空間における分離可能な楕円型偏微分方程式に対して適用します。

    このサブルーチンでは、以下のような楕円型偏微分方程式を想定しています。
    2φ =
    cxx2φ/∂x2  + cxφ/∂x + cexφ(x, y, z)+
    cyy2φ/∂y2 + cyφ/∂y + ceyφ(x, y, z)+
    czz2φ/∂z2 +  czφ/∂z + cezφ(x, y, z) = ρ(x, y, z) の形をしています。

    ここではcxxcxcex、cyycycey、czzczcez、はそれぞれ既知の実数の係数です。
    φ(x, y, z) は未知です。この方程式の解です。つまりこれから求めようとする関数です。
    ρ(x, y, z) は既知の関数です。
    cxxとcyyとczzは実数の正の値でなくてはなりません。

    サブルーチンmud3sp.fは分離可能な偏微分方程式の数値計算を前提としていますが、
    この「分離可能(separable)」とは何かというと簡単に言うと
    方程式に2φ/∂y∂z とか 2φ/∂x∂y とかいう項がなくて変数分離できるってことです(たぶん)。
    そのような項が紛れ込む際は、muh3.fやmud3.fを使うとあります。

    (8) メッシュの記述について
    長方形型の箱を想定し、xyz各方向にnx、ny、nz個のグリッドを設けます。
    長方形のBoxは

     xa<= x <= xb,  yc <= y <= yd,  ze <= z <= zf で定義されます。

    グリッド幅は
    dlx = (xb - xa) /(nx-1),  dly = (yd - yc)/(ny-1),  dlz = (zf - ze)/(nz-1)で与えられます。

    よって各グリッドは
    xi =  xa + (i-1)*dlx,  i = 1, 2, ..., nx
    yj =  yc + (j-1)*dly,  j = 1, 2, ..., ny
    zk =  ye + (k-1)*dlz, k = 1, 2, ...,  nz
    で与えられます。

    ちなみに言わずもがなですが、定義域?は、(nx-1)*(ny-1)*(nz-1)個の小さな長方形で埋め尽くされることになります。

    (9) プログラム言語についてです。フォートラン90(f90)あるいはフォートラン77(f77) とあります。
    (10) ポータビリティ(移植可能性)について いろんなプラットフォームでf90とf77でコンパイルしてきた とあります。
    (11) 方法論については文献[1]と[9]を、パフォーマンスについては[1]と[2]と[9]を参照にするべし とあります。
    (12) 区分化と解について。偏微分方程式と境界条件は、すべてのグリッドレベルにおいて、二次の有限差分の式を用いて、自動的に区分化される。粗いグリッドレベルにおける対角のdominanceは、ゼロでない一次の項存在下において、二次の係数を調整するによって保持される(必要な場合は)。
    (13) 結果的に得られるtri-diagonalなlinearなブロック行列の系はマルチグリッドの繰り返しを使って近似される。これについては文献[10, 11, 13, 15, 16, 18]を参照。
    (14) Mudpack バージョン5.0.1は完全にウェイトを置いたresidualな制限のみを用いる。
    (15) デフォルトはcubicな延長とw(2,1)を含む。 w(2,1)ってなんだ?
    (16) これらは 選択されたマルチグリッドのオプションにしたがい上書きされる。(詳しくは"mgopt"オプションを参照。)
    (17) maximum relative differencesに基づくerrorのコントロールは可能で、(a)full multigrid cycling(fmg)、(b)cycling beginning、(c)が選択可能である。 
    (18) Relaxationの方法に関しては、Gauss-Seidal点、line relaxation, planar relaxation(3次元の異方性をもつ問題に対して)が提供されている。
    (19) 上記(18)のすべての方法は、cray vectorizationと改善された収束率について分岐点(赤/黒)、線、あるいは面に基づく並べ替え(順序?)を用いている。参考文献は[14]
    (20) 高次の解について: もしマルチグリッドのサイクルが2nd orderのestimateで終わると(すなわち区分化レベルerrorに達したとき?)、解はさらに4次のorderのestimateへ、"Deferred correction"のテクニックを用いて、改善することができる。
    (21) 解を入れていた配列の値は、切り捨て誤差に対する4次のorderの近似を生み出すために使われる。
    (22)
    (23)
    (24)
    (25) 参考文献の列挙

    ここからが実質的に必要となる知識
    (26) 引数の記述
    (27) iparm 22の整数からなるベクトル値。効率的に整数の引数を渡すために使われる。iparmははじめにmud3spにおいてsetされる。定義は以下のよう...

    (27-1) intl  = iparm(1):
    (27-2) nxa = iparm(2): x = xa におけるxy平面の境界条件。
        0なら関数p(x,y,z)はx方向について周期的境界条件に従う。つまりすべてのx,y,zについてp(x,y,z) = p(x+xb-xa,y,z)
               1なら関数p(xa,y,z)は特定される。 (これはphi(1,j,k)を介したインプットでなくてはならない。)
        2ならx = xa において混合型の境界条件に従う。("bndyc"の項のkbdy = 1を参照しましょう。)
    (27-3) nxb = iparm(3): x = xb におけるxy平面の境界条件
               0なら関数p(x,y,z)は周期的境界条件に従う。つまりすべてのx,y,zについてp(x,y,z) = p(x+xb-xa,y,z)
               1なら関数p(xa,y,z)は特定される。 (これはphi(nx,j,k)を介したインプットでなくてはならない。)
        2ならx = xb において混合型の境界条件に従う。("bndyc"の項のkbdy = 2を参照しましょう。)
    (27-4) nyc = iparm(4): y = yc におけるxz平面の境界条件
               0なら関数p(x,y,z)はy方向について周期的境界条件に従う。つまりすべてのx,y,zについてp(x,y,z) = p(x,y+yd-yc,z)
               1なら関数p(x,yc,z)は特定される。 (これはphi(i,1,k)を介したインプットでなくてはならない。)
        2ならy= yc において混合型の境界条件に従う。("bndyc"の項のkbdy = 3を参照しましょう。)
    (27-5) nyd = iparm(5): y = yd におけるxz平面の境界条件
               0なら関数p(x,y,z)はy方向について周期的境界条件に従う。つまりすべてのx,y,zについてp(x,y,z) = p(x,y+yd-yc,z)
               1なら関数p(x,yd,z)は特定される。 (これはphi(i,ny,k)を介したインプットでなくてはならない。)
        2ならy= yd において混合型の境界条件に従う。("bndyc"の項のkbdy = 4を参照しましょう。)
    (27-6) nze = iparm(6): z = ze におけるxy平面の境界条件
               0なら関数p(x,y,z)はz方向について周期的境界条件に従う。つまりすべてのx,y,zについてp(x,y,z) = p(x,y,zf-ze)
               1なら関数p(x,y,ze)は特定される。 (これはphi(i,j,1)を介したインプットでなくてはならない。)
        2ならz= ze において混合型の境界条件に従う。("bndyc"の項のkbdy = 5を参照しましょう。) 
    (27-7) nzf = iparm(7): z = zf におけるxy平面の境界条件
               0なら関数p(x,y,z)はz方向について周期的境界条件に従う。つまりすべてのx,y,zについてp(x,y,z) = p(x,y,zf-ze)
               1なら関数p(x,y,ze)は特定される。 (これはphi(i,j,zf)を介したインプットでなくてはならない。)
        2ならz= zf において混合型の境界条件に従う。("bndyc"の項のkbdy = 6を参照しましょう。)  
    /******/ グリッドサイズの引数 /******/
    (27-8) ixp = iparm(8): 1より大きな整数、それはx方向のグリッドの数を定義する際に使われる。(詳しくはnx = iparm(14)を参照のこと)。”ixp+1”はマルチグリッドのサイクルの最中のもっとも粗いxに関するグリッド数になる。ixpはできるだけ小さくなければならない。推奨される値は素数である2か3あるいは(おそらく)5。大きな値は、マルチグリッドの収束率をひどく鈍らせうる、とりわけもしx方向に関するline relaxationが使われない場合は。もしixpが2より大きい場合、それは2または小さな奇数であるべきである、なぜならixpの因数2のパワーは、nx=iparm(14)を変えずにiex=iparm(11)を増やすことで取り除くことができるからである。
    (27-9) jyq = iparm(9): 1より大きい整数で、それはy方向のグリッドの数を定義する際に使われる。(詳しくはny = iparm(15)を参照のこと)。”jyq+1”はマルチグリッドのサイクルの最中のもっとも粗いxに関するグリッド数になる。jyqはできるだけ小さ くなければならない。推奨される値は素数である2か3あるいは(おそらく)5。大きな値は、マルチグリッドの収束率をひどく鈍らせうる、とりわけもしy方 向に関するline relaxationが使われない場合は。もしjyqが2より大きい場合、それは2または小さな奇数であるべきである、なぜならjyqの因数2のパワー は、ny=iparm(15)を変えずにjey=iparm(12)を増やすことで取り除くことができるからである。
    (27-10) kzr = iparm(10): 1より大きい整数で、それはz方向のグリッドの数を定義する際に使われる。(詳しくはnz = iparm(16)を参照のこと)。”kzr+1”はマルチグリッドのサイクルの最中のもっとも粗いzに関するグリッド数になる。kzrはできるだけ小さ くなければならない。推奨される値は素数である2か3あるいは(おそらく)5。大きな値は、マルチグリッドの収束率をひどく鈍らせうる、とりわけもしz方 向に関するline relaxationが使われない場合は。もしjyqが2より大きい場合、それは2または小さな奇数であるべきである、なぜならkzrの因数2のパワー は、nz=iparm(16)を変えずにkez=iparm(13)を増やすことで取り除くことができるからである。
    (27-11) iex = iparm(11): 正の整数で2を基底とする指数関数の指数、これはx方向のグリッドの数を定義する際に使われる。(詳しくはnx = iparm(14)を参照のこと)。iexが50よりも小さいことが要求される。マルチグリッディングのサイクルの効率を高めるため、iexはできるだけ大きいことが求められる、そしてnx=iparm(14)を定義したらグリッドサイズの制限内でixp=iparm(8)はできるだけ小さいことが求められる。
    (27-12) jey = iparm(12): 正の整数で2を基底とする指数関数の指数、これはy方向のグリッドの数を定義する際に使われる。(詳しくはny = iparm(15)を参照のこと)。iexが50よりも小さいことが要求される。マルチグリッディングのサイクルの効率を高めるため、jeyはできるだけ 大きいことが求められる、そしてny=iparm(15)を定義したらグリッドサイズの制限内でjyq=iparm(9)はできるだけ小さいことが求めら れる。
    (27-13) kez = iparm(13): 正の整数で2を基底とする指数関数の指数、これはz方向のグリッドの数を定義する際に使われる。(詳しくはnz = iparm(16)を参照のこと)。kezが50よりも小さいことが要求される。マルチグリッディングのサイクルの効率を高めるため、kezはできるだけ 大きいことが求められる、そしてnz=iparm(16)を定義したらグリッドサイズの制限内でkzr=iparm(10)はできるだけ小さいことが求めら れる。
    (27-14) nx = iparm(14):区間 xa≦ x ≦xb(境界も含む)における均等に区切られたグリッドの数。nxは次の形式を満たす。
    nx = ixp*2(iex-1)+1. ここでixp = iparm(8), iex = iparm(11)
    (27-15) ny = iparm(15):区間 yc≦ y ≦yd(境界も含む)における均等に区切られたグリッドの数。nyは次の形式を満たす。
    ny = jyq*2(jey-1)+1. ここでjyq = iparm(9), jey = iparm(12)
    (27-16) nz = iparm(16):区間 ze≦ z ≦zf(境界も含む)における均等に区切られたグリッドの数。nzは次の形式を満たす。
    nz = kzr*2(kez-1)+1. ここでkzr = iparm(10), iex = iparm(13)
    /******/ 例 /******/
    33 x 65 x 97 のグリッドを持つ系の解を求めたいとする。その時は、ixp=2, jyq=4, kzr=6, iex=jey=kez=5 とおける。
    よりよい定数の選択は
    ixp=jyq=2, kzr=3, iex=5, jey=kez=6である。
    /******/ 注意 /******/
    Gがnx x ny x nzの細かいグリッドを持ち、nを n=max0(iex, jey, kez)とすると、Mudpackでは従順のマルチグリッドサイクルは以下のように実装される。

    G(1) < G(2) < ... < G(k) < ... < G(n) = G.
    それぞれのG(k) ( k = 1, 2, ... , n)は mx x my x mz のグリッド点を持ち、グリッド点は、
    mx(k) = ixp * 2(max0(iex+k-n,1)-1)+ 1
    my(k) = jyq * 2(max0(jey+k-n,1)-1)+ 1
    mz(k) = kzr * 2(max0(kez+k-n,1)-1)+ 1
    (27-17) iguess = iparm(17)
    0: 周期的境界条件のいかなる初期値も与えられていない、かつ(あるいは)、fullなマルチグリッドサイクルをもっとも粗いレベルから始めたいとき。
    1: 周期的境界条件の初期値がもっとも細かいレベルでphiとして(phiについては下記参照)与えられていているとき。この場合、サイクルの始まり、または再開は最も細かいグリッドで開始される。
    /********/ iguessについてのコメント /********/
    iguess=0の設定はfullなマルチグリッディングあるいは”fmg”のサイクルを強いる。phiはすべてのグリッド点で開始?されていなくてはならない。もしよい値がないならばすべての非ジリクレのグリッド点で0にセットすることもできる。iguess=0の時のphiに設定されたその値は渡され、低次元化され、もっとも粗いグリッドレベル(サイクルの始まる)での周期的境界条件の初期値を作るのにつかわれる。

    もしiguess=1ならば、inputの値phiはサイクルがはじまる最も細かいグリッドレベルでの周期的境界条件の初期値となる。
    このオプションはもしとてもよい初期値が入手可能なときのみ使われる。(たとえば前のiguess=0のcallから再開する時)
    /********/ 時間依存の問題 /********/
    楕円型偏微分方程式を各時間のステップでmarching問題の形式で解きたいとする。
    l(p(t)) = r(t)
    ここで、微分演算子l は時間に依存しないとする。"p(t)"は解である。"r(t)"は時間tにおける右側の項である。
    dtを時間ステップの最小の幅とする。するとp(t)は、l(p(t+dt)) = r(t+dt)を解くときに、intl = 1 のもとでp(t+dt)への初期値として使える。
    はじめの2ステップののち、(つづける場合は?)、"correction"項を定めるのがよかろう。つまり、
    e(t,dt) = p(t+dt) - p(t)
    これは明らかに次の式を満たす。
    l(e(t,dt)) = r(t+dt) - r(t).
    これはiguess=0、intl=1のもとでで解かれるべきである。e(t,dt)の境界条件は、時刻t+dtで得られた値から求めた時刻tにおける値をsubtraceして、そこから得られたp(t)の境界条件から求められる。
    たとえばもし、
    あるxの境界で d(p(t))/dx = f(t), d(p(t+dt))/dx = f(t+dt); 
    そして e(t,dt)が
    d(e(t,dt))/dx = f(t+dt) -f(t) を満たす場合。
    e(t,dt)は0.0(at non-Dirchlet points)あるいは(もしp(t-dt)が保存されているなら)p(t)-p(t-dt) であらわされる。
    iguess = 0のもとで、これらの値は、もっとも粗いグリッドレベルでのe(t,dt)の初期値として働くであろう。
    このアプローチは以下の場合に有効です。それは、もっとも粗いレベルから始まるマルチグリッディング サイクルのfull sequenceが、e(t,dt)を解くときにいつも呼び出される場合。e(t,dt)の数桁の高精度な値(普通はp(t)よりもずっと小さい)は、最終的な近似においてさらにいくつかの桁のよい精度をもたらすであろう。
    p(t+dt) = p(t) + e(t, dt).
    時間について積分する際、このアプローチを使えば、より高い精度を与え、すべての時間ステップについてp(t)をp(t+dt)の初期値としてつかうことができるでしょう。それは付加的なストレージを必要とします。
    もし微分演算子"l"が時間依存性を持つ場合(偏微分方程式の係数を介してあるいは微分形式の境界条件の係数を介して)、
    l(t+dt)(p(t+dt)) = r(t+dt) をintl=0とともにすべての時間ステップについて解くとき、p(t)をp(t+dt)の初期値として使う。(区分化は毎回新しい"t"ごとに繰り返されなければならない。)
    なおiguess=0(そのときp(t)は計算の始まるもっとも粗いグリッドレベルでの初期値になる。)またはiguess=1(このときp(t)は計算サイクルの固定されたもっとも細かいグリッドレベルでの初期値になる。)の場合でも共に実行することができる。

    (27-18) maxcy = iparm(18): maxcyはtolmax=fparm(7)=0.0の時(no error control)の最も粗いグリッドレベル( (ixp+1) x (jyq+1) x (kzr+1) )からもっとも細かいグリッドレベル( nx x ny x nz)まで実行されるサイクルの数(整数)。tolmax=fparm(7) > 0.0 がインプット( error control)のとき、maxcyは最も細かいグリッドのレベルともっとも粗いグリッドのレベルのサイクルの数の限界である。いかなるケースにおいても、せいぜい最大でも、maxcy*(iprer+ipost)回のrelaxation sweepが最もグリッドの細かいレベルで(下記のiprer=mgopt(2), ipost=mgopt(3)を見よ。)行われる。マルチグリッドの繰り返しが正しく働いている時、ほんの数回のサイクルで収束する。大きなmaxcyは必要とされるべきではない。

    (27-19) method = iparm(19): 0の時、ガウス-seidel のred/black ordering
    (27-20) 
    (27-21) 
    (27-22) 
    /********/ fparmについて /********/

    (28-1)
    (28-2)

























    October 04

    二週間の休暇

    あと有給14日残ってる。
    で、自分のinstituteでは年末は5日分とっとかないといけない決まりになってる。

    でそれを差っぴくと9日。10日あれば土日の休みをうまく利用して16日の長めの
    旅行ができるけど,,,まぁいいや。

    Perlを使って一括処理が大好きな一番仕事のできる同僚(ドイツ人女性で、8時半~5時、博士過程で論文5報出して今ポスドク。英語が早口で時々ついていけないorz)は彼氏と3週間ギリシャに行ったきり帰ってこない。
    旅の前日に質問をしに行ったけどいなくって、机にデカデカと「Help!」とメッセージを残したけど、旅行前日で
    ウキウキだったためか、無視されてそのまま帰ってしもーたw。

    こっち来て3報目の論文はもうできた。パラレルで3つ以上同時に研究すると効率が落ちる。
    一つ一つ、つぶしていくしかない。


    September 22

    トータルの状態密度を分子軌道基底の状態密度の総和あるいは局在化した原子軌道基底の状態密度の総和で表現する方法

    Tight-binding HamiltonianをHとし、遅延グリーン関数をG(E)= [(E+δi)I -H-∑]^(-1)とおく。(1式)
    Hの行列要素はH_(i,j) = <φ_i|H|φ_j>で定義される。 ここでφ_iは原子軌道関数。
    エネルギーの関数である開放系?の状態密度D(E)は、
    [A(E)]=i* [ G(E)- G†(E) ]; 行列[A(E)]の対角の行列要素の和(トレース?物理やっておきながら用語を知らない...)で与えられる。
    ちなみに行列[A(E)]の各対角要素は、局所状態密度(local DOS、略してLDOS)となるので各原子軌道のトータルの状態密度(TDOSとする)に対する寄与をエネルギーの関数としてみることができる。つまり TDOS(E)=∑_i LDOS_i(E)。 iは各原子軌道についての総和。
     
    さて(?)、ここで分子軌道基底による状態密度への寄与の総和としてTDOSを表現したいとする。別の言い方をすれば、TDOSを局所状態密度の和ではなく、分子軌道基底で表現された状態密度の総和として表現したいとする。つまり各分子軌道がTDOSへどのように寄与するかを調べたいとする。
    分子軌道は、原子軌道の線形結合で表わされるから|ψ_i>=∑_μ c_(μ,i) |φ_μ>
    ∑_j|ψ_j><ψ_j|=∑_j|∑_μc_(μ,j)* ・c_(μ,j) |φ_μ><φ_μ| = 1
    ∑_m|φ_m><φ_m| = 1
    H_(i,j) = <φ_i|H|φ_j>
    <ψ_j|G(E)|ψ_j> = ∑_m <ψ_j | φ_m><φ_m | ψ_j>/{(E+δi)I -H-∑}
    [(E+δi)I -H-∑]
    何が何だかわからなくなりましたorz





    September 17

    基底の変換

    |ψ>=∑_i a_i |φ_i> ここで|φ_i>は局在化した関数とする。

    状態 |ψ>を他の基底 たとえば{|μ_j>}で表現したいとする。
    当然係数a_iも変わる。

    1=∑_j |μ_j><μ_j| より

    |ψ>=∑_i a_i |φ_i> = |ψ>= ∑_i 1 ・ a_i |φ_i>
    = ∑_i ∑_j |μ_j><μ_j| a_i |φ_i>

    b_j = ∑_i  <μ_j| a_i |φ_i> を定義すると
     |ψ>= ∑_j b_j |μ_j> となり、
    よって 状態 |ψ>を 局在化した関数からなる基底{|φ_i>}から
    任意の基底{|μ_j>}で表現することができた。



    September 16

    欧州ではドラえもんの知名度は低い。

    別段驚きはしなかったけどこれも外に出て初めて実感できることの一つ。 低い何てものじゃなくて、殆ど誰も知らない。Nearly 0といった方が正確かも。 アイルランド人然り、ドイツ人然り。 かつて日本でフランス人のポスドクが来てスポーツ選手について話したとき、 「イチローも松井も知らないのか?!」と驚いたことがあった。 でもこれもフランスで野球なんてしないし、興味ないし、だれも知るわけがないんだけど、 外国や外国人と接する機会がなかったもんだから、そのことにすら気づいていなかった。そんなこともあったなぁ。

    ドイツでは、犬夜叉とかナルトとかブリーチとかワンピースとかを漫画に興味のあるコアな層が知ってるくらいで、 誰もが知ってて興味があるわけではない。テレビで放映されたからといって誰もが知ってるわけではない。 ちなみに好奇心がこうじてJetroのスペインにおけるアニメ・漫画の調査資料を見てみたけどスペインはDVD、 コミックともに市場規模はとても小さい。スペインでここ数年で一番観客を動員した日本映画(アニメに限らず)「ポケモン」(131万人)と「ファイナルファンタジー」(118万人)とは意外だった。 2006年は日本映画11本を全て足しても観客の総動員数が22万人しかいなかった。がんばれー。

    ドイツで生活してて実感としてキャラクターでよく目につくものでは、ハローキティがあります。 これは認知度が高いと思う(Made in Japanであることを知っているかどうかは別として) 子供がハローキティの帽子だのバッグだのT−シャツだのを着ているのはそこそこ目にかけます。20そこらの女性でも結構見かけます。 同じドミトリーのルームメイトの彼女(ブロンドで180cmくらいw)もハローキティのT−シャツを持ってるし、前のルームメイトの彼女は ハローキティが大好きでそのルームメイトはウンザリしていた。 あの堅いドイツ人にしてこれ(ハろーキティ)は以外でした。まぁ身近な二人の例で統計を取ったわけではないので 知名度が高いと断定は出来ませんが。 ちなみに南米出身の同僚(コロンビア)と前に話をしたとき、セイントセイヤとキャプテン翼は25歳くらいの人ならそこそこ知名度があるとのことでした。 ちなみに自分は、嫌いでも好きでもなく、ただ全く漫画もアニメも見ません、はい。



    September 13

    桃の値段 1キロ 1ユーロ @ドイツ

    時々甘いものが欲しくなるので、Reweに行く時、
    桃やらイチゴやらのフルーツを買います。

    Reweで桃1キロ(10玉くらい)を(値段表示も見ずに)買ってみたらなんと1ユーロ。

    日本はフルーツが高いことで有名です。
    ちょっとネットで調べてみると1キロ6000円だの、
    3000円だの出てきて、さすがにこれは高級品だから(いやそれでも異常だw)
    とおもって「スーパー 桃 値段」でいろいろ検索するとだいたい1キロ1000円くらいするんですね。
    いやそれでも10倍の価格差があるからとんでもないなぁと思ったり。

    追記:昨日また行ってみたら、2.99ユーロでした。1ユーロは特価でした。



    雑学がてらに

    暇なとき、ちょっと休憩したいときに、いろんな言語をかじってます。もちろん本業にするつもりはサラサラなく多様性を楽しんでる感じです。
    生活に必要な英語のほかに。
    タイ旅行する前に独学で文字が読み書きできるようになったタイ語(3冊)、
    博士課程の時の同僚の母国語のブルガリア語(1冊)、
    なんとなく人口が多いから知ってて損はないかなとスペイン語(2冊)、
    orkutつながりでポルトガル語(2冊)、
    大学の初期の第2外国語のフランス語、
    なぜかドイツ語だけは本が2,3冊あることはあるのですが、2月に一度1ページあけるくらいです。
    どーしてもどーしても全くやる気が起きず。ドイツ語のクラスも週一で絶対に予習復習をせず、
    規則動詞の活用もいまだに言えないさんさんたる状況です。

    うーん、どうにかならんものか。


    September 11

    近況

    結果は出てます。でもなんか退屈です。

    バーンカードの期限が切れたからまた更新しなくては。
    出費(225ユーロ)が痛いですけどここはひとつ我慢。




    September 05

    子供っぽい

    と言われた(byアイルランド人)。でも「知るかよw」と答えました。
    何がかというと日本のニュースサイト(ヤフー)のデザインとりわけ配色が。

    確かにBBCだとかCNNだとか海外のニュースサイトと比べると、そう言われてみるとそうだよなーと同意してしまう。

    そういえばちなみにタイではコギャル系のファッションをデックRGB(原色のガキ)って揶揄するらしい。







    September 02

    8月の旅レビュー

    絵で描くとこうなりました。
    こう書いてみると過密すぎだなーと自分でも呆れました。



    えーと、遊んでばかり(実際そうですけどw)だとイカンので、
    やるべきことはやってきちんと結果(ここ)を残してます。



    August 20

    ハンガリーにでも行ってみようかな。

     まだまだ休暇が残ってます。
    西方面はいったので今度は東欧に行こうと思います。

    ドレスデン中央駅からブタペストに直通の列車があるのでそれに乗ろうかなと思います。
    今回はどれだけ経費を抑えられるかにチャレンジしてみたいと思います。

    気分しだいでチャレンジしないかもしれません。
    基本的に徹底的に予定を立てるのが嫌いなので、どうなるかわからんです。

    休暇休暇と休んでばかりの印象があるので仕事の話を一つ。
    4月ごろに投稿した論文が審査ののち無事受理されて、Webに公開されましたと
    投稿先の事務所?からメールをいただきました。
    うれしいことにそのジャーナルの表紙(August 2009)を飾ることができました。
    できたばっかりのジャーナルなのでまだオープンアクセスで
    登校した論文も読むことができます。
    興味のある方は(いないと思うけど^^;)どうぞ (これ)