2011/12/28

係数行列の作り方

係数行列の作り方で少し悩んでいる。

使っている本、有限要素法による流れの解析シリーズでは、三角形要素と四面体の体積は解析的に計算できるとなっているのだけれども、フリーのコードの実装とかを見てみるとガウスの近似積分で計算してあった。 Zienkiewicz & Taylorでもそうなってた。 

あとよくわかっていないのが、偏微分を含む項、移流項とか拡散項とか、の積分を行わなければならない場合の処理がいまいちわからない。同じ処理を行ってもいいのだろうか?

2011/12/26

大雪

すっごい雪降っていて買い物にいけませぬ。まだあと一週間は食料はもちそうだけど、毎日同じ食事は飽きた。なんかおいしいもの食べたべたい。

2011/12/21

Scientific Linuxがなんだかおかしくなった。

しばらく(2ヶ月ぐらい)使ってなかったら、なんだかおかしくなった。なぜかbashのhistoryが記録されなくなった。地味に不便なんすけど。前に使ったコマンドとか打ち込みたい時めんどくさい。

それとすっかり忘れていたのだけれども、Scientific Linuxはデフォルトのままインストールするとroot領域を半分ぐらい取る。 /optとか/ varとかの領域を多く欲しい人にはいいのだろうけど/homeのユーザーばっかり使う派なので、もう半分ぐらい使ってしまっている。/optか/usr/localにデータ移そうか考え中なり。

2011/12/19

Ultra 40をセットアップした。

三ヶ月くらい前にオクで落とした。Sun microsystemsのultra40のセットアップをした。BIOS確認しかしてなかったので、動くか心配だった。で案の定CD driveは死んでました。 で、外付けのドライブから読んで、NetBSDを入れました。これから、いろいろ落としてgccの最新版を作ろうと考えている。まあ時間があんまり取れないんだけども。 twmしか動かしてないから、サクサク動く。

FreeBSDを最初に入れようかと思ったのだけれどインストールでエラーが出て進まなくなった。なんかドライブのHDD認識しません的なことだったけど、よくわからない。fdiskで調べてみたけれどよくわからなかった。認識してたけどね?

あとやっぱり’うるさい’。深夜に動かすと近所迷惑かもしれない。

2011/12/16

2011/12/13

係数行列を出してみた

自作FEコードの作成をほそぼそながらやってます。

今回、全係数行列を組んで確認ののためマトリックスの形を画像としてだしてみた。黒いところがゼロでない要素。

対称じゃないよね。バグがまだあるようだ。
とりあえずBiCGStabも、C++に書き換えて組み込んだ。こちらもまだ確認が必要。


2011/12/09

GmshからVTK形式に

じぶんのFEコード用にVTK出力を作ってみた。 

立方体を作りGmshを使ってtet4メッシュを貼っている。 とりあえずIOは完成今度はソルバー部分を書かねば。 ようやくC++にもなれてきた気がする。

2011/12/08

Ubuntuがシェアを下げている件

まあ納得です。WMをgnomeから変えたらこう言うことになったらしい。一時期11.01いれてたことあったけどmarvericに戻したもの。やっぱりgnomeがなれていて使い易い。

それはそうと同じUbuntu系列のlinux mintのシェアが週上昇しているらしい。やっぱりユーザーが流れているのだろう。marvericのサポートはそろそろ切れるので、これからどうしようかと今考え中。

自分はTerminalが使えれば、とくに文句はないです。

2011/12/07

ホームベーカリーがほしい

毎日ご飯で過ごしている派なのだけれども、月に一回は10kgのお米を買出しに行かなければならない。お店まで結構合って疲れる。車とか持っていないので、もち歩いていく。片道40分ぐらい。

そこで考えたのだけど、ご飯とパンどっちが安く上がるか? ホームベーカリーで自分で作れば安くいくのじゃないかと思う。 ご飯が好きというわけではないので、それにパンだけで1年ぐらい通したことあるし。

皮算用したら単位重量あたりで考えると、パンを作ったほうが安くいきそう。多分初期費用の投資も3年ぐらいで回収できるのではないかという結論にたどり着いた。

2011/11/30

時計を購入しようと思う

ずいぶん前に今使っている時計が重くて、使いにくいと書きましたがようやく理想的なデザインの時計を見つけました。

今使っている時計は間に使っていたやつを落として壊してしまった後に、購求したものです。約五年間ぐらい使用しています。ちょっと重いけどcitizenのクロノグラフのやつ。実験とかするとき結構重宝した。おかげでいつも、タイムキーパーでしたが。

そういえば、友達がタグホイヤーなる時計を着けていたことなども思い出す。10000円ぐらいの時計は月30秒ぐらいずれるのがいやだ。高級な時計は、正確に動くのだろうか?

今ほしいやつは、これ。なんと980円の何にも機能のない時計。デザインがシンプルで軽くて使いやすそうなので購入を決定。本当は、同じようなデザインのソーラー電波時計でもあればいいのだけれども見つからなかった。こういう何でもないものを、末永く使っていくこともファッションの一つだと思う。




時計遍歴

1980円 マルマン 
高校入学時に買ってもらった。ベルトが合わないのか、身につけていると痒くなるのであまり使わなかった。

9980円 charles hogel(ソーラー)
受験時に購入。大学二年のときに落としてこわす。チタン製なので、軽くて使いやすかったのに

9980円 citizenのクロノグラフ(ソーラー)
ステンレス製で重いが実験時の時間計測に大活躍。

2011/11/26

このブログを訪れる人々

このブログを訪れる人たちはかなりlinuxユーザーが多いことに気がついた。自分自身もlinuxで投稿しているし、今は学校のsolarisからアクセスしているけれども。でも、やっぱりwindows率が一番高い

ウェブブラウザは当然firefox率が非常に高い。続いてchromeとなっている。で次にIE最後にOperaただ偽装も出来るので所まで正しいのか?てか、普段から偽装している人なんていないな

ただし自分のアクセスが場外されているのかはっきりしない。これが高いlinux + firefox率の要因なのかもしれない。

It's stats time! I just checked visitors to my blog and notice high percentage of Linux users and of course firefox users as well. I don't surprise for this result cz simulation is dominated by linux system despite I'm writing this from Uni's solaris. I'm nor sure whether my access is completely excluded from the stats since I am a Linux and firefox user too. I accessed from my BSD machine and uni's solaris machine several times but they are not counted.

Yes OS is still dominated by windows but IE is not so strong from what I saw from the charts.

Firefox
215 (55%)
Internet Explorer
105 (26%)
Chrome
48 (12%)
Safari
10 (2%)
Opera
7 (1%)
Mobile Safari
4 (1%)



Windows
201 (51%)
Linux
158 (40%)
Macintosh
24 (6%)
Android
4 (1%)
Ubuntu
2 (<1%)

2011/11/25

VTKの罠

VTKには変な仕様の落とし穴がある。とくにGmshからParaviewで出力しようとしているときは要注意だ。私は3週間ぐらい無駄に時間を過ごした。

Gmshはconnecvity tableを作るときノード1から始める。しかしparaviewでは0から始める必要がある。これは非常に簡単で、要は1だけノード番号をマイナスシフトすればいい。

これにかなり長い時間気づかず苦労した。なぜ簡単に分からなかったのかいうと、自分のコード側にバグがあるのだとすっかり思い込んでいた。よくよく今考えてみればノード点が必ず1つ少なかった。同じような状況に陥っている人は上記の解決策で行けるはず。

Memory Swapped

I finally replaced my netbook's memory to 4GB though I made a minor error. The replacement procedure was available on You Tube for Acer AO522. That's why not difficult to figure out but the RAM information I found on the web was not right.

It said PC-8500 RAM is mount on the default, but my was PC-10600 RAM. Yes I got now PC-8500 4GB ram on board. It worked any way though performance should be better for PC-106000.

My machine got kingston PC10600 so what I recommend is get 4GB of PC10600 ram. I somehow got trancscend PC-8500 sodimm.

2011/11/22

日本に帰ってきました

ようやく日本に帰ってきました。

楽しかったことは楽しかったのだけれども、行って二日目ぐらいで風邪を引いてしまい辛かったです。同僚が夜食事に出かける時もひとりで寝込んでました。未だに調子悪いです。なんだかふらふらする。

行く直前に妹が嫁に行くことになったとかで招待状が届いてました。ちょっと帰ったとき親に色々言われそう。

I finally came back to the Motherland

10 days of the States life was fun though I was suffered from cold since my second day there. I was in the bed during my colleagues night out. Still got a little headache and dizzy.

Before I left to the trip, I got a good news. My sis gonna marry in Jan.

2011/11/15

シアトルいる

シアトルにいます。

学会なんだけれど観光ばかりしている。セイフィコフィールド行ってきたよ。オフシーズンで閉っていたけれど。毎日雲っていて雨が降って寒くて、どこかの国みたい。

食べ物が安くて嬉しい。チーズ900gで500円とかありえない価格だ。買いこんでいこう。

2011/11/06

Trouble Shooting Terminal Server Client Connection to Windows

En:

There's some bugs on Terminal Server Client on Ubuntu. If you try to connect to Windows XP, Vista or server 2008. Only works once. seems to be solved on Win 7.

The solution method is simple save you setting. At this point, the save file doesn't work. we just call it 'foo.rdp' for now. This should be appear unver .tsclient

$ ls -la ~/.tsclient/

Then change the permission of 'foo.rap' to read only.

$ chmod 440 ~/.tsclient/foo.rdp

Try under this setup. If Error message still said 'BadAtom' you need to type your Hostname.

2011/11/04

ネットブックが遅いのでメモリーを増設してみる

ネットブックのメモリーが724MBしか使えないので増設することにした。1GBで256MBはグラフィック側で確保されて使えないようだ。 使っている機種はAO522というAcerの。この機種は、windows starterを載せるために、ハード的に2GBまでしか乗らない様に制限されているらしい

追記
調べてみたらハード的ではなくwindows starterの仕様らしいです。Linux 64bitなので問題なし。

じゃあ2GBを載せようかとも思ったけれども、グラフィックで取られるので4GB載せることにした。メモリー安くなったし。

やっぱり定番のCFD Elixirにする。 4GBで2000円切るとか安すぎる! 七年前に初めてノートパソコン買ったときは256MBの増設が20000円ぐらいしたのに

2011/11/03

カツオとタラバ合わせて二千円だよ~

このタイトルでわかる人いる?

ロゼッタストーンのCMである

You Tubeで海外の番組を見ると必ずと言っていいほどこれが入ってくる。海外の番組のタグでフラグ処理してるんだとオモワレ。

このCMとGalaxy tabのが非常にウザイ。なぜかこの二つはskip出来なので終わるまで見るしかない。20秒程度なのだがネットが進歩すると不満が出ることもあるようだ。

2011/11/01

ごはん

一人暮らしをかれこれ8年近くしてるが食費の変化について観察してみた。

イギリスに居たとき
パン 800g   60円ぐらいだった £1=200円でだよ
パスタ 400g   で30円ぐらい 茹でるのめんどいんだよね。
ビーンズ ってわかる? 豆のトマトソース煮と思ってください 一缶 30円ぐらいだったか?

なんかこれぐらいしか食べた記憶ないんですけど。 記録みたら、月の食費10ポンド(2000円)いってない月が結構あった。 経済的...というか貧乏。


現在
コメ 1980円 10kg 歩いて持ってくるの重ぃ
パスタ 1980円 10kg  チュニジア産の
卵 168円 10個入り フツーのですよ
ふりかけ 83円 パスタにも合うことがわかった。
納豆 58円-78円 なんか毎日食べてるかも

先月は5256円だった。 もう少し減らしたい。日本はやはり食費が高いようです。

2011/10/26

my laptop was dead

Yesterday, after I updated my Ubuntu, something went wrong with my laptop. Tried Rescue but nothing was improved. I got lots of my simulation result in the hard disc drive which worth 3 months of my PhD life. Fortunately it was salvaged now.

keep backup constantly which is what I studies from this experience.

I stored my codes in a separate machine since their are small sizes though the calculation results nearly reaches 200GB. It's not easy to relocate.

2011/10/18

matrixのつくりかた。

C++でmatrixを作ることで少し悩んでいることがある。

いつもこんな感じで作っている。

1 template< unsigned int rows, unsigned int cols, typename Type >
2 class Matrix{
3 Type *element;
4 public:
5 Matrix();
6 ~Matrix();
7 };

エレメントにアクセスするときにメタ化してコンパイル時に展開させたいのだが?

関連書物

C++ テンプレート完全ガイド (Programmer’s SELECTION)


C++ Template Metaprogramming: Concepts, Tools, and Techniques from Boost and Beyond (C++ In-Depth Series)

2011/10/17

steve jobの裏で

Steve Jobがなくなったとき世界各国のニュースで特番が組まれるほどの大騒ぎになりました。その数日後にもコンピューター業界で最も有名な人物'Dennis Ritchie'がなくなりました。
しかし、その方の訃報は大きなニュースとして取り上げれれません。

コンピューター業界への貢献度としては

Dennis Ritchie > Steve Jobs

だと思います。なぜなら、彼がC言語とUnixを作らなければMac OSは生まれなかったかもしれません。
おくやみ申し上げます。

2011/10/14

続・時計

昨日の続きになりますが、こんな感じの時計が欲しい。
文字盤が数字で見やすくてベルトが革とかなの。

これ非常に理想に近いのだけれども本体が金属なのが残念。やっぱり安い時計を買ってベルトだけ付け替えようかな?

時計

ずっと使っていた腕時計が一年ぐらい前に壊れてしまい、買い換えることにした。 時計に特にこだわりはないので国産のソーラー発電のクロノグラフを選んだ。 今のちゃんと動いてくれるのだが付ける機会がガクッと減った。

とにかく重いのだ。前の時計は安物だがチタン製だったので意外に軽かったが、新しいステンレスの時計は重さがはっきりわかる。

そして大きいのもマイナスだと思う。キーボードを打つときに、端に時計があったってしまい非常に打ちにくい。

この二つの理由でつけなくなった。やはり機能とか見た目ではなくて、軽くて小さいものを選んだほうが良いのかもしれない。しばらくしたらプラスチック製の小さくて見やすいのを探そう。ちなみに私は絶対アナログ時計派です。

2011/10/04

画像データ処理

流体やってるのになぜか画像処理が主な業務の今日この頃です。

今日やってみたのは画像のピクセルの輝度の値をグラフにしてみました。非常に簡単にできます。

4x4のテスト画像を読み込んだ状態での結果。



meshの角がピクセルの値になってます。

2011/10/02

X Factor

Janet Devlin X Factor UK



すいません埋め込みできない様になってるのでリンクをたどってください。
http://youtu.be/MX-Nj539cY0

もうこの子でいいじゃん! マジめっさ歌上手いんですけど。
クリスマス前まで引っ張る意味あるんでしょうかね?

注目のSammy Brookとjonny robinsonもjudges houseまで残ってけど...

五重、七重対角行列

陰解法で解くプログラムを作成中結構悩んだ。SORを使えばマトリックスの形を気にしなくてもいいのだけれとも。
CG系の解法では、一度、係数マトリックスを組む必要がある。 

三重対角と同じように対角に集まって五重、七重になるっと思っていたら、違いました。

かなり変な行列の形になるよ。

三次元の場合、中心に三本のバンドが合って、その両脇にyとzのセル数離れたところに、二本のバンドがある

2011/09/30

続・食中毒で病院に行ってきた

先日病院にツケで診察してもらいました。

今日払ってきたらなんと、9000円ぐらいだった。事前に万札おろしておいてよかった。

検査二つもしたからこれぐらいはしょうがないのでしょう。

しばらく贅沢はできません。我慢します。

2011/09/27

amazon USから本が届いた

一ヶ月ぐらい前にたのでおいた本が今日Amazon USから届きました。実際にはmarket palceのお店なのですが。

同時に二個頼んだのに一個は3週間ぐらい余計に掛かりました。よく見たら'ベルギー'の文字がどういう経路で来たんだ?

2011/09/25

物理学者

なんかニュートリノが光より早く移動したらしいですが、私にはよくわかりません。古典ですから

物理学者の典型的な風貌と言えば、もじゃもじゃな髪型もしくは、ハゲで、メガネをかけていて、あんまり身だしなみについては気にしない。とかでしょう。

しかし今日ご紹介する人は違います。しかも元ミュージシャンUK chartで1位になったこともある人です。現在CernとManchester大学の教授をしています。

2011/09/23

写真を取らなくなった

デジカメを2003年ぐらいに購入して結構写真とかとってたけど、この頃全然取らなくなってしまいました。写真を撮るときに、その後の管理とかあとで見るのかな?とか考えるようになってしまったのがたぶん理由。

大人にはなりたくないものです。純粋ではなくなってしまうから

と考えるべきか

'思い出は心の中に'と、肯定的に捉えるべきなのでしょうか?

久しぶりにカメラを手にとってみたい。











実際の理由(切実)

画像とたまるとHDDの容量使うんだよね。研究関係で大量に容量いること結構あるし、その割り切りのせい
HDD買えばいいんだけどさちょっと今お金が。

2011/09/22

病院に行ってきました。

先週の金曜日(16sep2011)から調子が悪くて大変でした。連休中は医療機関が皆しまっており。
月曜日は学校関係で忙しく病院にいけませんでしたが、ようやく昨日、診察してもらいました。

結果は、

食中毒



やっぱり、一回キレイかよくわからない三日ぐらい放置した鍋を使ったことがあって(ひかないで)...

でも、検査にものすぐ時間がかかった。血液と検便しました。3時間くらい掛かったので、診察を終えたのが、午後6時少し前。5時30分頃には、外来には患者は誰もおらず。夜勤の交代の人が出勤してきてました。そして病院の外来システムが時間外なので処理できないとのことで。まだ診察代払っていません。ツケです。

処方せんも出してもらえないので。病院で薬を、直接もらいました。

今日は元気です。

2011/09/20

熱が下がりません

先週の金曜日(16日)からずっと調子悪いです。

さすがに徐々にはよくなっていたので熱は引いただろうと思って学校の保険センターに言って検温してもらったら37.5℃あった。下がってない。
夕方以降は、たしかに毎日ふらふらする。

2011/09/18

X factor (UK) で気になっているひと

Sami Brooke
John Wilding
Lascel Woods
Luigiano Paals
janet devlin

you tubeでみられるよ

食中毒か?

ものすっごく調子悪いです。

熱もあるし、頭痛いしずっと下痢。こんな状態がもう三日ぐらい。医療機関も閉っていてどうすることもできません。

2011/09/16

TESCO in TOKYO

東京のテスコ系列のお店に行ってきた。

Tesco Expressもあるらしいけど行ったのは’つるかめや’
非常に日本的なネーミングセンスだ。これなら亀仙人も鶴仙人も納得だろう。

商品を漁るとTesco finestと懐かしのパッケージが。おおッ↑

自社製ブランドTop valueみたいのがあって下からValue, 無印の, finestというレンジになっている。

でも値段高いし。Finestとか買ったことないんですけど、それに品数すくなすぎだよ。 結局、digestive x 4(紅茶とセットで食べる陽のビスケット)とbaked beans(イギリスの朝の定番豆料理、味は賛否が分かれる)だけ買ってきた。大体1000円ぐらい。本国なら500円ぐらいだと思う

でも日本撤退するらしいのでもう行けない。








追記
自社製ブランドが日本化しているらしく、本国で見られないものもありました。Tesco スルメイカとか。ネタで買ってみようかと思ったけどやめました。

2011/09/14

学会行ってたさ

学会の為東京にいました。

大変だった。いろいろ助けが合ってどうにか無事に終了しました。特に難しい質問もされなかったし。

2011/09/10

イギリスの定番メニュー 1

イギリスの朝食を

Heinzのbaked beans



日本で売っているのでしょうか?



焼いたトマト、焼いたウインナー、ビーンズ、玉子焼きとトーストが定番。

ああ、そうそういい忘れましたが

焦げ目の厚い層ができるまでしっかり焼く


と本場感が楽しめます

2011/09/09

homepageに記事を追加

Compressed Row Storaged Bi Conjugate Gradient Solver / 列圧縮化共役勾配法



CRS格納、列圧縮格納した双共役勾配法のソースを公開しました。
crs bicgstab

Diffusion / Conduction / Poission / Elliptic Equation by 3d Explicit method / 拡散、伝熱、ポワソン、楕円形偏微分方程式の三次元陽解法



3d_poission

2011/09/08

英語の教材、イギリス英語をみにつける

イギリス英語にこだわる人のために

今こんなのあるんだ。










これはもってた。結構参考になった、知っとくとネイティブ(英人)との会話に役に立つと思う。アメリカ英語との違いも詳しく説明している。
だたいくつかのフレーズは死語。あと出版時期が古いので、(改定されているか不明)話題が古い。未だにスパイスガールズが全盛。

この辺はしょうがない。

英語のクラス

なんと英語のクラスの補助をすることになった。

で今日担当の先生に会ってきた。

カナダの人だった。で自己紹介のあと

”もしかして、イギリスにいた? アクセントが...”



やっぱりネイティブにはすぐバレる。

2011/09/07

ネットブックを落とす

物理的に高いところから落としたんじゃありません。

3時間ぐらい? ずっと計算回していいたら、突然プツンっと逝きまし....た。

再起動したからよかったけど、ひやひやもんだった。負荷かけすぎたか。

やっぱり大きな計算は計算ノードでやろう。

2011/09/05

三次元拡散方程式を解く 追記

断面を表示する方法があった。可視化するにしても軽い。

あと可視化はみんなParavirewでやってます。 追記: 二次元だけど陰解法も追加 http://a-daily-life-in-the-office.blogspot.jp/2012/04/blog-post_3867.html





イギリスの訛り

自分の研究室の人じゃないのだけれど、3つの研究室で大部屋を分けているのでイギリスの方がひとり同じで部屋にいます。初めて話したとき、liverpool周辺の人だと思って聞いたらやっぱりそうでした。

イギリス英語でも方言がいくつか存在します。代表的なものを紹介

標準イギリス英語


標準イギリス英語。ロンドン周辺など、南の広い地域の人は日常これで話します。BBCとか

ウェールズ(南ウェールズ)


自分が住んでた地域なのでたまり訛りが出ると言われました。北はかなり違うらしいです。


ニューキャッスル周辺


かなりはっきり訛りがわかるよ。この女性がニューキャスルの訛り


リバプール


ビートルズの故郷、これも結構簡単に分かる。このふくよかな青年がそう。
http://youtu.be/mHxhjhBsWi4

マンチェスター


バーミンガムとマンチェスター周辺の方言の違いは、いまいち違いがわからない

スコットランド


聞けば、はっきりわかる


アイルランド


なんとなくわかる。ゲストの人の方

2011/09/04

拡散方程式を三次元で解いてみた

ボックス領域を陽解法の差分で解いてみた。これはさっくりできたけど、VTKへのIO書く方に時間を費やした。32x32x32がメモリーの限界でした。

三次元の可視化ってめっちゃ重いんだね。atom mechineではフレーム更新に20秒近くかかる。ネットブックは止まる->kill -9コース。

09/feb/2012そういやコードあげといた。Paraview用のvtk(vtu)I/O付き、三次元のvtkを結果ファイルとして出力するよ。 追記: 二次元だけど陰解法も追加 http://a-daily-life-in-the-office.blogspot.jp/2012/04/blog-post_3867.html
http://www.geocities.jp/yosuke_3141592/index.html




2011/09/02

AVSからVTKに追記

統計を見ているとAVSからVTKフォーマットへの変換法を探している方が多いようなので書いておきます。

AVSのフォーマットはよく知らないけど(セレンディピティ serendipityとは扱えるの?)

でもメッシュのデータはconnectivityと座標と各ノードやセルでの値を与えてやれば良いので変換プログラムならば簡単にかけると思う。

ただしVTKではAVSの他にもセルあたりのノード数(オフセット)とセルのIDを与える必要がある。

今度書いてみます。

簡単に擬似的なフォーマットを書くと

AVS



ノード数 エレメント数  変数の数
ID コネクティビティ
ID 座標
変数の数 変数の成分
スカラー データ
ベクトルデータ

そしてこれが例厳密には応力は2nd rankのテンソルなんだが

AVS


6 2 1 0 0
1 0.0 1.0 0.0
2 1.0 1.0 0.0
3 2.0 1.0 0.0
4 0.0 0.0 0.0
5 1.0 0.0 0.0
6 2.0 0.0 0.0
1 1 quad 4 5 2 1
2 1 quad 5 6 3 2
1 1
stress, si
1 0.0
2 50.0
3 20.0
4 0.0
5 0.0
6 0.0

VTK

ノード数 エレメント数
スカラーデータ
ベクトルデータ
コネクティビティ
オフセット値
セル ID

参考までに
<UnstructuredGrid><PUnstructuredGrid>

などというように変更して開ければ良い。詳しくは
www.vtk.org/VTK/img/file-formats.pdf のp16以降にに変更すべきタグについて書いてある。

VTK 旧形式


# vtk DataFile Version 3.0
vtk output
ASCII
DATASET UNSTRUCTURED_GRID
POINTS 4 float
0 1 1 1 1 1 0 0 1
1 0 1
CELLS 1 5
4 2 3 1 0

CELL_TYPES 1
9

CELL_DATA 1
SCALARS Material%20Id int
LOOKUP_TABLE default
1
POINT_DATA 4
SCALARS pressure float
LOOKUP_TABLE default
0 19 0 0
FIELD FieldData 1
velocity 3 4 float
1 0 0 0.4767 0.5721 0.6674 0 0 0
0 0 0

VTK XMLフォーマット

<VTKFile type="UnstructuredGrid" version="0.1" byte_order="LittleEndian">
<UnstructuredGrid>
<Piece NumberOfPoints=" 4 " NumberOfCells=" 1 ">
<PointData Scalars="pressure">
<DataArray type="Float32" Name="pressure" format="ascii">
0.000000
19.000000
0.000000
0.000000
</DataArray>
<DataArray type="Float32" Name="velocity" NumberOfComponents="3" format="ascii">
1.000000 0.000000 0.000000
0.4767 0.5721 0.6674
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
</DataArray>
</PointData>
<CellData Scalars="Material Id">
<DataArray type="Int32" Name="Material Id" format="ascii">
1
</DataArray>
</CellData>
<Points>
<DataArray type="Float32" Name="Points" NumberOfComponents="3" format="ascii">
0.000000 1.000000 1.000000
1.000000 1.000000 1.000000
0.000000 0.000000 1.000000
1.000000 0.000000 1.000000
</DataArray>
</Points>
<Cells>
<DataArray type="Int64" Name="connectivity" format="ascii">
2 3 1 0
</DataArray>
<DataArray type="Int64" Name="offsets" format="ascii" >
4
</DataArray>
<DataArray type="UInt8" Name="types" format="ascii">
9
</DataArray>
</Cells>
</Piece>
</UnstructuredGrid>
</VTKFile>





命名 マイコー

ヤフオク見ていたらかなり高性能な計算機が破格の価格で出品されていました。

もちろん落札。

Sun Microsystems Ultra 40



ですよ。opteron x 2, 8Gのやつです。世代は古いですが。研究室に運ぶのが大変だった。ありがとkさん,mさん。

2011/09/01

人生は

隣の席の人(ゲーマー)の今日の格言

人生はレベル上げ。












悟ってるよあんた。

2011/08/31

英スーパー「テスコ」が日本撤退 

英スーパー「テスコ」が日本撤退 

だそうです。がーん。baked beans, yorkshire puddingとか日本でも買えると思ったのにでも一度は閉店前に行ってみたい。

使える言語、話せるではない

自分が使える言語

C
大体これで書く事が多い。何でもできるので不自由ない。

C++
使えるっていっていいのかな? Cほど隅々まではわからないけど、C++機能多すぎ。でもちょっと窮屈で使いにくい感がある。小規模なコードならCの方が短くかけるし。初めて本格的に学んだ言語。学校で初めて触れたよ。

Fortran 90
指導教官にこのコードでやってと、当時f90全くわからないのに渡され仕方なく覚えた言語。Cより簡単だと思う。ただ入出力が使いづらい。この点はFortranからCを呼んで解決。C++ とも通信できるけど、Cに一旦落とす必要がある。当然クラスとかテンプレートは使えない。F77,F66とかも読むことはできる。

Shell Script ( Bash )
バッチ処理用ですね。真剣に学んだことないけど一応困らないぐらいには使えます。

Perl & Python
最近学びだした。Pythonの方が簡単らしいがC/C++を知っているとどうもPerlの方に親近感をかんじてしまう。

HTML (4.0)
化石テクノロジーですよ。と言ってもこのブログも、自分でHTML を使ってすこしいじったのですが。

CSS
もうあんまり覚えていない。リファレンス必須だな。

はじめるなら簡単なPythonと言われてるけどどうでしょう?C言語に近いPerlのほうがのちのちC/C++を学ぶことを考えたらいいんじゃないでしょうか?科学計算系はコードの豊富さからFortran 系は必須だけど。

おすすめはこのあたりの本


Pythonスタートブック

独習C++ 第4版

独習C 第4版



2011/08/30

人は外見によらない。

まずは見てくれ、この漢の生きざまを!

無職中年男が輝くとき



英語わからない人は最初は少し飛ばすといい。

http://youtu.be/drcvM-yiKTU

スーザンボイルとかポールポッツを思い出す。この他にもB.Lloydっていゆオネエ系の32歳の人もびっくりした。

でも個人的には2011 espisode1で出てきたElton John を歌ったJanet Devlin。あの娘は一流になると思う

2011/08/29

GPGPU

今はやりのGPGPU。自分のネットブックでもできるんだけど。OpenCL超変態仕様!

Hello wolrdのOpenCLソース見たけど、すっごく長い。今まで見た中で一番長いHello worldだと思う。200行ぐらい。

なんでも、デバイスの割り当てだの、初期化だのを指定してあげなければいけない。CUDAはもっと簡単らしい。

でもAMD/ATIのパフォーマンスが出るからね、がんばるじょ!

2011/08/28

Intel vs AMD その壱

Intel vs AMD



Intel対AMDと言えばパソコン雑誌お決まりの企画。

年に一回ぐらいはやってる。性能ではIntel、価格と性能を考えると、AMDっていうのが、最近のお決まりのパターン。

でも、中身の見えないベンチマークソフトばっかり使っているので実際何が起こっているのかが全くわからない。じゃあ数値計算ではどうなのだろうと思ってやってみた。

結果は

Intel圧勝



Core 2 duo世代の4コアXeon (2007年ぐらい?)のCPUが12コアのIstanbul Opteronを破ってしまいました。 

もち並列化して全コアを使ってBiCGStabソルバーにて4096x4096の密行列を解きます。ちなみにCG系(クリノフ系ソルバー)はほとんど内積計算です。

ここはOpenMPにて並列化。コンパイラーはgcc4.2.x多少バージョンが違うのですがこの辺は学校の管理なのでいじれません。 参考にしますた OpenMPによる並列プログラミングと数値計算法

たぶんだけどICC (Intel C/C++ Compiler)使えばIntelはもっと早くなると思う。

あとで結果載せます。

プログラミング初心者におすすめな本

こないだ友達からプログラミング始めたいんだけど何からやればいい?って聞かれて。

やっぱCかな?っと思い。これを勧めた。独習C 第4版

今思えばHTML,PythonとかPerlの方がとっつきやすいよね。

で本の紹介だけど。

ハーバードシルトって人が書いている定番中の定番。第四版まで出てる。

Cは1990年の規格と1999年拡張規格によって定められているので旧版でもいいと思う。時期がよければ、中古の第3版は1000円切るぐらいの安さだしね。

初版とかは100円です。さすがに初版はお勧めできないけど。個人的には対費用効果としては3 版あたりが狙い目だと思う。

ポインタの使い方が入門書としてはかなり詳しく書いてあるのでおすすめ。正直、機械系でやったC言語の授業よりも内容が深い。

C言語に触ったことのない人や、初心者向けの本では一番おすすめ。

ついでに自分のホームページもリンク

自分のサイト

貧乏人のPCライフをリンクに追加。

おもにPCとか数値解析関連のことを扱っています。車のことも追加する予定だけどいつになるやら。

リンクフィールドがない

友達がブログやってるので相互リンクいました。

The Wizard of Scienceが左下でリンクされています。

これ追加するのに一時間ぐらいかかった。使っているテンプレート、テンプレートじゃなく仕様?、がリンクフィールドの追加機能がなく、しょうがないのでHTMLを直接編集しました。

いやHTMLなんて、ほんといじるの何年ぶりだろ。今HTML5が騒がれていますが、 旧世代のHTML4しかわかりません。本当に最低限のことしかできないよ。

2011/08/27

移流拡散方程式を解く

一次元の移流拡散方程式をcentral difference methodで解いてみたよ。

ちなみにクリックすると絵が動くよ。



今まで使ったことのある Linux / Unix

Mac OS X powerpc
当時はまだUnixと認定されていなかったんだけど。まあいいか。10.3を使ってました。まあ楽ですよ。自分で開発環境を作ろうとしたけれど、gccとか環境が特殊なのでコンパイルできななかった。腕の問題か。

Darwin powerpc, i386
Appleが配ってたisoのやつです8.0だったかなi386版を試しにインストールしてみた。CUIからデスクトップ環境構築やるほどマゾではないので使ってません。

SUSE Linux powerpc
初めて使ったUnix likeなOS。CPU常時75%。HDD死ぬ。最悪の初体験。powerpc版は、最悪でした。10.1 ぐらいだったか?

Ubuntu x86_64
現在デスクトップ環境で使用中。とにかく楽だしリポジトリも豊富。安定してるし言うことなし。

NetBSD x86_64
5.1を使ってましたが、起動時がすごく不安定だった。pkgsrcはバイナリーリポジトリになれた身には厳しい。

Scientific Linux x86_64
簡単インストールで使い易いけどリポジトリにちょっと不満。軟弱者なのでコンパイルとかめんどくさくて。本来するべきなんでしょうけれど。



CRS BiCGStabソルバー

やっぱり自分で書いたライブラリーが一番使いやすい。今までヤコビとかで頑張っていたんだけど、compressed row storaged ( CRS ) Bi Conjugate Gradient Stable ソルバーつっくったよ。

めっさ早い。

256x256の7重バントマトリックスかでも50スッテプ以内で収束する。さっきやっとこさOpen MPで並列化が完了したさ。

前処理も時間があったらしてみたい。

09dec2011追記
ソースをホームページにのけってみた。cでかいてあります。makeすれば動くはず

2011/08/26

ネットブックで解析

プログラミングはほとんどネットブックでやっています。

キーボードと画面が小さくて大変ですけど。やはりどこにでも持っていけるのは大きい。
使っているネットブックはAcer Asire One 522という日本未発売の機種。アメリカからおっくてもらいました。

なぜこの機種かというと やっぱりAscii配列のキーボードじゃないと打ちにくい。そして、OpenCLが使えること。

C50 というAMD Fusion chipが乗っているのでグラフィックの性能もそこそこ。計算結果を見るにも便利なのですが、メモリーが1GB しかないので辛いです。

windos starterが乗ってましたが当然linuxにすぐに入れ替え。

2011/08/25

テスコ じゃぱん

英流通最大手のTESCOがなんと日本にも展開していることがわかった。

Sugeeeeeeeeいきたい!

1/2lbのチーズとかグレイビーとか日本でも売ってるのかな?

CRS化

PG-BiCGStabソルバーをCRS化なう。

ネットブックでマトリックスそのまま使おうとしたら落ちた。

メモリーがもっと欲しい。 (1GB)

2011/08/24

買わぬPCの皮算用? 

計算ノードの性能がやっぱり欲しくなってきた。atomでも結構行けると思ってきたけどさすがに購入時にメモリーを1GBにしたのは良くなかった。

firefoxと研究のコードを同時に走らせるとすぐにswap。firefox + paraviewでもswap。swapもあんまり多く取らなかったし。

メモリー安いし追加で買おうか考えたけど、解析結果を見るときグラッフィック性能とかも欲しいので新しくCPUとmother boardだけ変えようかと画策中。

Silcon Power DDR3-10600 8GB
AMD A8-3850
BIOSTAR TA 75A+

本当はASUSのマザー,CFDのメモリーがいいのだけど、お金がないので。この構成で21000円ぐらいでいけそう。

うーん悩む


がいじん

研究室には留学生が2人います。

が、同僚と教官の認識では三人ということに

私は外人扱いです。とほほ

2011/08/23

Gmshで立方体を作った。

Gmsh で立方体と3Dメッシュを作ってみました。

lc = 0.01;

Point(1) = {0.0, 0.0, 0.0, lc};
Point(2) = {0.1, 0.0, 0.0, lc};
Point(3) = {0.1, 0.1, 0.0, lc};
Point(4) = {0.0, 0.1, 0.0, lc};
Point(5) = {0.0, 0.0, 0.1, lc};
Point(6) = {0.1, 0.0, 0.1, lc};
Point(7) = {0.1, 0.1, 0.1, lc};
Point(8) = {0.0, 0.1, 0.1, lc};

Line(9) = {1, 2};
Line(10) = {2, 3};
Line(11) = {3, 4};
Line(12) = {4, 1};
Line(13) = {1, 5};
Line(14) = {2, 6};
Line(15) = {3, 7};
Line(16) = {4, 8};
Line(17) = {5, 6};
Line(18) = {6, 7};
Line(19) = {7, 8};
Line(20) = {5, 8};

Line Loop(27) = {9, 10, 11, 12};
Plane Surface(27) = {27};
Line Loop(29) = {20, -16, 12, 13};
Plane Surface(29) = {29};
Line Loop(31) = {17, -14, -9, 13};
Plane Surface(31) = {31};
Line Loop(33) = {19, -16, -11, 15};
Plane Surface(33) = {33};
Line Loop(35) = {10, 15, -18, -14};
Plane Surface(35) = {35};
Line Loop(37) = {18, 19, -20, 17};
Plane Surface(37) = {37};
Surface Loop(38) = {37, 35, 27, 31, 29, 33};
Volume(39) = {38};

上のコードはジオメトリーしか作れないのでGUIを立ち上げメッシュを作成すべし!


TOEIC

ようやく900点超えました。

思えば留学した仲間の中で唯一900 点取れてませんでした。 理系だからいいのっ! っと言い訳してましたが、これで突っつかれなくてすむぞ。

でもギリだったのは秘密。今度は部屋を出ないで終了時間まで見直しします。

2011/08/20

Gmsh使ってみた

Gmshつかってみた。

感想はめっさ楽〜♪

structuredでもconnetivityのところ創るの大変なんどよね。本当はちゃんとmesherをつくりたいところなんだけどちょっと今は無理なので。

VTKのファイルに入れればいいだけなので簡単に書けそう。

近日中にあぷする予定。

2011/08/19

コンピューター

数値計算が専門なので朝から晩までディスプレイに向かっている毎日です。

さて、私の計算ノードを紹介します。



自作 D510 atom機
新品でも20000円ぐらいしかしなかった。超安物機。並列化すればpentium3には勝てた。

Acer Aspire one 522
アメリカからネット輸入したやつ。ネットブック。ディスプレイとかキーボードが小さいのが難点。うちで唯一のGPGPUマシン。ネットブックとは思えないグラフィック性能を誇る。ただメモリーが少ないのでparaview + firefoxで即swap

ibook G4
 初めて買ったパソコン。まだ現役。漢のPower G4だ! 超鈍足マシン

Sun Microsystems Ultra 20
 中古で20000円ぐらいで購入あんまり使ってない。速さは不明。石はOpeteron144

HP xw4300
研究室のPen4機。自分の管理下にあるマシンでは最速だと思う。でもグラッフィックはネットブックに負ける。



ゲーマーとかがハイスッペクなマシン使ってると羨ましく見える。
というかもっと有意義なことに使ってくだされ。

大きな計算は学校の計算ノードを使うけどね。

日本が世界からどんなふうに見られているか

www.youtube.com/watch?v=bqGtH5DT76c

このビデオから分かることは二つ。

日本は変に思われている。フィンランドも変に思われている。

2011/08/17

何カ国語しゃべれますか?

留学から帰っきたあと結構聞かれて、結構困る質問がこれ。

一応日本語は母国語だし、英語もしゃべれるけど相手がどのくらいのレベルの’会話力’を尋ねているのかわからない。

日本語は大丈夫なナズなのでおいといて。 

英語力が問題。日常会話は問題なし、専門分野(工学)も問題なしだけど。

求人とかに書いてある’ビジネスレベル’ってなんだ? 実は結構ビジネスレベルの表現とか単語とか知らなかったりする。鍛えねば。
 
先程、日常会話は問題なしと書いてしまったが、実は特異ケースがたまにある。それは病院とか非常まれにしか訪れない状況では、言葉が詰まるとこがかなりあった。

たとえば、以前度のような薬を使用していたか、とか病歴を聞かれると。病名とかは病名とかはすぐに出てこない。私の場合、皮膚病でした。

cold とかasthmaとかならいいんだけどね。現実には、都合よく簡単な英単語の病気にはならない。解決策として病院行く前にググったりwikiで調べたり。
 

ちなみに二ヶ国語とかかなり少ない方だと思う。今まであった人の中での最高は大学で一緒だったルクセンブルクの子。何でも8、9ヶ国語ネイティブ。レベルが低くていいいならそれ以上話せるらしい。でもちょっとずるい

彼女が話せる言葉
フランス系ルクセンブルグ語
ドイツ系ルクセンブルグ語
フランス語
ドイツ語
英語
スウェーデン語
デンマーク語
ノルウェー語

この辺は聞く分には問題ないらしい
オランダ語 
スペイン語 

何でもルクセンブルグ語は、フランス語とドイツ語の方言のような感じらしい。ベルギーとかもこんな感じだよね? 彼女曰く’違うのよ’とのこと。 フランス語圏、ドイツ語圏でも通じるとか。スカンジナビア系の言語もそうじゃなかったっけ?

2011/08/07

c++って

使える言語はFortran 90, C, C++, Perl, Sh。 あとfortran77/66もよめる。たまに書き直しする時に使うぐらいだけど。

C++が使えると言っていいのか悪いのかわからい。

正直あんまり自信がない。だって関数多すぎ。わかんないよ全部なんて。一応テンプレートとかわかってるからいいよね? 

カプセル化とかしていないけどさ  いいんだよ!、HPCは速度優先だぁ〜!(開き直り) 

独習C 第4版

独習C++ 第4版

2011/07/25

Scientific Linuxを使ってみた

Scientific Linuxは欧州の原子力研究機関がRea Hatを元に開発したOS。GUIすらないバリバリ科学系仕様なのかと思いきや結構ユーザーフレンドリーでインストールも楽でした。Cent OSかFedraになれてる人におすすめ。6.0のX86_64を使用中ですがかなり安定してる(使用2週間)まだアプリが急に落ちたり変なプロセスが裏で周り出したりしてない。ちなみにPen4機にて活動中。

でもリポジトリにソフトが少ない、というか科学計算で結構使うソフトもない場合がある。Maximaとかoctaveがないのはちょっと不便。もともとクラスター用に作られたOSだからこの辺はしょうがないのかもしれない。

使ってみたい人はここからどうぞScientific Linux

2011/07/22

To buy or not to buy

This is my current biggest headache for Kindle. I was thinking to get Skiff, now how many of you remember this, but the development was discontinued. It was the story about a year ago. So I'm aiming for Kindle now.

I just want it to read PDF documents for technical instructions and papers, not for toys. That's I feel the cheapest model is the most suited for me, but it's not sold here in Japan. Should I try the pricely one ?

2011/07/21

ご飯をたく 鍋で

一人暮らしを初めてからずっと炊飯器などは使わずにお鍋でご飯を炊いています。最近になってIHのコンロを使い出しましたがあんまり火力が強くない。多分鍋底の接触した部分しか発熱しないんだと思う。なので、あんまりIHで炊いたご飯は美味しくない。というのが個人的な意見です。

やっぱりガス炊きだ。

2011/07/10

VTK file format quad

Here is my VTK 2D quad file writer sample. I know there is not so many articles available especially, XML format version. That's why I decided to publish.

Legacy VTK format is simple, easier and pdf documented if you want to save your time go for it, but if you need to run Paraview in Parallel you need to write in XML format. Though guys got such a skill probably never refers to my blog.
It's C coded although the main calculation bits is written in Fortran 90. I don't think there is particular issue but, always the rule, be aware with loops. Its assumed Staggard grid and that's why linear interpolation is embedded.

Here is the code in C

日本語 / Japanese
自作プログラム用にVTK  2D quadで結果をだす部分を書いてみた。需要ないしかなり汚いんだけどXMLサンプルとかほとんどwebになかったのでおいとく。スタガードグリッドをデータとして過程しているので2D quadに対応するために線形補間してます。あとmainで読んでる側をF90で書いてるので配列とか使うとき注意、特に問題ないと思うけど。

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

void vtk_headder( FILE *wfp, int ni, int nj, int nk);
void vtk_cell_scalar_data( FILE *wfp, int ni, int nj, int nk, double *var, char name[32]);
void vtk_cell_scalar_data_int( FILE *wfp, int ni, int nj, int nk, int *var, char name[32]);
void vtk_nodal_vector_data( FILE *wfp, int ni, int nj, int nk, double *var1, double *var2, double *var3);
void vtk_coordinate( FILE *wfp, int ni, int nj, int nk, double dx, double dy, double dz);
void vtk_connectivity( FILE *wfp, int ni, int nj, int nk);
void vtk_offset( FILE *wfp, int ni, int nj, int nk);
void vtk_cell_type( FILE *wfp, int ni, int nj, int nk, int cell_type);
void vtk_footer( FILE *wfp );

void velocity_interpolation( int ni, int nj, int nk, double *var1, double *var2, double *var3);

void vtk_headder( FILE *wfp, int ni, int nj, int nk ){
    //-----------------------------------------
    // VTK header
    //
    // Varibales:
    // number of nodes
    // number of cells
    //-----------------------------------------
    fprintf(wfp, "<VTKFile type=\"UnstructuredGrid\" version=\"0.1\" byte_order=\"LittleEndian\">\n");
      fprintf(wfp, "<UnstructuredGrid>\n");
        fprintf(wfp, "<Piece NumberOfPoints=\" %d \" NumberOfCells=\" %d \">\n", (ni-3)*(nj-3), (ni-4)*(nj-4));
}

void vtk_cell_scalar_data_int( FILE *wfp,int ni, int nj, int nk, int *var, char name[32]){
    //-----------------------------------------
    // Scalar cell data for int, material use
    //
    // ==Varibales==
    // char name: (data's name)
    // int *var: each cell
    //-----------------------------------------
    int i,j;

    fprintf(wfp,"<CellData Scalars=\"scalar\">\n");
           fprintf(wfp, "<DataArray type=\"Float32\" Name=\"%s\" format=\"ascii\">\n", name);
    for( i=2; i<ni-2; i++){
        for( j=2; j<nj-2; j++){   
            fprintf(wfp, "%d ", *(var+j+i*ni));
        }
        fprintf(wfp,"\n");
    }
        fprintf(wfp,"</DataArray>\n");
}

void vtk_cell_scalar_data( FILE *wfp,int ni, int nj, int nk, double *var, char name[32]){
    //-----------------------------------------
    // Scalar cell data, Pressure use
    //
    // ==Varibales==
    // char name: (data's name)
    // int *var: for each cell
    //-----------------------------------------

    int i,j;

           fprintf(wfp, "<DataArray type=\"Float32\" Name=\"%s\" format=\"ascii\">\n", name);
    for( i=2; i<ni-2; i++){
        for( j=2; j<nj-2; j++){   
            fprintf(wfp, "%lf ", *(var+j+i*ni));
        }
        fprintf(wfp,"\n");
    }
        fprintf(wfp,"</DataArray>\n");
    fprintf(wfp,"</CellData>\n");
}

void vtk_nodal_vector_data( FILE *wfp, int ni, int nj, int nk, double *var1, double *var2, double *var3){
    int i,j;
          fprintf(wfp, "<PointData Scalars=\"point_data\">\n");
        fprintf(wfp, "<DataArray type=\"Float32\" Name=\"vars\" NumberOfComponents=\"3\" format=\"ascii\">\n");
    //for( i=2; i<ni-1; i++){
    //    for( j=2 ; j<nj-1; j++){
    for( i=1; i<ni-2; i++){
        for( j=1 ; j<nj-2; j++){
            fprintf( wfp, "%lf %lf %lf\n",
                *(var1+j+i*ni),
                *(var2+j+i*ni),
                *(var3+j+i*ni)
            );
        }
    }
        fprintf(wfp,"</DataArray>\n");
         fprintf(wfp,"</PointData>\n");
}

void vtk_coordinate( FILE *wfp, int ni, int nj, int nk, double dx, double dy, double dz){
    int i,j;
    double x;
    double y;
    double z;

    fprintf(wfp,"<Points>\n");
    fprintf(wfp,"<DataArray type=\"Float32\" Name=\"Points\" NumberOfComponents=\"3\" format=\"ascii\">\n");
    for( i=2; i<ni-1; i++){
        for( j=2; j<nj-1; j++){
            x = (double)j*dx;
            y = (double)i*dy;
            z = 0.0;
            fprintf(wfp, "%lf %lf %lf\n",
                x,
                y,
                z
            );
        }
    }
        fprintf(wfp,"</DataArray>\n");
          fprintf(wfp,"</Points>\n");
}

void vtk_connectivity( FILE *wfp, int ni, int nj, int nk){
    int i,j;
    int vtx1;
    int vtx2;
    int vtx3;
    int vtx4;

    fprintf(wfp,"<Cells>\n");
        fprintf(wfp,"<DataArray type=\"Int64\" Name=\"connectivity\" format=\"ascii\">\n");
    for( i=2; i<ni-2; i++){
        for( j=2; j<nj-2; j++){
            vtx1 = (j-2)+(ni-3)*(i-2);
            vtx2 = (j-2)+1+(ni-3)*(i-2);
            vtx3 = (j-2)+(ni-3)*(i-1);
            vtx4 = (j-2)+1+(ni-3)*(i-1);

            fprintf( wfp, "%d %d %d %d\n",
                vtx3,
                vtx4,
                 vtx2,
                vtx1
            );
        }
    }

        fprintf(wfp,"</DataArray>\n");
}

void vtk_offset( FILE *wfp, int ni, int nj, int nk){
    int i;
    int offset;

        fprintf(wfp,"<DataArray type=\"Int64\" Name=\"offsets\" format=\"ascii\" >\n");

    offset = 1;   
    for( i=0; i<(ni-4)*(nj-4); i++){
        offset = 4+4*i;   
        fprintf(wfp,"%d\n",offset);
    }
        fprintf(wfp,"</DataArray>\n");
}

void vtk_cell_type( FILE *wfp, int ni, int nj, int nk, int cell_type){
    /*----------------------------------------------------------------
        VTK Cell type use 9 for quad element
    ------------------------------------------------------------------*/
    int i;

        fprintf(wfp,"<DataArray type=\"UInt8\" Name=\"types\" format=\"ascii\">\n");
        for( i=0; i<(ni-4)*(nj-4); i++){
            fprintf(wfp,"%d\n",cell_type);
        }
        fprintf(wfp,"</DataArray>\n");
}

void vtk_footer( FILE *wfp){
    /*----------------------------------------------------------------
        VTK footter   
    ------------------------------------------------------------------*/
    fprintf(wfp,"</Cells>\n");
    fprintf(wfp,"</Piece>\n");
    fprintf(wfp,"</UnstructuredGrid>\n");
    fprintf(wfp,"</VTKFile>\n");
}

void velocity_interpolation( int ni, int nj, int nk, double *var1, double *var2, double *var3){
    int i,j;
    double *tmp_var1;
    double *tmp_var2;
    double *tmp_var3;

    tmp_var1 = (double*)malloc(sizeof(double)*ni*nj*nk);
    tmp_var2 = (double*)malloc(sizeof(double)*ni*nj*nk);
    tmp_var3 = (double*)malloc(sizeof(double)*ni*nj*nk);

    for ( i=1; i<ni-2; i++){
        for ( j=1; j<nj-2; j++){
            *(tmp_var1+j+i*nj) = 0.5*( *(var1+j+i*nj) + *(var1+j+(i+1)*nj) );
            *(tmp_var2+j+i*nj) = 0.5*( *(var2+j+i*nj) + *(var2+j+1+i*nj) );
            //*(tmp_var3+i+j*ni);
        }
    }

    for ( i=1; i<ni-2; i++){
        for ( j=1; j<nj-2; j++){
            *(var1+j+i*nj) =  *(tmp_var1+j+i*nj);
            *(var2+j+i*nj) =  *(tmp_var2+j+i*nj);
        }
    }

    free( tmp_var1 );
    free( tmp_var2 );
    free( tmp_var3 );
}

void yosuke_vtk_file_write_2d_quad_(
    int *ni,
    int *nj,
    int *nk,
    double *dx,
    double *dy,
    double *dz,
    double *u,
    double *v,
    double *w,
    double *p,
    int *image_step,
    int *fluid,
    int *bound
){
    int i,j,k;
    char target[32];   
    char target_file_name[32]="result/vtk_quad_2d";   
    char scalar_var_name[32];
    int cell_type;


    /*----------------------------------------------------------------
        Debug   
    ------------------------------------------------------------------*/
    //printf("%d %d %d\n", *ni, *nj, *nk);
    //printf("%d\n",*image_step);

    /*for( i=2; i<*ni-2; i++){
        for( j=2; j<*nj-2; j++){
            //printf("%d ",*(fluid+j+i**ni));
            printf("%f ",*(u+j+i**ni));
        }
        printf("\n");
    }*/

    /*----------------------------------------------------------------
    File name update
    ------------------------------------------------------------------*/
    sprintf(target,"%s-%d.vtu",target_file_name,*image_step);   

    velocity_interpolation( *ni, *nj, *nk, u, v, w);

    /*----------------------------------------------------------------
    File write
    ------------------------------------------------------------------*/
    FILE *wfp;   

    if( ( wfp=fopen( target, "w") ) == NULL ){
        printf("ERROR: file write error can not open the target\n");
    }

    /*----------------------------------------------------------
        VTK file for 2d quad element
        This file format is supported by Paraview
    -----------------------------------------------------------*/
        vtk_headder(&*wfp, *ni,*nj,*nk);

    /*----------------------------------------------------------
        Material (Cell Data)   
    -----------------------------------------------------------*/
        strcpy( scalar_var_name, "material" );
        vtk_cell_scalar_data_int(&*wfp, *ni, *nj, *nk, fluid, scalar_var_name);

    /*----------------------------------------------------------
        Pressure (Cell Data)   
    -----------------------------------------------------------*/
        strcpy( scalar_var_name, "pressure" );
        vtk_cell_scalar_data(&*wfp, *ni, *nj, *nk, p, scalar_var_name);

    /*----------------------------------------------------------
        Velocity (Nodal Data)   
    -----------------------------------------------------------*/
        vtk_nodal_vector_data(&*wfp, *ni, *nj, *nk, u, v, w);

    /*----------------------------------------------------------
        Nodal Coordinate   
    -----------------------------------------------------------*/
        vtk_coordinate(&*wfp, *ni, *nj, *nk, *dx, *dy, *dz);

    /*----------------------------------------------------------
        Connectivity   
    -----------------------------------------------------------*/
        vtk_connectivity(&*wfp, *ni, *nj, *nk);

    /*----------------------------------------------------------
        Offset (4 each)   
    -----------------------------------------------------------*/
        vtk_offset(&*wfp, *ni, *nj, *nk);

    /*----------------------------------------------------------
        Cell Type ( Use 9 for quad element )   
    -----------------------------------------------------------*/
        cell_type=9;
        vtk_cell_type(&*wfp, *ni, *nj, *nk, cell_type);

    /*----------------------------------------------------------
        VTK footter   
    -----------------------------------------------------------*/
        vtk_footer(&*wfp);

    fclose(wfp);

2011/07/05

友人のブログを見て

知り合いのブログのことを思い出して古いE-mailからのアドレスをたどって行ってみた。まだ更新していた。思えばかれこれ7年ぐらいあっていない。

そんなこんなで昔のことをブログの古い記事から振り返ってみると結構、自分の境遇とは違ったことに驚く。実は自分とその友人はともヨーロッパに留学していて無効で知り合いました。語学学校時代には日本人の知り合いも多かったが自分はあんまり関わり合いを持たなかったと思う。とういうか’海外にわざわざ来てなぜ日本人とつるまにゃならん’と当時は思ってました。

だから今でもトモダチが少ないのかも

今はこの人脈に助けられることも多い。感謝。
 
まあそれはおいといて、そのグループの約9割が文系の現地の大学に進学。自分を含め5人ぐらいしか理系に進まなかった。あっしはちなみに工学じゃ。

なぜみんそんなに文系に行くのだ?理系も楽しいと思うけど。海外で理系ってめっちゃ特だと思うけど、自分だけ?だって、日本の英語科でても満足に話せない人結構いるからね。

でここからが本題、だれか自分を雇ってください。

2011/06/29

この頃自分の音楽の好みがわからなくなってきた。

CDとかDownloadして特定の人のを聞く訳でもなくてyoutubeとかネットラジオをただ単に流すだけ。でも最近好みが変な方向に行ってる。

Defying gravity
Popular

とか結構流している。二つともミュージカルの挿入歌。結構聴いてから実際に見てみたくなってきた。

ほかは妥当なところ

Silver sun pickups
Way out west
Perfume
にゃど

2011/06/04

忙しすぎる〜

学会に出さなきゃいけない計算を、ここのところ毎日朝九時ぐらいから深夜までやってます。買い物いきたい、アマゾンでぶらぶらしたい、美味しいもの食べたい。

あと一ヶ月は我慢でしょうか。

2011/05/28

AVS inp からVTKへ

AVS inp形式のものをparaviewで使っていたのだけれどもやはりvelocity vectorがでないと不便なので書き直すことにした。もちろんvtu形式で書く。
VTK quadは簡単にかけたけれどもVTK quadratic quadなるものがかなり手強かった。ちなみにまだvectorを表示するとずれてる。
なんと、xml仕様で書きました。はい無駄な努力です。並列化はしません。

2011/05/25

Who's writing this blog ?

二十七歳の情報系の院生が綴ってます。修士までは機械系でしたが情報系に移りまして現在博士号取得に向けて日々精進しています。

好きなもの: PC、機械、実家の犬、音楽とか聴きながらぐうたらする
嫌いなもの: コーヒー

 

2011/05/15

まとめページ

      

リンク

The Wizard of Science
友達のブログ文化人類学とか難しい話をしております。あとホームページから自作ゲームも配布。