トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS

NumRoom01 の履歴の現在との差分(No.1)


  • 追加された行はこの色です。
  • 削除された行はこの色です。
*お知らせ [#r8e5188a]
*図1.10 剛体球による散乱の角分布 (教科書11ページ) [#ccba3704]

-ページを公開しました。(2017/03/12)
**概要 [#abst]

*このページについて [#qb30831d]
剛体球 (半径は指定可能) による散乱問題について、散乱角度 θ を指定したときの衝突径数 b, θ とその刻み幅 dθ を指定したときの b の変化量 |db|, およびそれらの積 b|db| を、θ の関数として出力するプログラムです。

[[「量子散乱理論への招待―フェムトの世界を見る物理―」>http://kyoritsu-pub.co.jp/bookdetail/9784320036000]](フェム物) に記載している計算結果を得るための手法(数値計算)についてまとめたページです。ただし、数値計算の初歩について解説するページではなく、(ある程度) 数値計算に関する知識のある人が、本の中で紹介している結果を算出することをサポートするためのページです。
**プログラムファイル [#prog]

*全体的なこと [#vf130346]
&ref(files/hsphere.f,hsphere.f); (ソースファイル)

-計算プログラム (ソースコード) は fortran で書かれています。ソースコードから実行可能なプログラムを生成するためには、fortran のコンパイラが必要です。フリーで導入できるものとして、gfortran があります。導入方法は web で検索して調べてください。「gfortran 導入 [OS名]」で検索すれば見つかると思います ([OS名]には windows10, Mac, Linux などを指定します)。なお、64bit 版の Windows7/10 を使用している場合には、公開している実行プログラムがそのまま利用できます (ただしその場合、当然ながらプログラムを自身の手で書き換えることはできません)。
-下の「[[計算プログラム>#code]]」からリンクしているページで公開しているプログラム群 (ソースコードおよび実行形式ファイル) をまとめて「Basic Codes for Scattering」とよびます。このコード群の作者は緒方一介 (Kazuyuki Ogata) とし、[[クリエイティブ・コモンズ 表示 - 継承 4.0 国際 ライセンス>https://creativecommons.org/licenses/by-sa/4.0/deed.ja]] ([[English here>http://creativecommons.org/licenses/by-sa/4.0/]]) で提供されているものとします。~
&ref(files/80x15.png,nolink);
-プログラムでは、井芹康統氏 (千葉経済短大) にご提供いただいたいくつかのサブルーチンが使用されています。また、一部のサブルーチンは、JUPITER [T. Tamura, Rev. Mod. Phys. ''37'', 679, (1965).] および TWOFNR [M. Igarashi, computer code TWOFNR (1977) (unpublished).] を参考にして作成されています。
-ソースコードの書式は、最新の fortran の推奨内容に必ずしも則ったものではありません。ただし、計算結果が正しく得られることに関しては、可能な限りチェックを行っています。
-プログラムで出力されるのは数値データです。これを視覚化するには、描画ソフトが別途必要です。広く使われているものとして gnuplot があります。「gnuplot 使い方」などで検索すると、多くのページが見つかると思います。あるいは Microsoft Excel でも、直観的な操作でグラフの描画が可能です。
-公開しているプログラムを利用することによって発生するあらゆる不利益・損害等について、提供者 (緒方) は一切の責任を負いません。
&ref(files/hs.cnt,hs.cnt); (入力ファイル)

*計算プログラム [#u4de4adb]
&ref(files/hs.dat,hs.dat); (計算結果)

-[[第1章 断面積とは何か?>NumRoom01]]
-第2章 ラザフォードによる原子核の発見
-第3章 弾性散乱の量子力学的記述
-第4章 平面波近似に基づく反応解析と原子核の密度分布
-第5章 アイコナール近似に基づく反応解析
-第6章 全反応断面積で探る不安定核の性質
-第7章 チャネル結合法と光学ポテンシャルの起源
-第8章 散乱問題の純量子力学的解法
-第9章 クーロン相互作用の取り扱い
&ref(files/hs.outlist,hs.outlist); (標準出力ファイル)

「第10章 連続状態離散化チャネル結合法を用いた宇宙元素合成研究」で示している結果は、本格的なプログラムを使用して計算したものであるため、現段階では、当ページでプログラムの公開は行わない方針です。連続状態離散化チャネル結合法 (CDCC) の基幹プログラムについては、“汎用” コードを外部ページ ([[CDCC's home:http://www.nt.phys.kyushu-u.ac.jp/CDCC/index.html]]) で公開していますので、必要に応じて参照してください。
&ref(files/hsphere.exe,hsphere.exe); (実行形式ファイル: Windows7/10 64bit 版用)

*外部リンク [#rc416ed7]

-[[散乱の部屋>http://www.geocities.jp/room_scattering/index.html]]~
光学ポテンシャルをサーチする便利なプログラム ALPS や、GUI 形式で散乱計算を行う超便利なプログラム Andes などが掲載されています。
-[[CDCC's home:http://www.nt.phys.kyushu-u.ac.jp/CDCC/index.html]]~
第10章に登場する連続状態離散化チャネル結合法 (純量子力学計算版) の “汎用” コードを公開しています。

*過去のお知らせ [#t3c12f79]

-ページを公開しました。(2017/03/12)



**実行方法 [#howtorun]

実行ファイル名を hsphere.exe とします (違う名前のファイルを使用する場合は以下を適当に読み替えてください)。コマンドプロンプトあるいはターミナルで

 hspere.exe < hs.cnt

とタイプして Enter キーを押せば、入力ファイル hs.cnt の内容に従って計算が行われます。環境によっては

 ./hspere.exe < ./hs.cnt

とします。作業ディレクトリは実行・入力ファイルを置いているところに変更 (指定) する必要があります。正常に終了したら、0 あるいは stop 0 とターミナルに表示されます。
**入力ファイルの説明 [#input]

以下において、L* はファイルの *行目を指します。C* は桁数です。* は単一の数字あるいは数字の範囲を表します。たとえば L10 は「10行目」のことであり、C1-4 は「1桁目から4桁目まで」という意味です。

-L1~
表題 (C1-60)。標準出力またはターミナル上にそのまま書き出されます。C61 以降は無視されます。
-L2-L3~
プログラム中で使用する (OPEN の対象とする) ファイルの機番 (C2-4), ファイルの status (C6-13), ファイル名 (C16-65) を指定します。ファイル名はパス付きで指定することが可能です。サンプルでは 2つのファイルを指定していますが、機番およびファイルの重複がなければ、いくつ指定しても構いません。ただし機番として 5 を指定することは避けましょう。また、100 以上の機番を指定することはできません。C1 を空白以外にすると、その行の指定内容はスキップされます。
-L4~
機番として 100 以上または 0 よりも小さい値を指定することで、ファイル指定処理の終了を宣言します。
-L5~
人間用の見出し。プログラム中では何の処理もされません。
-L6~
ユーザのコメント (C1-50)。C51 以降は無視されます。
-L7
剛体球の半径 (C1-10) を F 型の実数で指定します。
-L8~
人間用の見出し。プログラム中では何の処理もされません。
-L9~
計算結果を出力するファイル機番、角度の最小値、同最大値、同刻みを、それぞれ 10桁の F 型実数で指定します。機番は、プログラムの中で整数値 KIBO に変換されます。この機番のファイルが L2-3 (冒頭部) で指定されていれば、そのファイルに結果が出力され、指定されていない場合には、fort.[KIBO] というファイルが生成されます ([KIBO] には数字が入る)。角度に関する数値は、degree 単位で指定します。
-L10~
桁数を見やすくするための補助。プログラム中では何の処理もされません。
**出力の説明 [#output]

以下では、掲載している入力ファイル hs.cnt をそのまま用いた場合に生成されるファイル名に基づいて説明を行います。これらのファイル名は (入力ファイルの名前も)、ユーザが自由に書き換えることが可能です。計算内容を変更し、それ以前に作成したファイルを保持したい場合には、出力されるファイル名を変更しましょう。その際には、できるだけ計算内容が読みとれるようなファイル名にすることをお勧めします。

***hs.outlist [#outlist]

標準出力ファイル。計算内容が出力されます。意図した計算内容になっているか確認する癖をつけましょう。また、エラーが生じたときには、その内容が簡単に書き出されます。

たとえば剛体球の半径に負の値を指定してみると、終了コード 1 で計算がストップします。このとき、hs.outlist には

   -- ERROR IN INPUT --:
        HSRAD <= 0

と表示されるはずです。ただし、あらゆる入力エラーに対してこのような表示がなされるわけではありません。入力パラメータを正しく指定する (物理的に意味のある数字を与える) ことは、基本的にはユーザの責任でなすべきことです。

***hs.dat [#dat]

左から順に、散乱角 θ (単位: degree), b, |db|, b|db| が出力されます。hs.cnt を用いて計算した結果 hs.dat が、図1.10 にプロットされているものです。

**注意点と補足 [#note]

-このプログラムは、DO ループを利用して角度 θ を変化させ、θ ごとに b や |db| を解析的に計算し、ファイルに出力するという単純なものです。ただし、プログラム中で使用するファイル名の指定や、入力パラメータの与え方など、第2章以降で使用するプログラムでも使用する基本的な内容が含まれていますので、できればプログラムの中身を丁寧に見て、しっかりと習得してください。
-なお、ファイル名の指定は、井芹康統氏 (千葉経済短大) が作成されたサブルーチン FOPEN によって行っています。FOPEN を用いることで、計算の入出力に使用するファイル名を変更したい場合に、いちいちソースコードを書き換える必要がなくなります。FOPEN は、色々なケースに対して計算を繰り返すようなとき、絶大な威力を発揮します。
**発展課題 [#exercise]

+hs.dat に、微分断面積を追加してみましょう。もちろん正解は教科書の式(1.17)にあるとおりですが、出力されている b|db| から微分断面積を計算してみてください。
+角度の刻みを変えると |db| や b|db| は変化しますが、微分断面積は変化しないことを確認しましょう。
+反射角度を入力ファイルで与えて、その角度以上に粒子が散乱する断面積 (反射断面積) を計算する機能を追加してください。反射断面積は解析的に与えられますが、微分断面積を積分することでも得られます (教科書 p.12 を参照)。2つの方法で算出した反射断面積が一致することを確認してください。~
※数値積分については、第3章の数値計算で紹介するプログラムを必要に応じて参照してください。

**訂正・補足等 [#correction]

***&color(red){修正}; (2017/06/05) [#corr170605]
-出力ファイルで角度の最大値の表記が誤って HTMAX となっていた問題を修正しました(数値データへの影響なし)。