プログラム

shock tube::衝撃波管

飛行ロボット大会も大きな大きな悔しさを残しながら終わったので(24日の日記参照)、shocktubeのプログラムを書くことにした。昨日の飲み会前に終わらせたいなと思っていたのに歯医者とかあって終わらず、結局今日になって書くのは終わった。結果を表示させてみたらやっぱりどう考えてもおかしい。これからバグ取り無間地獄。

1次元shocktubeをYee 2nd-order upwind TVD schemeで解いた。コードは以下の通り。計算は一瞬で終わった。ubuntuでtimeコマンドで時間測ってみたらだいたい0.3秒くらい。一回一回速度違うんだなと思った。コンパイラはg95。なんでgfortranじゃないかっていうとgfortranはVistaにインストールできなかったから。

  • base.f90

References   [ + ]

1. <span class="synIdentifier">gamma</span><span class="synStatement">-</span><span class="synConstant">1</span>)<span class="synStatement">*</span>(h_av(i)<span class="synStatement">-</span><span class="synConstant">0.5</span><span class="synStatement">*</span>u_av(i)<span class="synStatement">**</span><span class="synConstant">2</span>
2. u_av(i)<span class="synStatement">-</span>c_av(i
3. u_av(i)<span class="synStatement">+</span>c_av(i
4. e(<span class="synConstant">1</span>:<span class="synConstant">3</span>,i<span class="synStatement">+</span><span class="synConstant">1</span>)<span class="synStatement">+</span>e(<span class="synConstant">1</span>:<span class="synConstant">3</span>,i

水曜は眠いわ:熱伝導解析終了!

朝眠いながらもなんとか起きて学校へ。ツナギを置いておく場所がほしいなあ。

1・2限は加工実習。今日も3時間立っているだけなので暇でしょうがない。旋盤で軸の大きいほうを加工しているのだけれど、旋盤を動かすのは一人だし、径とか記録するのも一人でいいし、やったことと言えばマイクロメータでたまに径とかを測っただけ。なのでひたすらストレッチとかしていた。暇だ。

昼はおにぎりを食べて、プログラムを印刷してきた。まだ途中なので授業中に紙の上でプログラムを書こうと思って。最近学食を全く使わない。それはお金がないから。

3限は燃焼工学。いつも暇でしょうがない授業なので、プログラムでも書いていようと思っていた。内容はNS方程式とかエネルギ式とかをいじっていた気がする。後はエンジンの乱流がどうこうって言ってたなあ。途中で当てられたとき、「○○研の彼」(○○はタカフの研究室)とか言われて俺じゃないなと思ってたら俺だったらしい。どうして先生はそんな間違いをしたのやら。

空き時間にもプログラムをする。半径方向熱伝導なので一次精度風上差分+拡散方程式の差分なのだけれど、ここでのCFL条件は拡散の式が利いてくる気がするので、時間ステップと空間ステップと熱伝導率に注意しなければならないなと思う。

5限は航空構造力学。今日はなんかこの前とかと雰囲気が変わって、曲面の方程式をやるとか言っていて、話が数学的になっていた。曲率半径とかそんなこと言っていたなと思うけれど、最後のほうがちょっと聞いていなかったら分からなくなってので諦めた。どこかでfollowしないとなあ。

家に帰り、ご飯を食べて少ししたら寝てしまった。そして起きてまたプログラムを始める。考えつつ打っていたらプログラム自体は完成して、実行できるようになったのだけれど、実行してみるとめっちゃ時間がかかる。目安がないと計算時間が1分なのか1時間なのか1日なのか分からないので%表示をしてみた。それからコードもさらしておこう。CFL条件が満たされているのか激しく不安。

と思っていたけれどやっぱこんなに遅いのはプログラムのミスっぽい。またデバッグの繰り返しかあ。色々おかしいところがあって今も直してて大変だわ。

実行画面。パソコンの性能が如実に速度に出るんだと思う。CeleronD340(2.93GHz)の限界。

References   [ + ]

1. <span class="synConstant">1.0</span><span class="synStatement">+</span><span class="synConstant">0.4</span><span class="synStatement">/</span><span class="synConstant">1.4</span><span class="synStatement">*</span>(x<span class="synStatement">**</span><span class="synConstant">2.0</span>
2. <span class="synConstant">0.5</span><span class="synStatement">*</span>y<span class="synStatement">/</span>t0<span class="synStatement">*</span>(<span class="synConstant">1.0</span><span class="synStatement">+</span><span class="synConstant">0.4</span><span class="synStatement">/</span><span class="synConstant">1.4</span><span class="synStatement">*</span>(x<span class="synStatement">**</span><span class="synConstant">2.0</span>
3. <span class="synConstant">0.428319</span><span class="synStatement">/</span>x)<span class="synStatement">**</span><span class="synConstant">0.8</span>) <span class="synComment">c hg1のxは等価直径 </span> hg1(x)<span class="synStatement">=</span>(<span class="synConstant">0.026</span><span class="synStatement">/</span>x<span class="synStatement">**</span><span class="synConstant">0.2</span>)<span class="synStatement">*</span>((u<span class="synStatement">**</span><span class="synConstant">0.2</span>)<span class="synStatement">*</span>cp<span class="synStatement">/</span>(pr<span class="synStatement">**</span><span class="synConstant">0.6</span>
4. u<span class="synStatement">**</span><span class="synConstant">0.2</span>)<span class="synStatement">*</span>cp<span class="synStatement">/</span>(pr<span class="synStatement">**</span><span class="synConstant">0.6</span> <span class="synComment">c 熱伝導率の係数k2 </span> k2(x)<span class="synStatement">=</span>k_heat02<span class="synStatement">*</span>dt<span class="synStatement">/</span>x<span class="synStatement">/</span>dr <span class="synComment">c 指標1 </span> <span class="synStatement">write</span>(<span class="synStatement">*</span>,<span class="synStatement">*</span>)<span class="synConstant">'壱:ここまで終わったよ!'</span> <span class="synComment">c 断面積、マッハ数、等価直径、ガス静温、内側半径の読み込み</span> <span class="synStatement">open</span>(<span class="synConstant">10</span>,<span class="synStatement">file=</span><span class="synConstant">'areaonly.d'</span>,<span class="synStatement">status=</span><span class="synConstant">'old'</span>) <span class="synStatement">open</span>(<span class="synConstant">11</span>,<span class="synStatement">file=</span><span class="synConstant">'machonly.d'</span>,<span class="synStatement">status=</span><span class="synConstant">'old'</span>) <span class="synStatement">open</span>(<span class="synConstant">12</span>,<span class="synStatement">file=</span><span class="synConstant">'r.d'</span>,<span class="synStatement">status=</span><span class="synConstant">'old'</span>) <span class="synStatement">open</span>(<span class="synConstant">13</span>,<span class="synStatement">file=</span><span class="synConstant">'temponly.d'</span>,<span class="synStatement">status=</span><span class="synConstant">'old'</span>) <span class="synStatement">open</span>(<span class="synConstant">14</span>,<span class="synStatement">file=</span><span class="synConstant">'heat_radius.d'</span>,<span class="synStatement">status=</span><span class="synConstant">'old'</span>) <span class="synStatement">do</span> i<span class="synStatement">=</span><span class="synConstant">1</span>,kiza_x <span class="synStatement">read</span>(<span class="synConstant">10</span>,<span class="synStatement">*</span>)a(i) <span class="synStatement">read</span>(<span class="synConstant">11</span>,<span class="synStatement">*</span>)c(i) <span class="synStatement">read</span>(<span class="synConstant">12</span>,<span class="synStatement">*</span>)r(i) <span class="synStatement">read</span>(<span class="synConstant">13</span>,<span class="synStatement">*</span>)temp_gas(i) <span class="synStatement">read</span>(<span class="synConstant">14</span>,<span class="synStatement">*</span>)radius(i) r(i)<span class="synStatement">=</span>r(i)<span class="synStatement">*</span><span class="synConstant">0.001</span> a(i)<span class="synStatement">=</span>a(i)<span class="synStatement">*</span><span class="synConstant">0.000001</span> radius(i)<span class="synStatement">=</span>radius(i)<span class="synStatement">*</span><span class="synConstant">0.001</span> <span class="synStatement">end do</span> <span class="synStatement">close</span>(<span class="synConstant">10</span>) <span class="synStatement">close</span>(<span class="synConstant">11</span>) <span class="synStatement">close</span>(<span class="synConstant">12</span>) <span class="synStatement">close</span>(<span class="synConstant">13</span>) <span class="synStatement">close</span>(<span class="synConstant">14</span>) <span class="synComment">c tempの初期化</span> <span class="synStatement">do</span> i<span class="synStatement">=</span><span class="synConstant">1</span>,kiza_x <span class="synStatement">do</span> j<span class="synStatement">=</span><span class="synConstant">1</span>,kiza_num temp(i,j)<span class="synStatement">=</span><span class="synConstant">273.15</span><span class="synStatement">+</span>T_shoki <span class="synStatement">end do</span> <span class="synStatement">end do</span> <span class="synComment">c 指標2 </span> <span class="synStatement">write</span>(<span class="synStatement">*</span>,<span class="synStatement">*</span>)<span class="synConstant">'弐:ここまで終わったよ!'</span> <span class="synComment">c 温度伝導率の係数の計算 </span> k_heat02<span class="synStatement">=</span>k_heat01<span class="synStatement">/</span>(mitsudo<span class="synStatement">*</span>hinetsu) k1<span class="synStatement">=</span>k_heat02<span class="synStatement">*</span>dt<span class="synStatement">/</span>(dr<span class="synStatement">**</span><span class="synConstant">2.0</span>) <span class="synComment">c 時間刻み。60秒/刻み時間 </span> <span class="synStatement">do</span> i<span class="synStatement">=</span><span class="synConstant">1</span>,kiza_t <span class="synComment">c 指標3 </span> <span class="synComment">c do k=10,kiza_t,100</span> <span class="synComment">c if(i==k)then</span> l<span class="synStatement">=</span>i<span class="synStatement">/</span>(kiza_t<span class="synStatement">*</span><span class="synConstant">1.0</span>)<span class="synStatement">*</span><span class="synConstant">100.00</span> <span class="synStatement">write</span>(<span class="synStatement">*</span>,<span class="synStatement">*</span>)i,<span class="synConstant">'/'</span>,kiza_t,<span class="synConstant">'回 '</span>,l,<span class="synConstant">'%終了'</span> <span class="synComment">c end if</span> <span class="synComment">c end do</span> <span class="synComment">c x方向刻み </span> <span class="synStatement">do</span> j<span class="synStatement">=</span><span class="synConstant">1</span>,kiza_x <span class="synComment">c 熱伝達率の計算</span> hg_int(j)<span class="synStatement">=</span>hg1(r(i

歯ブラシ

朝は二段階睡眠をとったおかげであまりうまく眠れず、しかも遅い時間に起きた。起きてすぐに用意して学校へ。今日は実験の発表なのでその1時間前に行って打ち合わせをすることになっていた。

端末に行って打ち合わせとか手直しとかをする。そして練習もする。しばらくして時間が来て、部屋に行って順番決めたり発表に関して注意事項を言われる。「教科書に書いてあることなんて結論にしたら、評価は即Cだからね」と言っていた。じゃあ俺らの評価はCだなと思った。

3番目の発表になって少し時間があったのでその間にまたプレゼン資料を書き直したり付け加えたりした。悪あがきというやつだ。そのうち時間が来て、部屋の前に行って待つ。待っている時間が異様に長かった。多分早く着すぎたんだなと思った。

そのうち前のやつらが終わって、聞いてみたら「駄目出しだけだった」って言っていたのでふーんと思いながら中へ。最初に俺が全体の流れ、目的、ビッカース硬さ試験について。まずパワポが勝手に進んだのであせったが、これはリハーサルのやりっぱなしのせいだと分かっていたので落ち着いて直して声出して発表した。

俺が終わって残り二人も終わって、まず先生方の第一声が「結論間違ってるよ」だった。じゃあもう終了ですかと思ったけれど、結論が3分くらい駄目出しされた後、「今までの他の班は全く言ってなかったような着眼点があって、それは良かったのに論理性が全然ない」とか言われた。それを聞いて確かになと思った。

そのうち終わって何とかレポートになることは免れて、ほっとして帰る。家で仮眠してから六本木へ。おにぎりとかもらって食べて帰宅。ノズル熱伝達・熱伝導解析のプログラムをひたすら書いて、加工実習の工程表を直して寝た。

ねじまき鳥とRSS

今日は朝から発表の打ち合わせとか言う話で9:30に学校に行く。俺のプレゼン資料はやっつけ仕事だったのだけれど、時間がこれでいいかとか、考察突っ込まれないかとか考えたりしていた。レポート書きたくないからなんとか通るようにやろう。しかしなんで材料の実験で発表しなきゃならないんだろう。

2限は音楽論。今日も先生が作ったドラマ音楽について、ラッシュと本番を見比べる。ラッシュだけなのと音楽がついたものとでは、普段音楽がついたものを見ているからかもしれないけれど、違和感があるな。あと、その音楽を録るスタジオの映像。WASABANDが使うスタジオと違って広いなーと思う。それから楽器がいろんな種類がいた。あとエレキギターって音出さないで録音するんかなと思った。

昼休みは眠さが限界だった。本屋でロッキンとかサイスポとか読んでた。

3限はターボ機械。今日の内容は前回に続いて全エンタルピとかそういう話。等エントロピ流れのときに圧力と密度の関係式を出すってやつは普通にやってたらできた。最後のポンプ問題は考え方は別に良かったけど(まああの問題で考え方とかそんなもん授業でやったのそのまんまだけど)まったりやってたら最後、間に合わず。ついでに質量流量と体積流量を間違える。もっと冷静にやればよかった。

この休憩時間に55号館の建築のなんかやってたのを見に行った。2階まで人であふれていた。ひろきはどこかにいるのかなと思ってちょっと探して断念して(俺は人を見つけるのがとても苦手)、置いてあったのを見た。調布の再開発のがいっぱい置いてあったのを見つつ、授業へ。

4限は高速流体力学。おじいちゃんの授業で内容は乱流遷移の話とか乱流のNS方程式とかやっていた気がするがいかんせん眠かった。月曜日はいつも強引に生活リズムを合わせようとするから眠い。

5限は産業総論。今週も前回に引き続き話。やはり二回目なので前回ほどのインパクトはなかったものの、今回の話も面白かった。内容を簡単に示そう。まず最初に前回のおさらい。タイムリーな話題ということで、A380がシンガポール航空に引き渡された話を言っていた。これは前回、終わった後にニュースになっていたなと思う。

そして今日の話。まず、航空需要は予測として今後20年で2.5倍になるということ。今ではニッチな100席弱クラスでも今後は需要が増えていくということ。まあこれは丁度MRJのところだ。それから、現在はHub&Spokeモデルであるが、今後はPoint2Pointのモデルになっていくであろうということ。これは確かにそうだ。でもまだハブ。ちなみにこのモデルは自転車のホイール。自転車乗らない人にはわかりにくいんじゃないだろうか。

また、機体の絶対数は増えていくため、安全率は向上しても事故の数は増えていくと予想。ここで話題が変わって日本の交通システムの変遷の話。NASAのSATS(Small Aircraft Transportation System)の話から、30年ごとに車→プロペラ機→ジェット機→次は?という話題。現在日本ではバスと車が飽和で、地下鉄・航空が伸びているということから三次元的な交通へという話題。

俺は+自転車って目線があれば最強だと思う。自転車は1.排気ガスを出さないクリーンな交通手段、2.都内のバスの平均速度よりはるかに速い、3.運動不足解消ってことで、少なくとも東京では非常に便利な手段だと思う。まさにDoor2Doorだし(山手線範囲内なら一番速い交通手段だと思う)。と、ここでこう思ったけど話はGA(General Aviation)の話が登場。また、交通産業はPushとPullの関係になっている=Pushが需要増加、Pullが飽和→三次元化。

LCC(Low cost carrier)の話がちょっと出た後、福岡の日本全体の航空管制のコントロールの話。現在国内では一日、国内線が2000機、国際線が1000機、上を飛んでいくだけが300機程度ということ。昼間は常に300-400機が飛んでいるという話。国内線は6割が羽田利用だが、羽田は飽和状態。また、飛行機の翼端渦が離陸間隔を決めているという話をしていた。ああ、そうかと思う。

海外と比べて国内線は異様に大きな飛行機を使っていることを指摘。これはよく指摘されること。また、路線数が少なくなってきて、便数は増えていることを指摘していた。前に話題になった不採算路線の廃止ってやつだ。地方空港がどうなのかってのは自分で考えること、と言っていた。羽田は滑走路数などがボトルネック。ボトルネックって概念が出てきて、まさに!と思った。

ここから国際線の話。国際線ではANA+JALで全体の20%しかなく、ほとんどは米系航空(NWとか)がHub空港に使っているとのこと。これは去年、LAに行くときに何故か俺が3人分チケットを取ることになってネットで調べたり電話して価格を調べたりしていたので実感できる。成田→LAX(ロサンゼルス国際空港)は殆ど外国企業のエアラインだった。どうやらこれはなんとか協定で決まっているらしい。またこういう旨みを持ってくやり方がアメリカっぽい。

地方空港は仁川と結んだりする便が増えていることを指摘。仁川をHub空港として日本の地方空港をSpokeとしている例。また、Hub空港の条件が1.Spokeが多い、2.短時間で多くの離着陸、3.短時間で多くの乗客をさばく、4.離着陸料・燃料費が安いってこと。ここでエアラインの飛行機収支が出ていたけれど、日本のほうがアメリカより人件費が安いのが驚いた。他(離着陸料・燃料費)などは日本の方が高いのだけれど。ここでHub空港争いの話。ヨーロッパとアジアでは地形が違う。また、JetBlueとかSouthWestとかのLCCの話。それからまとめとして1.羽田のみ活況、2.成田はUS系エアラインのHub、3.地方は近隣の国とってこと。これは事実で、要はここからどのようなVisionが描けるかが重要。

ここで話題は変わってGAの話。GAと呼ばれるものは200-400km/hで価格1500-4000万円、VLJ(Very Light Jet)は500-900km/hで3-5億円。また、USではこのような機体が22万機あり、そのうちプロペラ機16万機、それから実はExperimentalと呼ばれる個人製作が2.3万機いるらしい。アメリカっぽいなと思った。GA市場はPL法緩和など+分割所有などで広まっていき、9/11で落ちたもののまた増えているという話。

さらにアメリカの飛行場利用は企業:エアライン=2:1であり、エアラインより企業の法が多いことを指摘。これは意外。例として米TOYOTAが使っている飛行機が上がっていた。この企業利用の理由としては9/11でエアラインの利便性が低下したこと、国内の飛行場がたくさんあること、時間価値のことが上がっていた。

ここで時間価値の話が出て興味深かった。会社に勤めていると、年棒から時給が計算できるが、これが4000-6000円/時くらいまで上がるのに対し、その人が会社に対して創造した価値というのはその6倍と言われているらしい。だから起業で成功するともうかるんだなと納得した。時間価値って面白いと思う。バイトとか優秀な人は10倍とかいくんじゃないだろうか。

また、このようなBJの使われ方として、topマネジメント層よりもミドルマネジメント層(中間管理職)が使っていると指摘。これはそんな気がしていた。ここからSATSがレーダや管制なしでの飛行の研究を行っているという話。確かにそれができれば画期的。また、ここから具体的な機体名が出てきてVLJの話。

まずHondaJet。エンジンと機体を両方作ったということで画期的。ただリスクも多い。そしてEclipse500の話。MSを退職したRaburnなどがやっている飛行機会社。$1.17Mで買える。破格。すでに2800機受注していて、富士重工で主翼を作るらしいが、一日3機も作るらしい。一年かかる人力飛行機はなんなんだと思う。それからCIRRUS SR22の話。リーンデザイン(無駄のない)のとパラシュート装備などで安全性を向上させ、売り込む。

それからCESSNAのSkycatcherの話。これも850機も受注している。さらにここで驚きなことは概念設計からOshKoshの試験飛行まで半年強しか時間がかかっていないということ。これは驚異的だなあと思う。こんな短期間で製品を形にできるのは凄い。それからこのEclipseを使ったAirTaxiの話。

そして最後にSpaceShipOneの話。これはX PRIZEの獲得(初の民間有人弾道宇宙飛行)をしたという機体で、話には聞いていたが変な(ここで変なというのは他の飛行機と比べて)形のWhiteKnightから空中で打ち出され、高度100kmの弾道を飛行を行ったというもの。ファンドを集めて実際に作って飛ばしてしまうっていうアメリカのベンチャーのダイナミズムに感動した。こういうベンチャーならやってみたいなあ。誰かやらないだろうか。とても日本の大手企業ではできないと思う。

何かいいものができたとき、技術者って目立たずもそもそしてはにかみながら嬉しさをかみしめるみたいな像があって、それが嫌だなって思ってた。こういうガンガンやってくプロジェクトで「俺の作ったものを見てくれ!」っていえるものを作りたい。作り手になるんならね。

ここで話は終わり。最後に前回から続く重要な筋として、情報収集→洞察・構想をする→流れを読むってことが重要だということ。また、リーダーシップとは変化を察知し、変化を作ること。リーダーの責任は読みの能力だということ。これで話は終わった。面白い内容だった。emailを出せば色々質問に答えてくれるらしいので送ってみようと思う。

6限は教育法。今日も模擬授業。最初の人はとてもフレンドリーな口調で生徒が飽きないような組み立てをしていて凄いなと思った。多分俺にはあんな授業はできない。次の人は無難にこなしていた。俺は無難にもこなせない気がするから、練習しよう。

返ってきたら仕事の連絡が来ていたのに寝てしまった。

最近気づいたことで、日曜に夜に馬場の本屋に行ったら「サクリファイス」って本が置いてあって、ロードの話だった。Cyclingtimeあたりで見たなと思ってちょっと読んでみたけど、お気楽な話ではないかもなと思った。本屋で見たのは力学の本とCFDの本、それからJavaとかPythonとかEclipse(IDEの方)とかと、TOEFLの本と、話題のビジネス本(←こういう本結構好き)。後、生協の本屋で「surely you’re joking Feynman」がどこかのEnglish Forumの教科書になっていて嫉妬した。

あと、mixiってRSS吐いてるんだって始めて知った。まあmixi stationってのがあるからよく考えてみればありそうなものだけど。認証してないとフィード返してくれないんだけど、誰か「mixi station」に対抗してtwitterfoxのmixi版、「mixifox」みたいの作ってくれないかなあ。自分で作ろうかと一瞬考えたけど面倒なのでやめた。アドオンの作り方とか難しい気がする。下のリンクは、上がmixiのRSSフィードについて、下がアドオンの作り方。

http://melanges.duck.nu/2007/08/30_164019.php

http://dev.ariel-networks.com/articles/workshop/firefox-extension-development/

なんで起きられないのか

今日は起きてみると12:47だった。授業は13:00から始まる上に、最初に提出物があるので急いで出る。なんとか到着し、出そうと思ったけど最後の答えを電卓で計算していないのを気づいた。しかしTAが回収する箱を持っていってしまう瞬間だったので出してしまった。電卓で打つだけだったのになあ・・と思った。TAにいらついた。

3限は電磁気みたいな授業。内容を聞きながら、流体と同じアプローチというかこのCV作ってうんたらかんたらっていうのは何回もやったなあと思った。結局ガウスの発散定理が出て、それを使ってガウスの法則を導くって流れ。その後演習。最初のはガウスの法則を説明するってやつで、次のが曲者だった。そのときに分からなかったけど後で話したら分かったのは単純なことで、ρが一定なら

ってことだった。

それから歯科検診に行った。たまに左下の奥歯がしみたりしていたのでそこが虫歯なんじゃないか、むしろ虫歯だ!と思い続けてきたのだけれど虫歯じゃなかったことが判明した。ちなみに虫歯とか思っていなかったところが軽度の虫歯だったのが曲者だった。

「虫歯じゃなかったらなんでしみるんですか?」

「それは歯にかかる圧力とか、以前直した金属の詰め物の影響とか・・」

とか聞いた。その後ブラッシングのに行って、磨き方を習った。昨日のカラオケの声がつぶれた影響でまだこのときも声がつぶれていた気がする。今歌いながらこれ書いてるけど若干高い声で歌いにくい。そこで歯医者が使う歯を見る鏡と歯ブラシをもらった。行ってよかった歯科検診。というかものすごく空いていたけれどみんな行ってないんだろうか。

5限は宇宙科学技術。今日も話が難しかった。なのでずっとJavaの本を読んでいた。オブジェクト指向面白いなあと思う。そのうち授業が終わって、タダコピでいろいろコピーして、帰宅。帰っておでん食べて部屋に戻ってJavaの本を読んでいたら眠すぎて寝てしまった。壮大な夢を見た。そして起きて今に至る。

ところで半径方向熱伝導方程式の座標変換→離散化ってこんな適当なのでいいんだろうか。これでいいんならこのままコード書こう。でも絶対にCFL条件みたいのがあるよなあと思うけれど、いちいちフーリエ変換して安定性を調べるの面倒だからできてから刻み幅変えて安定するところを探せばいいんじゃないかと思っている今日この頃。もしできなかったら一次元熱伝導でごまかそう。

そして伝説へ

今日は朝、多少早く起きて学校に行って、ゼミのために頑張って作ったノズルの静温分布、静圧分布、マッハ数分布のグラフを印刷しようと思っていたのに、目覚めたら10:10だった。ゼミは2限なので10:40前くらいから始まる。ということで柿とバナナを食べて、おにぎりを作って出発。学校に10:28に到着して製図室に駆け込み、パソコン立ち上げて印刷し、ゼミの部屋へ。

丁度くらいの時間に到着し、みんな(といっても4人だけれど)結果を報告。解析の結果はみんな独自でやってそれぞれが正しいかどうかを確かめるので、他のやつのを見たら同じような感じだった。1人、マッハ数が4まであがったりマイナスになったりしてるのがあって面白かった。しかし熱伝導は熱伝達の式と同時に、メッシュを切って各時間ステップごとに定常と仮定してやるのか・・面倒だ。

ゼミで読んでるCFDはようやく本が終わりそうな気配がしてきた。8章中、座標変換と格子生成の7章まで来た。8章は有限体積法だからもうかなり来た気がする。激しい本だった。誤字脱字の多さと内容の不親切さがやばいけれど、勉強にはなった。英語の方は終わりが見えないけれど、内容はようやく面白くなってきた感じがする。今は音速の定義、

¥sqrt{(¥frac{dP}{d ¥rho})_{isentoropic}}

のあたり。

3限は電気なんとかの力学。今日の内容はなんだっけかな、最初にベクトル場とスカラー場とかやってて(ヴェクタとスケイラw)それからテンソルとかなんとか言ってて、反変ヴェクタ、共変ヴェクタの話。反変速度っていうのがCFDの座標変換でゼミで出てきたので本日2回目だと思った。あとは実験のグラフ書くために自在定規と格闘していた。レポートが返ってきてCだった。答え合ってても書き方が駄目らしい。

4限はガスタービン・ジェットエンジン概論。今日はブレイトンサイクルの話と、やっぱりTs線図、それから飛行機とロケットの推力の話。先生の説明が慣れてきている感じがした。ジェットエンジンの予冷とかの話が分かった。後、RRの3軸シリーズ「トレント」とか。最後の演習で全部やろうとした。先生がたまに説明が速いときに逆のこと言ってるなと思った。

5限は宇宙科学技術。今日も先週に引き続きJAXAの鈴木さんという人。先生は「知らないけどグループ長って偉い人なんじゃないか」って言ってた。内容は衛星の制御の話とGPS。ゆっくりやってみたいと思うものの速くてうーんと思っているうちに先に行ってしまったので一人で英語の勉強をしていた。話が聞き取りやすい人と聞き取りにくい人って絶対いる。

たとえば流体の若い方の人の話は凄く聞き取りやすい。おじいちゃんは聞き取りにくい。水曜の材力的な授業のおじいちゃんのも聞き取りにくい。そして今日の宇宙何とかの人も非常に聞き取りにくい。自分はどうかを言われれば自信ないけれど、人に聞き取ってもらうために練習も必要なのかもしれない。意図が伝わらなきゃ言葉なんて無意味。

帰ってご飯を食べて課題とかやる。そういえば生物のレポートは通ったのは4人だけだったらしく、4人以外は全員取りに来ることってことになってた。明日開いてるのかな。4階の化学の実験の準備室的なところ。そして試験飛行に行かないかと悲観主義者に誘われてた。飲み会に行くお金もないしどうしようかと思っていたところだ。でも寒そうだ。

あと、友達にFortranのデバッグを頼んだらすぐに答えが出てうれしい反面少しへこむ。昨日4時まで頑張った俺はなんだったんだと。そしてギター弾いてた。タカフはスタジオmp3アップしないのかなあ。自分のひどい歌聞いてちょっとはフィードバックしたいのだけれど。

この前筑波に行ったときに「何歳までストライクゾーンか」って話をしたのだけれど、中3から45とか広いなーと思った。中学生・高校生はありえないとにのは言っていたけれど、俺は中2から35くらいかなと思った。でも中2ととか想像つかないなあと思っていたのを何故か今日思い出した。

Baltzの式

今日は朝ちゃんと起きようと思っていたのにやっぱり授業がないと起きられなくて、午後に起きる。これは昨日の夜に二段階睡眠をとったあと、WASABANDの曲を集めてアップするサイトをタカフと探したり、Fortranのプログラム書いていたりしたから。起きてから電力の宿題(ベクトル場を書くやつ)をやって、ネットしてたりしていたら時間になって学校へ行く。英語の予習をしなかった気がした。

5限はEnglish Forum。1年のとき以来のひろきと同じ授業。今日は主に昨日のDr.フリードマンの講演についてと、corpolate cultureについて。またもや発言しようしようと思いつつ、差されたとき以外にできなくてそれは反省。ひろきはよく話してた気がする。なんか英語しゃべれなくてもとりあえずコミュニケーションを取りにいくって姿勢が俺には欠けてるな。日本語でもそうな気がする。でも内容は面白かった。

6限は生物。前の時間が濃い英語の授業なので(1時間ずっと先生と学生の英語を聞いてる)のでこの授業に移動してくる途中で聞き取れる誰かの会話が英語に聞こえる。頭が英語モードになってるんだなあといつも思う。先生が日本語を話し始めて多少違和感があるけれどそれも最初の3分間。今日の生物では後半、ビデオを見たけれどその中にプロペラが出てきた。つい教室右後ろのほうに座っていたてっちゃんを振り返ってしまった。

その後、お腹がすいて帰宅。カレーとか食べてから寝ないように頑張ってBaltzの式で流体熱伝達率の初期値を求めようと頑張るものの、Fortranがご機嫌斜めで言うことを聞いてくれない。ということで必死にデバッグを繰り返したが途中であきらめる。うまくいかないとついFortranの仕様が駄目なんじゃないかと思えてくる。Javaでやろうかなあ。にのに習って。4時ごろにあきらめて寝た日。

Javaでも書いてみたのと明日

さて今日は遅く起きてしまったぐったりしている。振動のレポートも加工実習の図面・工程表も全くやっていないので危機感を感じてきた。まわりのやつらは振動のモデルとかたてて微分方程式解いてたなあと思い出す。でもやる気がしないのでやっていない。という駄目な状況。

さて、昨日Fortranで書いたボールを上に投げ上げるのをJavaでも書いてみた。無駄なことしてる気がするけれど、計算速度を見たかったわけで。ソースは以下の通り。Fortranのは昨日のに載ってるけど、Javaのほうが面倒くさい。Java素人なので詳しい人いたらここが駄目だって言ってくれるとありがたい。

ということで時間を計ってみよう。多分この計算でdt=0.001だとあんまり差がつかないだろうから、さらにそれを10分割してやってみよう。計測開始。お、以外にFortran遅い。実はあんまりメリットないんじゃないかFortran。時間は、

  • Java

javac:5秒、java:4秒

  • Fortran

g77:7秒、a.exe:1秒

うーん大して変わらんな・・と思ったけれど、二回目から違う。Javaは二回目で多少高速になったけど、時間かかってて、Fortranはプログラム新しくしても一瞬で終わる。一日の最初だと遅いんだろうか。と思ってさらに10分割してやってみたら、

  • Java

javac:5秒、java:7秒、合計12秒

  • Fortran

g77:0.5秒くらい、a.exe:1秒:合計1.5秒

ということでFortranの勝というか圧勝。なんか最初だけ遅いけど、それから後は刻み幅が激しくなっても計算時間がほとんどかかってないのかな。

素人考えだからよくわからないけれど。あー課題やらないと。明日、ロード新歓の予定だけど雨降りそうでやだなあ。雨だと中止だろうから晴れて欲しい。

ロード新歓、明日やるにしてもやらないにしても相模湖からのルートどうしようかな。大垂水峠のあとに413号に抜けて、牧馬峠(まきめとうげ)に行くコースとそのまま橋本に直行するコースを考えた。峠二つくらい行ってみたいけどみんなの調子しだいだろうなあ。

橋本直行:http://route.alpslab.jp/watch.rb?id=a35afa24272d7cebb3174bebf9b45ddb

牧馬峠へ:http://route.alpslab.jp/watch.rb?id=401a15444a3e169dd7a912f0254b5a99

well,just in case someday you come to me and says hi

ということで休日なので朝は早く起きたけれど二度寝して昼頃起きだして、朝ごはんを食べる。朝ごはんを食べたあとは昼寝。おやつの時間くらいになってまた起きてなんだか辛いのを食べに行った。辛くて口の上側のとこが痛くなった。そんなに辛いわけでもないのに口の中を痛くする成分が多いんだろうか。

その後だか前だかにタカフとファイルの転送をしたいという話があって(実は昨日からそうだったのだけど)、メッセはリジュームがなくてイライラしていたのでバッタというソフトを使った。ポート開けてやったら成功し、送る。UPnPってなんでうまくいかないんだろう。まあ自分で開ければできるからいいけど。

その後、RADWIMPSの生春巻きを見つつFortranの練習。というかFortranって暗黙の型宣言とか、最初の6文字空けなきゃならないとか謎な仕様だけど、シンプルだわ。変数の宣言しなくていいし。これでボールを上に投げてみよう。Lax-Wendroffとか一時精度風上とかだとガチャガチャになるかなあ。今日分かったものは

do(ループ),end(終わり),open(ファイルを開く),close(ファイルを閉じる),write(文字を出力),read(文字を入力),if(if文),else if(続けてif文),parameter(パラメータ),dimension(関数),goto(飛ぶ。コーダみたいな感じ)

とか。というか数値計算だけに使うのならそんなに色々いらないんじゃないだろうか。でもはじめたばっかりだからよくわからないけど。

エディタはvim使おうかと思ったけどやめてサクラエディタにした。vimのほうが便利そうだなーと思ったけど、操作を覚えるようになるくらいfortran書くかわからないし。結局まだphotranは導入してない。これもfortranをちゃんとやるのかわからないし。なんか色々なとこで「遺物」とか言われてるなあ・・。

てっちゃんがまたデモテープをアップしてたけどもごもご言っててよくなんて言ってるのか、音程がなんなのかが分からない。しんぺーたちは学生交流会で卵リレーをやったけど不完全燃焼だったとか言っていた。他大も巻き込んだってのが凄いわ。

そして真上に投げ上げプログラムできた。重力加速度9.8m/s^2で初速度10m/s,1mのとこから投げたボールの軌道を書いてみる。ソースは以下の通り

そしてシェルで、

とやって、gnuplotで

plot “out.d” using 3:1 with lines

ってやれば絵が描ける。

ということでした。このくらいだと簡単だなあ。