2017-03

目次

≪ シュレディンガー方程式の数値計算 その5 ALL シュレディンガー方程式の数値計算 その6 ≫

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

シュレディンガー方程式の数値計算 その5 追記

私は大概の数値計算をマスマティカで組む。理由は簡単、大抵の場合プログラミングからデーターを取るまでに1時間もあれば終わってしまうからである。勿論バグ取りに費やす時間はFortranやCで組んだ場合と比較にならないくらい短い(あくまで私の場合ですが)。 FortranやCで組むと完成したプログラムの実行時間は短いわけだが、趣味でやるちょっとした数値計算にはマスマティカで十分だし、またそれが最適な場合が殆どであるように思う。 ところが今回の計算、こういった類はマスマティカに不向きである。 勿論マスマティカで関数をコンパイルして実行時間を短くするとか、Clear[] やShare[]を駆使してメモリー空けるなどの努力は有り得るのだが、そういった事をするくらいならFortranで組んだほうが良いだろう。


という私も今回の計算安易にマスマティカで組んでしまった。離散化は Nx*Nt=1000*(1000^2)で、少なく見積もっても10^9 回の繰り返し評価が入る。勿論最初は荒い離散化で試して、最終的評価のみこのパラメーターで行ったわけだが。 わざわざこんな計算をマスマティカで組んだのは実行時間を知りたかったという動機がある。 

さて、組みあがったプログラム、走らせてデーターをとってみると意外に速い感じ。 いけるかも? などと期待がでてきた。 そこで最高の精度での計算を実行してみたわけだが、コードが完成した疲れで実行時間の測定も忘れて、4,5分、いや10分だったか、うたた寝をしてしまった。 気がついてみるとデーターは既に取り終えている。  「お、やったか、意外と速いじゃないか!」 などと喜んだ瞬間であった。

さて翌日。 高々20分程度で終わる計算なら多少パラメーターをイジッてもう一度データー取りを!
ところが実行させてみると、30分経っても終わらない。 「あれ、おかしいな」。 このコンピューターは少し遅いからな、速いほうでやろうかな、などとひとり言。 色々手を尽くしてみたが1時間かかってもデーターを取り終えない。 

そこで確信した! 

あの10分程度のうたた寝の間に、私は宇宙人に連れ去られていたに違いない(笑)。 そう考えると失われた時間は1時間以上は有っただろうか? まあ、冗談ですが。 やっぱりこういった計算はFortran、もしくはC(もしくはC++)で組むべきです。 私の場合Fortranがお手軽で好みなんですが、最近はみんなC++で組むんでしょう。 でもやっぱり数値計算ならFortranがお手軽だと思います。 でも私のpcにはFortranコンパイラーが入ってないのです・・・・。

コメント

コメントの投稿

管理者にだけ表示を許可する

トラックバック

http://letsphysics.blog17.fc2.com/tb.php/437-2a712828

«  | HOME |  »

CATEGORIES

RECENT ENTRIES

RECENT COMMENTS

RECENT TRACKBACKS

APPENDIX

アトム 

アトム 

趣味   近所散策と物理

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。