diff --git a/doc/common/img/RC_double.png b/doc/common/img/RC_double.png deleted file mode 100644 index d442ca04..00000000 Binary files a/doc/common/img/RC_double.png and /dev/null differ diff --git a/doc/common/img/RC_double1.png b/doc/common/img/RC_double1.png deleted file mode 100644 index 46094063..00000000 Binary files a/doc/common/img/RC_double1.png and /dev/null differ diff --git a/doc/common/img/RC_double2.png b/doc/common/img/RC_double2.png deleted file mode 100644 index 81fe0f2d..00000000 Binary files a/doc/common/img/RC_double2.png and /dev/null differ diff --git a/doc/common/img/RC_single1.png b/doc/common/img/RC_single1.png deleted file mode 100644 index 3c6d49b5..00000000 Binary files a/doc/common/img/RC_single1.png and /dev/null differ diff --git a/doc/common/img/RC_single2.png b/doc/common/img/RC_single2.png deleted file mode 100644 index 845a7bb7..00000000 Binary files a/doc/common/img/RC_single2.png and /dev/null differ diff --git a/doc/common/img/anaconda.png b/doc/common/img/anaconda.png deleted file mode 100644 index 461b134d..00000000 Binary files a/doc/common/img/anaconda.png and /dev/null differ diff --git a/doc/common/img/plot_himmelblau.pdf b/doc/common/img/plot_himmelblau.pdf new file mode 100644 index 00000000..9f82b0e6 Binary files /dev/null and b/doc/common/img/plot_himmelblau.pdf differ diff --git a/doc/common/img/plot_himmelblau.png b/doc/common/img/plot_himmelblau.png new file mode 100644 index 00000000..3c0ecf62 Binary files /dev/null and b/doc/common/img/plot_himmelblau.png differ diff --git a/doc/common/img/res_bayes.pdf b/doc/common/img/res_bayes.pdf new file mode 100644 index 00000000..294a2d89 Binary files /dev/null and b/doc/common/img/res_bayes.pdf differ diff --git a/doc/common/img/res_bayes.png b/doc/common/img/res_bayes.png new file mode 100644 index 00000000..8c6d6244 Binary files /dev/null and b/doc/common/img/res_bayes.png differ diff --git a/doc/common/img/res_bayes_actions.pdf b/doc/common/img/res_bayes_actions.pdf new file mode 100644 index 00000000..188ba595 Binary files /dev/null and b/doc/common/img/res_bayes_actions.pdf differ diff --git a/doc/common/img/res_bayes_actions.png b/doc/common/img/res_bayes_actions.png new file mode 100644 index 00000000..256af4a0 Binary files /dev/null and b/doc/common/img/res_bayes_actions.png differ diff --git a/doc/common/img/res_exchange_T0.pdf b/doc/common/img/res_exchange_T0.pdf new file mode 100644 index 00000000..d1e6f9bc Binary files /dev/null and b/doc/common/img/res_exchange_T0.pdf differ diff --git a/doc/common/img/res_exchange_T0.png b/doc/common/img/res_exchange_T0.png new file mode 100644 index 00000000..9219193f Binary files /dev/null and b/doc/common/img/res_exchange_T0.png differ diff --git a/doc/common/img/res_exchange_T10.pdf b/doc/common/img/res_exchange_T10.pdf new file mode 100644 index 00000000..82636e5f Binary files /dev/null and b/doc/common/img/res_exchange_T10.pdf differ diff --git a/doc/common/img/res_exchange_T10.png b/doc/common/img/res_exchange_T10.png new file mode 100644 index 00000000..56cea1d9 Binary files /dev/null and b/doc/common/img/res_exchange_T10.png differ diff --git a/doc/common/img/res_exchange_T30.pdf b/doc/common/img/res_exchange_T30.pdf new file mode 100644 index 00000000..264f76c1 Binary files /dev/null and b/doc/common/img/res_exchange_T30.pdf differ diff --git a/doc/common/img/res_exchange_T30.png b/doc/common/img/res_exchange_T30.png new file mode 100644 index 00000000..f97a8522 Binary files /dev/null and b/doc/common/img/res_exchange_T30.png differ diff --git a/doc/common/img/res_exchange_T50.pdf b/doc/common/img/res_exchange_T50.pdf new file mode 100644 index 00000000..e146cb69 Binary files /dev/null and b/doc/common/img/res_exchange_T50.pdf differ diff --git a/doc/common/img/res_exchange_T50.png b/doc/common/img/res_exchange_T50.png new file mode 100644 index 00000000..4faf2dd7 Binary files /dev/null and b/doc/common/img/res_exchange_T50.png differ diff --git a/doc/common/img/res_exchange_T70.pdf b/doc/common/img/res_exchange_T70.pdf new file mode 100644 index 00000000..273aade1 Binary files /dev/null and b/doc/common/img/res_exchange_T70.pdf differ diff --git a/doc/common/img/res_exchange_T70.png b/doc/common/img/res_exchange_T70.png new file mode 100644 index 00000000..22816a18 Binary files /dev/null and b/doc/common/img/res_exchange_T70.png differ diff --git a/doc/common/img/res_mapper.pdf b/doc/common/img/res_mapper.pdf new file mode 100644 index 00000000..54b893d8 Binary files /dev/null and b/doc/common/img/res_mapper.pdf differ diff --git a/doc/common/img/res_mapper.png b/doc/common/img/res_mapper.png new file mode 100644 index 00000000..d83e464d Binary files /dev/null and b/doc/common/img/res_mapper.png differ diff --git a/doc/common/img/res_minsearch.pdf b/doc/common/img/res_minsearch.pdf new file mode 100644 index 00000000..eadc2faf Binary files /dev/null and b/doc/common/img/res_minsearch.pdf differ diff --git a/doc/common/img/res_minsearch.png b/doc/common/img/res_minsearch.png new file mode 100644 index 00000000..b4a54fd1 Binary files /dev/null and b/doc/common/img/res_minsearch.png differ diff --git a/doc/common/img/res_pamc_T0.pdf b/doc/common/img/res_pamc_T0.pdf new file mode 100644 index 00000000..5a3049bd Binary files /dev/null and b/doc/common/img/res_pamc_T0.pdf differ diff --git a/doc/common/img/res_pamc_T0.png b/doc/common/img/res_pamc_T0.png new file mode 100644 index 00000000..e7c4d281 Binary files /dev/null and b/doc/common/img/res_pamc_T0.png differ diff --git a/doc/common/img/res_pamc_T1.pdf b/doc/common/img/res_pamc_T1.pdf new file mode 100644 index 00000000..9d0bb89c Binary files /dev/null and b/doc/common/img/res_pamc_T1.pdf differ diff --git a/doc/common/img/res_pamc_T1.png b/doc/common/img/res_pamc_T1.png new file mode 100644 index 00000000..42264a32 Binary files /dev/null and b/doc/common/img/res_pamc_T1.png differ diff --git a/doc/ja/source/acknowledgement.rst b/doc/ja/source/acknowledgement.rst index 19f6cd11..fae6b353 100644 --- a/doc/ja/source/acknowledgement.rst +++ b/doc/ja/source/acknowledgement.rst @@ -1,7 +1,7 @@ -*************************** -謝辞 -*************************** -本ソフトウェアの開発は、科研費(2019-2021年度)「超並列マシンを用いた計算統計と測定技術の融合」および東京大学物性研究所 ソフトウェア高度化プロジェクト (2020, 2021 年度) の支援を受け開発されました。 -本ソフトウェアの設計・変数命名の一部は `abics `_ を参考にしています。 -また、順問題ソルバーの実装にあたり、花田貴氏 (東北大学)、望月出海氏(KEK)、W. Voegeli氏(東京学芸大学)、白澤徹郎氏(AIST)、R. Ahmed氏(九州大学)、和田健氏(KEK)にお世話になりました。ソルバーの追加方法について、塚本恭平氏(物性研)にチュートリアルを追加していただきました。 -この場を借りて感謝します。 +*************************** +謝辞 +*************************** +本ソフトウェアの開発は、科研費(2019-2021年度)「超並列マシンを用いた計算統計と測定技術の融合」および東京大学物性研究所 ソフトウェア高度化プロジェクト (2020, 2021, 2024 年度) の支援を受け開発されました。 +本ソフトウェアの設計・変数命名の一部は `abics `_ を参考にしています。 +また、順問題ソルバーの実装にあたり、花田貴氏 (東北大学)、望月出海氏(KEK)、W. Voegeli氏(東京学芸大学)、白澤徹郎氏(AIST)、R. Ahmed氏(九州大学)、和田健氏(KEK)にお世話になりました。ソルバーの追加方法について、塚本恭平氏(物性研)にチュートリアルを追加していただきました。 +この場を借りて感謝します。 diff --git a/doc/ja/source/algorithm/bayes.rst b/doc/ja/source/algorithm/bayes.rst index a20722cf..6d474379 100644 --- a/doc/ja/source/algorithm/bayes.rst +++ b/doc/ja/source/algorithm/bayes.rst @@ -4,17 +4,17 @@ .. _PHYSBO: https://pasums.issp.u-tokyo.ac.jp/physbo ``bayes`` はベイズ最適化を用いてパラメータ探索を行う ``Algorithm`` です。 - 実装には `PHYSBO`_ を用いています。 前準備 ~~~~~~ -あらかじめ `PHYSBO`_ をインストールしておく必要があります。:: +あらかじめ `PHYSBO`_ をインストールしておく必要があります。 + +.. code-block:: bash - python3 -m pip install physbo + $ python3 -m pip install physbo -`mpi4py `_ がインストールされている場合、 -MPI 並列計算が可能です。 +`mpi4py `_ がインストールされている場合、MPI 並列計算が可能です。 入力パラメータ ~~~~~~~~~~~~~~~~~~~~~ @@ -77,7 +77,7 @@ MPI 並列計算が可能です。 形式: string型 (default: ``TS`` ) 説明: スコア関数を指定するパラメータ。 - ``EI``, ``PI``, ``TS`` より選択可能で、それぞれ "expected improvement", "probability of improvement", "Thompson sampling" を行う。 + ``EI``, ``PI``, ``TS`` より選択可能で、それぞれ "expected improvement", "probability of improvement", "Thompson sampling" を行います。 - ``interval`` @@ -143,8 +143,8 @@ MPI 並列計算が可能です。 `ベイズ最適化 (Bayesian optimization, BO) `_ は、機械学習を援用した最適化アルゴリズムであり、特に目的関数の評価に時間がかかるときに強力な手法です。 -BO では目的関数 :math:`f(\vec{x})` を、評価が早く最適化のしやすいモデル関数(多くの場合ガウス過程) :math:`g(\vec{x})` で近似します。 -:math:`g` は、あらかじめ適当に決められたいくつかの点(訓練データセット) :math:`\{\vec{x}_i\}_{i=1}^N` での目的関数の値 :math:`\{f(\vec{x}_i)\}_{i=1}^N` をよく再現するように訓練されます。 +BO では目的関数 :math:`f(\vec{x})` を、評価が早く最適化のしやすいモデル関数(多くの場合ガウス過程) :math:`g(\vec{x})` で近似します。 +:math:`g` は、あらかじめ適当に決められたいくつかの点(訓練データセット) :math:`\{\vec{x}_i\}_{i=1}^N` での目的関数の値 :math:`\{f(\vec{x}_i)\}_{i=1}^N` をよく再現するように訓練されます。 パラメータ空間の各点において、訓練された :math:`g(\vec{x})` の値の期待値およびその誤差から求められる「スコア」 (acquition function) が最適になるような点 :math:`\vec{x}_{N+1}` を次の計算候補点として提案します。 :math:`f(\vec{x}_{N+1})` を評価し、 訓練データセットに追加、 :math:`g` を再訓練します。 こうした探索を適当な回数繰り返した後、目的関数の値が最も良かったものを最適解として返します。 diff --git a/doc/ja/source/algorithm/exchange.rst b/doc/ja/source/algorithm/exchange.rst index 6d241114..5980fb17 100644 --- a/doc/ja/source/algorithm/exchange.rst +++ b/doc/ja/source/algorithm/exchange.rst @@ -6,9 +6,11 @@ 前準備 ~~~~~~~~ -あらかじめ `mpi4py `_ をインストールしておく必要があります。:: +MPI並列を利用する場合は、あらかじめ `mpi4py `_ をインストールしておきます。 - python3 -m pip install mpi4py +.. code-block:: + + $ python3 -m pip install mpi4py 入力パラメータ ~~~~~~~~~~~~~~~~~~~ @@ -130,7 +132,7 @@ ^^^^^^^^^^^^^^^^^^^^^^^^^^ 本ファイルで探索するグリッド空間を定義します。 -1列目にメッシュのインデックス(実際には使用されません)、 +1列目にメッシュのインデックス (実際には使用されません)、 2列目以降は探索空間の座標を指定します。 以下、サンプルを記載します。 @@ -231,13 +233,13 @@ アルゴリズム解説 -******************** +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ マルコフ連鎖モンテカルロ法 -~~~~~~~~~~~~~~~~~~~~~~~~~~~ +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -モンテカルロ法(モンテカルロサンプリング)では、パラメータ空間中を動き回る walker :math:`\vec{x}` を重み :math:`W(\vec{x})` に従って確率的に動かすことで目的関数の最適化を行います。 -重み :math:`W(\vec{x})` として、「温度」 :math:`T > 0` を導入して :math:`W(\vec{x}) = e^{-f(\vec{x})/T}` とすることが一般的です(ボルツマン重み)。 +モンテカルロ法(モンテカルロサンプリング)では、パラメータ空間中を動き回る walker :math:`\vec{x}` を重み :math:`W(\vec{x})` に従って確率的に動かすことで目的関数の最適化を行います。 +重み :math:`W(\vec{x})` として、「温度」 :math:`T > 0` を導入して :math:`W(\vec{x}) = e^{-f(\vec{x})/T}` とすることが一般的です(ボルツマン重み)。 ほとんどの場合において、 :math:`W` に基づいて直接サンプリングする (walker を生成する) のは不可能なので、 walker を確率的に少しずつ動かすことで、頻度分布が :math:`W` に従うように時系列 :math:`\{\vec{x}_t\}` を生成します (マルコフ連鎖モンテカルロ法, MCMC)。 :math:`\vec{x}` から :math:`\vec{x}'` へ遷移する確率を :math:`p(\vec{x}' | \vec{x})` とすると、 @@ -245,24 +247,25 @@ W(\vec{x}') = \sum_{\vec{x}} p(\vec{x}' | \vec{x}) W(\vec{x}) -となるように :math:`p` を定めれば時系列 :math:`\{\vec{x}_t\}` の頻度分布が :math:`W(\vec{x})` に収束することが示されます(釣り合い条件) [#mcmc_condition]_ 。 +となるように :math:`p` を定めれば(釣り合い条件)、時系列 :math:`\{\vec{x}_t\}` の頻度分布が :math:`W(\vec{x})` に収束することが示されます。 [#mcmc_condition]_ 実際の計算では、より強い制約である詳細釣り合い条件 .. math:: p(\vec{x} | \vec{x}') W(\vec{x}') = W(\vec{x})p(\vec{x}' | \vec{x}) -を課すことがほとんどです。 両辺で :math:`vec{x}` についての和を取ると釣り合い条件に帰着します。 +を課すことがほとんどです。 両辺で :math:`\vec{x}` についての和を取ると釣り合い条件に帰着します。 :math:`p` を求めるアルゴリズムはいくつか提案されていますが、 2DMAT では Metropolis-Hasting 法 (MH法) を用います。 MH 法では、遷移プロセスを提案プロセスと採択プロセスとに分割します。 1. 提案確率 :math:`P(\vec{x} | \vec{x}_t)` で候補点 :math:`\vec{x}` を生成します - - 提案確率 :math:`P` としては :math:`\vec{x}_t` を中心とした一様分布やガウス関数などの扱いやすいものを利用します + 提案確率 :math:`P` としては :math:`\vec{x}_t` を中心とした一様分布やガウス関数などの扱いやすいものを利用します 2. 提案された候補点 :math:`\vec{x}` を採択確率 :math:`Q(\vec{x}, | \vec{x}_t)` で受け入れ、 :math:`\vec{x}_{t+1} = \vec{x}` とします - - 受け入れなかった場合は :math:`\vec{x}_{t+1} = \vec{x}_t` とします + + 受け入れなかった場合は :math:`\vec{x}_{t+1} = \vec{x}_t` とします 採択確率 :math:`Q(\vec{x} | \vec{x}_t)` は @@ -272,8 +275,7 @@ MH 法では、遷移プロセスを提案プロセスと採択プロセスと とします。 この定義が詳細釣り合い条件を満たすことは、詳細釣り合いの式に代入することで簡単に確かめられます。 -特に、重みとしてボルツマン因子を、 -提案確率として対称なもの :math:`P(\vec{x} | \vec{x}_t) = P(\vec{x}_t | \vec{x})` を用いたときには、 +特に、重みとしてボルツマン因子を、提案確率として対称なもの :math:`P(\vec{x} | \vec{x}_t) = P(\vec{x}_t | \vec{x})` を用いたときには、 .. math:: @@ -287,7 +289,7 @@ MH 法では、遷移プロセスを提案プロセスと採択プロセスと MH 法によるMCMC は次のようになります。 1. 現在地点の近くからランダムに次の座標の候補を選び、目的関数 :math:`f` の値を調べる -2. :math:`\Delta f \le 0` ならば(山を下る方向ならば)移動する +2. :math:`\Delta f \le 0` ならば(山を下る方向ならば)移動する 3. :math:`\Delta f > 0` ならば採択確率 :math:`Q = e^{-\Delta f / T}` で移動する 4. 1-3 を適当な回数繰り返す @@ -295,7 +297,7 @@ MH 法によるMCMC は次のようになります。 3 番のプロセスのおかげで、 :math:`\Delta f \sim T` ぐらいの山を乗り越えられるので、局所最適解にトラップされた場合にも脱出可能です。 レプリカ交換モンテカルロ法 -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ モンテカルロ法による最適化では、温度 :math:`T` は非常に重要なハイパーパラメータとなっています。 モンテカルロ法では、温度 :math:`T` 程度の山を乗り越えられますが、逆にそれ以上の深さの谷からは容易に脱出できません。 @@ -305,10 +307,10 @@ MH 法によるMCMC は次のようになります。 この問題を解決する方法として、温度 :math:`T` を固定せずに更新していくというものがあります。 たとえば、焼きなまし法 (simulated annealing) では、温度をステップごとに徐々に下げていきます。 -焼戻し法 (simulated tempering) は、温度をハイパーパラメータではなく、サンプリングすべきパラメータとして扱い、(詳細)釣り合い条件を満たすように更新することで、加熱と冷却を実現します。温度を下げることで谷の詳細を調べ、温度を上げることで谷から脱出します。 +焼戻し法 (simulated tempering) は、温度をハイパーパラメータではなく、サンプリングすべきパラメータとして扱い、(詳細)釣り合い条件を満たすように更新することで、加熱と冷却を実現します。温度を下げることで谷の詳細を調べ、温度を上げることで谷から脱出します。 レプリカ交換モンテカルロ法 (replica exchange Monte Carlo) は焼戻し法を更に発展させた手法で、並列焼戻し法 (parallel tempering) とも呼ばれます。 レプリカ交換モンテカルロ法では、レプリカと呼ばれる複数の系を、それぞれ異なる温度で並列にモンテカルロシミュレーションします。 -そして、ある一定間隔で、(詳細)釣り合い条件を満たすように他のレプリカと温度を交換します。 +そして、ある一定間隔で、(詳細)釣り合い条件を満たすように他のレプリカと温度を交換します。 焼戻し法と同様に、温度を上下することで谷を調べたり脱出したりするのですが、各温度点について、かならずレプリカのどれかが対応しているため、全体として特定の温度に偏ることがなくなります。 また、複数の MPI プロセスを用意してそれぞれレプリカを担当させることで簡単に並列化可能です。 数多くのレプリカを用意することで温度間隔が狭まると、温度交換の採択率も上がるため、大規模並列計算に特に向いたアルゴリズムです。 diff --git a/doc/ja/source/algorithm/index.rst b/doc/ja/source/algorithm/index.rst index cabd8f0a..d25e07b9 100644 --- a/doc/ja/source/algorithm/index.rst +++ b/doc/ja/source/algorithm/index.rst @@ -7,7 +7,7 @@ ==================== 探索アルゴリズム ``Algorithm`` は ``Solver`` の結果 :math:`f(x)` を用いて -パラメータ空間 :math:`\mathbf{X} \ni x` を探索します。 +パラメータ空間 :math:`\mathbf{X} \ni x` を探索し、 :math:`f(x)` の最小化問題を解きます。 .. toctree:: :maxdepth: 1 diff --git a/doc/ja/source/algorithm/mapper_mpi.rst b/doc/ja/source/algorithm/mapper_mpi.rst index 716defd8..0593eb3f 100644 --- a/doc/ja/source/algorithm/mapper_mpi.rst +++ b/doc/ja/source/algorithm/mapper_mpi.rst @@ -1,4 +1,4 @@ -自明並列探索 ``mapper`` +グリッド型探索 ``mapper`` ****************************** ``mapper_mpi`` はパラメータ空間中の候補点をあらかじめ用意しておいて、そのすべてで :math:`f(x)` を計算することで最小値を探索するアルゴリズムです。 @@ -7,9 +7,11 @@ MPI 実行した場合、候補点の集合を等分割して各プロセスに 前準備 ~~~~~~~ -MPI 並列を行う場合は、 `mpi4py `_ をインストールしておく必要があります。:: +MPI 並列を行う場合は、 `mpi4py `_ をインストールしておく必要があります。 - python3 -m pip install mpi4py +.. code-block:: + + $ python3 -m pip install mpi4py 入力パラメータ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -86,10 +88,8 @@ MPI 並列を行う場合は、 `mpi4py `_ をインストールしておく必要があります。:: +MPI 並列をする場合にはあらかじめ `mpi4py `_ をインストールしておく必要があります。 - python3 -m pip install mpi4py +.. code-block:: bash + + $ python3 -m pip install mpi4py 入力パラメータ ~~~~~~~~~~~~~~~~~~~ @@ -154,7 +156,7 @@ MPI 並列をする場合にはあらかじめ `mpi4py `_ で受け付けています。 - - バグを早期に解決するため、報告時には次のガイドラインに従ってください。 - - - 使用している 2DMAT のバージョンを指定してください。 - - - インストールに問題がある場合には、使用しているオペレーティングシステムとコンパイラの情報についてお知らせください。 - - - 実行に問題が生じた場合は、実行に使用した入力ファイルとその出力を記載してください。 - -- その他 - - 研究に関連するトピックなどGitHubのIssuesで相談しづらいことを問い合わせる際には、以下の連絡先にコンタクトをしてください。 - - E-mail: ``2dmat-dev__at__issp.u-tokyo.ac.jp`` (_at_を@に変更してください) +お問い合わせ +========================================= + +2DMAT に関するお問い合わせはこちらにお寄せください。 + +- バグ報告 + + 2DMAT のバグ関連の報告は `GitHubのIssues `_ で受け付けています。 + + バグを早期に解決するため、報告時には次のガイドラインに従ってください。 + + - 使用している 2DMAT のバージョンを指定してください。 + + - インストールに問題がある場合には、使用しているオペレーティングシステムとコンパイラの情報についてお知らせください。 + + - 実行に問題が生じた場合は、実行に使用した入力ファイルとその出力を記載してください。 + +- その他 + + 研究に関連するトピックなどGitHubのIssuesで相談しづらいことを問い合わせる際には、以下の連絡先にコンタクトをしてください。 + + E-mail: ``2dmat-dev__at__issp.u-tokyo.ac.jp`` (_at_を@に変更してください) diff --git a/doc/ja/source/customize/algorithm.rst b/doc/ja/source/customize/algorithm.rst index 21ad0f0f..62e83150 100644 --- a/doc/ja/source/customize/algorithm.rst +++ b/doc/ja/source/customize/algorithm.rst @@ -1,15 +1,18 @@ ``Algorithm`` の定義 -====================== +================================ -``Algorithm`` クラスは ``py2dmat.algorithm.AlgorithmBase`` を継承したクラスとして定義します。 :: +``Algorithm`` クラスは ``py2dmat.algorithm.AlgorithmBase`` を継承したクラスとして定義します。 + +.. code-block:: python import py2dmat class Algorithm(py2dmat.algorithm.AlgorithmBase): pass + ``AlgorithmBase`` -~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ``AlgorithmBase`` クラスは次のメソッドを提供します。 @@ -61,7 +64,14 @@ - ``run(self) -> None`` - 最適化アルゴリズムを実行します - - ``self.proc_dir`` に移動し、 ``self._run()`` を実行した後、元のディレクトリに戻ります + - 以下の処理を行います + + #. ``self.proc_dir`` に移動する + #. ``self.runner.prepare()`` を実行する + #. ``self._run()`` を実行する + #. ``self.runner.post()`` を実行する + #. 元のディレクトリに戻る + - ``self.prepare()`` の後に実行する必要があります - ``post(self) -> None`` @@ -75,37 +85,23 @@ - それぞれの関数でかかった時間を計測し、結果をファイル出力します -- ``_read_param(self, info: py2dmat.Info) -> Tuple[np.ndarray, np.ndarray, np.ndarray, np.ndarray]`` - - - 連続なパラメータ空間を定義するためのヘルパーメソッドです - - ``info.algorithm["param"]`` から探索パラメータの初期値や最小値、最大値、単位を取得します - - 詳細は :ref:`min_search の入力ファイル ` を参照してください - -- ``_mesh_grid(self, info: py2dmat.Info, split: bool = False) -> Tuple[np.ndarray, np.ndarray]`` - - - 離散的なパラメータ空間を定義するためのヘルパーメソッドです - - ``info.algorithm["param"]`` を読み取り次を返します: - - - ``D`` 次元の候補点 ``N`` 個からなる集合 (``NxD`` 次元の行列として) - - ``N`` 個の候補点のID(index) - - - ``split`` が ``True`` の場合、候補点集合は分割され各MPI ランクに配られます - - 詳細は :ref:`mapper の入力ファイル ` を参照してください - ``Algorithm`` -~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ``Algorithm`` は少なくとも次のメソッドを定義しなければなりません。 -- ``__init__(self, info: py2dmat.Info, runner: py2dmat.Runner = None)`` +- ``__init__(self, info: py2dmat.Info, runner: py2dmat.Runner = None, domain = None)`` - - 引数はそのまま基底クラスのコンストラクタに転送してください + - ``info`` および ``runner`` 引数はそのまま基底クラスのコンストラクタに転送してください - ``super().__init__(info=info, runner=runner)`` - 入力パラメータである ``info`` から必要な設定を読み取り、保存してください + - ``domain`` が指定されている場合は、探索領域を ``domain`` から取得します。 + 指定されていない場合は ``py2dmat.domain.Region(info)`` (探索領域が連続的な場合) または ``py2dmat.domain.MeshGrid(info)`` (離散的な場合) を用いて ``info`` から作成します。 + - ``_prepare(self) -> None`` - 最適化アルゴリズムの前処理を記述します @@ -113,11 +109,57 @@ - ``_run(self) -> None`` - 最適化アルゴリズムを記述します - - 探索パラメータ ``x`` から対応する目的関数の値 ``f(x)`` を得る方法 :: + - 探索パラメータ ``x`` から対応する目的関数の値 ``f(x)`` を得るには、次のように Runner クラスのメソッドを呼び出します。 - message = py2dmat.Message(x, step, set) - fx = self.runner.submit(message) + .. code-block:: python + + args = (step, set) + fx = self.runner.submit(x, args) - ``_post(self) -> None`` - 最適化アルゴリズムの後処理を記述します + + + +``Domain`` の定義 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +探索領域を記述する 2種類のクラスが用意されています。 + +``Region`` クラス +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +連続的なパラメータ空間を定義するためのヘルパークラスです。 + +- コンストラクタ引数は ``Info`` または ``param=`` にdict形式のパラメータを取ります。 + + - ``Info`` 型の引数の場合、 ``Info.algorithm.param`` から探索範囲の最小値・最大値・単位や初期値を取得します。 + + - dict 型の引数の場合は ``Info.algorithm.param`` 相当の内容を辞書形式で受け取ります。 + + - 詳細は :ref:`min_search の入力ファイル ` を参照してください。 + +- ``initialize(self, rng, limitation, num_walkers)`` を呼んで初期値の設定を行います。引数は乱数発生器 ``rng``, 制約条件 ``limitation``, walker の数 ``num_walkers`` です。 + + +``MeshGrid`` クラス +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +離散的的なパラメータ空間を定義するためのヘルパークラスです。 + +- コンストラクタ引数は ``Info`` または ``param=`` にdict形式のパラメータを取ります。 + + - ``Info`` 型の引数の場合、 ``Info.algorithm.param`` から探索範囲の最小値・最大値・単位や初期値を取得します。 + + - dict 型の引数の場合は ``Info.algorithm.param`` 相当の内容を辞書形式で受け取ります。 + + - 詳細は :ref:`mapper の入力ファイル ` を参照してください + +- ``do_split(self)`` メソッドは、候補点の集合を分割して各MPIランクに配分します。 + +- 入出力について + + - ``from_file(cls, path)`` クラスメソッドは、 ``path`` からメッシュデータを読み込んで ``MeshGrid`` クラスのインスタンスを作成します。 + + - ``store_file(self, path)`` メソッドは、メッシュの情報を ``path`` のファイルに書き出します。 diff --git a/doc/ja/source/customize/common.rst b/doc/ja/source/customize/common.rst index 014e498f..8bd4fa0d 100644 --- a/doc/ja/source/customize/common.rst +++ b/doc/ja/source/customize/common.rst @@ -1,10 +1,10 @@ 共通事項 -========== +================================ ``Solver`` と ``Algorithm`` に共通する事柄について説明します。 ``py2dmat.Info`` -~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 入力パラメータを扱うためのクラスです。 インスタンス変数として次の4つの ``dict`` を持ちます。 @@ -25,66 +25,87 @@ - ``Runner`` が用いる入力パラメータ -``Info`` は ``base``, ``solver``, ``algorithm``, ``runner`` の4つのキーを持つような ``dict`` を渡して初期化出来ます。 +``Info`` は ``base``, ``solver``, ``algorithm``, ``runner`` の4つのキー(省略可)を持つ ``dict`` を渡して初期化できます。また、クラスメソッド ``from_file`` に TOML形式の入力ファイルへのパスを渡して作成することもできます。 -- ``base`` について - - 要素として計算のルートディレクトリ ``root_dir`` と出力のルートディレクトリ ``output_dir`` が自動で設定されます +``base`` について +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - - ルートディレクトリ ``root_dir`` +要素として計算のルートディレクトリ ``root_dir`` と出力のルートディレクトリ ``output_dir`` が自動で設定されます - - 絶対パスに変換されたものがあらためて ``root_dir`` に設定されます - - 先頭の ``~`` はホームディレクトリに展開されます - - デフォルトはカレントディレクトリ ``"."`` です - - 具体的には次のコードが実行されます :: +- ルートディレクトリ ``root_dir`` - p = pathlib.Path(base.get("root_dir", ".")) - base["root_dir"] = p.expanduser().absolute() + - 絶対パスに変換されたものがあらためて ``root_dir`` に設定されます + - 先頭の ``~`` はホームディレクトリに展開されます + - デフォルトはカレントディレクトリ ``"."`` です + - 具体的には次のコードが実行されます - - 出力ディレクトリ ``output_dir`` + .. code-block:: python - - 先頭の ``~`` はホームディレクトリに展開されます - - 絶対パスが設定されていた場合はそのまま設定されます - - 相対パスが設定されていた場合、 ``root_dir`` を起点とした相対パスとして解釈されます - - デフォルトは ``"."`` 、つまり ``root_dir`` と同一ディレクトリです - - 具体的には次のコードが実行されます :: + p = pathlib.Path(base.get("root_dir", ".")) + base["root_dir"] = p.expanduser().absolute() - p = pathlib.Path(base.get("work_dir", ".")) - p = p.expanduser() - base["work_dir"] = base["root_dir"] / p +- 出力ディレクトリ ``output_dir`` + - 先頭の ``~`` はホームディレクトリに展開されます + - 絶対パスが設定されていた場合はそのまま設定されます + - 相対パスが設定されていた場合、 ``root_dir`` を起点とした相対パスとして解釈されます + - デフォルトは ``"."`` 、つまり ``root_dir`` と同一ディレクトリです + - 具体的には次のコードが実行されます -``py2dmat.Message`` -~~~~~~~~~~~~~~~~~~~~~~ -``Algorithm`` から ``Runner`` を介して ``Solver`` に渡されるクラスです。 -次の3つのインスタンス変数を持ちます。 + .. code-block:: python -- ``x: np.ndarray`` + p = pathlib.Path(base.get("work_dir", ".")) + p = p.expanduser() + base["work_dir"] = base["root_dir"] / p - - 探索中のパラメータ座標 -- ``step: int`` +``py2dmat.Runner`` +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - - 何個目のパラメータであるか - - 例えば ``exchange`` ではステップ数で、 ``mapper`` ではパラメータの通し番号。 +``Runner`` は ``Algorithm`` と ``Solver`` とをつなげるためのクラスです。 +コンストラクタ引数として ``Solver`` のインスタンス、 ``Info`` のインスタンス、パラメータの変換を記述する ``Mapping`` のインスタンス、制約条件を記述する ``Limitation`` のインスタンスを取ります。 +``Mapping`` のインスタンスを省略した場合は変換しない ``TrivialMapping`` が仮定されます。 +``Limitation`` のインスタンスを省略した場合は、制約を課さない ``Unlimited`` が仮定されます。 -- ``set: int`` +``submit(self, x: np.ndarray, args: Tuple[int,int]) -> float`` メソッドは、探索パラメータ ``x`` とオプションパラメータ ``args`` に対してソルバーを実行し、結果として目的関数の値 ``f(x)`` を返します。 +関数を評価する際に ``Limitation`` のインスタンスを用いて探索パラメータ ``x`` が制約を満たしているかを確認します。次に ``Mapping`` のインスタンスを用いて ``x`` から実際にソルバーが使う入力 ``y = mapping(x)`` を得ます。 - - 何巡目のパラメータであるか - - 例えば ``min_search`` では最適化(1巡目)後にステップごとの最適値を再計算します(2巡目)。 +その他、 ``Runner`` で使われる ``info`` の詳細は :doc:`../input` を参照してください。 -``py2dmat.Runner`` -~~~~~~~~~~~~~~~~~~~~~~~~~~ -``Algorithm`` と ``Solver`` とをつなげるためのクラスです。 -コンストラクタ引数として ``Solver`` のインスタンスと ``Info`` のインスタンス、パラメータの変換ルーチン ``mapping : Callable[[np.ndarray], np.ndarray]`` を取ります。 -``submit(self, message: py2dmat.Message) -> float`` メソッドでソルバーを実行し、結果を返します。 -探索パラメータを ``x`` として、 目的関数 ``fx = f(x)`` を得たい場合は以下のようにします :: +``py2dmat.Mapping`` +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - message = py2dmat.Message(x, step, set) - fx = runner.submit(message) +``Mapping`` は逆問題解析アルゴリズムの探索パラメータから順問題ソルバーの変数へのマッピングを記述するクラスです。 ``__call__(self, x: np.ndarray) -> np.ndarray`` メソッドを持つ関数オブジェクトとして定義します。 +現在は自明な変換 ``TrivialMapping`` とアフィン写像 ``Affine`` のクラスが定義されています。 -``submit`` メソッドは ``mapping`` を用いて、探索アルゴリズムのパラメータ ``x`` から実際にソルバーが使う入力 ``y = mapping(x)`` を得ます。 -``mapping`` を省略した場合 (``None`` を渡した場合)、変換ルーチンとしてアフィン写像 :math:`y=Ax+b` が用いられます (``py2dmat.util.mapping.Affine(A,b)``)。 -``A, b`` の要素は ``info`` で与えられます。 -その他、 ``Runner`` で使われる ``info`` の詳細は :doc:`../input` を参照してください。 +``TrivialMapping`` +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +自明なマッピング :math:`x\to x` (変換しない)を与えるクラスです。 +Runner クラスの引数のデフォルト値となります。 + +``Affine`` +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +アフィン変換 :math:`x \to y=Ax+b` を与えるクラスです。 +要素 ``A``, ``b`` はコンストラクタの引数に指定するか、 ``from_dict`` クラスメソッドに辞書の形式で与えます。 +``py2dmat`` の入力ファイルに指定する場合、パラメータの指定方法は「入力ファイル」の mapping セクションを参照してください。 + + +``py2dmat.Limitation`` +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +``Limitation`` は逆問題解析アルゴリズムで探索する :math:`N` 次元のパラメータ :math:`x` に課す制約条件を与えるクラスです。 ``judge(self, x: np.ndarray) -> bool`` のメソッドを持つクラスとして定義します。 +現在は制約なし ``Unlimited`` と線形不等式制約 ``Inequality`` のクラスが定義されています。 + +``Unlimited`` +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +制約条件を課さないというクラスです。 ``judge`` メソッドは常に ``True`` を返します。 +Runner クラスの引数のデフォルト値となります。 + +``Inequality`` +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +:math:`N` 次元の探索パラメータ :math:`x` に対して、 :math:`M` 行 :math:`N` 列の行列 :math:`A` と :math:`M` 次元のベクトル :math:`b` で与えられる :math:`M` 個の制約条件 :math:`A x + b > 0` を課すクラスです。 + +要素 ``A``, ``b`` はコンストラクタの引数に指定するか、 ``from_dict`` クラスメソッドに辞書の形式で与えます。 +``py2dmat`` の入力ファイルに指定する場合、パラメータの指定方法は「入力ファイル」の mapping セクションを参照してください。 diff --git a/doc/ja/source/customize/solver.rst b/doc/ja/source/customize/solver.rst index 3cbcf4ab..1778c4c9 100644 --- a/doc/ja/source/customize/solver.rst +++ b/doc/ja/source/customize/solver.rst @@ -1,59 +1,54 @@ ``Solver`` の定義 -================== +================================ -``Solver`` クラスは ``py2dmat.solver.SolverBase`` を継承したクラスとして定義します。:: +順問題を記述する ``Solver`` は、入力変数に対して目的関数の値を返す ``evaluate`` メソッドを持つクラスとして次のように定義します。 - import py2dmat +- コンストラクタ - class Solver(py2dmat.solver.SolverBase): - pass + コンストラクタは ``Info`` クラスのメソッドを引数としてとります。 -このクラスは少なくとも次のメソッドを定義しなければなりません。 + .. code-block:: python -- ``__init__(self, info: py2dmat.Info)`` + class Solver: + def __init__(self, info: py2dmat.Info): + pass - - 必ず基底クラスのコンストラクタを呼び出してください + コンストラクタでは、引数で指定した info からパラメータを取得します。基本パラメータを info.base から、ソルバー固有のパラメータを info.solver からそれぞれ取り出して適宜セットします。 - - ``super().__init__(info)`` + ディレクトリに関する規約は次の通りです。 - - 基底クラスのコンストラクタでは次のインスタンス変数が設定されます + - ``root_dir`` はルートディレクトリです。 ``info.base["root_dir"]`` から取得でき、 ``py2dmat`` を実行するディレクトリになります。外部プログラムやデータファイルなどを参照する際に起点として利用できます。 - - ``self.root_dir: pathlib.Path`` : ルートディレクトリ + - ``output_dir`` は出力ファイルを書き出すディレクトリです。 ``info.base["output_dir"]`` から取得できます。通例、MPI並列の場合は各ランクからのデータを集約した結果を出力します。 - - ``info.base["root_dir"]`` + - ``proc_dir`` はプロセスごとの作業用ディレクトリです。 ``output_dir / str(self.mpirank)`` が設定されます。 + ソルバーの ``evaluate`` メソッドは ``proc_dir`` をカレントディレクトリとして Runner から呼び出され、MPIプロセスごとの中間結果などを出力します。 + MPIを使用しない場合もランク番号を0として扱います。 - - ``self.output_dir: pathlib.Path`` : 出力ファイルを書き出すディレクトリ + - ``work_dir`` はソルバーの作業ディレクトリです。ソルバーごとに独自に規定して使用します。 - - ``info.base["output_dir"]`` + +- ``evaluate`` メソッド - - ``self.proc_dir: pathlib.Path`` : プロセスごとの作業用ディレクトリ + .. code-block:: python - - ``self.output_dir / str(self.mpirank)`` で初期化されます + def evaluate(self, x, args=(), nprocs=1, nthreads=1) -> float: + pass - - ``self.work_dir: pathlib.Path`` : ソルバーが実行されるディレクトリ + 入力変数に対して目的変数の値を返すメソッドです。以下の引数を取ります。 - - ``self.proc_dir`` で初期化されます + - ``x: np.ndarray`` - - 入力パラメータである ``info`` から必要な設定を読み取り、保存してください + 入力変数を numpy.ndarray 型の :math:`N` 次元ベクトルとして受け取ります。 -- ``prepare(self, message: py2dmat.Message) -> None`` + - ``args: Tuple = ()`` - - ソルバーが実行される前によびだされます - - ``message`` には入力パラメータが含まれるので、ソルバーが利用できる形に変換してください + Algorithm から渡される追加の引数で、step数と set番号からなる Tuple です。step数は Monte Carlo のステップ数や、グリッド探索のグリッド点のインデックスです。set番号は n巡目を表します。 - - 例:ソルバーの入力ファイルを生成する + - ``nprocs: int = 1`` -- ``run(self, nprocs: int = 1, nthreads: int = 1) -> None`` + - ``nthreads: int = 1`` - - ソルバーを実行します - - 後ほど ``get_results`` で目的関数の値を読み取れるようにしておいてください + ソルバーを MPI並列・スレッド並列で実行する際のプロセス数・スレッド数を受け取ります。現在は ``procs=1``, ``nthreads=1`` のみ対応しています。 - - 例:出力結果をインスタンス変数に保存しておく - - 例:実行結果をファイルに保存しておく - -- ``get_results(self) -> float`` - - - ソルバーが実行されたあとに呼び出されます - - ソルバーの実行結果を返却してください - - - 例:ソルバーの出力ファイルから実行結果を読み取る + ``evaluate`` メソッドは、Float 型の目的関数の値を返します。 diff --git a/doc/ja/source/customize/usage.rst b/doc/ja/source/customize/usage.rst index 1fcb6698..e0be549e 100644 --- a/doc/ja/source/customize/usage.rst +++ b/doc/ja/source/customize/usage.rst @@ -1,16 +1,16 @@ 実行方法 -=========== +================================ 次のようなフローで最適化問題を実行できます。 プログラム例にあるコメントの番号はフローの番号に対応しています。 1. ユーザ定義クラスを作成する - - もちろん、 ``py2dmat`` で定義済みのクラスも利用可能です + - ``py2dmat`` で定義済みのクラスも利用可能です 2. 入力パラメータ ``info: py2dmat.Info`` を作成する - - プログラム例では入力ファイルとしてTOML を利用していますが、辞書をつくれれば何でも構いません + - ``Info`` クラスにはTOML形式の入力ファイルを読み込むクラスメソッドが用意されています。この他にも、dict形式でパラメータを用意して ``Info`` クラスのコンストラクタに渡して作成することができます。 3. ``solver: Solver``, ``runner: py2dmat.Runner``, ``algorithm: Algorithm`` を作成する @@ -22,11 +22,10 @@ .. code-block:: python import sys - import tomli import py2dmat # (1) - class Solver(py2dmat.solver.SolverBase): + class Solver: # Define your solver pass @@ -35,9 +34,8 @@ pass # (2) - with open(sys.argv[1]) as f: - inp = tomli.load(f) - info = py2dmat.Info(inp) + input_file = sys.argv[1] + info = py2dmat.Info.from_file(input_file) # (3) solver = Solver(info) diff --git a/doc/ja/source/input.rst b/doc/ja/source/input.rst index d558044e..714cd290 100644 --- a/doc/ja/source/input.rst +++ b/doc/ja/source/input.rst @@ -1,8 +1,8 @@ 入力ファイル -===================== +================================ py2dmat は入力ファイルの形式に `TOML `_ を採用しています。 -入力ファイルは次の6つのセクションから構成されます。 +入力ファイルは次の4つのセクションから構成されます。 - ``base`` @@ -20,22 +20,14 @@ py2dmat は入力ファイルの形式に `TOML `_ を採 - ``Runner`` のパラメータを指定します。 -- ``mapping`` - - - ``Algorithm`` で探索しているパラメータから ``Solver`` で使うパラメータへの写像を定義します。 - -- ``log`` - - - solver 呼び出しのlogging に関して設定します。 - [``base``] セクション -************************ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - ``dimension`` 形式: 整数型 - 説明: 探索空間の次元(探索するパラメータの数) + 説明: 探索空間の次元(探索するパラメータの数) - ``root_dir`` @@ -51,7 +43,7 @@ py2dmat は入力ファイルの形式に `TOML `_ を採 説明: プログラムの実行結果を出力するディレクトリ名 [``solver``] セクション -************************ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ``name`` でソルバーの種類を決定します。各パラメータはソルバーごとに定義されています。 @@ -61,9 +53,15 @@ py2dmat は入力ファイルの形式に `TOML `_ を採 説明: ソルバーの名前。以下のソルバーが用意されています。 - - ``sim-trhepd-rheed`` : 反射高速(陽)電子回折(RHEED, TRHEPD)の強度計算をするためのソルバー ``sim-trhepd-rheed`` + - ``analytical`` : 解析関数を与えるソルバー (主にテストに利用) - - ``analytical`` : 解析解を与えるソルバー (主にテストに利用) + 以下は別モジュールとして配布される2次元物質構造解析向けソルバーです。 + + - ``sim-trhepd-rheed`` : 反射高速(陽)電子回折(RHEED, TRHEPD)の強度計算をするためのソルバー + + - ``sxrd`` : 表面X線回折(SXRD)解析のためのソルバー + + - ``leed`` : 低速電子線回折(LEED)解析のためのソルバー - ``dimension`` @@ -77,7 +75,7 @@ py2dmat は入力ファイルの形式に `TOML `_ を採 .. _input_algorithm: [``algorithm``] セクション -******************************* +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ``name`` でアルゴリズムの種類を決定します。各パラメータはアルゴリズムごとに定義されています。 @@ -87,17 +85,19 @@ py2dmat は入力ファイルの形式に `TOML `_ を採 説明: アルゴリズムの名前。以下のアルゴリズムが用意されています。 - - ``minsearch`` : Nelder-Mead法による最小値探索 + - ``minsearch``: Nelder-Mead法による最小値探索 + + - ``mapper``: グリッド探索 - - ``mapper`` : グリッド探索 + - ``exchange``: レプリカ交換モンテカルロ法 - - ``exchange`` : レプリカ交換モンテカルロ + - ``pamc``: ポピュレーションアニーリングモンテカルロ法 - - ``bayes`` : ベイズ最適化 + - ``bayes``: ベイズ最適化 - ``seed`` - 形式: 整数値。 + 形式: 整数値 説明: 初期値のランダム生成やモンテカルロ更新などで用いる擬似乱数生成器の種を指定します。 各MPIプロセスに対して、 ``seed + mpi_rank * seed_delta`` の値が実際の種として用いられます。 @@ -116,18 +116,19 @@ py2dmat は入力ファイルの形式に `TOML `_ を採 [``runner``] セクション -************************ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + ``Algorithm`` と ``Solver`` を橋渡しする要素である ``Runner`` の設定を記述します。 -サブセクションとして ``mapping`` 、 ``limitation`` 、 ``log`` を持ちます。 +サブセクションとして ``mapping``, ``limitation``, ``log`` を持ちます。 -[``mapping``] セクション -************************************************ +[``runner.mapping``] セクション +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ``Algorithm`` で探索している :math:`N` 次元のパラメータ :math:`x` から ``Solver`` で使う :math:`M` 次元のパラメータ :math:`y` への写像を定義します。 :math:`N \ne M` となる場合には、 ``solver`` セクションにも ``dimension`` パラメータを指定してください。 -現在はアフィン写像(線形写像+平行移動) :math:`y = Ax+b` が利用可能です。 +現在はアフィン写像(線形写像+平行移動) :math:`y = Ax+b` が利用可能です。 - ``A`` @@ -167,12 +168,12 @@ py2dmat は入力ファイルの形式に `TOML `_ を採 を表します。 -[``limitation``] セクション -************************************************ +[``runner.limitation``] セクション +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ``Algorithm`` で探索している :math:`N` 次元のパラメータ :math:`x` に、制約条件を課すことが出来ます。 -``Algorithm`` ごとに定義する探索範囲(例:``exchange`` の ``min_list`` や ``max_list`` ) に加えて課すことが出来ます。 -現在は :math:`M` 行 :math:`N` 列の行列:math:`A` と :math:`M` 次元の縦ベクトル:math:`b` から定義される :math:`Ax+b>0` の制約式が利用可能です。具体的に +``Algorithm`` ごとに定義する探索範囲(例:``exchange`` の ``min_list`` や ``max_list`` ) に加えて課すことが出来ます。 +現在は :math:`M` 行 :math:`N` 列の行列 :math:`A` と :math:`M` 次元の縦ベクトル :math:`b` から定義される :math:`Ax+b>0` の制約式が利用可能です。具体的に .. math:: @@ -181,8 +182,8 @@ py2dmat は入力ファイルの形式に `TOML `_ を採 &...\\ A_{M,1} x_{1} + A_{M,2} x_{2} + &... + A_{M,N} x_{N} + b_{M} > 0 -という制約をかけることが出来ます。 -ここで :math:`M` は制約式の個数(任意)となります。 +という制約をかけることができます。 +ここで :math:`M` は制約式の個数(任意)となります。 - ``co_a`` @@ -190,7 +191,7 @@ py2dmat は入力ファイルの形式に `TOML `_ を採 説明: 制約式の行列 :math:`A` を設定します。 - 行数は制約式数 :math:`M` 列数は探索変数の数 :math:`N` である必要があります。 + 行数は制約式数 :math:`M` 、列数は探索変数の数 :math:`N` である必要があります。 ``co_b`` を同時に定義する必要があります。 @@ -208,7 +209,9 @@ py2dmat は入力ファイルの形式に `TOML `_ を採 A = [[1,1], [0,1]] -と :: +と + +.. code-block:: toml A = """ 1 1 @@ -226,15 +229,21 @@ py2dmat は入力ファイルの形式に `TOML `_ を採 \end{matrix} \right) -を表します。また、 :: +を表します。また、 + +.. code-block:: toml co_b = [[0], [-1]] -と :: +と + +.. code-block:: toml co_b = """0 -1""" -と :: +と + +.. code-block:: toml co_b = """ 0 @@ -255,8 +264,8 @@ py2dmat は入力ファイルの形式に `TOML `_ を採 を表します。 ``co_a`` と ``co_b`` のどちらも定義しない場合、制約式を課さずに探索します。 -[``log``] セクション -************************************************ +[``runner.log``] セクション +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ solver 呼び出しのlogging に関する設定です。 @@ -276,10 +285,10 @@ solver 呼び出しのlogging に関する設定です。 形式: 真偽値 (default: false) - 説明: solver からの出力を記録するかどうか。 + 説明: solver からの出力を記録するかどうかを指定します。 - ``write_input`` 形式: 真偽値 (default: false) - 説明: solver への入力を記録するかどうか。 + 説明: solver への入力を記録するかどうかを指定します。 diff --git a/doc/ja/source/introduction.rst b/doc/ja/source/introduction.rst index 40bec3f8..7e71360d 100644 --- a/doc/ja/source/introduction.rst +++ b/doc/ja/source/introduction.rst @@ -4,18 +4,20 @@ 2DMATとは ---------------------- -2DMATは,順問題ソルバーに対して探索アルゴリズムを適用して最適解を探すためのフレームワークです. 順問題ソルバーはユーザー自身で定義することが可能です. -標準的な順問題ソルバーとしては2次元物質構造解析向け実験データ解析ソフトウェアが用意されています. 順問題ソルバーでは原子位置などをパラメータとし得られたデータと実験データとのずれを損失関数として与えます. -探索アルゴリズムを組み合わせ, この損失関数を最小化することで, 最適なパラメータを推定します. -現バージョンでは, 順問題ソルバーとして量子ビーム回折実験の全反射高速陽電子回折実験(Total-reflection high-energy positron diffraction ,TRHEPD,トレプト)[1, 2],sxrd[3], leed[4]に対応しており, -探索アルゴリズムはNelder-Mead法[5], グリッド型探索法[6], ベイズ最適化[7], レプリカ交換モンテカルロ法[8], ポピュレーションアニーリングモンテカルロ法[9, 10, 11]が実装されています. 今後は, 本フレームワークをもとにより多くの順問題ソルバーおよび探索アルゴリズムを実装していく予定です. +2DMATは、順問題ソルバーに対して探索アルゴリズムを適用して最適解を探すためのフレームワークです。 +順問題ソルバーはユーザー自身で定義することが可能です。 +標準的な順問題ソルバーとしては2次元物質構造解析向け実験データ解析ソフトウェアが用意されています。 +順問題ソルバーでは原子位置などをパラメータとし得られたデータと実験データとのずれを損失関数として与えます。 +探索アルゴリズムを組み合わせ、この損失関数を最小化することで、最適なパラメータを推定します。 +現バージョンでは、順問題ソルバーとして量子ビーム回折実験の全反射高速陽電子回折法(Total-reflection high-energy positron diffraction: TRHEPD)[1, 2], 表面X線回折法(sxrd)[3], 低速電子線回折法(leed)[4]に対応しており、探索アルゴリズムはNelder-Mead法[5], グリッド型探索法[6], ベイズ最適化[7], レプリカ交換モンテカルロ法[8], ポピュレーションアニーリングモンテカルロ法[9, 10, 11]が実装されています。 +今後は、本フレームワークをもとにより多くの順問題ソルバーおよび探索アルゴリズムを実装していく予定です。 [1] レビューとして, `Y.Fukaya, et al., J. Phys. D: Appl. Phys. 52, 013002 (2019) `_; `兵頭俊夫,「全反射高速陽電子回折 (TRHEPD)による表面構造解析」,固体物理 53, 705 (2018) `_. [2] `T. Hanada, Y. Motoyama, K. Yoshimi, and T. Hoshi, Computer Physics Communications 277, 108371 (2022). `_ -[3] W. Voegeli, K. Akimoto, T. Aoyama, K. Sumitani, S. Nakatani, H. Tajiri, T. Takahashi, Y. Hisada, S. Mukainakano, X. Zhang, H. Sugiyama, H. Kawata, Applied Surface Science 252 (2006) 5259. +[3] `W. Voegeli, K. Akimoto, T. Aoyama, K. Sumitani, S. Nakatani, H. Tajiri, T. Takahashi, Y. Hisada, S. Mukainakano, X. Zhang, H. Sugiyama, H. Kawata, Applied Surface Science 252 (2006) 5259. `_ [4] `M.A. Van Hove, W. Moritz, H. Over, P.J. Rous, A. Wander, A. Barbieri, N. Materer, U. Starke, G.A. Somorjai, Automated determination of complex surface structures by LEED, Surface Science Reports, Volume 19, 191-229 (1993). `_ @@ -36,35 +38,35 @@ ライセンス ---------------------- | 本ソフトウェアのプログラムパッケージおよびソースコード一式はGNU - General Public License version 3(GPL v3)に準じて配布されています。 + General Public License version 3(GPL v3)に準じて配布されています。 Copyright (c) <2020-> The University of Tokyo. All rights reserved. -本ソフトウェアは2020年度 東京大学物性研究所 ソフトウェア高度化プロジェクトの支援を受け開発されました。 +本ソフトウェアは2020年度・2021年度・2024年度 東京大学物性研究所 ソフトウェア高度化プロジェクトの支援を受け開発されました。 2DMATを引用する際には以下の文献を引用してください。 -“Data-analysis software framework 2DMAT and its application to experimental measurements for two-dimensional material structures”, -Y. Motoyama, K. Yoshimi, I. Mochizuki, H. Iwamoto, H. Ichinose, and T. Hoshi, Computer Physics Communications 280, 108465 (2022). +"Data-analysis software framework 2DMAT and its application to experimental measurements for two-dimensional material structures", Y. Motoyama, K. Yoshimi, I. Mochizuki, H. Iwamoto, H. Ichinose, and T. Hoshi, Computer Physics Communications 280, 108465 (2022). Bibtex: -@article{MOTOYAMA2022108465, -title = {Data-analysis software framework 2DMAT and its application to experimental measurements for two-dimensional material structures}, -journal = {Computer Physics Communications}, -volume = {280}, -pages = {108465}, -year = {2022}, -issn = {0010-4655}, -doi = {https://doi.org/10.1016/j.cpc.2022.108465}, -url = {https://www.sciencedirect.com/science/article/pii/S0010465522001849}, -author = {Yuichi Motoyama and Kazuyoshi Yoshimi and Izumi Mochizuki and Harumichi Iwamoto and Hayato Ichinose and Takeo Hoshi} -} +| @article{MOTOYAMA2022108465, +| title = {Data-analysis software framework 2DMAT and its application to experimental measurements for two-dimensional material structures}, +| journal = {Computer Physics Communications}, +| volume = {280}, +| pages = {108465}, +| year = {2022}, +| issn = {0010-4655}, +| doi = {https://doi.org/10.1016/j.cpc.2022.108465}, +| url = {https://www.sciencedirect.com/science/article/pii/S0010465522001849}, +| author = {Yuichi Motoyama and Kazuyoshi Yoshimi and Izumi Mochizuki and Harumichi Iwamoto and Hayato Ichinose and Takeo Hoshi} +| } バージョン履歴 ---------------------- +- v3.0.0 : 2024-XX-XX - v2.1.0 : 2022-04-08 - v2.0.0 : 2022-01-17 - v1.0.1 : 2021-04-15 @@ -75,15 +77,22 @@ author = {Yuichi Motoyama and Kazuyoshi Yoshimi and Izumi Mochizuki and Harumich ---------------------- 2DMATは以下のメンバーで開発しています. +- v3.0.0 - + + - 本山 裕一 (東京大学 物性研究所) + - 吉見 一慶 (東京大学 物性研究所) + - 青山 龍美 (東京大学 物性研究所) + - 星  健夫 (核融合科学研究所) + - v2.0.0 - - 本山 裕一 (東京大学 物性研究所) - 吉見 一慶 (東京大学 物性研究所) - 岩本 晴道 (鳥取大学 大学院工学研究科) - - 星 健夫 (鳥取大学 大学院工学研究科) + - 星  健夫 (鳥取大学 大学院工学研究科) - v0.1.0 - - 本山 裕一 (東京大学 物性研究所) - 吉見 一慶 (東京大学 物性研究所) - - 星 健夫 (鳥取大学 大学院工学研究科) + - 星  健夫 (鳥取大学 大学院工学研究科) diff --git a/doc/ja/source/solver/index.rst b/doc/ja/source/solver/index.rst index 3f266246..50a72851 100644 --- a/doc/ja/source/solver/index.rst +++ b/doc/ja/source/solver/index.rst @@ -12,6 +12,8 @@ :maxdepth: 1 analytical + +.. sim-trhepd-rheed sxrd leed diff --git a/doc/ja/source/solver/leed.rst b/doc/ja/source/solver/leed.rst deleted file mode 100644 index 3f0e2f11..00000000 --- a/doc/ja/source/solver/leed.rst +++ /dev/null @@ -1,87 +0,0 @@ -``leed`` ソルバー -*********************************************** - -``leed`` は M.A. Van Hove氏により作成された ``SATLEED`` を用いて、原子位置などからRocking curve を計算し、実験で得られた Rocking curve からの誤差を :math:`f(x)` として返す ``Solver`` です。 ``SATLEED`` に関する詳細については [SATLEED]_ をご覧ください。 - -.. [SATLEED] M.A. Van Hove, W. Moritz, H. Over, P.J. Rous, A. Wander, A. Barbieri, N. Materer, U. Starke, G.A. Somorjai, Automated determination of complex surface structures by LEED, Surface Science Reports, Volume 19, 191-229 (1993). https://doi.org/10.1016/0167-5729(93)90011-D - -前準備 -~~~~~~~~~~~~ -最初に ``SATLEED`` をインストールします。 -http://www.icts.hkbu.edu.hk/VanHove_files/leed/leedsatl.zip へアクセスし、zipファイルをダウンロードします。zipファイル展開後に、所定の手続きに従いコンパイルすることで、 ``stal1.exe``, ``satl2.exe`` などの実行ファイルができます。 -``SATLED`` は計算したい系の詳細によって、ソースコードのパラメータを適宜書き換える必要があります。 -``sample/py2dmat/leed`` にあるサンプルを実行する場合には、 ``SATLEED`` のダウンロードから、サンプル向けのソースコードの書き換え、コンパイルまでを自動で行うスクリプト ``setup.sh`` が用意されています。:: - - $ cd sample/py2dmat/leed - $ sh ./setup.sh - -``setup.sh`` を実行すると、 ``leedsatl`` ディレクトリに ``satl1.exe`` と ``satl2.exe`` が生成されます。 - -``py2dmat`` から ``SATLEED`` を利用するにあたっては、あらかじめ ``satl1.exe`` まで実行していることが前提となります。そのため、以下のファイルが生成されている必要があります。 - -- ``satl1.exe`` の入力ファイル: ``exp.d``, ``rfac.d``, ``tleed4.i``, ``tleed5.i`` - -- ``satl1.exe`` の出力ファイル: ``tleed.o`` , ``short.t`` - -``py2dmat`` はこれらをもちいて ``satl2.exe`` を実行します。 - -入力パラメータ -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -``solver`` セクション中のサブセクション -``config``, ``reference`` を利用します。 - -[``config``] セクション -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -- ``path_to_solver`` - - 形式: string型 - - 説明: ソルバー ``satl2.exe`` へのパス - - -[``reference``] セクション -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -- ``path_to_base_dir`` - - 形式: string型 - - 説明: - ``exp.d``, ``rfac.d``, ``tleed4.i``, ``tleed5.i`` , ``tleed.o`` , ``short.t`` が格納されたディレクトリへのパス。 - - -ソルバー用補助ファイル -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -ターゲット参照ファイル -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -ターゲットにするデータが格納されたファイル。 [``reference``] セクションの ``path_to_base_dir`` 中にある ``tleed4.i`` を編集します。最適化したい数値を ``optxxx`` (xxxは000, 001, 002, ...の形式で指定する三桁の整数)として指定します。なお、xxxの数字と ``py2dmat`` の最適化する値を入れる変数のリストの順番・個数は一致させる必要があります。なお、IFLAG, LSFLAGを0にしない場合はsatleed側での最適化も行われます。 - -以下、ファイル例を記載します。 - -.. code-block:: - - 1 0 0 IPR ISTART LRFLAG - 1 10 0.02 0.2 NSYM NSYMS ASTEP VSTEP - 5 1 2 2 NT0 NSET LSMAX LLCUT - 5 NINSET - 1.0000 0.0000 1 PQEX - 1.0000 2.0000 2 PQEX - 1.0000 1.0000 3 PQEX - 2.0000 2.0000 4 PQEX - 2.0000 0.0000 5 PQEX - 3 NDIM - opt000 0.0000 0.0000 0 DISP(1,j) j=1,3 - 0.0000 opt001 0.0000 0 DISP(2,j) j=1,3 - 0.0000 0.0000 0.0000 1 DISP(3,j) j=1,3 - 0.0000 0.0000 0.0000 0 DISP(4,j) j=1,3 - 0.0000 0 DVOPT LSFLAG - 3 0 0 MFLAG NGRID NIV - ... - -出力ファイル -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -``leed`` では、 計算時に出力されるファイルが、ランクの番号が記載されたフォルダ下に一式出力されます。 diff --git a/doc/ja/source/start.rst b/doc/ja/source/start.rst index 47650497..dc333b90 100644 --- a/doc/ja/source/start.rst +++ b/doc/ja/source/start.rst @@ -1,8 +1,8 @@ py2dmat のインストール -============================= +================================ 実行環境・必要なパッケージ -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - python 3.6.8 以上 - 必要なpythonパッケージ @@ -17,11 +17,11 @@ py2dmat のインストール - physbo (ベイズ最適化利用時, ver. 0.3以上) ダウンロード・インストール -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 下記に示す方法で、 ``py2dmat`` python パッケージと ``py2dmat`` コマンドがインストールできます。 -- PyPI からのインストール(推奨) +- PyPI からのインストール(推奨) - ``python3 -m pip install py2dmat`` @@ -41,36 +41,44 @@ py2dmat のインストール - サンプルファイルはソースコードに同梱されています。 - ``git clone https://github.com/issp-center-dev/2DMAT`` -なお、 ``py2dmat`` で用いる順問題ソルバーのうち、 - -- TRHEPD順問題ソルバー (``sim-trhepd-rheed``) -- SXRD順問題ソルバー (``sxrdcalc``) -- LEED順問題ソルバー (``satleed``) - -については、別途インストールが必要です。 -インストールの詳細については各ソルバーのチュートリアルを参照してください。 - 実行方法 -~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -``py2dmat`` コマンドは定義済みの最適化アルゴリズム ``Algorithm`` と順問題ソルバー ``Solver`` の組み合わせで解析を行います。:: +``py2dmat`` コマンドは定義済みの最適化アルゴリズム ``Algorithm`` と順問題ソルバー ``Solver`` の組み合わせで解析を行います。 + +.. code-block:: bash $ py2dmat input.toml 定義済みの ``Algorithm`` については :doc:`algorithm/index` を、 ``Solver`` については :doc:`solver/index` を参照してください。 +2次元物質構造解析向け実験データ解析の順問題ソルバーは独立なパッケージとして提供されています。 +これらの解析を行う場合は別途パッケージと必要なソフトウェアをインストールしてください。 +現在は以下の順問題ソルバーが用意されています。 + +- 全反射高速陽電子回折 (TRHEPD) -- 2DMAT-SIM-TRHEPD-RHEED パッケージ + +- 表面X線回折 (SXRD) -- 2DMAT-SXRD パッケージ + +- 低速電子線回折 (LEED) -- 2DMAT-LEED パッケージ + ``Algorithm`` や ``Solver`` をユーザーが準備する場合は、 ``py2dmat`` パッケージを利用します。 詳しくは :doc:`customize/index` を参照してください。 なお、 プログラムを改造する場合など、 ``py2dmat`` コマンドをインストールせずに直接実行することも可能です。 -``src/py2dmat_main.py`` を利用してください。:: +``src/py2dmat_main.py`` を利用してください。 + +.. code-block:: $ py2dmat src/py2dmat_main.py input.toml + アンインストール -~~~~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +2DMAT モジュールをアンインストールするには、以下のコマンドを実行します。 .. code-block:: bash diff --git a/doc/ja/source/tool.rst b/doc/ja/source/tool.rst index 139088b1..97470533 100644 --- a/doc/ja/source/tool.rst +++ b/doc/ja/source/tool.rst @@ -18,13 +18,10 @@ .. code-block:: bash - $ py2dmat_neighborlist -o neighborlist.txt MeshData.txt + $ py2dmat_neighborlist -o neighborlist.txt MeshData.txt - もしくは - $ python3 src/py2dmat_neighborlist.py -o MeshData.txt - -次のようなオプションが利用できます。 +次のオプションが利用できます。 - ``-o output`` or ``--output output`` @@ -60,213 +57,3 @@ なお、 MPI を用いて計算を高速化できます。 -``tool/to_dft/to_dft.py`` -****************************** - -本ツールでは、Si等四面体構造のボンドネットワークを有する系の(001)および(111)表面系モデルについて、その原子構造から第一原理電子状態計算ソフトウェア `Quantum Espresso (QE) `_ 用の入力データを作成します。これにより、得られた構造の妥当性検証や、電子状態等の微視的な情報を取得します。なお、注目する表面と反対の表面から生じるダングリングボンド由来の電子の影響を排除するため、最下層のダングリングボンドの位置に水素原子を置く水素終端というテクニックを用いています。 - - -必要な環境 -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -- Python3 >= 3.6 - -以下のパッケージが必要です。 - -- `Atomic Simulation Environment(ASE) `_ (>= 3.21.1) -- Numpy -- Scipy -- Matplotlib - -スクリプトの概要 -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -XYZ形式で記載された構造ファイルのファイル名および、2次元的な周期構造を表すための格子ベクトルの情報などが記載された入力ファイルを読み込み、得られた座標データから、最下層と、その次の層にあたる原子の座標を抽出します。 -最下層の原子は取り除き、対応する位置に H 原子を置いて次層の原子との距離を四面体構造となる距離(例えば、Siの場合はシラン分子となる距離)に調整したモデルを作成します。 -水素終端を行ったモデルはXYZ形式で保存され、cifファイルとQuantum Espresso (QE)の入力ファイルも作成します。 -なお、QEをインストールしている場合には、そのまま計算実行することもできます。 - -チュートリアル -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -1. 参照用のXYZファイルを作成します。 - -以下では、 ``tool/todft/sample/111`` フォルダにある ``surf_bulk_new111.xyz`` を用います。ファイルの中身は以下の通りです。 - -.. code-block:: - - 12 - surf.txt / bulk.txt - Si 1.219476 0.000000 4.264930 - Si 6.459844 0.000000 4.987850 - Si 1.800417 1.919830 3.404650 - Si 5.878903 1.919830 3.404650 - Si 3.839660 1.919830 2.155740 - Si 0.000000 1.919830 1.900440 - Si 3.839660 0.000000 0.743910 - Si 0.000000 0.000000 0.597210 - Si 1.919830 0.000000 -0.678750 - Si 5.759490 0.000000 -0.678750 - Si 1.919830 1.919830 -2.036250 - Si 5.759490 1.919830 -2.036250 - -2. 次に各種パラメータを設定するための入力ファイルを作成します。 - -入力ファイルのファイル形式は ``toml`` を採用しています。以下、 ``tool/todft/sample/111`` フォルダにある ``input.toml`` を用いて、その内容について説明します。ファイルの中身は以下の通りです。 - -.. code-block:: - - [Main] - input_xyz_file = "surf_bulk_new111.xyz" - output_file_head = "surf_bulk_new111_ext" - [Main.param] - z_margin = 0.001 - slab_margin = 10.0 - r_SiH = 1.48 #angstrom - theta = 109.5 #H-Si-H angle in degree - [Main.lattice] - unit_vec = [[7.67932, 0.00000, 0.00000], [0.00000, 3.83966, 0.00000]] - [ASE] - solver_name = "qe" - kpts = [3,3,1] # sampling k points (Monkhorst-Pack grid) - command = "mpirun -np 4 ./pw.x -in espresso.pwi > espresso.pwo" - [Solver] - [Solver.control] - calculation='bands' # 'scf','realx','bands',... - pseudo_dir='./' # Pseudopotential directory - [Solver.system] - ecutwfc = 20.0 # Cut-off energy in Ry - nbands=33 # # of bands (only used in band structure calc - [Solver.pseudo] - Si = 'Si.pbe-mt_fhi.UPF' - H = 'H.pbe-mt_fhi.UPF' - -入力ファイルは、 ``Main`` , ``ASE`` , ``Solver`` の3セクションから構成されます。 -以下、各セクション毎に変数の説明を簡単に記載します。 - -``Main`` セクション ------------------------- -このセクションでは、水素終端を行う際に必要なパラメータに関する設定を行います。 - -- ``input_xyz_file`` - - 形式: string型 - - 説明:入力するxyzファイルの名前 - -- ``output_file_head`` - - 形式: string型 - - 説明:出力ファイル(xyzファイルおよびcifファイル)につくヘッダ - -``Main.Param`` セクション ------------------------------ - -- ``z_margin`` - - 形式: float型 - - 説明: 最下層および下から2番目の原子を抽出する際に用いられるマージン。例えば、最下層にいる原子のz座標を ``z_min`` とした場合に、 ``z_min - z_margin <= z <= z_min + z_margin`` の中にいる原子が抽出されます。 - -- ``slab_margin`` - - 形式: float型 - - 説明: スラブの大きさに下駄をはかせるためのマージン。最下層および一番上の層にいる原子のz座標を ``z_min`` , ``z_max`` とした場合に、スラブの大きさは ``z_max-z_min+slab_margin`` で与えられます。 - -- ``r_SiH`` - - 形式: float型 - - 説明: 四面体構造の頂点(例えばSi)とH間の距離を与えます(単位は :math:`\mathrm{\mathring{A}}` )。 - -- ``theta`` - - 形式: float型 - - 説明: 四面体構造の頂点とH間の角度(例えばSi-H-Siの間の角)を与えます。 - -``Main.lattice`` セクション ------------------------------ - -- ``unit_vec`` - - 形式: list型 - - 説明: 2次元平面を形成するユニットベクトル を指定します (ex. ``unit_vec = [[7.67932, 0.00000, 0.00000], [0.00000, 3.83966, 0.00000]]``)。 - - -``ASE`` セクション ------------------------- -このセクションでは、 ``ASE`` に関連したパラメータを設定します。 - -- ``solver_name`` - - 形式: string型 - - 説明: ソルバーの名前を与えます。現状では ``qe`` のみ。 - -- ``kpts`` - - 形式: list型 - - 説明: サンプリングするkポイントを指定します(Monkhorst-Pack grid)。 - -- ``command`` - - 形式: string型 - - 説明: ソルバーを実行するときのコマンドを記載します。 - -``Solver`` セクション ------------------------- -このセクションでは、 ``Solver`` に関連したパラメータを設定します。 -ASEの機能を用いてそのまま第一原理計算を実行する場合に指定が必要となります。 -基本的には各ソルバーの入力ファイルで指定したものと同じ構成で記載します。 -例えば、QEの場合には ``Solver.control`` に、 -QEの ``control`` セクションで設定するパラメータを記載します。 - -3. 以下のコマンドを実行します。 - -.. code-block:: - - python3 to_dft.py input.toml - - -これを実行すると、 - -- ``surf_bulk_new111_ext.xyz`` -- ``surf_bulk_new111_ext.cif`` -- ``espresso.pwi`` - -が生成されます。QEおよび擬ポテンシャルへのパス設定が行われている場合には、第一原理計算がそのまま行われます。行われていない場合には、第一原理計算が実行されないため、 ``Calculation of get_potential_energy is not normally finished.`` というメッセージが最後にでますが、上記ファイルの出力は行われています。 - -以下、出力ファイルについて説明します。 - -- ``surf_bulk_new111_ext.xyz`` - -最下層原子のHへの置換と四面体構造を形成するためのHの追加が行われた結果が出力されます。 -実際の出力内容は以下の通りです。 - -.. code-block:: - - 14 - Lattice="7.67932 0.0 0.0 0.0 3.83966 0.0 0.0 0.0 17.0241" Properties=species:S:1:pos:R:3 pbc="T T T" - Si 1.219476 0.000000 4.264930 - Si 6.459844 0.000000 4.987850 - Si 1.800417 1.919830 3.404650 - Si 5.878903 1.919830 3.404650 - Si 3.839660 1.919830 2.155740 - Si 0.000000 1.919830 1.900440 - Si 3.839660 0.000000 0.743910 - Si 0.000000 0.000000 0.597210 - Si 1.919830 0.000000 -0.678750 - Si 5.759490 0.000000 -0.678750 - H 1.919830 -1.208630 -1.532925 - H 1.919830 1.208630 -1.532925 - H 5.759490 -1.208630 -1.532925 - H 5.759490 1.208630 -1.532925 - -このファイルは通常のXYZ形式の座標データとして適当な可視化ソフト等に読ませることができますが、通常コメントを書く場所に周期構造の格子ベクトルの情報が書き込まれています。出力されたファイルの3行目以降の「元素名+3次元座標」のデータをそのままQEの入力ファイルにコピーして使用する事もできます。 - -``espresso.pwi`` はQEのscf計算用の入力ファイルで、構造最適化やバンド計算は本ファイルを適宜修正することで行うことができます。 各種設定については `QEのオンラインマニュアル `_ を参考にしてください。 diff --git a/doc/ja/source/tutorial/bayes.rst b/doc/ja/source/tutorial/bayes.rst index 3df2625d..7c5e5de6 100644 --- a/doc/ja/source/tutorial/bayes.rst +++ b/doc/ja/source/tutorial/bayes.rst @@ -1,187 +1,97 @@ ベイズ最適化 -===================================== +================================ + +ここでは、ベイズ最適化を行いて Himmelblau関数の最小化問題を解析する方法について説明します。 +ベイズ最適化には `PHYSBO `_ を用います。 +事前に PHYSBO パッケージをインストールしておきます。 -ここでは、ベイズ最適化を行い、回折データから原子座標を解析する方法について説明します。 -ベイズ最適化には `PHYSBO `_ を用いています。 -グリッド探索と同様に、探索グリッドを与えるデータ ``MeshData.txt`` を事前に準備する必要があります。 サンプルファイルの場所 -~~~~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -サンプルファイルは ``sample/sim-trhepd-rheed/single_beam/bayes`` にあります。 +サンプルファイルは ``sample/analytical/bayes`` にあります。 フォルダには以下のファイルが格納されています。 -- ``bulk.txt`` - - ``bulk.exe`` の入力ファイル - -- ``experiment.txt`` , ``template.txt`` - - メインプログラムでの計算を進めるための参照ファイル - -- ``ref_BayesData.txt`` - - 計算が正しく実行されたか確認するためのファイル(本チュートリアルを行うことで得られる ``ColorMap.txt`` の回答)。 - - ``input.toml`` メインプログラムの入力ファイル -- ``prepare.sh`` , ``do.sh`` +- ``do.sh`` 本チュートリアルを一括計算するために準備されたスクリプト -以下、これらのファイルについて説明したあと、実際の計算結果を紹介します。 - -参照ファイルの説明 -~~~~~~~~~~~~~~~~~~~ - -``template.txt`` , ``experiment.txt`` については、 -前のチュートリアル(Nealder-Mead法による最適化)と同じものを使用します。 -ただし、計算を軽くするため ``value_03`` は用いずに ``3.5`` に固定し、 -2次元のグリッド探索を行うように変更してあります。 -実際に探索するグリッドは ``MeshData.txt`` で与えます。 -サンプルでは ``MeshData.txt`` の中身は以下のようになっています。 +また、計算結果を可視化するために ``sample`` フォルダ内の ``plot_himmel.py`` を利用します。 -.. code-block:: - - 1 3.5 3.5 - 2 3.6 3.5 - 3 3.6 3.6 - 4 3.7 3.5 - 5 3.7 3.6 - 6 3.7 3.7 - 7 3.8 3.5 - 8 3.8 3.6 - 9 3.8 3.7 - 10 3.8 3.8 - ... - -1列目が通し番号、2列目以降は ``template.txt`` に入る ``value_0`` , ``value_1`` の値が順に指定されています。 入力ファイルの説明 -~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -ここでは、メインプログラム用の入力ファイル ``input.toml`` について説明します。 -``input.toml`` の詳細については入力ファイルに記載されています。 -以下は、サンプルファイルにある ``input.toml`` の中身になります。 +メインプログラム用の入力ファイル ``input.toml`` を作成します。記述方法の詳細については「入力ファイル」の項を参照してください。 .. code-block:: [base] dimension = 2 + output_dir = "output" [solver] - name = "sim-trhepd-rheed" - - [solver.config] - calculated_first_line = 5 - calculated_last_line = 74 - row_number = 2 - - [solver.param] - string_list = ["value_01", "value_02" ] - degree_max = 7.0 - - [solver.reference] - path = "experiment.txt" - first = 1 - last = 70 + name = "analytical" + function_name = "himmelblau" [algorithm] name = "bayes" - label_list = ["z1", "z2"] + seed = 12345 [algorithm.param] - mesh_path = "MeshData.txt" + min_list = [-6.0, -6.0] + max_list = [ 6.0, 6.0] + num_list = [61, 61] [algorithm.bayes] - random_max_num_probes = 10 - bayes_max_num_probes = 20 - - -最初に ``[base]`` セクションについて説明します。 - -- ``dimension`` は最適化したい変数の個数で、今の場合は ``template.txt`` で説明したように2つの変数の最適化を行うので、 ``2`` を指定します。 - -``[solver]`` セクションではメインプログラムの内部で使用するソルバーとその設定を指定します。 - -- ``name`` は使用したいソルバーの名前で、このチュートリアルでは、 ``sim-trhepd-rheed`` を用いた解析を行うので、 ``sim-trhepd-rheed`` を指定します。 - -ソルバーの設定は、サブセクションの ``[solver.config]``, ``[solver.param]``, ``[solver.reference]`` で行います。 - -``[solver.config]`` セクションではメインプログラム内部で呼び出す ``surf.exe`` により得られた出力ファイルを読み込む際のオプションを指定します。 + random_max_num_probes = 20 + bayes_max_num_probes = 40 -- ``calculated_first_line`` は出力ファイルを読み込む最初の行数を指定します。 -- ``calculated_last_line`` は出力ファイルを読み込む最後の行数を指定します。 - -- ``row_number`` は出力ファイルの何列目を読み込むかを指定します。 - -``[solver.param]`` セクションではメインプログラム内部で呼び出す ``surf.exe`` により得られた出力ファイルを読み込む際のオプションを指定します。 - -- ``string_list`` は、 ``template.txt`` で読み込む、動かしたい変数の名前のリストです。 - - -- ``label_list`` は、 ``value_0x`` (x=1,2) を出力する際につけるラベル名のリストです。 - -- ``degree_max`` は、最大角度(度単位)の指定をします。 - -``[solver.reference]`` セクションでは、実験データの置いてある場所と読みこむ範囲を指定します。 - -- ``path`` は実験データが置いてあるパスを指定します。 - -- ``first`` は実験データファイルを読み込む最初の行数を指定します。 - -- ``end`` は実験データファイルを読み込む最後の行数を指定します。 +``[base]``, ``[solver]``, ``[runner]`` のセクションについては Nelder-Mead法による探索(``minsearch``)の場合と同じです。 ``[algorithm]`` セクションでは、使用するアルゴリスムとその設定をします。 -- ``name`` は使用したいアルゴリズムの名前で、このチュートリアルでは、ベイズ最適化による解析を行うので、 ``bayes`` を指定します。 - -- ``label_list`` は、 ``value_0x`` (x=1,2) を出力する際につけるラベル名のリストです。 +- ``name`` は使用するアルゴリズムの名前です。このチュートリアルでは、ベイズ最適化を用いた解析を行うので、 ``bayes`` を指定します。 -``[algorithm.param]`` セクションで、探索パラメータを設定します。 +- ``seed`` は乱数の初期値を指定します。 + +``[algorithm.param]`` セクションでは、探索するパラメータの範囲や初期値を指定します。 -- ``mesh_path`` はメッシュファイルへのパスを設定します。 +- ``min_list`` と ``max_list`` はそれぞれ探索範囲の最小値と最大値を指定します。 -``[algorithm.bayes]`` セクションでは、ベイズ最適化のハイパーパラメータを設定します。 +- ``num_list`` はパラメータの各方向へのグリッド点の個数を指定します。 -- ``random_max_num_probes`` は、ベイズ最適化を行う前のランダム探索する回数を指定します。 +``[algorithm.bayes]`` セクションでは、ベイズ最適化に関するハイパーパラメータを指定します。 -- ``bayes_max_num_probes`` は、ベイズ探索を行う回数を指定します。 +- ``random_max_num_probes`` はランダムサンプリングの回数を指定します。 -その他、入力ファイルで指定可能なパラメータの詳細については入力ファイルの章をご覧ください。 +- ``bayes_max_num_probes`` はベイズ最適化を行う回数を指定します。 -計算実行 -~~~~~~~~~~~~ -最初にサンプルファイルが置いてあるフォルダへ移動します(以下、本ソフトウェアをダウンロードしたディレクトリ直下にいることを仮定します). +ここではデフォルト値を用いるため省略しましたが、その他のパラメータについて詳細は「入力ファイル」の章を参照してください。 -.. code-block:: - - cd sample/sim-trhepd-rheed/bayes - -順問題の時と同様に、 ``bulk.exe`` と ``surf.exe`` をコピーします。 -.. code-block:: - - cp ../../../../../sim-trhepd-rheed/src/TRHEPD/bulk.exe . - cp ../../../../../sim-trhepd-rheed/src/TRHEPD/surf.exe . +計算の実行 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -最初に ``bulk.exe`` を実行し、 ``bulkP.b`` を作成します。 +最初にサンプルファイルが置いてあるフォルダへ移動します。(以下、2DMATパッケージをダウンロードしたディレクトリ直下にいることを仮定します。) .. code-block:: - ./bulk.exe + $ cd sample/analytical/bayes -そのあとに、メインプログラムを実行します(計算時間は通常のPCで数秒程度で終わります)。 +メインプログラムを実行します。計算時間は通常のPCで数秒程度で終わります。 .. code-block:: - python3 ../../../../src/py2dmat_main.py input.toml | tee log.txt + $ python3 ../../../src/py2dmat_main.py input.toml | tee log.txt -実行すると、各ランクのフォルダが作成されます。 +実行すると ``output`` ディレクトリの下に各ランクのフォルダが作成されます。 以下の様な標準出力がされます。 .. code-block:: @@ -204,73 +114,53 @@ ... 最初に設定したパラメータのリスト、そのあとに各ステップでの候補パラメータと、 -その時の ``R-factor`` にマイナスが乗算された ``f(x)``が出力されます。 +その時の関数値 ``f(x)`` が出力されます。 また、その時点での一番良いスコアを持つグリッドインデックス (``action``)とその場合の ``f(x)`` と変数が出力されます。 -0番の下には更にグリッドのidがついたサブフォルダ ``Log%%%%%`` ( ``%%%%%`` がグリッドのid)が作成され、ソルバーの出力が保存されます -(``MeshData.txt`` に付けられた番号がグリッドのidとして割り振られます)。 -最終的に推定されたパラメータは、``BayesData.txt`` に出力されます。 +最終的に推定されたパラメータは、 ``output/BayesData.txt`` に出力されます。 今回の場合は .. code-block:: - #step z1 z2 fx z1_action z2_action fx_action - 0 5.1 4.9 0.037237314010261195 5.1 4.9 0.037237314010261195 - 1 5.1 4.9 0.037237314010261195 4.3 3.5 0.06050786306685965 - 2 5.1 4.9 0.037237314010261195 5.3 3.9 0.06215778000834068 - 3 5.1 4.9 0.037237314010261195 4.7 4.2 0.049210767760634364 - 4 5.1 4.9 0.037237314010261195 5.7 3.7 0.08394457854191653 - 5 5.1 4.9 0.037237314010261195 5.2 5.2 0.05556857782716691 - 6 5.1 4.9 0.037237314010261195 5.7 4.0 0.0754639895013157 - 7 5.1 4.9 0.037237314010261195 6.0 4.4 0.054757310814479355 - 8 5.1 4.9 0.037237314010261195 6.0 4.2 0.06339787375966344 - 9 5.1 4.9 0.037237314010261195 5.7 5.2 0.05348404677676544 - 10 5.1 4.7 0.03002813055356341 5.1 4.7 0.03002813055356341 - 11 5.1 4.7 0.03002813055356341 5.0 4.4 0.03019977423448576 - 12 5.3 4.5 0.02887504880071686 5.3 4.5 0.02887504880071686 - 13 5.1 4.5 0.025865346123665988 5.1 4.5 0.025865346123665988 - 14 5.2 4.4 0.02031077875240244 5.2 4.4 0.02031077875240244 - 15 5.2 4.4 0.02031077875240244 5.2 4.6 0.023291891689059388 - 16 5.2 4.4 0.02031077875240244 5.2 4.5 0.02345999725278686 - 17 5.2 4.4 0.02031077875240244 5.1 4.4 0.022561543431398066 - 18 5.2 4.4 0.02031077875240244 5.3 4.4 0.02544527153306051 - 19 5.2 4.4 0.02031077875240244 5.1 4.6 0.02778877135528466 - 20 5.2 4.3 0.012576357659158034 5.2 4.3 0.012576357659158034 - 21 5.1 4.2 0.010217361468113488 5.1 4.2 0.010217361468113488 - 22 5.1 4.2 0.010217361468113488 5.2 4.2 0.013178053637167673 + #step x1 x2 fx x1_action x2_action fx_action + 0 -2.4 -0.7999999999999998 113.2192 -2.4 -0.7999999999999998 113.2192 + 1 -2.4 -0.7999999999999998 113.2192 1.6000000000000005 4.600000000000001 263.12320000000045 + 2 2.8000000000000007 -0.39999999999999947 28.995199999999958 2.8000000000000007 -0.39999999999999947 28.995199999999958 + 3 2.8000000000000007 -0.39999999999999947 28.995199999999958 4.800000000000001 5.800000000000001 1306.739200000001 + 4 2.8000000000000007 -0.39999999999999947 28.995199999999958 -1.3999999999999995 2.5999999999999996 44.16320000000003 + 5 2.8000000000000007 -0.39999999999999947 28.995199999999958 2.200000000000001 -5.2 623.6672 + 6 2.8000000000000007 -0.39999999999999947 28.995199999999958 -1.1999999999999993 2.200000000000001 65.45919999999997 + 7 4.200000000000001 -1.7999999999999998 23.619200000000067 4.200000000000001 -1.7999999999999998 23.619200000000067 + 8 4.200000000000001 -1.7999999999999998 23.619200000000067 -2.5999999999999996 -0.1999999999999993 111.10720000000002 + 9 4.200000000000001 -1.7999999999999998 23.619200000000067 0.6000000000000005 0.8000000000000007 130.00319999999994 + 10 4.200000000000001 -1.7999999999999998 23.619200000000067 -0.5999999999999996 -0.5999999999999996 178.7552 + ... + 38 3.200000000000001 1.8000000000000007 1.3952000000000133 3.200000000000001 -1.3999999999999995 8.051199999999973 + 39 3.200000000000001 1.8000000000000007 1.3952000000000133 -3.8 -3.0 3.433599999999999 + 40 3.200000000000001 1.8000000000000007 1.3952000000000133 -3.0 -2.8 27.705600000000004 + 41 3.6000000000000014 -1.7999999999999998 0.051200000000003215 3.6000000000000014 -1.7999999999999998 0.051200000000003215 + 42 3.6000000000000014 -1.7999999999999998 0.051200000000003215 2.0 2.5999999999999996 22.457599999999996 ... -のように得られます。1列目にステップ数、2列目、3列目、4列目にその時点での最高スコアを与える -``value_01``, ``value_02`` と ``R-factor`` が記載されます。 -続けて、そのステップで候補となった ``value_01``, ``value_02`` と ``R-factor`` が記載されます。 -今回の場合は21ステップ目で正しい解が得られていることがわかります。 +のように得られます。1列目にステップ数、2〜4列目にその時点での最高スコアを与える ``x1``, ``x2`` と ``f(x)`` が記載されます。 +続けて、そのステップで候補となった ``x1``, ``x2`` と ``f(x)`` が記載されます。 +今回の場合は41ステップ目で正しい解が得られていることがわかります。 -なお、一括計算するスクリプトとして ``do.sh`` を用意しています。 -``do.sh`` では ``BayesData.dat`` と ``ref_BayesData.dat`` の差分も比較しています。 -以下、説明は割愛しますが、その中身を掲載します。 -.. code-block:: +計算結果の可視化 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - sh prepare.sh +``output/BayesData.txt`` を参照すると、何ステップ目のパラメータが最小スコアを与えたかがわかります。 - ./bulk.exe +.. code-block:: - time python3 ../../../../src/py2dmat_main.py input.toml + $ python3 ../plot_himmel.py --xcol=1 --ycol=2 --format="-o" --output=output/res.pdf output/BayesData.txt + $ python3 ../plot_himmel.py --xcol=4 --ycol=5 --format="o" --output=output/actions.pdf output/BayesData.txt - echo diff BayesData.txt ref_BayesData.txt - res=0 - diff BayesData.txt ref_BayesData.txt || res=$? - if [ $res -eq 0 ]; then - echo TEST PASS - true - else - echo TEST FAILED: BayesData.txt.txt and ref_BayesData.txt.txt differ - false - fi +上記を実行すると ``output/actions.pdf`` と ``output/res.pdf`` が作成され、Himmelblau関数の関数値を表す等高線の上に、ベイズ最適化で評価したグリッド点と最小スコアを与える点の履歴がプロットされます。 -計算結果の可視化 -~~~~~~~~~~~~~~~~~~~ +.. figure:: ../../../common/img/res_bayes_actions.* + +.. figure:: ../../../common/img/res_bayes.* -``BayesData.txt`` を参照することで、何ステップ目のパラメータが最小スコアを与えたかがわかります。 -``RockingCurve.txt`` は各ステップ毎にサブフォルダに格納されているので、 -``minsearch.rst`` の手順に従い、実験値との比較を行うことが可能です。 + ベイズ最適化で評価したグリッド点と最小スコアを与える点の履歴 diff --git a/doc/ja/source/tutorial/exchange.rst b/doc/ja/source/tutorial/exchange.rst index 8222b00c..b7b2316e 100644 --- a/doc/ja/source/tutorial/exchange.rst +++ b/doc/ja/source/tutorial/exchange.rst @@ -1,235 +1,171 @@ レプリカ交換モンテカルロ法による探索 -===================================== +================================================================ -ここでは、レプリカ交換モンテカルロ法によって、回折データから原子座標を解析する方法について説明します。 +ここでは、レプリカ交換モンテカルロ法を用いて Himmelblau関数の最小化問題を解析する方法について説明します。 具体的な計算手順は ``minsearch`` の時と同様です。 + サンプルファイルの場所 -~~~~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -サンプルファイルは ``sample/sim-threpd-rheed/single_beam/exchange`` にあります。 +サンプルファイルは ``sample/analytical/exchange`` にあります。 フォルダには以下のファイルが格納されています。 -- ``bulk.txt`` - - ``bulk.exe`` の入力ファイル - -- ``experiment.txt`` , ``template.txt`` - - メインプログラムでの計算を進めるための参照ファイル - -- ``ref.txt`` - - 計算が正しく実行されたか確認するためのファイル(本チュートリアルを行うことで得られる ``best_result.txt`` の回答)。 - - ``input.toml`` メインプログラムの入力ファイル -- ``prepare.sh`` , ``do.sh`` +- ``do.sh`` 本チュートリアルを一括計算するために準備されたスクリプト -以下、これらのファイルについて説明したあと、実際の計算結果を紹介します。 - -参照ファイルの説明 -~~~~~~~~~~~~~~~~~~~ - -``template.txt`` , ``experiment.txt`` については、 -前のチュートリアル(Nealder-Mead法による最適化)と同じものを使用します。 入力ファイルの説明 -~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -ここでは、メインプログラム用の入力ファイル ``input.toml`` について説明します。 -``input.toml`` の詳細については入力ファイルに記載されています。 -以下は、サンプルファイルにある ``input.toml`` の中身になります。 +メインプログラム用の入力ファイル ``input.toml`` について説明します。記述方法の詳細については「入力ファイル」の項を参照してください。 .. code-block:: [base] dimension = 2 + output_dir = "output" + + [solver] + name = "analytical" + function_name = "himmelblau" [algorithm] name = "exchange" - label_list = ["z1", "z2"] seed = 12345 [algorithm.param] min_list = [3.0, 3.0] max_list = [6.0, 6.0] + initial_list = [0.0, 0.0] + unit_list = [0.3, 0.3] [algorithm.exchange] - numsteps = 1000 - numsteps_exchange = 20 - Tmin = 0.005 - Tmax = 0.05 - Tlogspace = true - - [solver] - name = "sim-trhepd-rheed" - - [solver.config] - calculated_first_line = 5 - calculated_last_line = 74 - row_number = 2 - - [solver.param] - string_list = ["value_01", "value_02" ] - degree_max = 7.0 - - [solver.reference] - path = "experiment.txt" - first = 1 - last = 70 + Tmin = 0.1 + Tmax = 10.0 + numsteps = 10000 + numsteps_exchange = 100 + nreplica_per_proc = 20 ここではこの入力ファイルを簡単に説明します。 詳細は入力ファイルのレファレンスを参照してください。 -``[base]`` セクションはメインプログラム全体のパラメータです。 -``dimension`` は最適化したい変数の個数で、今の場合は2つの変数の最適化を行うので、``2`` を指定します。 - -``[algorithm]`` セクションは用いる探索アルゴリズムを設定します。 -交換モンテカルロ法を用いる場合には、 ``name`` に ``"exchange"`` を指定します。 -``label_list`` は、``value_0x`` (x=1,2) を出力する際につけるラベル名のリストです。 -``seed`` は擬似乱数生成器に与える種です。 - -``[algorithm.param]`` サブセクションは、最適化したいパラメータの範囲などを指定します。 -``min_list`` は最小値、 ``max_list`` は最大値を示します。 +``[base]``, ``[solver]``, ``[runner]`` のセクションについては Nelder-Mead法による探索(``minsearch``)の場合と同じです。 -``[algorithm.exchange]`` サブセクションは、交換モンテカルロ法のハイパーパラメータを指定します。 +``[algorithm]`` セクションでは、使用するアルゴリスムとその設定を行います。 -- ``numstep`` はモンテカルロ更新の回数です。 -- ``numsteps_exchange`` で指定した回数のモンテカルロ更新の後に、温度交換を試みます。 -- ``Tmin``, ``Tmax`` はそれぞれ温度の下限・上限です。 -- ``Tlogspace`` が ``true`` の場合、温度を対数空間で等分割します +- ``name`` は使用するアルゴリズムの名前です。このチュートリアルではレプリカ交換モンテカルロ法による解析を行うので、 ``exchange`` を指定します。 -``[solver]`` セクションではメインプログラムの内部で使用するソルバーを指定します。 -``minsearch`` のチュートリアルを参照してください。 +``[algorithm.param]`` セクションでは、探索する連続なパラメータ空間の設定を行います。 +- ``min_list`` と ``max_list`` はそれぞれ探索範囲の最小値と最大値を指定します。 -計算実行 -~~~~~~~~~~~~ +- ``initial_list`` は初期値を指定します。 -最初にサンプルファイルが置いてあるフォルダへ移動します(以下、本ソフトウェアをダウンロードしたディレクトリ直下にいることを仮定します). +- ``unit_list`` は各パラメータの単位を指定します。 -.. code-block:: +``[algorithm.exchange]`` サブセクションは、レプリカ交換モンテカルロ法のハイパーパラメータを指定します。 - cd sample/sim-trhepd-rheed/single_beam/exchange +- ``numstep`` はモンテカルロ更新の回数です。 -順問題の時と同様に、 ``bulk.exe`` と ``surf.exe`` をコピーします。 +- ``numsteps_exchange`` で指定した回数のモンテカルロ更新の後に、温度交換を試みます。 -.. code-block:: +- ``Tmin``, ``Tmax`` はそれぞれ温度の下限・上限です。 - cp ../../../../../sim-trhepd-rheed/src/TRHEPD/bulk.exe . - cp ../../../../../sim-trhepd-rheed/src/TRHEPD/surf.exe . +- ``Tlogspace`` が ``true`` の場合、温度を対数空間で等分割します。 -最初に ``bulk.exe`` を実行し、``bulkP.b`` を作成します。 +- ``nreplica_per_proc`` は 1つのMPIプロセスが受け持つレプリカの数を指定します。 -.. code-block:: - ./bulk.exe +計算の実行 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -そのあとに、メインプログラムを実行します(計算時間は通常のPCで数秒程度で終わります)。 +最初にサンプルファイルが置いてあるフォルダへ移動します。(以下、2DMATパッケージをダウンロードしたディレクトリ直下にいることを仮定します。) .. code-block:: - mpiexec -np 4 python3 ../../../../src/py2dmat_main.py input.toml | tee log.txt + $ cd sample/analytical/exchange -ここではプロセス数4のMPI並列を用いた計算を行っています。 -(Open MPI を用いる場合で、使えるコア数よりも要求プロセス数の方が多い時には、 -``mpiexec`` コマンドに ``--oversubscribed`` オプションを追加してください。) -実行すると、各ランクのフォルダが作成され、 -各モンテカルロステップで評価したパラメータおよび目的関数の値を記した ``trial.txt`` ファイルと、 -実際に採択されたパラメータを記した ``result.txt`` ファイルが作成されます。 -ともに書式は同じで、最初の2列がステップ数とプロセス内のwalker 番号、次が温度、3列目が目的関数の値、4列目以降がパラメータです。 +メインプログラムを実行します。計算時間は通常のPCで数秒程度で終わります。 .. code-block:: - # step walker T fx x1 x2 - 0 0 0.004999999999999999 0.07830821484593968 3.682008067401509 3.9502750191292586 - 1 0 0.004999999999999999 0.07830821484593968 3.682008067401509 3.9502750191292586 - 2 0 0.004999999999999999 0.07830821484593968 3.682008067401509 3.9502750191292586 - 3 0 0.004999999999999999 0.06273922648753057 4.330900869594549 4.311333132184154 - -また、 sim-trhepd-rheed ソルバーの場合は、 各作業フォルダの下にサブフォルダ ``Log%%%%%`` ( ``%%%%%`` がグリッドのid)が作成され、ロッキングカーブの情報などが記録されます -(各プロセスにおけるモンテカルロステップ数がidとして割り振られます)。 + $ mpiexec -np 4 python3 ../../../src/py2dmat_main.py input.toml | tee log.txt -最後に、 ``best_result.txt`` に、目的関数 (R-factor) が最小となったパラメータとそれを得たランク、モンテカルロステップの情報が書き込まれます。 - -.. code-block:: - - nprocs = 4 - rank = 2 - step = 65 - fx = 0.008233957976993406 - x[0] = 4.221129370933539 - x[1] = 5.139591716517661 +ここではプロセス数4のMPI並列を用いた計算を行っています。 +OpenMPI を用いる場合で、使えるコア数よりも要求プロセス数の方が多い時には、 ``mpiexec`` コマンドに ``--oversubscribed`` オプションを追加してください。 -なお、一括計算するスクリプトとして ``do.sh`` を用意しています。 -``do.sh`` では ``best_result.txt`` と ``ref.txt`` の差分も比較しています。 -以下、説明は割愛しますが、その中身を掲載します。 +実行すると、 ``output`` ディレクトリの下に各ランクのフォルダが作成され、各モンテカルロステップで評価したパラメータおよび目的関数の値を記した ``trial.txt`` ファイルと、実際に採択されたパラメータを記した ``result.txt`` ファイルが作成されます。 +ともに書式は同じで、最初の2列がステップ数とプロセス内のwalker 番号、次が温度、3列目が目的関数の値、4列目以降がパラメータです。 .. code-block:: - sh prepare.sh - - ./bulk.exe - - time mpiexec --oversubscribe -np 4 python3 ../../../../src/py2dmat_main.py input.toml - - echo diff best_result.txt ref.txt - res=0 - diff best_result.txt ref.txt || res=$? - if [ $res -eq 0 ]; then - echo TEST PASS - true - else - echo TEST FAILED: best_result.txt and ref.txt differ - false - fi - -後処理 -~~~~~~~~ -各ランクフォルダにある ``result.txt`` には、各レプリカでサンプリングされたデータが記録されていますが、 -Py2DMat の実装では同一レプリカが様々な温度のサンプルを保持しています。 -2DMat は、全レプリカの結果から温度ごとのサンプルに整列し直す ``script/separateT.py`` スクリプトを提供しています。 + # step walker T fx x1 x2 + 0 0 0.01 170.0 0.0 0.0 + 0 1 0.01123654800138751 187.94429125133564 5.155393113805774 -2.203493345018569 + 0 2 0.012626001098748564 3.179380982615041 -3.7929742598748666 -3.5452766573635235 + 0 3 0.014187266741165962 108.25464277273859 0.8127003489802398 1.1465364357510186 + 0 4 0.01594159037455999 483.84183395038843 5.57417423682746 1.8381251624588506 + 0 5 0.01791284454622004 0.43633134370869153 2.9868796504069426 1.8428384502208246 + 0 6 0.020127853758499396 719.7992581349758 2.972577711255287 5.535680832873856 + 0 7 0.022616759492228647 452.4691017123836 -5.899340424701358 -4.722667479627368 + 0 8 0.025413430367026365 45.5355817998709 -2.4155554347674215 1.8769341969872393 + 0 9 0.028555923019901074 330.7972369561986 3.717750630491217 4.466110964691396 + 0 10 0.032086999973704504 552.0479484091458 5.575771168463163 2.684224163039442 + ... + +``best_result.txt`` に、目的関数が最小となったパラメータとそれを得たランク、モンテカルロステップの情報が書き込まれます。 .. code-block:: - python3 ../../../../script/separateT.py + nprocs = 80 + rank = 3 + step = 8025 + walker = 17 + fx = 3.358076734724385e-06 + x1 = 2.9998063442504126 + x2 = 1.999754886043102 -``result_T%.txt`` に各温度点ごとにまとめなおされたデータが書き込まれます(``%`` は温度点のindex)。 +2DMAT の実装では1つのレプリカが様々な温度のサンプルを保持しています。各ランクフォルダにある ``result.txt`` には、各レプリカでサンプリングされたデータが記録されています。 +この全レプリカの結果から温度ごとのサンプルに整列し直したデータが ``output/result_T%.txt`` に出力されます。(``%`` は温度点のindex。) 1列目がステップ、2列めがランク、3列目が目的関数の値、4列目以降がパラメータです。 .. code-block:: - # T = 0.004999999999999999 - # step rank fx x1 x2 - 0 0 0.07830821484593968 3.682008067401509 3.9502750191292586 - 1 0 0.07830821484593968 3.682008067401509 3.9502750191292586 - 2 0 0.07830821484593968 3.682008067401509 3.9502750191292586 + # T = 0.014187266741165962 + 0 3 108.25464277273859 0.8127003489802398 1.1465364357510186 + 1 3 108.25464277273859 0.8127003489802398 1.1465364357510186 + 2 3 108.25464277273859 0.8127003489802398 1.1465364357510186 + 3 3 108.25464277273859 0.8127003489802398 1.1465364357510186 + 4 3 93.5034551820852 1.3377081691728905 0.8736706475438123 + 5 3 81.40963740872147 1.4541906604820898 1.0420053981467825 + .... 計算結果の可視化 -~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -``result_T%.txt`` を図示することで、 ``R-factor`` の小さいパラメータがどこにあるかを推定することができます。 -今回の場合は、以下のコマンドをうつことで2次元パラメータ空間の図 ``result.png`` が作成されます。 +``result_T%.txt`` を図示することで ``f(x)`` の小さいパラメータがどこにあるかを推定することができます。 +以下のコマンドを入力すると 2次元パラメータ空間の図 ``res_T%.png`` が作成されます。 .. code-block:: - python3 plot_result_2d.py + $ python3 ../plot_himmel.py --xcol=3 --ycol=4 --skip=20 --format="o" --output=output/res_T0.png output/result_T0.txt + +作成された図を見ると、 ``f(x)`` の最小値を与える点の付近にサンプルが集中していることが分かります。温度Tのインデックスを変えると、高温ではサンプリング点が領域内に広く分布していること、温度を下げると極小点付近に集中することが見てとれます。 -作成された図を見ると、(5.25, 4.25) と (4.25, 5.25) 付近にサンプルが集中していることと、 -``R-factor`` の値が小さいことがわかります。 +.. figure:: ../../../common/img/res_exchange_T70.* +.. figure:: ../../../common/img/res_exchange_T50.* -.. figure:: ../../../common/img/exchange.* +.. figure:: ../../../common/img/res_exchange_T30.* - サンプルされたパラメータと ``R-factor`` 。横軸は ``value_01`` , 縦軸は ``value_02`` を表す。 +.. figure:: ../../../common/img/res_exchange_T0.* -また、 ``RockingCurve.txt`` が各サブフォルダに格納されています。 -``LogXXX_YYY`` の ``XXX`` はモンテカルロのステップ数、 ``YYY`` は各MPIプロセス内のレプリカの番号です。 -これを用いることで、前チュートリアルの手順に従い、実験値との比較も行うことが可能です。 + 2次元パラメータ空間上のモンテカルロ法によるサンプリング点の分布。 :math:`T=\{35.02, 3.40, 0.33, 0.01\}` の場合。 diff --git a/doc/ja/source/tutorial/index.rst b/doc/ja/source/tutorial/index.rst index 8b3ebded..4004872b 100644 --- a/doc/ja/source/tutorial/index.rst +++ b/doc/ja/source/tutorial/index.rst @@ -6,50 +6,41 @@ チュートリアル ================================== -順問題ソルバーとして用意されている ``sim_trhepd_rheed`` は東北大学の花田貴先生によって開発された -物質反射高速(陽)電子回折(RHEED, TRHEPD)の解析ソフトウェアをベースに作成されています。 -TRHEPDでは原子座標を与えた場合に、回折データがシミュレーション結果として与えられます。 -そのため、原子座標から回折データへの順問題を取り扱っているといえます。 -一方、多くの場合回折データは実験で与えられ、それを再現するような原子座標などが求められます。 -これらは上記の順問題に対して、逆問題に相当します。 - -本ソフトウェアでは逆問題を解くためのアルゴリズムとして +このチュートリアルでは、解析関数の最小化問題を例として、2DMATによる逆問題解析の方法を説明します。 +2DMATには、逆問題を解くためのアルゴリズムとして以下の5つの手法が用意されています。 - ``minsearch`` - Nealder-Mead法を用いもっともらしい原子座標を推定 + Nealder-Mead法 - ``mapper_mpi`` - 与えられたパラメータの探索グリッドを全探索することで、もっともらしい原子座標を推定 + 与えられたパラメータの探索グリッドを全探索する - ``bayes`` - ベイズ最適化を用いもっともらしい原子座標を推定 + ベイズ最適化 - ``exchange`` - レプリカ交換モンテカルロ法を用いてもっともらしい原子座標をサンプリング + レプリカ交換モンテカルロ法 - ``pamc`` - ポピュレーションアニーリング法を用いてもっともらしい原子座標をサンプリング + ポピュレーションアニーリング法 -の5つのアルゴリズムが用意されています。 -本チュートリアルでは、最初に順問題プログラム ``sim_trhepd_rheed`` の実行方法、 -その後に ``minsearch`` , ``mapper_mpi``, ``bayes``, ``exchange``, ``pamc`` の実行方法について順に説明します。 -また、制約式を用いて探索範囲を制限出来る ``[runner.limitation]`` セクションを使用した実行方法も説明しています。 +以下ではこれらのアルゴリズムを用いた実行方法を説明します。 +また、制約式を用いて探索範囲を制限できる ``[runner.limitation]`` セクションを使用した実行方法も説明しています。 最後に、自分で順問題ソルバーを定義する簡単な例について説明します。 .. toctree:: :maxdepth: 1 - sim_trhepd_rheed + intro minsearch - mpi + mapper bayes exchange - limitation pamc + limitation solver_simple - diff --git a/doc/ja/source/tutorial/intro.rst b/doc/ja/source/tutorial/intro.rst new file mode 100644 index 00000000..dd74dcba --- /dev/null +++ b/doc/ja/source/tutorial/intro.rst @@ -0,0 +1,19 @@ +Himmelblau関数 +================================ + +順問題ソルバーの例として 2DMAT に含まれている Analytical ソルバーの中から Himmelblau関数の最小化問題を取り上げます。 +Himmelblau関数は次の表式で表される2変数関数で、複数の極小点を持ち、最適化アルゴリズムの性能評価に使われます。 + +.. math:: + + f(x,y) = (x^2+y-11)^2 + (x+y^2-7)^2 + +最小値 :math:`f(x,y)=0` を与える :math:`(x,y)` は :math:`(3.0, 2.0)`, :math:`(-2.805118, 3.131312)`, :math:`(-3.779310, -3.283186)`, :math:`(3.584428, -1.848126)` です。 + +.. figure:: ../../../common/img/plot_himmelblau.* + + Himmelblau関数の plot。 + + +[1] D. Himmelblau, Applied Nonlinear Programming, McGraw-Hill, 1972. + diff --git a/doc/ja/source/tutorial/limitation.rst b/doc/ja/source/tutorial/limitation.rst index 8ad1a8f4..8fb87980 100644 --- a/doc/ja/source/tutorial/limitation.rst +++ b/doc/ja/source/tutorial/limitation.rst @@ -1,35 +1,39 @@ 制約式を適用したレプリカ交換モンテカルロ法による探索 -========================================================================== +================================================================ -ここでは、 ``[runner.limitation]`` セクションに設定できる制約式機能のチュートリアルを示します。 -例として、レプリカ交換モンテカルロ法を、Himmelblauを対象に探索する計算に制約式を適用します。 +ここでは、 ``[runner.limitation]`` セクションに設定できる制約式機能のチュートリアルを示します。 +例として、レプリカ交換モンテカルロ法を用いてHimmelblauの最小値を探索する計算に制約式を適用します。 サンプルファイルの場所 -~~~~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ サンプルファイルは ``sample/analytical/limitation`` にあります。 フォルダには以下のファイルが格納されています。 -- ``ref.txt`` - - 計算が正しく実行されたか確認するためのファイル(本チュートリアルを行うことで得られる ``best_result.txt`` の回答)。 - - ``input.toml`` メインプログラムの入力ファイル。 +- ``ref.txt`` + + 計算が正しく実行されたか確認するためのファイル (本チュートリアルを行うことで得られる ``best_result.txt`` の回答)。 + +- ``hist2d_limitation_sample.py`` + + 可視化のためのツール。 + - ``do.sh`` 本チュートリアルを一括計算するために準備されたスクリプト 以下、これらのファイルについて説明したあと、実際の計算結果を紹介します。 + 入力ファイルの説明 -~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ メインプログラム用の入力ファイル ``input.toml`` について説明します。 -``input.toml`` の詳細については入力ファイルに記載されています。 -以下は、サンプルファイルにある ``input.toml`` の中身になります。 +詳細については「入力ファイル」の章を参照してください。 .. code-block:: @@ -61,37 +65,48 @@ co_a = [[1, -1],[1, 1]] co_b = [[0], [-1]] -ここではこの入力ファイルを簡単に説明します。 -詳細は入力ファイルのレファレンスを参照してください。 ``[base]`` セクションはメインプログラム全体のパラメータです。 -``dimension`` は最適化したい変数の個数で、今の場合は2つの変数の最適化を行うので、``2`` を指定します。 -``[algorithm]`` セクションは用いる探索アルゴリズムを設定します。 -交換モンテカルロ法を用いる場合には、 ``name`` に ``"exchange"`` を指定します。 -``seed`` は擬似乱数生成器に与える種です。 +- ``dimension`` は最適化したい変数の個数です。今の場合は2つの変数の最適化を行うので、 ``2`` を指定します。 + +- ``output_dir`` は出力先のディレクトリを指定します。 + +``[algorithm]`` セクションでは、用いる探索アルゴリズムを設定します。 + +- ``name`` は使用するアルゴリズムの名前です。このチュートリアルでは交換モンテカルロ法を用いるので ``"exchange"`` を指定します。 + +- ``seed`` は擬似乱数生成器に与える乱数の種です。 ``[algorithm.param]`` サブセクションは、最適化したいパラメータの範囲などを指定します。 -``min_list`` は最小値、 ``max_list`` は最大値を示します。 + +- ``min_list`` と ``max_list`` はそれぞれ探索範囲の最小値と最大値を指定します。 + +- ``unit_list`` はモンテカルロ更新の際の変化幅(ガウス分布の偏差)です。 ``[algorithm.exchange]`` サブセクションは、交換モンテカルロ法のハイパーパラメータを指定します。 - ``numstep`` はモンテカルロ更新の回数です。 + - ``numsteps_exchange`` で指定した回数のモンテカルロ更新の後に、温度交換を試みます。 + - ``Tmin``, ``Tmax`` はそれぞれ温度の下限・上限です。 -- ``Tlogspace`` が ``true`` の場合、温度を対数空間で等分割します。このオプションはデフォルト値が ``true`` であるため、今回の ``input.toml`` に指定は無いですが、 ``true`` になっています。 -``[solver]`` セクションではメインプログラムの内部で使用するソルバーを指定します。 -今回は ``analytical`` ソルバーを指定しています。 ``analytical`` ソルバーは ``function_name`` パラメータを用いて関数を設定します。 -今回はHimmelblau 関数を指定しています。 -``analytical`` ソルバーに関してはチュートリアル「順問題ソルバーの追加」を参照してください。 +- ``Tlogspace`` が ``true`` の場合、温度を対数空間で等分割します。指定がない場合のデフォルト値は ``true`` です。 -``[runner]`` セクションは ``[runner.limitation]`` サブセクションを持ち、この中に制約式を設定します。 +``[solver]`` セクションではメインプログラムの内部で使用するソルバーとその設定を指定します。 + +- ``name`` は使用するソルバーの名前です。このチュートリアルでは ``analytical`` ソルバーに含まれる解析関数の解析を行います。 + +- ``function_name`` は ``analytical`` ソルバー内の関数名を指定します。 + +``[runner]`` セクションの ``[runner.limitation]`` サブセクションで制約式を設定します。 現在、制約式は :math:`N` 次元のパラメータ :math:`x` 、 :math:`M` 行 :math:`N` 列の行列 :math:`A` 、 :math:`M` 次元の縦ベクトル :math:`b` から定義される :math:`Ax+b>0` の制約式が利用可能です。 パラメータとしては、以下の項目が設定可能です。 - ``co_a`` は行列 :math:`A` を設定します。 + - ``co_b`` は縦ベクトル :math:`b` を設定します。 パラメータの詳しい設定方法はマニュアル内「入力ファイル」項の「 [``limitation``] セクション」を参照してください。 @@ -99,54 +114,54 @@ .. math:: - x_{1} − x_{2} > 0\\ - x_{1} + x_{2} − 1 > 0 + x_{1} - x_{2} > 0 \\ + x_{1} + x_{2} - 1 > 0 の制約式を課して実行しています。 -計算実行 -~~~~~~~~~~~~ +計算の実行 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -最初にサンプルファイルが置いてあるフォルダへ移動します(以下、本ソフトウェアをダウンロードしたディレクトリ直下にいることを仮定します). +最初にサンプルファイルが置いてあるフォルダへ移動します。(以下、本ソフトウェアをダウンロードしたディレクトリ直下にいることを仮定します。) .. code-block:: - cd sample/analytical/limitation + $ cd sample/analytical/limitation -そのあとに、メインプログラムを実行します(計算時間は通常のPCで20秒程度で終わります)。 +次に、メインプログラムを実行します。計算時間は通常のPCで20秒程度で終わります。 .. code-block:: - mpiexec -np 10 python3 ../../../src/py2dmat_main.py input.toml | tee log.txt + $ mpiexec -np 10 python3 ../../../src/py2dmat_main.py input.toml | tee log.txt ここではプロセス数10のMPI並列を用いた計算を行っています。 -(Open MPI を用いる場合で、使えるコア数よりも要求プロセス数の方が多い時には、 -``mpiexec`` コマンドに ``--oversubscribed`` オプションを追加してください。) +Open MPI を用いる場合で、使えるコア数よりも要求プロセス数の方が多い時には、 ``mpiexec`` コマンドに ``--oversubscribed`` オプションを追加してください。 + 実行すると、 ``output`` フォルダが生成され、その中に各ランクのフォルダが作成されます。 -更にその中には、各モンテカルロステップで評価したパラメータおよび目的関数の値を記した ``trial.txt`` ファイルと、 -実際に採択されたパラメータを記した ``result.txt`` ファイルが作成されます。 +更にその中には、各モンテカルロステップで評価したパラメータおよび目的関数の値を記した ``trial.txt`` ファイルと、実際に採択されたパラメータを記した ``result.txt`` ファイルが作成されます。 ともに書式は同じで、最初の2列がステップ数とプロセス内のwalker 番号、次が温度、3列目が目的関数の値、4列目以降がパラメータです。 以下は、 ``output/0/result.txt`` ファイルの冒頭部分です。 .. code-block:: - # step walker T fx x1 x2 - 0 0 1.0 187.94429125133564 5.155393113805774 -2.203493345018569 - 1 0 1.0 148.23606736778044 4.9995614992887525 -2.370212436322816 - 2 0 1.0 148.23606736778044 4.9995614992887525 -2.370212436322816 - 3 0 1.0 148.23606736778044 4.9995614992887525 -2.370212436322816 + # step walker T fx x1 x2 + 0 0 1.0 187.94429125133564 5.155393113805774 -2.203493345018569 + 1 0 1.0 148.23606736778044 4.9995614992887525 -2.370212436322816 + 2 0 1.0 148.23606736778044 4.9995614992887525 -2.370212436322816 + 3 0 1.0 148.23606736778044 4.9995614992887525 -2.370212436322816 + ... 最後に、 ``output/best_result.txt`` に、目的関数が最小となったパラメータとそれを得たランク、モンテカルロステップの情報が書き込まれます。 .. code-block:: - nprocs = 10 - rank = 2 - step = 4523 - walker = 0 - fx = 0.00010188398524402734 - x1 = 3.584944906595298 - x2 = -1.8506985826548874 + nprocs = 10 + rank = 2 + step = 4523 + walker = 0 + fx = 0.00010188398524402734 + x1 = 3.584944906595298 + x2 = -1.8506985826548874 なお、一括計算するスクリプトとして ``do.sh`` を用意しています。 ``do.sh`` では ``best_result.txt`` と ``ref.txt`` の差分も比較しています。 @@ -169,23 +184,22 @@ fi 計算結果の可視化 -~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ``result.txt`` を図示して、制約式を満たした座標のみを探索しているかを確認します。 -今回の場合は、以下のコマンドを打つことで2次元パラメータ空間の図が ``<実行日>_histogram`` フォルダ内に作成されます。 +以下のコマンドを実行すると2次元パラメータ空間の図が ``<実行日>_histogram`` フォルダ内に作成されます。 生成されるヒストグラムは、burn-in期間として最初の1000ステップ分の探索を捨てたデータを使用しています。 .. code-block:: - python3 hist2d_limitation_sample.py -p 10 -i input.toml -b 0.1 + $ python3 hist2d_limitation_sample.py -p 10 -i input.toml -b 0.1 -作成された図には2本の直線 :math:`x_{1} − x_{2} = 0, x_{1} + x_{2} − 1 = 0` と -探索結果(事後確率分布のヒストグラム)を図示しています。 -図を見ると :math:`x_{1} − x_{2} > 0, x_{1} + x_{2} − 1 > 0` の範囲のみ探索をしていることが確認できます。 +作成された図には2本の直線 :math:`x_{1} - x_{2} = 0`, :math:`x_{1} + x_{2} - 1 = 0` と探索結果(事後確率分布のヒストグラム)を図示しています。 +図を見ると :math:`x_{1} - x_{2} > 0`, :math:`x_{1} + x_{2} - 1 > 0` の範囲のみ探索をしていることが確認できます。 以下に図の一部を掲載します。 .. figure:: ../../../common/img/limitation_beta_min.* .. figure:: ../../../common/img/limitation_beta_max.* - サンプルされたパラメータと確率分布。横軸は ``value_01 (x1)`` , 縦軸は ``value_02 (x2)`` を表す。 + サンプルされたパラメータと確率分布。横軸は ``x1`` , 縦軸は ``x2`` を表す。 diff --git a/doc/ja/source/tutorial/mapper.rst b/doc/ja/source/tutorial/mapper.rst new file mode 100644 index 00000000..519b2b7f --- /dev/null +++ b/doc/ja/source/tutorial/mapper.rst @@ -0,0 +1,137 @@ +グリッド型探索 +================================ + +ここでは、グリッド型探索を行い Himmelblau関数の最小化問題を解析する方法について説明します。 +グリッド型探索はMPI並列化に対応しています。具体的な計算手順は ``minsearch`` の場合と同様です。 +探索グリッドはパラメータを元にプログラム内部で生成します。 + + +サンプルファイルの場所 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +サンプルファイルは ``sample/analytical/mapper`` にあります。 +フォルダには以下のファイルが格納されています。 + +- ``input.toml`` + + メインプログラムの入力ファイル + +- ``plot_colormap_2d.py`` + + 計算結果を可視化するためのプログラム + +- ``do.sh`` + + 本チュートリアルを一括計算するために準備されたスクリプト + + +入力ファイルの説明 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +メインプログラム用の入力ファイル ``input.toml`` について説明します。記述方法の詳細については「入力ファイル」の項を参照してください。 + +.. code-block:: + + [base] + dimension = 2 + output_dir = "output" + + [solver] + name = "analytical" + function_name = "himmelblau" + + [runner] + [runner.log] + interval = 20 + + [algorithm] + name = "mapper" + seed = 12345 + + [algorithm.param] + max_list = [6.0, 6.0] + min_list = [-6.0, -6.0] + num_list = [31, 31] + +``[base]``, ``[solver]``, ``[runner]`` のセクションについては Nelder-Mead法による探索(``minsearch``)の場合と同じです。 + +``[algorithm]`` セクションでは、使用するアルゴリスムとその設定を行います。 + +- ``name`` は使用するアルゴリズムの名前です。このチュートリアルでは、グリッド探索による解析を行うので、 ``mapper`` を指定します。 + +``[algorithm.param]`` セクションで探索するパラメータのグリッドを指定します。 + +- ``min_list`` と ``max_list`` はそれぞれ探索範囲の最小値と最大値を指定します。 + +- ``num_list`` はパラメータの各方向へのグリッド点の個数を指定します。 + +ここではデフォルト値を用いるため省略しましたが、その他のパラメータについて詳細は「入力ファイル」の章を参照してください。 + + +計算の実行 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +最初にサンプルファイルが置いてあるフォルダへ移動します。(以下、2DMATパッケージをダウンロードしたディレクトリの直下にいることを仮定します。) + +.. code-block:: + + $ cd sample/analytical/mapper + +メインプログラムを実行します。計算時間は通常のPCで数秒程度で終わります。 + +.. code-block:: + + $ mpiexec -np 4 python3 ../../../src/py2dmat_main.py input.toml | tee log.txt + +ここではプロセス数4のMPI並列を用いた計算を行っています。 +実行すると ``output`` ディレクトリとその下に各ランクのフォルダが作成され、ランクごとの計算結果が出力されます。 +同時に、以下の様な出力が標準出力に書き出されます。 + +.. code-block:: + + Make ColorMap + Iteration : 1/240 + Iteration : 2/240 + Iteration : 3/240 + Iteration : 4/240 + Iteration : 5/240 + Iteration : 6/240 + Iteration : 7/240 + ... + +``x1``, ``x2`` に各メッシュでの候補パラメータと、その時の関数値が出力されます。 +最終的にグリッド上の全ての点で計算された関数値が ``output/ColorMap.txt`` に出力されます。 +今回の場合は、 + +.. code-block:: + + -6.000000 -6.000000 890.000000 + -5.600000 -6.000000 753.769600 + -5.200000 -6.000000 667.241600 + -4.800000 -6.000000 622.121600 + -4.400000 -6.000000 610.729600 + -4.000000 -6.000000 626.000000 + -3.600000 -6.000000 661.481600 + -3.200000 -6.000000 711.337600 + -2.800000 -6.000000 770.345600 + ... + +のような結果が得られ、 +1列目、2列目に ``x1``, ``x2`` の値、3列目に関数値が記載されます。 + + +計算結果の可視化 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +``ColorMap.txt`` を図示することで、関数の値が小さいパラメータがどこにあるかを推定することができます。そのような 2次元パラメータ空間のプロットを作成するプログラムが ``plot_colormap_2d.py`` に用意されています。 + +.. code-block:: + + $ python3 plot_colormap_2d.py + +上記を実行すると ``ColorMapFig.png`` が作成され、Himmelblau関数の関数値を表す等高線の上に、各グリッド点で評価した関数値がカラーマップとしてプロットされます。 + +.. figure:: ../../../common/img/res_mapper.* + + 2次元パラメータ空間上での関数値のカラーマップ。 + diff --git a/doc/ja/source/tutorial/minsearch.rst b/doc/ja/source/tutorial/minsearch.rst index 192ab9bb..26a9c9af 100644 --- a/doc/ja/source/tutorial/minsearch.rst +++ b/doc/ja/source/tutorial/minsearch.rst @@ -1,290 +1,158 @@ Nelder-Mead法による最適化 ==================================== -ここでは、Nelder-Mead法を用いて回折データから原子座標を解析する逆問題の計算を行う方法について説明します。 +ここでは、Nelder-Mead法を用いて Himmelblau関数の最小値を探索する方法について説明します。 具体的な計算手順は以下の通りです。 -0. 参照ファイルの準備 +1. 入力ファイルを用意する - 合わせたい参照ファイル (今回は後述する ``experiment.txt`` に相当)を準備する。 + 入力パラメータをTOML形式で記述した入力ファイルを作成します。 -1. 表面構造のバルク部分に関する計算実行 - - ``bulk.exe`` を ``sample/sim-trhepd-rheed/minsearch`` にコピーして計算を実行する。 +2. メインプログラムを実行する -2. メインプログラムの実行 + ``src/py2dmat_main.py`` を用いて計算を実行し、最適化問題を解きます。 - ``src/py2dmat_main.py`` を用いて計算実行し原子座標を推定する。 - -メインプログラムでは、 -Nelder-Mead法 (`scipy.optimize.fmin `_ を使用)を用いて、 -ソルバー(今回は ``surf.exe`` )を用いて得られた強度と、 -参照ファイル(``experiment.txt``)に記載された強度のずれ(R値)を最小化するパラメータを探索します。 サンプルファイルの場所 -~~~~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -サンプルファイルは ``sample/py2dmat/sim-threpd-rheed/single_beam/minsearch`` にあります。 +サンプルファイルは ``sample/analytical/minsearch`` にあります。 フォルダには以下のファイルが格納されています。 -- ``bulk.txt`` - - ``bulk.exe`` の入力ファイル - -- ``experiment.txt`` , ``template.txt`` - - メインプログラムでの計算を進めるための参照ファイル - -- ``ref.txt`` - - 本チュートリアルで求めたい回答が記載されたファイル - - ``input.toml`` メインプログラムの入力ファイル -- ``prepare.sh`` , ``do.sh`` +- ``do.sh`` 本チュートリアルを一括計算するために準備されたスクリプト -以下、これらのファイルについて説明したあと、実際の計算結果を紹介します。 - -参照ファイルの説明 -~~~~~~~~~~~~~~~~~~~ - -``template.txt`` は ``surf.exe`` の入力ファイルとほぼ同じ形式のファイルです。 -動かすパラメータ(求めたい原子座標などの値)を「 ``value_*`` 」などの適当な文字列に書き換えられています。 -以下が、 ``template.txt`` の中身です。 - -.. code-block:: - - 2 ,NELMS, -------- Ge(001)-c4x2 - 32,1.0,0.1 ,Ge Z,da1,sap - 0.6,0.6,0.6 ,BH(I),BK(I),BZ(I) - 32,1.0,0.1 ,Ge Z,da1,sap - 0.4,0.4,0.4 ,BH(I),BK(I),BZ(I) - 9,4,0,0,2, 2.0,-0.5,0.5 ,NSGS,msa,msb,nsa,nsb,dthick,DXS,DYS - 8 ,NATM - 1, 1.0, 1.34502591 1 value_01 ,IELM(I),ocr(I),X(I),Y(I),Z(I) - 1, 1.0, 0.752457792 1 value_02 - 2, 1.0, 1.480003343 1.465005851 value_03 - 2, 1.0, 2 1.497500418 2.281675 - 2, 1.0, 1 1.5 1.991675 - 2, 1.0, 0 1 0.847225 - 2, 1.0, 2 1 0.807225 - 2, 1.0, 1.009998328 1 0.597225 - 1,1 ,(WDOM,I=1,NDOM) - - -今回の入力ファイルでは、 ``value_01``, ``value_02``, ``value_03`` を用いています。 -サンプルフォルダには、原子位置が正しく推定できているかを知るための参照ファイルとして、 -``ref.txt`` が置いてあります。ファイルの中身は - -.. code-block:: - - fx = 7.382680568652868e-06 - z1 = 5.230524973874179 - z2 = 4.370622919269477 - z3 = 3.5961444501081647 - -となっており、 ``value_0x`` が ``z_x`` (x=1, 2, 3)に対応しています。 -``fx`` は目的関数の最適値です。 -``experiment.txt`` は、メインプログラムで参照に用いるファイルで、 -``template.txt`` に ``ref.txt`` の入っているパラメータをいれ、 -順問題のチュートリアルと同様な手順で計算して得られる ``convolution.txt`` に相当しています -(順問題のチュートリアルとは ``bulk.exe`` , ``suft.exe`` の入力ファイルが異なるのでご注意ください)。 - +また、計算結果を可視化するために ``sample`` フォルダ内の ``plot_himmel.py`` を利用します。 + 入力ファイルの説明 -~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -ここでは、メインプログラム用の入力ファイル ``input.toml`` の準備をします。 -``input.toml`` の詳細については入力ファイルに記載されています。 -ここでは、サンプルファイルにある ``input.toml`` の中身について説明します。 +メインプログラム用の入力ファイル ``input.toml`` を作成します。記述方法の詳細については「入力ファイル」の項を参照してください。 .. code-block:: [base] - dimension = 3 + dimension = 2 + output_dir = "output" [solver] - name = "sim-trhepd-rheed" - - [solver.config] - calculated_first_line = 5 - calculated_last_line = 74 - row_number = 2 - - [solver.param] - string_list = ["value_01", "value_02", "value_03" ] - degree_max = 7.0 - - [solver.reference] - path = "experiment.txt" - first = 1 - last = 70 + name = "analytical" + function_name = "himmelblau" + [runner] + [runner.log] + interval = 20 + [algorithm] name = "minsearch" - label_list = ["z1", "z2", "z3"] + seed = 12345 [algorithm.param] - min_list = [0.0, 0.0, 0.0] - max_list = [10.0, 10.0, 10.0] - initial_list = [5.25, 4.25, 3.50] + min_list = [-6.0, -6.0] + max_list = [ 6.0, 6.0] + initial_list = [0, 0] -最初に ``[base]`` セクションについて説明します。 +``[base]`` セクションではプログラム全体で利用するパラメータを設定します。 -- ``dimension`` は最適化したい変数の個数で、今の場合は ``template.txt`` で説明したように3つの変数の最適化を行うので、``3`` を指定します。 +- ``dimension`` は最適化したい変数の個数です。Himmelblau関数は 2変数関数ですので、今の場合は ``2`` を指定します。 +- ``output_dir`` は出力先のディレクトリを指定します。 + ``[solver]`` セクションではメインプログラムの内部で使用するソルバーとその設定を指定します。 -- ``name`` は使用したいソルバーの名前で、このチュートリアルでは、 ``sim-trhepd-rheed`` を用いた解析を行うので、 ``sim-trhepd-rheed`` を指定します。 - -ソルバーの設定は、サブセクションの ``[solver.config]``, ``[solver.param]``, ``[solver.reference]`` で行います。 - -``[solver.config]`` セクションではメインプログラム内部で呼び出す ``surf.exe`` により得られた出力ファイルを読み込む際のオプションを指定します。 +- ``name`` は使用するソルバーの名前です。このチュートリアルでは ``analytical`` ソルバーに含まれる解析関数の解析を行います。 -- ``calculated_first_line`` は出力ファイルを読み込む最初の行数を指定します。 +- ``function_name`` は ``analytical`` ソルバー内の関数名を指定します。 -- ``calculated_last_line`` は出力ファイルを読み込む最後の行数を指定します。 - -- ``row_number`` は出力ファイルの何列目を読み込むかを指定します。 - -``[solver.param]`` セクションではメインプログラム内部で呼び出す ``surf.exe`` により得られた出力ファイルを読み込む際のオプションを指定します。 - -- ``string_list`` は、 ``template.txt`` で読み込む、動かしたい変数の名前のリストです。 - -- ``degree_max`` は、最大角度(度単位)の指定をします。 - -``[solver.reference]`` セクションでは、実験データの置いてある場所と読みこむ範囲を指定します。 - -- ``path`` は実験データが置いてあるパスを指定します。 - -- ``first`` は実験データファイルを読み込む最初の行数を指定します。 - -- ``end`` は実験データファイルを読み込む最後の行数を指定します。 +``[runner]`` セクションでは、逆問題解析アルゴリズムからソルバーの呼び出しに関する設定を行います。 +- ``[runner.log]`` の ``interval`` は、ログ出力の頻度を指定します。 ``interval`` 回の繰り返し毎にログを出力します。 + ``[algorithm]`` セクションでは、使用するアルゴリスムとその設定をします。 -- ``name`` は使用したいアルゴリズムの名前で、このチュートリアルでは、Nelder-Mead法 を用いた解析を行うので、 ``minsearch`` を指定します。 - -- ``label_list`` は、``value_0x`` (x=1,2,3) を出力する際につけるラベル名のリストです。 +- ``name`` は使用するアルゴリズムの名前です。このチュートリアルでは、Nelder-Mead法 を用いた解析を行うので、 ``minsearch`` を指定します。 +- ``seed`` は乱数の初期値を指定します。 + ``[algorithm.param]`` セクションでは、探索するパラメータの範囲や初期値を指定します。 - ``min_list`` と ``max_list`` はそれぞれ探索範囲の最小値と最大値を指定します。 - ``initial_list`` は初期値を指定します。 ここではデフォルト値を用いるため省略しましたが、その他のパラメータ、例えばNelder-Mead法で使用する収束判定などについては、``[algorithm]`` セクションで行うことが可能です。 -詳細については入力ファイルの章をご覧ください。 +詳細については「入力ファイル」の章を参照してください。 -計算実行 -~~~~~~~~~~~~ -最初にサンプルファイルが置いてあるフォルダへ移動します(以下、本ソフトウェアをダウンロードしたディレクトリ直下にいることを仮定します). - -.. code-block:: +計算の実行 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - cd sample/sim-trhepd-rheed/single_beam/minsearch - -順問題の時と同様に、``bulk.exe`` と ``surf.exe`` をコピーします。 - -.. code-block:: - - cp ../../../../../sim-trhepd-rheed/src/TRHEPD/bulk.exe . - cp ../../../../../sim-trhepd-rheed/src/TRHEPD/surf.exe . - -最初に ``bulk.exe`` を実行し、``bulkP.b`` を作成します。 +最初にサンプルファイルが置いてあるフォルダへ移動します。(以下では、2DMAT パッケージをダウンロードしたディレクトリの直下にいることを仮定します。) .. code-block:: - ./bulk.exe + $ cd sample/minsearch -そのあとに、メインプログラムを実行します(計算時間は通常のPCで数秒程度で終わります)。 +メインプログラムを実行します。計算時間は通常のPCで数秒程度で終わります。 .. code-block:: - python3 ../../../../src/py2dmat_main.py input.toml | tee log.txt + $ python3 ../../../src/py2dmat_main.py input.toml | tee log.txt 実行すると、以下の様な出力がされます。 .. code-block:: - Read experiment.txt - z1 = 5.25000 - z2 = 4.25000 - z3 = 3.50000 - [' 5.25000', ' 4.25000', ' 3.50000'] - PASS : degree in lastline = 7.0 - PASS : len(calculated_list) 70 == len(convolution_I_calculated_list)70 - R-factor = 0.015199251773721183 - z1 = 5.50000 - z2 = 4.25000 - z3 = 3.50000 - [' 5.50000', ' 4.25000', ' 3.50000'] - PASS : degree in lastline = 7.0 - PASS : len(calculated_list) 70 == len(convolution_I_calculated_list)70 - R-factor = 0.04380131351780189 - z1 = 5.25000 - z2 = 4.50000 - z3 = 3.50000 - [' 5.25000', ' 4.50000', ' 3.50000'] + Optimization terminated successfully. + Current function value: 0.000000 + Iterations: 40 + Function evaluations: 79 + iteration: 40 + len(allvecs): 41 + step: 0 + allvecs[step]: [0. 0.] + step: 1 + allvecs[step]: [0.375 0.375] + step: 2 + allvecs[step]: [0.0625 0.9375] + step: 3 + allvecs[step]: [0.65625 1.46875] + step: 4 + allvecs[step]: [0.328125 2.859375] ... -``z1``, ``z2``, ``z3`` に各ステップでの候補パラメータと、その時の``R-factor`` が出力されます。 -また各ステップでの計算結果は ``Logxxxxx`` (xxxxxにステップ数)のフォルダに出力されます。 -最終的に推定されたパラメータは、``res.dat`` に出力されます。今の場合、 +``x1``, ``x2`` に各ステップでの候補パラメータと、その時の関数値が出力されます。 +最終的に推定されたパラメータは ``output/res.dat`` に出力されます。今の場合、 .. code-block:: - z1 = 5.230524973874179 - z2 = 4.370622919269477 - z3 = 3.5961444501081647 - -が得られ、正解のデータ ``ref.txt`` と同じ値が得られていることがわかります。 -なお、一括計算するスクリプトとして ``do.sh`` を用意しています。 -``do.sh`` では ``res.txt`` と ``ref.txt`` の差分も比較しています。 -以下、説明は割愛しますが、その中身を掲載します。 - -.. code-block:: - - sh ./prepare.sh - - ./bulk.exe + fx = 4.2278370361994904e-08 + x1 = 2.9999669562950175 + x2 = 1.9999973389336225 - time python3 ../../../../src/py2dmat_main.py input.toml | tee log.txt +が得られ、最小値を与える解の一つが求められたことが分かります。 - echo diff res.txt ref.txt - res=0 - diff res.txt ref.txt || res=$? - if [ $res -eq 0 ]; then - echo Test PASS - true - else - echo Test FAILED: res.txt and ref.txt differ - false - fi 計算結果の可視化 -~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -それぞれのステップでのロッキングカーブのデータは、 ``LogXXX_00000001`` (``XXX`` はステップ数)フォルダに ``RockingCurve.txt`` として保存されています (``LogXXX_00000000`` フォルダはNelder-Mead 法の途中での評価です)。 -このデータを可視化するツール ``draw_RC_double.py`` が準備されています。 -ここでは、このツールを利用して結果を可視化します。 +Nelder-Mead法による解の探索の経路は ``output/SimplexData.txt`` に出力されています。 +これをプロットするツールが ``sample/plot_himmel.py`` に用意されています。 .. code-block:: - cp 0/Log00000001_00000001/RockingCurve.txt RockingCurve_ini.txt - cp 0/Log00000062_00000001/RockingCurve.txt RockingCurve_con.txt - cp ../../../../script/draw_RC_double.py . - python draw_RC_double.py + $ python3 ../plot_himmel.py --xcol=1 --ycol=2 --output=output/res.pdf output/SimplexData.txt -上記を実行することで、``RC_double.png`` が出力されます。 +上記を実行すると ``output/res.pdf`` が出力されます。 -.. figure:: ../../../common/img/RC_double_minsearch.* +.. figure:: ../../../common/img/res_minsearch.* - Nelder-Mead法を用いた解析。赤丸が実験値、青線が最初のステップ、緑線が最後のステップで得られたロッキングカーブを表す。 + Nelder-Mead法を用いた Himmelblau 関数の最小値探索。黒線は Himmelblau関数の関数値を表す等高線、青色のシンボルは探索経路。 -図から最後のステップでは実験値と一致していることがわかります。 +Himmelblau関数の関数値を表す等高線の上に Nelder-Mead法による探索の経路がプロットされます。初期値 ``(0, 0)`` からスタートして最小値を与える解の一つ ``(3, 2)`` に到達していることが分かります。 diff --git a/doc/ja/source/tutorial/pamc.rst b/doc/ja/source/tutorial/pamc.rst index 83d0a3af..4a230bdb 100644 --- a/doc/ja/source/tutorial/pamc.rst +++ b/doc/ja/source/tutorial/pamc.rst @@ -1,244 +1,175 @@ ポピュレーションアニーリングによる探索 -======================================== +================================================================ -ここでは、ポピュレーションアニーリングを用いて、回折データから原子座標を解析する方法について説明します。 +ここでは、ポピュレーションアニーリングを用いて Himmelblau関数の最小化問題を解析する方法について説明します。 具体的な計算手順は ``minsearch`` の時と同様です。 サンプルファイルの場所 -~~~~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -サンプルファイルは ``sample/sim-trhepd-rheed/single_beam/pamc`` にあります。 +サンプルファイルは ``sample/analytical/pamc`` にあります。 フォルダには以下のファイルが格納されています。 -- ``bulk.txt`` - - ``bulk.exe`` の入力ファイル - -- ``experiment.txt`` , ``template.txt`` - - メインプログラムでの計算を進めるための参照ファイル - -- ``ref.txt`` - - 計算が正しく実行されたか確認するためのファイル(本チュートリアルを行うことで得られる ``fx.txt`` の回答)。 - - ``input.toml`` メインプログラムの入力ファイル -- ``prepare.sh`` , ``do.sh`` +- ``do.sh`` 本チュートリアルを一括計算するために準備されたスクリプト -以下、これらのファイルについて説明したあと、実際の計算結果を紹介します。 - -参照ファイルの説明 -~~~~~~~~~~~~~~~~~~~ - -``template.txt`` , ``experiment.txt`` については、 -前のチュートリアル(Nealder-Mead法による最適化)と同じものを使用します。 入力ファイルの説明 -~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -ここでは、メインプログラム用の入力ファイル ``input.toml`` について説明します。 -``input.toml`` の詳細については入力ファイルに記載されています。 -以下は、サンプルファイルにある ``input.toml`` の中身になります。 +メインプログラム用の入力ファイル ``input.toml`` について説明します。記述方法の詳細については「入力ファイル」の項を参照してください。 .. code-block:: - [base] - dimension = 2 - output_dir = "output" - - [algorithm] - name = "pamc" - label_list = ["z1", "z2"] - seed = 12345 + [base] + dimension = 2 + output_dir = "output" - [algorithm.param] - min_list = [3.0, 3.0] - max_list = [6.0, 6.0] - unit_list = [0.3, 0.3] + [solver] + name = "analytical" + function_name = "himmelblau" - [algorithm.pamc] - numsteps_annealing = 5 - bmin = 0.0 - bmax = 200.0 - Tnum = 21 - Tlogspace = false - nreplica_per_proc = 10 + [runner] + [runner.log] + interval = 20 - [solver] - name = "sim-trhepd-rheed" + [algorithm] + name = "pamc" + seed = 12345 - [solver.config] - calculated_first_line = 5 - calculated_last_line = 74 - row_number = 2 - - [solver.param] - string_list = ["value_01", "value_02" ] - degree_max = 7.0 - - [solver.reference] - path = "experiment.txt" - first = 1 - last = 70 + [algorithm.param] + max_list = [6.0, 6.0] + min_list = [-6.0, -6.0] + unit_list = [0.3, 0.3] + [algorithm.pamc] + bmin = 0.0 + bmax = 200.0 + Tnum = 21 + Tlogspace = false + numsteps_annealing = 100 + nreplica_per_proc = 100 ここではこの入力ファイルを簡単に説明します。 詳細は入力ファイルのレファレンスを参照してください。 -``[base]`` セクションはメインプログラム全体のパラメータです。 -``dimension`` は最適化したい変数の個数で、今の場合は2つの変数の最適化を行うので、``2`` を指定します。 - -``[algorithm]`` セクションは用いる探索アルゴリズムを設定します。 -交換モンテカルロ法を用いる場合には、 ``name`` に ``"exchange"`` を指定します。 -``label_list`` は、``value_0x`` (x=1,2) を出力する際につけるラベル名のリストです。 -``seed`` は擬似乱数生成器に与える種です。 - -``[algorithm.param]`` サブセクションは、最適化したいパラメータの範囲などを指定します。 -``min_list`` は最小値、 ``max_list`` は最大値を示します。 -``unit_list`` はモンテカルロ更新の際の変化幅(ガウス分布の偏差)です。 -``[algorithm.pamc]`` サブセクションは、ポピュレーションアニーリングのハイパーパラメータを指定します。 +``[base]``, ``[solver]``, ``[runner]`` のセクションについては Nelder-Mead法による探索(``minsearch``)の場合と同じです。 -- ``numsteps_annealing`` で指定した回数のモンテカルロ更新の後に、逆温度を増やします (温度を下げます)。 -- ``bmin``, ``bmax`` はそれぞれ逆温度の下限・上限です。 -- ``Tnum`` は計算する温度・逆温度の点数です。 -- ``Tlogspace`` が ``true`` の場合、温度を対数空間で等分割します -- ``nreplica_per_proc`` はMPIプロセスひとつが受け持つ計算レプリカの数です。 +``[algorithm]`` セクションでは、使用するアルゴリスムとその設定を行います。 -``[solver]`` セクションではメインプログラムの内部で使用するソルバーを指定します。 -``minsearch`` のチュートリアルを参照してください。 +- ``name`` は使用するアルゴリズムの名前です。このチュートリアルでは、ポピュレーションアニーリング法による解析を行うので、 ``pamc`` を指定します。 +``[algorithm.param]`` セクションでは、探索する連続なパラメータ空間の設定を行います。 -計算実行 -~~~~~~~~~~~~ +- ``min_list`` と ``max_list`` はそれぞれ探索範囲の最小値と最大値を指定します。 -最初にサンプルファイルが置いてあるフォルダへ移動します(以下、本ソフトウェアをダウンロードしたディレクトリ直下にいることを仮定します). +- ``unit_list`` はモンテカルロ更新の際の変化幅(ガウス分布の偏差)です。 -.. code-block:: +``[algorithm.pamc]`` セクションは、ポピュレーションアニーリングのハイパーパラメータを指定します。 - cd sample/sim-trhepd-rheed/pamc +- ``numsteps_annealing`` で指定した回数のモンテカルロ更新の後に、逆温度を増やします (温度を下げます)。 -順問題の時と同様に、 ``bulk.exe`` と ``surf.exe`` をコピーします。 +- ``bmin``, ``bmax`` はそれぞれ逆温度の下限・上限です。 -.. code-block:: +- ``Tnum`` は計算する温度・逆温度の点数です。 - cp ../../../../../sim-trhepd-rheed/src/TRHEPD/bulk.exe . - cp ../../../../../sim-trhepd-rheed/src/TRHEPD/surf.exe . +- ``Tlogspace`` が ``true`` の場合、温度を対数空間で等分割します -最初に ``bulk.exe`` を実行し、``bulkP.b`` を作成します。 +- ``nreplica_per_proc`` はMPIプロセスひとつが受け持つ計算レプリカの数です。 -.. code-block:: - ./bulk.exe +計算の実行 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -そのあとに、メインプログラムを実行します(計算時間は通常のPCで数秒程度で終わります)。 +最初にサンプルファイルが置いてあるフォルダへ移動します。(以下、本ソフトウェアをダウンロードしたディレクトリ直下にいることを仮定します。) .. code-block:: - mpiexec -np 4 python3 ../../../../src/py2dmat_main.py input.toml | tee log.txt + $ cd sample/analytical/pamc -ここではプロセス数4のMPI並列を用いた計算を行っています。 -(Open MPI を用いる場合で、使えるコア数よりも要求プロセス数の方が多い時には、 -``mpiexec`` コマンドに ``--oversubscribed`` オプションを追加してください。) -実行すると、各ランクのフォルダが作成され、 -温度ごとに、各モンテカルロステップで評価したパラメータおよび目的関数の値を記した ``trial_TXXX.txt`` ファイル(``XXX`` は温度点の番号)と、 -実際に採択されたパラメータを記した ``result_TXXX.txt`` ファイル、さらにそれぞれを結合した ``trial.txt``, ``result.txt`` ファイルが生成されます。 -それぞれ書式は同じで、最初の2列がステップ数とプロセス内のwalker (replica) 番号、次が(逆)温度、3列目が目的関数の値、4列目以降がパラメータです。 -最後の2 列は、 walker の重み (Neal-Jarzynski weight) と祖先(計算を開始したときのレプリカ)の番号です。 +メインプログラムを実行します。計算時間は通常のPCで数秒程度で終わります。 .. code-block:: - # step walker beta fx z1 z2 weight ancestor - 0 0 0.0 0.07702743614780189 5.788848278451443 3.949126663745358 1.0 0 - 0 1 0.0 0.08737730661436376 3.551756435031283 3.6136808356591192 1.0 1 - 0 2 0.0 0.04954470587051104 4.70317508724506 4.786634108937754 1.0 2 - 0 3 0.0 0.04671675601156148 5.893543559206865 4.959531290614713 1.0 3 - 0 4 0.0 0.04142014655238446 5.246719912601735 4.960709612555206 1.0 4 + $ mpiexec -np 4 python3 ../../../src/py2dmat_main.py input.toml | tee log.txt -また、 sim-trhepd-rheed ソルバーの場合は、 各作業フォルダの下にサブフォルダ ``Log%%%%%`` ( ``%%%%%`` がグリッドのid)が作成され、ロッキングカーブの情報などが記録されます -(各プロセスにおけるモンテカルロステップ数がidとして割り振られます)。 +ここではプロセス数4のMPI並列を用いた計算を行っています。 +OpenMPI を用いる場合で、使えるコア数よりも要求プロセス数の方が多い時には、 ``mpiexec`` コマンドに ``--oversubscribed`` オプションを追加してください。 -``best_result.txt`` に、目的関数 (R-factor) が最小となったパラメータとそれを得たランク、モンテカルロステップの情報が書き込まれます。 +実行すると、 ``output`` ディレクトリの下に各ランクのフォルダが作成され、温度ごとに、各モンテカルロステップで評価したパラメータおよび目的関数の値を記した ``trial_TXXX.txt`` ファイル(``XXX`` は温度点の番号)と、実際に採択されたパラメータを記した ``result_TXXX.txt`` ファイル、さらにそれぞれを結合した ``trial.txt``, ``result.txt`` ファイルが生成されます。 +それぞれ書式は同じで、最初の2列がステップ数とプロセス内の walker (replica) 番号、次が(逆)温度、3列目が目的関数の値、4列目以降がパラメータです。 +最後の2 列は、 walker の重み (Neal-Jarzynski weight) と祖先(計算を開始したときのレプリカ)の番号です。 .. code-block:: - nprocs = 4 - rank = 0 - step = 71 - walker = 5 - fx = 0.008186713312593607 - z1 = 4.225633749839847 - z2 = 5.142666117413409 - -最後に、 ``fx.txt`` には、各温度ごとの統計情報が記録されます。 + # step walker beta fx x1 x2 weight ancestor + 0 0 0.0 187.94429125133564 5.155393113805774 -2.203493345018569 1.0 0 + 0 1 0.0 3.179380982615041 -3.7929742598748666 -3.5452766573635235 1.0 1 + 0 2 0.0 108.25464277273859 0.8127003489802398 1.1465364357510186 1.0 2 + 0 3 0.0 483.84183395038843 5.57417423682746 1.8381251624588506 1.0 3 + 0 4 0.0 0.43633134370869153 2.9868796504069426 1.8428384502208246 1.0 4 + 0 5 0.0 719.7992581349758 2.972577711255287 5.535680832873856 1.0 5 + 0 6 0.0 452.4691017123836 -5.899340424701358 -4.722667479627368 1.0 6 + 0 7 0.0 45.5355817998709 -2.4155554347674215 1.8769341969872393 1.0 7 + 0 8 0.0 330.7972369561986 3.717750630491217 4.466110964691396 1.0 8 + 0 9 0.0 552.0479484091458 5.575771168463163 2.684224163039442 1.0 9 + 0 10 0.0 32.20027165958588 1.7097039347500953 2.609443449748964 1.0 10 + ... + +``output/best_result.txt`` に、目的関数が最小となったパラメータとそれを得たランク、モンテカルロステップの情報が書き込まれます。 .. code-block:: - # $1: 1/T - # $2: mean of f(x) - # $3: standard error of f(x) - # $4: number of replicas - # $5: log(Z/Z0) - # $6: acceptance ratio - 0.0 0.06428002079611472 0.002703413400677839 40 0.0 0.795 - 10.0 0.061399304916174735 0.002649424392996749 40 -0.6280819199879947 0.85 - 20.0 0.05904248889111052 0.0031622711212952034 40 -1.2283060742855603 0.74 - 30.0 0.04956921148431115 0.0028298565759159633 40 -1.7991035905899855 0.67 - -1列目は温度・逆温度で、2・3列目は目的関数 :math:`f(x)` の期待値と標準誤差、4列目はレプリカの個数、5列目は分配関数の比の対数 :math:`\log(Z_n/Z_0)` です(:math:`Z_0` は最初の温度点における分配関数)、6列目はモンテカルロ更新の採択率です。 + nprocs = 4 + rank = 0 + step = 1416 + walker = 76 + fx = 1.2934852891645974e-05 + x1 = 3.5849122439454018 + x2 = -1.8479993173120015 -なお、一括計算するスクリプトとして ``do.sh`` を用意しています。 -``do.sh`` では ``res.txt`` と ``ref.txt`` の差分も比較しています。 -以下、説明は割愛しますが、その中身を掲載します。 +最後に、 ``output/fx.txt`` には、各温度ごとの統計情報が記録されます。 .. code-block:: - sh prepare.sh + # $1: 1/T + # $2: mean of f(x) + # $3: standard error of f(x) + # $4: number of replicas + # $5: log(Z/Z0) + # $6: acceptance ratio + 0.0 300.30221072734275 15.51347277317414 400 0.0 0.95625 + 10.0 0.10242968777639305 0.004707441824226148 400 -6.288173357129039 0.078525 + 20.0 0.057183322050182284 0.002645707013463865 400 -7.016157801630186 0.023825 + 30.0 0.04113146664363754 0.0019866335071532255 400 -7.477440282564104 0.015575 + 40.0 0.030213182090724544 0.0014292149366135543 400 -7.82499342385409 0.01135 + ... - ./bulk.exe +1列目は温度・逆温度で、2・3列目は目的関数 :math:`f(x)` の期待値と標準誤差、4列目はレプリカの個数、5列目は分配関数の比の対数 :math:`\log(Z_n/Z_0)` (:math:`Z_0` は最初の温度点における分配関数)、6列目はモンテカルロ更新の採択率です。 - time mpiexec --oversubscribe -np 4 python3 ../../../../src/py2dmat_main.py input.toml - - echo diff output/fx.txt ref.txt - res=0 - diff output/fx.txt ref.txt || res=$? - if [ $res -eq 0 ]; then - echo TEST PASS - true - else - echo TEST FAILED: output/fx.txt and ref.txt differ - false - fi 計算結果の可視化 -~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -``result_T%.txt`` を図示することで、 ``R-factor`` の小さいパラメータがどこにあるかを推定することができます。 -今回の場合は、以下のコマンドをうつことで2次元パラメータ空間の図 ``result_fx.pdf`` と ``result_T.pdf`` が作成されます。 -シンボルの色はそれぞれ ``R-factor`` と逆温度 :math:`\beta` に対応します。 +``result_T%.txt`` を図示することで ``f(x)`` の小さいパラメータがどこにあるかを推定することができます。 +以下のコマンドを入力すると 2次元パラメータ空間の図 ``res_T%.png`` が作成されます。 +シンボルの色は目的関数の値に対応します。 .. code-block:: - python3 plot_result_2d.py - -作成された図を見ると、(5.25, 4.25) と (4.25, 5.25) 付近にサンプルが集中していることと、 -``R-factor`` の値が小さいことがわかります。 - - -.. figure:: ../../../common/img/pamc_fx.* + $ python3 plot_result_2d.py -o res_T0.png result_T0.txt - サンプルされたパラメータ。横軸は ``value_01`` , 縦軸は ``value_02`` を、色は ``R-factor`` を表す。 +作成された図を見ると、 ``f(x)`` の最小値を与える点の付近にサンプルが集中していることと、目的関数の値が小さいことがわかります。 +.. figure:: ../../../common/img/res_pamc_T0.* -.. figure:: ../../../common/img/pamc_T.* +.. figure:: ../../../common/img/res_pamc_T1.* - サンプルされたパラメータと逆温度。横軸は ``value_01`` , 縦軸は ``value_02`` を、色は逆温度を表す。 + サンプルされたパラメータ。横軸は ``x1`` , 縦軸は ``x2`` を、色は ``f(x)`` を表す。 -また、 ``RockingCurve.txt`` が各サブフォルダに格納されています。 -``LogXXX_YYY`` の ``XXX`` はモンテカルロのステップ数、 ``YYY`` は各MPIプロセス内のレプリカの番号です。 -これを用いることで、前チュートリアルの手順に従い、実験値との比較も行うことが可能です。 diff --git a/doc/ja/source/tutorial/solver_simple.rst b/doc/ja/source/tutorial/solver_simple.rst index 686a5298..ac2a5a32 100644 --- a/doc/ja/source/tutorial/solver_simple.rst +++ b/doc/ja/source/tutorial/solver_simple.rst @@ -1,14 +1,15 @@ 順問題ソルバーの追加 -====================== +================================ ベンチマーク関数ソルバー -~~~~~~~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -``py2dmat`` では探索アルゴリズムのテストに利用できる順問題ソルバーとして、 ``analytical`` ソルバーを準備しています。 +``py2dmat`` では探索アルゴリズムのテストに利用できる順問題ソルバーとして ``analytical`` ソルバーを用意しています。 -``analytical`` ソルバーを使うには、入力ファイルの ``[solver]`` セクションの ``name`` を ``"analytical"`` に設定します。 -また、 ``function_name`` パラメータを用いてベンチマーク関数 :math:`f(x)` を選択します。 -たとえば、 Himmelblau 関数を用いる場合には :: +``analytical`` ソルバーを使うには、入力ファイルの ``[solver]`` セクションの ``name`` を ``"analytical"`` に設定し、 ``function_name`` パラメータを用いてベンチマーク関数 :math:`f(x)` を選択します。 +たとえば、 Himmelblau 関数を用いる場合には + +.. code-block:: toml [solver] name = "analytical" @@ -18,7 +19,7 @@ 利用可能な関数の詳細は :doc:`analytical ソルバーのリファレンス <../solver/analytical>` を参照してください。 順問題ソルバーの追加 -~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ユーザ定義の順問題ソルバーを定義・解析する一番簡単な方法は、 ``analytical`` ソルバーに追加することです。 ここでは例として、 `Booth関数 `_ @@ -27,7 +28,7 @@ f(x,y) = (x+2y-7)^{2} + (2x+y-5)^{2} -を追加してみましょう(最小値は :math:`f(1,3) = 0` )。 +を追加してみましょう。(最小値は :math:`f(1,3) = 0`) そのためには、 ``py2dmat`` のソースコードをダウンロードし、ファイルを編集する必要があります。 ダウンロード方法や、ソースコードからの実行方法などは、 :doc:`インストールページ <../start>` を参照してください。 @@ -50,8 +51,7 @@ ) return (xs[0] + 2 * xs[1] - 7.0) ** 2 + (2 * xs[0] + xs[1] - 5.0) ** 2 -つぎに、入力ファイルの ``solver.function_name`` パラメータで ``booth`` 関数を指定できるようにするために、 -``Solver`` クラスのコンストラクタ (``__init__``) 中の if 分岐に以下のコードを挿入します。 +つぎに、入力ファイルの ``solver.function_name`` パラメータで ``booth`` 関数を指定できるようにするために、``Solver`` クラスのコンストラクタ (``__init__``) 中の if 分岐に以下のコードを挿入します。 .. code-block:: python @@ -59,7 +59,9 @@ self.set_function(booth) この改造した ``analytical`` ソルバーでは、 Booth 関数の最適化が行なえます。 -たとえばNelder-Mead 法による最適化は、以下の入力ファイル (``input.toml``) を :: +たとえばNelder-Mead 法による最適化は、以下の入力ファイル (``input.toml``) を + +.. code-block:: [base] dimension = 2 @@ -78,7 +80,9 @@ name = "analytical" function_name = "booth" -``src/py2dmat_main.py`` に渡せば実行可能です:: +``src/py2dmat_main.py`` に渡せば実行可能です。 + +.. code-block:: $ python3 src/py2dmat_main.py input.toml diff --git a/extra/leed/doc/.gitignore b/extra/leed/doc/.gitignore new file mode 100644 index 00000000..c795b054 --- /dev/null +++ b/extra/leed/doc/.gitignore @@ -0,0 +1 @@ +build \ No newline at end of file diff --git a/extra/leed/doc/common/.placeholder b/extra/leed/doc/common/.placeholder new file mode 100644 index 00000000..e69de29b diff --git a/extra/leed/doc/common/img/mapper.pdf b/extra/leed/doc/common/img/mapper.pdf new file mode 100644 index 00000000..af4dcb84 Binary files /dev/null and b/extra/leed/doc/common/img/mapper.pdf differ diff --git a/extra/leed/doc/common/img/mapper.png b/extra/leed/doc/common/img/mapper.png new file mode 100644 index 00000000..15086f5c Binary files /dev/null and b/extra/leed/doc/common/img/mapper.png differ diff --git a/extra/leed/doc/ja/Makefile b/extra/leed/doc/ja/Makefile new file mode 100644 index 00000000..f86728d9 --- /dev/null +++ b/extra/leed/doc/ja/Makefile @@ -0,0 +1,20 @@ +# Minimal makefile for Sphinx documentation +# + +# You can set these variables from the command line, and also +# from the environment for the first two. +SPHINXOPTS ?= +SPHINXBUILD ?= sphinx-build +SOURCEDIR = source +BUILDDIR = build + +# Put it first so that "make" without argument is like "make help". +help: + @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) + +.PHONY: help Makefile + +# Catch-all target: route all unknown targets to Sphinx using the new +# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). +%: Makefile + @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" -W $(SPHINXOPTS) $(O) diff --git a/extra/leed/doc/ja/make.bat b/extra/leed/doc/ja/make.bat new file mode 100644 index 00000000..6247f7e2 --- /dev/null +++ b/extra/leed/doc/ja/make.bat @@ -0,0 +1,35 @@ +@ECHO OFF + +pushd %~dp0 + +REM Command file for Sphinx documentation + +if "%SPHINXBUILD%" == "" ( + set SPHINXBUILD=sphinx-build +) +set SOURCEDIR=source +set BUILDDIR=build + +if "%1" == "" goto help + +%SPHINXBUILD% >NUL 2>NUL +if errorlevel 9009 ( + echo. + echo.The 'sphinx-build' command was not found. Make sure you have Sphinx + echo.installed, then set the SPHINXBUILD environment variable to point + echo.to the full path of the 'sphinx-build' executable. Alternatively you + echo.may add the Sphinx directory to PATH. + echo. + echo.If you don't have Sphinx installed, grab it from + echo.http://sphinx-doc.org/ + exit /b 1 +) + +%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% +goto end + +:help +%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% + +:end +popd diff --git a/extra/leed/doc/ja/source/acknowledgement.rst b/extra/leed/doc/ja/source/acknowledgement.rst new file mode 100644 index 00000000..13173cd5 --- /dev/null +++ b/extra/leed/doc/ja/source/acknowledgement.rst @@ -0,0 +1,5 @@ +*************************** +謝辞 +*************************** + +本ソフトウェアは、科研費(2019-2021年度)「超並列マシンを用いた計算統計と測定技術の融合」および東京大学物性研究所 ソフトウェア高度化プロジェクト (2020, 2021, 2024年度) の支援を受け開発されました。 diff --git a/extra/leed/doc/ja/source/conf.py b/extra/leed/doc/ja/source/conf.py new file mode 100644 index 00000000..7c5e96ab --- /dev/null +++ b/extra/leed/doc/ja/source/conf.py @@ -0,0 +1,141 @@ +# Configuration file for the Sphinx documentation builder. +# +# This file only contains a selection of the most common options. For a full +# list see the documentation: +# https://www.sphinx-doc.org/en/master/usage/configuration.html + +# -- Path setup -------------------------------------------------------------- + +# If extensions (or modules to document with autodoc) are in another directory, +# add these directories to sys.path here. If the directory is relative to the +# documentation root, use os.path.abspath to make it absolute, like shown here. +# +# import os +# import sys +# sys.path.insert(0, os.path.abspath('.')) + + +# -- Project information ----------------------------------------------------- + +project = '2DMAT solver module: sxrd' +copyright = '2020-, 2DMAT developers' +author = '2DMAT developers' + +version = '1.0' +# The full version, including alpha/beta/rc tags +release = '1.0-dev' + +# -- General configuration --------------------------------------------------- + +# Add any Sphinx extension module names here, as strings. They can be +# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom +# ones. +extensions = ['sphinx.ext.autodoc', + 'sphinx.ext.mathjax' +] + +# Add any paths that contain templates here, relative to this directory. +templates_path = ['_templates'] + +# The master toctree document. +master_doc = 'index' + +# List of patterns, relative to source directory, that match files and +# directories to ignore when looking for source files. +# This pattern also affects html_static_path and html_extra_path. +exclude_patterns = [] + + +# -- Options for HTML output ------------------------------------------------- + +# The theme to use for HTML and HTML Help pages. See the documentation for +# a list of builtin themes. +# +html_theme = 'haiku' + +# Add any paths that contain custom static files (such as style sheets) here, +# relative to this directory. They are copied after the builtin static files, +# so a file named "default.css" will overwrite the builtin "default.css". +# html_static_path = ['_static'] + +# Theme options are theme-specific and customize the look and feel of a theme +# further. For a list of options available for each theme, see the +# documentation. +# +html_theme_options = { +} + +# Custom sidebar templates, must be a dictionary that maps document names +# to template names. +# +# This is required for the alabaster theme +# refs: http://alabaster.readthedocs.io/en/latest/installation.html#sidebars +html_sidebars = { + '**': [ + 'relations.html', # needs 'show_related': True theme option to display + 'searchbox.html', + ] +} + + +# The language for content autogenerated by Sphinx. Refer to documentation +# for a list of supported languages. +# +# This is also used if you do content translation via gettext catalogs. +# Usually you set "language" from the command line for these cases. +language = 'ja' + +# -- Options for LaTeX output --------------------------------------------- + +latex_engine = 'uplatex' + +latex_elements = { + # The paper size ('letterpaper' or 'a4paper'). + # + # 'papersize': 'letterpaper', + + # The font size ('10pt', '11pt' or '12pt'). + # + # 'pointsize': '10pt', + + # Additional stuff for the LaTeX preamble. + # + # 'preamble': '', + + # Latex figure (float) alignment + # + # 'figure_align': 'htbp', +} + +# Grouping the document tree into LaTeX files. List of tuples +# (source start file, target name, title, +# author, documentclass [howto, manual, or own class]). +latex_documents = [ + (master_doc, 'userguide_leed_ja.tex', u'2DMAT leed Documentation', + u'University of Tokyo', 'manual', 'True'), +] + +# latex_docclass = {'manual': 'jsbook'} + +# -- Options for Texinfo output ------------------------------------------- + +# Grouping the document tree into Texinfo files. List of tuples +# (source start file, target name, title, author, +# dir menu entry, description, category) +texinfo_documents = [ + (master_doc, '2dmat', u'2DMAT Documentation', + author, '2DMAT', 'One line description of project.', + 'Miscellaneous'), +] + + +html_sidebars = { + '**': [ + 'about.html', + 'navigation.html', + 'relations.html', + 'searchbox.html', + 'donate.html', + ] +} + diff --git a/extra/leed/doc/ja/source/contact.rst b/extra/leed/doc/ja/source/contact.rst new file mode 100644 index 00000000..bc06375c --- /dev/null +++ b/extra/leed/doc/ja/source/contact.rst @@ -0,0 +1,22 @@ +お問い合わせ +========================================= + +2DMAT-LEED に関するお問い合わせはこちらにお寄せください。 + +- バグ報告 + + 2DMAT-LEED のバグ関連の報告は `GitHubのIssues `_ で受け付けています。 + + バグを早期に解決するため、報告時には次のガイドラインに従ってください。 + + - 使用している 2DMAT-LEED のバージョンを指定してください。 + + - インストールに問題がある場合には、使用しているオペレーティングシステムとコンパイラの情報についてお知らせください。 + + - 実行に問題が生じた場合は、実行に使用した入力ファイルとその出力を記載してください。 + +- その他 + + 研究に関連するトピックなどGitHubのIssuesで相談しづらいことを問い合わせる際には、以下の連絡先にコンタクトをしてください。 + + E-mail: ``2dmat-dev__at__issp.u-tokyo.ac.jp`` (_at_を@に変更してください) diff --git a/extra/leed/doc/ja/source/index.rst b/extra/leed/doc/ja/source/index.rst new file mode 100644 index 00000000..d4956bfd --- /dev/null +++ b/extra/leed/doc/ja/source/index.rst @@ -0,0 +1,18 @@ +.. 2dmat documentation master file, created by + sphinx-quickstart on Tue May 26 18:44:52 2020. + You can adapt this file completely to your liking, but it should at least + contain the root `toctree` directive. + +Welcome to 2DMAT's documentation! +================================== + +.. toctree:: + :maxdepth: 2 + :caption: Contents: + + introduction + install + tutorial/index + solver + acknowledgement + contact diff --git a/extra/leed/doc/ja/source/install.rst b/extra/leed/doc/ja/source/install.rst new file mode 100644 index 00000000..9337a9e3 --- /dev/null +++ b/extra/leed/doc/ja/source/install.rst @@ -0,0 +1,96 @@ +2DMAT-LEED のインストール +============================= + +実行環境・必要なパッケージ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +- python 3.6.8 以上 + + - 必要なpythonパッケージ + + - tomli (>= 1.2) + - numpy (>= 1.14) + +- py2dmat version 3.0 以降 + +- SATLEED + + - コンパイルには Fortranコンパイラが必要 + +ダウンロード・インストール +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +1. py2dmat をインストールする + + - ソースコードからのインストール + + リポジトリから py2dmat のソースファイルを取得します。 + + .. code-block:: bash + + $ git clone -b update https://github.com/issp-center-dev/2DMAT.git + + pip コマンドを実行してインストールします。 + + .. code-block:: bash + + $ cd 2DMAT + $ python3 -m pip install . + + ``--user`` オプションを付けるとローカル (``$HOME/.local``) にインストールできます。 + + ``python3 -m pip install .[all]`` を実行するとオプションのパッケージも同時にインストールします。 + +2. SATLEED をインストールする + + - ``SATLEED`` のソースコードは以下の URL から取得できます。 + + .. code-block:: bash + + $ wget http://www.icts.hkbu.edu.hk/VanHove_files/leed/leedsatl.zip + + - ファイルを展開し、所定の手続きに従ってコンパイルします。 + + ``SATLEED`` は計算したい系の詳細によってソースコードのパラメータを適宜書き換える必要があります。 ``sample/leed`` にあるサンプルを実行する場合の書き換えとコンパイルを自動で行うスクリプト ``setup.sh`` が用意されています。 + + .. code-block:: bash + + $ cd sample/mapper + $ sh ./setup.sh + + ``setup.sh`` を実行すると、 ``leedsatl`` ディレクトリに ``satl1.exe`` と ``satl2.exe`` が作成されます。 + +3. 2DMAT-LEED をインストールする + + 2DMAT-LEED のソースファイルは、現在は py2dmat のソースパッケージの extra ディレクトリ内に配置されています。1. に記述した手順に従って py2dmat のソースファイルを取得した後、 ``extra/leed`` ディレクトリ内で pip コマンドを実行してインストールします。 + + .. code-block:: bash + + $ cd 2DMAT/extra/leed + $ python3 -m pip install . + + ``--user`` オプションを付けるとローカル (``$HOME/.local``) にインストールできます。 + + 2DMAT-LEED のライブラリと、実行コマンド ``py2dmat-leed`` がインストールされます。 + +実行方法 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +2DMAT では順問題ソルバと逆問題解析アルゴリズムを組み合わせて解析を行います。 +LEEDの解析を行うには次の2通りの方法があります。 + +1. このパッケージに含まれる py2dmat-leed プログラムを利用して解析を行います。ユーザは、プログラムの入力となるパラメータファルを TOML 形式で作成し、プログラムの引数に指定してコマンドを実行します。逆問題解析のアルゴリズムはパラメータで選択できます。 + +2. 2DMAT-LEED ライブラリと 2DMAT フレームワークを用いてプログラムを作成し、解析を行います。逆問題解析アルゴリズムは import するモジュールで選択します。プログラム中に入力データの生成を組み込むなど、柔軟な使い方ができます。 + +パラメータの種類やライブラリの利用方法については以降の章で説明します。 + + +アンインストール +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +2DMAT-LEED モジュールおよび 2DMAT モジュールをアンインストールするには、以下のコマンドを実行します。 + +.. code-block:: bash + + $ python3 -m pip uninstall py2dmat-leed py2dmat + diff --git a/extra/leed/doc/ja/source/introduction.rst b/extra/leed/doc/ja/source/introduction.rst new file mode 100644 index 00000000..11ba486f --- /dev/null +++ b/extra/leed/doc/ja/source/introduction.rst @@ -0,0 +1,89 @@ +はじめに +================================ + +2DMATとは +-------------------------------- + +2DMATは、順問題ソルバーに対して探索アルゴリズムを適用して最適解を探すためのフレームワークです。 +順問題ソルバーはユーザー自身で定義できるほか、標準的な順問題ソルバーとして2次元物質構造解析向け実験データ解析ソフトウェアが用意されています。 +順問題ソルバーでは、原子位置などをパラメータとし得られたデータと実験データとのずれを損失関数として与えます。 +探索アルゴリズムによりこの損失関数を最小化する最適なパラメータを推定します。 +現バージョンでは、順問題ソルバーとして量子ビーム回折実験の全反射高速陽電子回折実験(Total-Reflection High-Energy Positron Diffraction: TRHEPD), 表面X線回折法(Surface X-ray Diffraction: SXRD), 低速電子線回折法(Low Energy Electron Diffraction: LEED)に対応しており、 +探索アルゴリズムはNelder-Mead法, グリッド型探索法, ベイズ最適化, レプリカ交換モンテカルロ法, ポピュレーションアニーリングモンテカルロ法が実装されています。 + +2DMAT-LEEDとは +-------------------------------- + +``SATLEED`` は M.A. Van Hove氏により作成された LEED の解析を行うプログラムで、原子位置などから Rocking curve を計算し、実験で得られた Rocking curve からの誤差を求めます。2DMAT-LEED は、この SATLEED を 2DMAT の順問題ソルバーとして利用するためのアダプタライブラリです。2DMAT v2.x の順問題ソルバーの一つとして開発されたコンポーネントを、独立なモジュールとして再構成したものです。2DMAT および SATLEED と組み合わせて使用します。 +``SATLEED`` に関する詳細については [SATLEED]_ をご覧ください。 + +.. [SATLEED] M.A. Van Hove, W. Moritz, H. Over, P.J. Rous, A. Wander, A. Barbieri, N. Materer, U. Starke, G.A. Somorjai, Automated determination of complex surface structures by LEED, Surface Science Reports, Volume 19, 191-229 (1993). https://doi.org/10.1016/0167-5729(93)90011-D + + +ライセンス +-------------------------------- +| 本ソフトウェアのプログラムパッケージおよびソースコード一式はGNU + General Public License version 3(GPL v3)に準じて配布されています。 + +Copyright (c) <2020-> The University of Tokyo. All rights reserved. + +本ソフトウェアは2020年度 東京大学物性研究所 ソフトウェア高度化プロジェクトの支援を受け開発されました。 +2DMATを引用する際には以下の文献を引用してください。 + +"Data-analysis software framework 2DMAT and its application to experimental measurements for two-dimensional material structures", +Y. Motoyama, K. Yoshimi, I. Mochizuki, H. Iwamoto, H. Ichinose, and T. Hoshi, Computer Physics Communications 280, 108465 (2022). + +Bibtex: + +| @article{MOTOYAMA2022108465, +| title = {Data-analysis software framework 2DMAT and its application to experimental measurements for two-dimensional material structures}, +| journal = {Computer Physics Communications}, +| volume = {280}, +| pages = {108465}, +| year = {2022}, +| issn = {0010-4655}, +| doi = {https://doi.org/10.1016/j.cpc.2022.108465}, +| url = {https://www.sciencedirect.com/science/article/pii/S0010465522001849}, +| author = {Yuichi Motoyama and Kazuyoshi Yoshimi and Izumi Mochizuki and Harumichi Iwamoto and Hayato Ichinose and Takeo Hoshi} +| } + + + +バージョン履歴 +-------------------------------- + +2DMAT-LEED + +- v1.0.0: 2024-XX-XX + +2DMAT + +- v2.1.0 : 2022-04-08 +- v2.0.0 : 2022-01-17 +- v1.0.1 : 2021-04-15 +- v1.0.0 : 2021-03-12 +- v0.1.0 : 2021-02-08 + +主な開発者 +-------------------------------- +2DMATは以下のメンバーで開発しています. + +- v3.0.0 - + + - 本山 裕一 (東京大学 物性研究所) + - 吉見 一慶 (東京大学 物性研究所) + - 青山 龍美 (東京大学 物性研究所) + - 星 健夫  (核融合科学研究所) + +- v2.0.0 - + + - 本山 裕一 (東京大学 物性研究所) + - 吉見 一慶 (東京大学 物性研究所) + - 岩本 晴道 (鳥取大学 大学院工学研究科) + - 星 健夫 (鳥取大学 大学院工学研究科) + +- v0.1.0 - + + - 本山 裕一 (東京大学 物性研究所) + - 吉見 一慶 (東京大学 物性研究所) + - 星 健夫 (鳥取大学 大学院工学研究科) diff --git a/extra/leed/doc/ja/source/solver.rst b/extra/leed/doc/ja/source/solver.rst new file mode 100644 index 00000000..acbd02ee --- /dev/null +++ b/extra/leed/doc/ja/source/solver.rst @@ -0,0 +1,69 @@ +入出力 +******************************** + +``2DMAT-LEED`` モジュールは ``SATLEED`` を用いて原子位置などから Rocking curve を計算し、実験で得られた Rocking curve からの誤差を :math:`f(x)` として返す ``Solver`` です。 + +この章では、入力パラメータおよび入力データと出力データについて説明します。入力パラメータは Info クラスの ``solver`` の項目が該当します。TOMLファイルを入力として与える場合は ``[solver]`` セクションに記述します。dict形式でパラメータを作成する場合は ``solver`` キー以下に入れ子の dict形式でデータを用意します。以下では、TOML形式でパラメータ項目を説明します。 + +入力データは、ターゲットとなる参照データとバルク構造データです。出力データは最適解の結果を格納したファイルです。以下の節で内容を示します。 + + +入力パラメータ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +``solver`` セクション中のサブセクション ``config``, ``reference`` を利用します。 + +[``config``] セクション +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +- ``path_to_solver`` + + 形式: string型 + + 説明: ソルバー ``satl2.exe`` へのパス + + +[``reference``] セクション +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +- ``path_to_base_dir`` + + 形式: string型 + + 説明: - ``exp.d``, ``rfac.d``, ``tleed4.i``, ``tleed5.i`` , ``tleed.o`` , ``short.t`` が格納されたディレクトリへのパス。 + + +ソルバー用補助ファイル +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +ターゲット参照ファイル +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +ターゲットにするデータが格納されたファイル。 [``reference``] セクションの ``path_to_base_dir`` 中にある ``tleed4.i`` を編集します。最適化したい数値を ``optxxx`` (xxxは000, 001, 002, ...の形式で指定する三桁の整数)として指定します。なお、xxxの数字と ``py2dmat`` の最適化する値を入れる変数のリストの順番・個数は一致させる必要があります。なお、IFLAG, LSFLAGを0にしない場合はsatleed側での最適化も行われます。 + +以下、ファイル例を記載します。 + +.. code-block:: + + 1 0 0 IPR ISTART LRFLAG + 1 10 0.02 0.2 NSYM NSYMS ASTEP VSTEP + 5 1 2 2 NT0 NSET LSMAX LLCUT + 5 NINSET + 1.0000 0.0000 1 PQEX + 1.0000 2.0000 2 PQEX + 1.0000 1.0000 3 PQEX + 2.0000 2.0000 4 PQEX + 2.0000 0.0000 5 PQEX + 3 NDIM + opt000 0.0000 0.0000 0 DISP(1,j) j=1,3 + 0.0000 opt001 0.0000 0 DISP(2,j) j=1,3 + 0.0000 0.0000 0.0000 1 DISP(3,j) j=1,3 + 0.0000 0.0000 0.0000 0 DISP(4,j) j=1,3 + 0.0000 0 DVOPT LSFLAG + 3 0 0 MFLAG NGRID NIV + ... + +出力ファイル +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +``leed`` では、 ``output_dir`` に指定する出力ディレクトリ内のランクの番号が記載されたフォルダ下に、計算時に出力されるファイル一式が出力されます。 diff --git a/extra/leed/doc/ja/source/tutorial/index.rst b/extra/leed/doc/ja/source/tutorial/index.rst new file mode 100644 index 00000000..eb01efc7 --- /dev/null +++ b/extra/leed/doc/ja/source/tutorial/index.rst @@ -0,0 +1,21 @@ +.. 2dmat documentation master file, created by + sphinx-quickstart on Tue May 26 18:44:52 2020. + You can adapt this file completely to your liking, but it should at least + contain the root `toctree` directive. + +チュートリアル +================================== + +順問題ソルバーとして用意されている ``2DMAT-LEED`` は M.A. Van Hove氏により作成された低速電子線回折(LEED)の解析ソフトウェア ``SATLEED`` を 2DMAT で利用するモジュールとして作成されています。 +SATLEED では、与えられた原子座標に対して回折データをシミュレーションで計算します。これを順問題と見なしたとき、回折データが実験で与えられたときにそれを再現する原子座標を求める問題は逆問題に相当します。2DMAT はこの逆問題を解くフレームワークを提供します。 + +このチュートリアルでは、全探索法 (mapper) を用いてもっともらしい原子座標を推定する問題を例として 2DMAT-LEED の使い方を説明します。 +以下では 2DMAT-LEED に付属の ``py2dmat-leed`` プログラムを利用し、TOML形式のパラメータファイルを入力として解析を行います。 +次に、ユーザープログラムの項では、メインプログラムを自分で作成して使う方法を説明します。 + +.. toctree:: + :maxdepth: 1 + + mapper + user_program + diff --git a/extra/leed/doc/ja/source/tutorial/mapper.rst b/extra/leed/doc/ja/source/tutorial/mapper.rst new file mode 100644 index 00000000..c1f0b576 --- /dev/null +++ b/extra/leed/doc/ja/source/tutorial/mapper.rst @@ -0,0 +1,212 @@ +グリッド型探索 +================================ + +ここでは、グリッド型探索を行い、回折データから原子座標を解析する方法について説明します。 +グリッド型探索はMPIに対応しています。 +探索グリッドを与えるデータ ``MeshData.txt`` を事前に準備する必要があります。 + +サンプルファイルの場所 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +サンプルファイルは ``sample/mapper`` にあります。 +フォルダには以下のファイルが格納されています。 + +- ``base`` ディレクトリ + + メインプログラムでの計算を進めるための参照ファイルを格納するディレクトリ。参照ファイルは ``exp.d``, ``rfac.d``, ``short.t``, ``tleed.o``, ``tleed4.i``, ``tleed5.i`` です。 + +- ``input.toml`` + + メインプログラムの入力ファイル + +- ``MeshData.txt`` + + 探索グリッドのデータ + +- ``ref_ColorMap.txt`` + + 計算が正しく実行されたか確認するためのファイル(本チュートリアルを行うことで得られる ``ColorMap.txt`` の回答)。 + +- ``prepare.sh`` , ``do.sh`` + + 本チュートリアルを一括計算するために準備されたスクリプト + +以下、これらのファイルについて説明したあと、実際の計算結果を紹介します。 + +参照ファイルの説明 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +``tleed4.i``, ``tleed5.i``, ``rfac.d`` は satleed のパラメータファイルです。 +最適化する原子座標は ``tleed4.i`` の中で ``opt000``, ``opt001`` のようにキーワードとして埋め込みます。 +``exp.d`` は参照する実験データです。 ``short.t``, ``tleed.o`` は、あらかじめ ``satl1.exe`` を使って求めた入力データです。 + +実際に探索するグリッドは ``MeshData.txt`` で与えます。 +サンプルでは ``MeshData.txt`` の中身は以下のようになっています。 + +.. code-block:: + + 0 -0.1 0 + 1 -0.05 0 + 2 0 0 + 3 0.05 0 + 4 0.1 0 + 5 -0.1 0.05 + 6 -0.05 0.05 + 7 0 0.05 + 8 0.05 0.05 + 9 0.1 0.05 + +1列目が通し番号、2列目以降は ``base/tleed4.i`` に入る ``opt000`` , ``opt001`` の値が順に指定されています。 + +入力ファイルの説明 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +ここでは、メインプログラム用の入力ファイル ``input.toml`` について説明します。 +``input.toml`` の詳細については入力ファイルに記載されています。 +以下は、サンプルファイルにある ``input.toml`` の中身になります。 + +.. code-block:: + + [base] + dimension = 2 + output_dir = "output" + + [solver] + name = "leed" + [solver.config] + path_to_solver = "./leedsatl/satl2.exe" + [solver.reference] + path_to_base_dir = "./base" + + [algorithm] + name = "mapper" + label_list = ["z1", "z2"] + [algorithm.param] + mesh_path = "./MeshData.txt" + +最初に ``[base]`` セクションについて説明します。 + +- ``dimension`` は最適化したい変数の個数で、今の場合は ``base/tleed4.i`` で説明したように2つの変数の最適化を行うので、``2`` を指定します。 + +- ``output_dir`` は出力先のディレクトリ名です。省略した場合はプログラムを実行したディレクトリになります。 + +``[solver]`` セクションではメインプログラムの内部で使用するソルバーとその設定を指定します。 + +- ``name`` は使用したいソルバーの名前です。 ``leed`` に固定されています。 + +ソルバーの設定は、サブセクションの ``[solver.config]``, ``[solver.reference]`` で行います。 + +``[solver.config]`` セクションではメインプログラム内部で呼び出す ``satl2.exe`` についてのオプションを指定します。 + +- ``path_to_solver`` は ``satl2.exe`` のコマンド名です。パスを指定するか、コマンド名をPATH環境変数から探索します。 + +``[solver.reference]`` セクションでは参照データについての指定を行います。 + +- ``path_to_base_dir`` は参照データが置いてあるディレクトリ名を指定します。 + +``[algorithm]`` セクションでは、使用するアルゴリスムとその設定をします。 + +- ``name`` は使用したいアルゴリズムの名前です。このチュートリアルではグリッド探索による解析を行うので、 ``mapper`` を指定します。 + +- ``label_list`` は、 ``opt000``, ``opt001`` を出力する際につけるラベル名のリストです。 + +``[algorithm.param]`` セクションでは探索アルゴリズムに関するパラメータを指定します。 + +- ``mesh_path`` は探索グリッドを記述したファイルを指定します。 + +その他、入力ファイルで指定可能なパラメータの詳細については入力ファイルの章をご覧ください。 + +計算実行 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +最初にサンプルファイルが置いてあるフォルダへ移動します(以下、本ソフトウェアをダウンロードしたディレクトリ直下にいることを仮定します). + +.. code-block:: + + $ cd sample/mapper + +``setup.sh`` を使って ``satleed`` のダウンロードとコンパイルを行います。 + +.. code-block:: + + $ sh setup.sh + +``leedsatl`` ディレクトリに ``satl1.exe`` と ``satl2.exe`` が作成されます。 +そのあとに、メインプログラムを実行します(計算時間は通常のPCで数秒程度で終わります)。 + +.. code-block:: + + $ mpiexec -np 4 py2dmat-leed input.toml | tee log.txt + +ここではプロセス数4のMPI並列を用いた計算を行っています。 +実行すると、 ``output`` ディレクトリとその下に各ランクのフォルダが作成され、計算結果が出力されます。また、以下の様なログが標準出力に表示されます。 + +.. code-block:: + + Iteration : 1/33 + Read experiment.txt + mesh before: [1.0, 6.0, 6.0] + z1 = 6.00000 + z2 = 6.00000 + [' 6.00000', ' 6.00000'] + PASS : degree in lastline = 7.0 + PASS : len(calculated_list) 70 == len(convolution_I_calculated_list)70 + R-factor = 0.04785241875354398 + ... + +``z1``, ``z2`` に各メッシュでの候補パラメータと、その時の ``R-factor`` が出力されます。 +最終的にグリッド上の全ての点で計算された ``R-factor`` は、 ``ColorMap.txt`` に出力されます。 +今回の場合は + +.. code-block:: + + -0.100000 0.000000 0.319700 + -0.050000 0.000000 0.212100 + 0.000000 0.000000 0.189500 + 0.050000 0.000000 0.502300 + 0.100000 0.000000 0.941600 + -0.100000 0.050000 0.318600 + -0.050000 0.050000 0.206600 + 0.000000 0.050000 0.190500 + 0.050000 0.050000 0.506200 + 0.100000 0.050000 0.933200 + +のように得られます。1列目、2列目に ``opt000``, ``opt001`` の値が、3列目に ``R-factor`` が記載されます。 +なお、メインプログラムを実行するスクリプトとして ``do.sh`` を用意しています。 +``do.sh`` では ``ColorMap.dat`` と ``ref_ColorMap.dat`` の差分も比較しています。 +以下、説明は割愛しますが、その中身を掲載します。 + +.. code-block:: + + #!/bin/sh + + sh prepare.sh + + time mpiexec -np 4 py2dmat-leed input.toml + + echo diff output/ColorMap.txt ref_ColorMap.txt + res=0 + diff output/ColorMap.txt ref_ColorMap.txt || res=$? + if [ $res -eq 0 ]; then + echo TEST PASS + true + else + echo TEST FAILED: ColorMap.txt and ref_ColorMap.txt differ + false + fi + +計算結果の可視化 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +``ColorMap.txt`` を図示することで、 ``R-factor`` の小さいパラメータがどこにあるかを推定することができます。 +今回の場合は、以下のコマンドを実行すると2次元パラメータ空間の図 ``ColorMapFig.png`` が作成されます。 + +.. code-block:: + + $ python3 plot_colormap_2d.py + +作成された図を見ると、(-0.02, ±0.1) 付近に最小値を持っていることがわかります。 + + .. figure:: ../../../common/img/mapper.* + + 2次元パラメータ空間上での ``R-factor`` 。 diff --git a/extra/leed/doc/ja/source/tutorial/user_program.rst b/extra/leed/doc/ja/source/tutorial/user_program.rst new file mode 100644 index 00000000..8ec8afa8 --- /dev/null +++ b/extra/leed/doc/ja/source/tutorial/user_program.rst @@ -0,0 +1,202 @@ +ユーザープログラムによる解析 +================================ + +ここでは、2DMAT-LEED モジュールを用いたユーザープログラムを作成し、解析を行う方法を説明します。逆問題アルゴリズムは例としてNelder-Mead法を用います。 + + +サンプルファイルの場所 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +サンプルファイルは ``sample/user_program`` にあります。 +フォルダには以下のファイルが格納されています。 + +- ``simple.py`` + + メインプログラム。パラメータを ``input.toml`` ファイルから読み込んで解析を行う。 + +- ``input.toml`` + + ``simple.py`` で利用する入力パラメータファイル + +- ``base/`` + + メインプログラムでの計算を進めるための参照ファイルを格納するディレクトリ。参照ファイルは ``exp.d``, ``rfac.d``, ``short.t``, ``tleed.o``, ``tleed4.i``, ``tleed5.i`` . + +- ``ref.txt`` + + 本チュートリアルで求めたい回答が記載されたファイル + +- ``simple2.py`` + + メインプログラムの別バージョン。パラメータを dict 形式でスクリプト中に埋め込んでいる。 + +- ``prepare.sh``, ``do.sh`` + + 本チュートリアルを一括計算するために準備されたスクリプト + +以下、これらのファイルについて説明したのち、実際の計算結果を紹介します。 + +プログラムの説明 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +``simple.py`` は 2DMAT-LEED モジュールを用いて解析を行うシンプルなプログラムです。 +プログラムの全体を以下に示します。 + +.. code-block:: python + + import py2dmat + import py2dmat.algorithm.min_search + import leed + + info = py2dmat.Info.from_file("input.toml") + + solver = leed.Solver(info) + runner = py2dmat.Runner(solver, info) + alg = py2dmat.algorithm.min_search.Algorithm(info, runner) + alg.main() + +プログラムではまず、必要なモジュールを import します。 + +- 2DMAT のメインモジュール ``py2dmat`` + +- 今回利用する逆問題解析アルゴリズム ``py2dmat.algorithm.min_search`` + +- 順問題ソルバーモジュール ``leed`` + +次に、解析で利用するクラスのインスタンスを作成します。 + +- ``py2dmat.Info`` クラス + + パラメータを格納するクラスです。 ``from_file`` クラスメソッドに TOML ファイルのパスを渡して作成することができます。 + +- ``leed.Solver`` クラス + + 2DMAT-LEED モジュールの順問題ソルバーです。Info クラスのインスタンスを渡して作成します。 + +- ``py2dmat.Runner`` クラス + + 順問題ソルバーと逆問題解析アルゴリズムを繋ぐクラスです。Solver クラスのインスタンスおよび Info クラスのパラメータを渡して作成します。 + +- ``py2dmat.algorithm.min_search.Algorithm`` クラス + + 逆問題解析アルゴリズムのクラスです。ここでは Nelder-Mead法による最適化アルゴリズムのクラスモジュール ``min_search`` を利用します。Runner のインスタンスをわたして作成します。 + +Solver, Runner, Algorithm の順にインスタンスを作成した後、Algorithm クラスの ``main()`` メソッドを呼んで解析を行います。 + +上記のプログラムでは、入力パラメータを TOML形式のファイルから読み込む形ですが、パラメータを dict 形式で渡すこともできます。 +``simple2.py`` はパラメータをプログラム中に埋め込む形式で記述したものです。以下にプログラムの全体を記載します。 + +.. code-block:: python + + import py2dmat + import py2dmat.algorithm.min_search + import leed + + params = { + "base": { + "dimension": 2, + "output_dir": "output", + }, + "solver": { + "config": { + "path_to_solver": "./leedsatl/satl2.exe", + }, + "reference": { + "path_to_base_dir": "./base", + }, + }, + "algorithm": { + "label_list": ["z1", "z2"], + "param": { + "min_list": [-0.5, -0.5], + "max_list": [0.5, 0.5], + "initial_list": [-0.1, 0.1], + }, + + }, + } + + info = py2dmat.Info(params) + + solver = leed.Solver(info) + runner = py2dmat.Runner(solver, info) + alg = py2dmat.algorithm.min_search.Algorithm(info, runner) + alg.main() + +dict 形式のパラメータを渡して Info クラスのインスタンスを作成します。 +同様に、パラメータをプログラム内で生成して渡すこともできます。 + +入力ファイルの説明 +~~~~~~~~~~~~~~~~~~~ +メインプログラム用の入力ファイル ``input.toml`` に、順問題ソルバーおよび逆問題解析アルゴリズムのパラメータを指定します。 ``base`` および ``solver`` セクションの内容は前述のグリッド型探索の場合と同じです。 +逆問題解析アルゴリズムについては、Nelder-Mead法のパラメータを algorithm.param の項目に指定します。なお、アルゴリズムの種類を指定する ``algorithm.name`` パラメータの値は無視されます。 + + +- ``min_list``, ``max_list`` は探索領域の指定で、領域の下端と上端を変数についてのリストの形式で与えます。 + +- ``initial_list`` には初期値を指定します。 + + +計算実行 +~~~~~~~~~~~~ + +最初にサンプルファイルが置いてあるフォルダへ移動します(以下、本ソフトウェアをダウンロードしたデ +ィレクトリ直下にいることを仮定します). + +.. code-block:: + + $ cd sample/user_program + +グリッド探索の例でコンパイルした SATLEED プログラムをコピーします。作成していない場合は、 +``sample/mapper`` ディレクトリの中で ``sh setup.sh`` を実行し、 ``leedsatl/satl1.exe`` と ``leedsatl/satl2.exe`` を作ります。 + +.. code-block:: + + $ mkdir leedsatl + $ cp ../mapper/leedsatl/satl2.exe ./leedsatl + +メインプログラムを実行します。(計算時間は通常のPCで数秒程度で終わります。) + +.. code-block:: + + $ python3 simple.py | tee log.txt + +実行すると、以下の様な出力がされます。 + +.. code-block:: + + Optimization terminated successfully. + Current function value: 0.157500 + Iterations: 29 + Function evaluations: 63 + iteration: 29 + len(allvecs): 30 + step: 0 + allvecs[step]: [-0.1 0.1] + step: 1 + allvecs[step]: [-0.1 0.1] + step: 2 + allvecs[step]: [-0.1 0.1] + step: 3 + allvecs[step]: [-0.1 0.1] + step: 4 + allvecs[step]: [-0.1 0.1] + step: 5 + allvecs[step]: [-0.0375 -0.05625] + step: 6 + allvecs[step]: [-0.0375 -0.05625] + step: 7 + allvecs[step]: [-0.0375 -0.05625] + ... + +``z1``, ``z2`` に各ステップでの候補パラメータと、その時の ``R-factor`` が出力されます。 +最終的に推定されたパラメータは、 ``output/res.dat`` に出力されます。今の場合、 + +.. code-block:: + + fx = 0.1575 + z1 = -0.01910402104258537 + z2 = 0.10217590294778345 + +となります。リファレンス ref.txt が再現されていることが分かります。 + +なお、一連の計算を行う ``do.sh`` スクリプトが用意されています。 diff --git a/extra/leed/pyproject.toml b/extra/leed/pyproject.toml index 48ba11e9..b5bd15bd 100644 --- a/extra/leed/pyproject.toml +++ b/extra/leed/pyproject.toml @@ -1,5 +1,5 @@ [tool.poetry] -name = "leed" +name = "py2dmat-leed" version = "1.0-dev" description = "LEED solver module for Py2DMAT: data-analysis software of quantum beam diffraction experiments for 2D material structure" authors = ["2DMAT developers <2dmat-dev@issp.u-tokyo.ac.jp>"] diff --git a/extra/leed/sample/mapper/MeshData.txt b/extra/leed/sample/mapper/MeshData.txt index f4250ab7..972f3c43 100644 --- a/extra/leed/sample/mapper/MeshData.txt +++ b/extra/leed/sample/mapper/MeshData.txt @@ -1,10 +1,441 @@ -0 -0.1 0 -1 -0.05 0 -2 0 0 -3 0.05 0 -4 0.1 0 -5 -0.1 0.05 -6 -0.05 0.05 -7 0 0.05 -8 0.05 0.05 -9 0.1 0.05 +1 -0.2 -0.5 +2 -0.2 -0.45 +3 -0.2 -0.4 +4 -0.2 -0.35 +5 -0.2 -0.3 +6 -0.2 -0.25 +7 -0.2 -0.19999999999999996 +8 -0.2 -0.14999999999999997 +9 -0.2 -0.09999999999999998 +10 -0.2 -0.04999999999999999 +11 -0.2 0.0 +12 -0.2 0.050000000000000044 +13 -0.2 0.10000000000000009 +14 -0.2 0.15000000000000002 +15 -0.2 0.20000000000000007 +16 -0.2 0.25 +17 -0.2 0.30000000000000004 +18 -0.2 0.3500000000000001 +19 -0.2 0.4 +20 -0.2 0.45000000000000007 +21 -0.2 0.5 +22 -0.18000000000000002 -0.5 +23 -0.18000000000000002 -0.45 +24 -0.18000000000000002 -0.4 +25 -0.18000000000000002 -0.35 +26 -0.18000000000000002 -0.3 +27 -0.18000000000000002 -0.25 +28 -0.18000000000000002 -0.19999999999999996 +29 -0.18000000000000002 -0.14999999999999997 +30 -0.18000000000000002 -0.09999999999999998 +31 -0.18000000000000002 -0.04999999999999999 +32 -0.18000000000000002 0.0 +33 -0.18000000000000002 0.050000000000000044 +34 -0.18000000000000002 0.10000000000000009 +35 -0.18000000000000002 0.15000000000000002 +36 -0.18000000000000002 0.20000000000000007 +37 -0.18000000000000002 0.25 +38 -0.18000000000000002 0.30000000000000004 +39 -0.18000000000000002 0.3500000000000001 +40 -0.18000000000000002 0.4 +41 -0.18000000000000002 0.45000000000000007 +42 -0.18000000000000002 0.5 +43 -0.16 -0.5 +44 -0.16 -0.45 +45 -0.16 -0.4 +46 -0.16 -0.35 +47 -0.16 -0.3 +48 -0.16 -0.25 +49 -0.16 -0.19999999999999996 +50 -0.16 -0.14999999999999997 +51 -0.16 -0.09999999999999998 +52 -0.16 -0.04999999999999999 +53 -0.16 0.0 +54 -0.16 0.050000000000000044 +55 -0.16 0.10000000000000009 +56 -0.16 0.15000000000000002 +57 -0.16 0.20000000000000007 +58 -0.16 0.25 +59 -0.16 0.30000000000000004 +60 -0.16 0.3500000000000001 +61 -0.16 0.4 +62 -0.16 0.45000000000000007 +63 -0.16 0.5 +64 -0.14 -0.5 +65 -0.14 -0.45 +66 -0.14 -0.4 +67 -0.14 -0.35 +68 -0.14 -0.3 +69 -0.14 -0.25 +70 -0.14 -0.19999999999999996 +71 -0.14 -0.14999999999999997 +72 -0.14 -0.09999999999999998 +73 -0.14 -0.04999999999999999 +74 -0.14 0.0 +75 -0.14 0.050000000000000044 +76 -0.14 0.10000000000000009 +77 -0.14 0.15000000000000002 +78 -0.14 0.20000000000000007 +79 -0.14 0.25 +80 -0.14 0.30000000000000004 +81 -0.14 0.3500000000000001 +82 -0.14 0.4 +83 -0.14 0.45000000000000007 +84 -0.14 0.5 +85 -0.12000000000000001 -0.5 +86 -0.12000000000000001 -0.45 +87 -0.12000000000000001 -0.4 +88 -0.12000000000000001 -0.35 +89 -0.12000000000000001 -0.3 +90 -0.12000000000000001 -0.25 +91 -0.12000000000000001 -0.19999999999999996 +92 -0.12000000000000001 -0.14999999999999997 +93 -0.12000000000000001 -0.09999999999999998 +94 -0.12000000000000001 -0.04999999999999999 +95 -0.12000000000000001 0.0 +96 -0.12000000000000001 0.050000000000000044 +97 -0.12000000000000001 0.10000000000000009 +98 -0.12000000000000001 0.15000000000000002 +99 -0.12000000000000001 0.20000000000000007 +100 -0.12000000000000001 0.25 +101 -0.12000000000000001 0.30000000000000004 +102 -0.12000000000000001 0.3500000000000001 +103 -0.12000000000000001 0.4 +104 -0.12000000000000001 0.45000000000000007 +105 -0.12000000000000001 0.5 +106 -0.1 -0.5 +107 -0.1 -0.45 +108 -0.1 -0.4 +109 -0.1 -0.35 +110 -0.1 -0.3 +111 -0.1 -0.25 +112 -0.1 -0.19999999999999996 +113 -0.1 -0.14999999999999997 +114 -0.1 -0.09999999999999998 +115 -0.1 -0.04999999999999999 +116 -0.1 0.0 +117 -0.1 0.050000000000000044 +118 -0.1 0.10000000000000009 +119 -0.1 0.15000000000000002 +120 -0.1 0.20000000000000007 +121 -0.1 0.25 +122 -0.1 0.30000000000000004 +123 -0.1 0.3500000000000001 +124 -0.1 0.4 +125 -0.1 0.45000000000000007 +126 -0.1 0.5 +127 -0.08000000000000002 -0.5 +128 -0.08000000000000002 -0.45 +129 -0.08000000000000002 -0.4 +130 -0.08000000000000002 -0.35 +131 -0.08000000000000002 -0.3 +132 -0.08000000000000002 -0.25 +133 -0.08000000000000002 -0.19999999999999996 +134 -0.08000000000000002 -0.14999999999999997 +135 -0.08000000000000002 -0.09999999999999998 +136 -0.08000000000000002 -0.04999999999999999 +137 -0.08000000000000002 0.0 +138 -0.08000000000000002 0.050000000000000044 +139 -0.08000000000000002 0.10000000000000009 +140 -0.08000000000000002 0.15000000000000002 +141 -0.08000000000000002 0.20000000000000007 +142 -0.08000000000000002 0.25 +143 -0.08000000000000002 0.30000000000000004 +144 -0.08000000000000002 0.3500000000000001 +145 -0.08000000000000002 0.4 +146 -0.08000000000000002 0.45000000000000007 +147 -0.08000000000000002 0.5 +148 -0.06 -0.5 +149 -0.06 -0.45 +150 -0.06 -0.4 +151 -0.06 -0.35 +152 -0.06 -0.3 +153 -0.06 -0.25 +154 -0.06 -0.19999999999999996 +155 -0.06 -0.14999999999999997 +156 -0.06 -0.09999999999999998 +157 -0.06 -0.04999999999999999 +158 -0.06 0.0 +159 -0.06 0.050000000000000044 +160 -0.06 0.10000000000000009 +161 -0.06 0.15000000000000002 +162 -0.06 0.20000000000000007 +163 -0.06 0.25 +164 -0.06 0.30000000000000004 +165 -0.06 0.3500000000000001 +166 -0.06 0.4 +167 -0.06 0.45000000000000007 +168 -0.06 0.5 +169 -0.04000000000000001 -0.5 +170 -0.04000000000000001 -0.45 +171 -0.04000000000000001 -0.4 +172 -0.04000000000000001 -0.35 +173 -0.04000000000000001 -0.3 +174 -0.04000000000000001 -0.25 +175 -0.04000000000000001 -0.19999999999999996 +176 -0.04000000000000001 -0.14999999999999997 +177 -0.04000000000000001 -0.09999999999999998 +178 -0.04000000000000001 -0.04999999999999999 +179 -0.04000000000000001 0.0 +180 -0.04000000000000001 0.050000000000000044 +181 -0.04000000000000001 0.10000000000000009 +182 -0.04000000000000001 0.15000000000000002 +183 -0.04000000000000001 0.20000000000000007 +184 -0.04000000000000001 0.25 +185 -0.04000000000000001 0.30000000000000004 +186 -0.04000000000000001 0.3500000000000001 +187 -0.04000000000000001 0.4 +188 -0.04000000000000001 0.45000000000000007 +189 -0.04000000000000001 0.5 +190 -0.020000000000000018 -0.5 +191 -0.020000000000000018 -0.45 +192 -0.020000000000000018 -0.4 +193 -0.020000000000000018 -0.35 +194 -0.020000000000000018 -0.3 +195 -0.020000000000000018 -0.25 +196 -0.020000000000000018 -0.19999999999999996 +197 -0.020000000000000018 -0.14999999999999997 +198 -0.020000000000000018 -0.09999999999999998 +199 -0.020000000000000018 -0.04999999999999999 +200 -0.020000000000000018 0.0 +201 -0.020000000000000018 0.050000000000000044 +202 -0.020000000000000018 0.10000000000000009 +203 -0.020000000000000018 0.15000000000000002 +204 -0.020000000000000018 0.20000000000000007 +205 -0.020000000000000018 0.25 +206 -0.020000000000000018 0.30000000000000004 +207 -0.020000000000000018 0.3500000000000001 +208 -0.020000000000000018 0.4 +209 -0.020000000000000018 0.45000000000000007 +210 -0.020000000000000018 0.5 +211 0.0 -0.5 +212 0.0 -0.45 +213 0.0 -0.4 +214 0.0 -0.35 +215 0.0 -0.3 +216 0.0 -0.25 +217 0.0 -0.19999999999999996 +218 0.0 -0.14999999999999997 +219 0.0 -0.09999999999999998 +220 0.0 -0.04999999999999999 +221 0.0 0.0 +222 0.0 0.050000000000000044 +223 0.0 0.10000000000000009 +224 0.0 0.15000000000000002 +225 0.0 0.20000000000000007 +226 0.0 0.25 +227 0.0 0.30000000000000004 +228 0.0 0.3500000000000001 +229 0.0 0.4 +230 0.0 0.45000000000000007 +231 0.0 0.5 +232 0.01999999999999999 -0.5 +233 0.01999999999999999 -0.45 +234 0.01999999999999999 -0.4 +235 0.01999999999999999 -0.35 +236 0.01999999999999999 -0.3 +237 0.01999999999999999 -0.25 +238 0.01999999999999999 -0.19999999999999996 +239 0.01999999999999999 -0.14999999999999997 +240 0.01999999999999999 -0.09999999999999998 +241 0.01999999999999999 -0.04999999999999999 +242 0.01999999999999999 0.0 +243 0.01999999999999999 0.050000000000000044 +244 0.01999999999999999 0.10000000000000009 +245 0.01999999999999999 0.15000000000000002 +246 0.01999999999999999 0.20000000000000007 +247 0.01999999999999999 0.25 +248 0.01999999999999999 0.30000000000000004 +249 0.01999999999999999 0.3500000000000001 +250 0.01999999999999999 0.4 +251 0.01999999999999999 0.45000000000000007 +252 0.01999999999999999 0.5 +253 0.03999999999999998 -0.5 +254 0.03999999999999998 -0.45 +255 0.03999999999999998 -0.4 +256 0.03999999999999998 -0.35 +257 0.03999999999999998 -0.3 +258 0.03999999999999998 -0.25 +259 0.03999999999999998 -0.19999999999999996 +260 0.03999999999999998 -0.14999999999999997 +261 0.03999999999999998 -0.09999999999999998 +262 0.03999999999999998 -0.04999999999999999 +263 0.03999999999999998 0.0 +264 0.03999999999999998 0.050000000000000044 +265 0.03999999999999998 0.10000000000000009 +266 0.03999999999999998 0.15000000000000002 +267 0.03999999999999998 0.20000000000000007 +268 0.03999999999999998 0.25 +269 0.03999999999999998 0.30000000000000004 +270 0.03999999999999998 0.3500000000000001 +271 0.03999999999999998 0.4 +272 0.03999999999999998 0.45000000000000007 +273 0.03999999999999998 0.5 +274 0.06 -0.5 +275 0.06 -0.45 +276 0.06 -0.4 +277 0.06 -0.35 +278 0.06 -0.3 +279 0.06 -0.25 +280 0.06 -0.19999999999999996 +281 0.06 -0.14999999999999997 +282 0.06 -0.09999999999999998 +283 0.06 -0.04999999999999999 +284 0.06 0.0 +285 0.06 0.050000000000000044 +286 0.06 0.10000000000000009 +287 0.06 0.15000000000000002 +288 0.06 0.20000000000000007 +289 0.06 0.25 +290 0.06 0.30000000000000004 +291 0.06 0.3500000000000001 +292 0.06 0.4 +293 0.06 0.45000000000000007 +294 0.06 0.5 +295 0.08000000000000002 -0.5 +296 0.08000000000000002 -0.45 +297 0.08000000000000002 -0.4 +298 0.08000000000000002 -0.35 +299 0.08000000000000002 -0.3 +300 0.08000000000000002 -0.25 +301 0.08000000000000002 -0.19999999999999996 +302 0.08000000000000002 -0.14999999999999997 +303 0.08000000000000002 -0.09999999999999998 +304 0.08000000000000002 -0.04999999999999999 +305 0.08000000000000002 0.0 +306 0.08000000000000002 0.050000000000000044 +307 0.08000000000000002 0.10000000000000009 +308 0.08000000000000002 0.15000000000000002 +309 0.08000000000000002 0.20000000000000007 +310 0.08000000000000002 0.25 +311 0.08000000000000002 0.30000000000000004 +312 0.08000000000000002 0.3500000000000001 +313 0.08000000000000002 0.4 +314 0.08000000000000002 0.45000000000000007 +315 0.08000000000000002 0.5 +316 0.09999999999999998 -0.5 +317 0.09999999999999998 -0.45 +318 0.09999999999999998 -0.4 +319 0.09999999999999998 -0.35 +320 0.09999999999999998 -0.3 +321 0.09999999999999998 -0.25 +322 0.09999999999999998 -0.19999999999999996 +323 0.09999999999999998 -0.14999999999999997 +324 0.09999999999999998 -0.09999999999999998 +325 0.09999999999999998 -0.04999999999999999 +326 0.09999999999999998 0.0 +327 0.09999999999999998 0.050000000000000044 +328 0.09999999999999998 0.10000000000000009 +329 0.09999999999999998 0.15000000000000002 +330 0.09999999999999998 0.20000000000000007 +331 0.09999999999999998 0.25 +332 0.09999999999999998 0.30000000000000004 +333 0.09999999999999998 0.3500000000000001 +334 0.09999999999999998 0.4 +335 0.09999999999999998 0.45000000000000007 +336 0.09999999999999998 0.5 +337 0.12 -0.5 +338 0.12 -0.45 +339 0.12 -0.4 +340 0.12 -0.35 +341 0.12 -0.3 +342 0.12 -0.25 +343 0.12 -0.19999999999999996 +344 0.12 -0.14999999999999997 +345 0.12 -0.09999999999999998 +346 0.12 -0.04999999999999999 +347 0.12 0.0 +348 0.12 0.050000000000000044 +349 0.12 0.10000000000000009 +350 0.12 0.15000000000000002 +351 0.12 0.20000000000000007 +352 0.12 0.25 +353 0.12 0.30000000000000004 +354 0.12 0.3500000000000001 +355 0.12 0.4 +356 0.12 0.45000000000000007 +357 0.12 0.5 +358 0.14 -0.5 +359 0.14 -0.45 +360 0.14 -0.4 +361 0.14 -0.35 +362 0.14 -0.3 +363 0.14 -0.25 +364 0.14 -0.19999999999999996 +365 0.14 -0.14999999999999997 +366 0.14 -0.09999999999999998 +367 0.14 -0.04999999999999999 +368 0.14 0.0 +369 0.14 0.050000000000000044 +370 0.14 0.10000000000000009 +371 0.14 0.15000000000000002 +372 0.14 0.20000000000000007 +373 0.14 0.25 +374 0.14 0.30000000000000004 +375 0.14 0.3500000000000001 +376 0.14 0.4 +377 0.14 0.45000000000000007 +378 0.14 0.5 +379 0.15999999999999998 -0.5 +380 0.15999999999999998 -0.45 +381 0.15999999999999998 -0.4 +382 0.15999999999999998 -0.35 +383 0.15999999999999998 -0.3 +384 0.15999999999999998 -0.25 +385 0.15999999999999998 -0.19999999999999996 +386 0.15999999999999998 -0.14999999999999997 +387 0.15999999999999998 -0.09999999999999998 +388 0.15999999999999998 -0.04999999999999999 +389 0.15999999999999998 0.0 +390 0.15999999999999998 0.050000000000000044 +391 0.15999999999999998 0.10000000000000009 +392 0.15999999999999998 0.15000000000000002 +393 0.15999999999999998 0.20000000000000007 +394 0.15999999999999998 0.25 +395 0.15999999999999998 0.30000000000000004 +396 0.15999999999999998 0.3500000000000001 +397 0.15999999999999998 0.4 +398 0.15999999999999998 0.45000000000000007 +399 0.15999999999999998 0.5 +400 0.18 -0.5 +401 0.18 -0.45 +402 0.18 -0.4 +403 0.18 -0.35 +404 0.18 -0.3 +405 0.18 -0.25 +406 0.18 -0.19999999999999996 +407 0.18 -0.14999999999999997 +408 0.18 -0.09999999999999998 +409 0.18 -0.04999999999999999 +410 0.18 0.0 +411 0.18 0.050000000000000044 +412 0.18 0.10000000000000009 +413 0.18 0.15000000000000002 +414 0.18 0.20000000000000007 +415 0.18 0.25 +416 0.18 0.30000000000000004 +417 0.18 0.3500000000000001 +418 0.18 0.4 +419 0.18 0.45000000000000007 +420 0.18 0.5 +421 0.2 -0.5 +422 0.2 -0.45 +423 0.2 -0.4 +424 0.2 -0.35 +425 0.2 -0.3 +426 0.2 -0.25 +427 0.2 -0.19999999999999996 +428 0.2 -0.14999999999999997 +429 0.2 -0.09999999999999998 +430 0.2 -0.04999999999999999 +431 0.2 0.0 +432 0.2 0.050000000000000044 +433 0.2 0.10000000000000009 +434 0.2 0.15000000000000002 +435 0.2 0.20000000000000007 +436 0.2 0.25 +437 0.2 0.30000000000000004 +438 0.2 0.3500000000000001 +439 0.2 0.4 +440 0.2 0.45000000000000007 +441 0.2 0.5 diff --git a/extra/leed/sample/mapper/do.sh b/extra/leed/sample/mapper/do.sh index 60766a79..0ec66d8b 100644 --- a/extra/leed/sample/mapper/do.sh +++ b/extra/leed/sample/mapper/do.sh @@ -1 +1,21 @@ -python3 ../../../src/py2dmat_main.py input.toml +#!/bin/sh + +sh ./prepare.sh + +time mpiexec -np 4 py2dmat-leed input.toml + + +result=output/ColorMap.txt +reference=ref_ColorMap.txt + +echo diff $result $reference +res=0 +diff $result $reference || res=$? +if [ $res -eq 0 ]; then + echo TEST PASS + true +else + echo TEST FAILED: $result and $reference differ + false +fi + diff --git a/extra/leed/sample/mapper/input.toml b/extra/leed/sample/mapper/input.toml index 5ec19464..6ac19af4 100644 --- a/extra/leed/sample/mapper/input.toml +++ b/extra/leed/sample/mapper/input.toml @@ -1,5 +1,6 @@ [base] dimension = 2 +output_dir = "output" [solver] name = "leed" diff --git a/extra/leed/sample/mapper/make_meshdata.py b/extra/leed/sample/mapper/make_meshdata.py new file mode 100644 index 00000000..d46df515 --- /dev/null +++ b/extra/leed/sample/mapper/make_meshdata.py @@ -0,0 +1,8 @@ +import itertools +import numpy as np + +x1 = np.linspace(-0.2, 0.2, 21) +x2 = np.linspace(-0.5, 0.5, 21) + +for i, x in enumerate(itertools.product(x1,x2)): + print(i+1,*x) diff --git a/extra/leed/sample/mapper/plot_colormap_2d.py b/extra/leed/sample/mapper/plot_colormap_2d.py new file mode 100644 index 00000000..7aa79c03 --- /dev/null +++ b/extra/leed/sample/mapper/plot_colormap_2d.py @@ -0,0 +1,13 @@ +import matplotlib.pyplot as plt +import numpy as np + +x,y,f = np.loadtxt("output/ColorMap.txt", unpack=True) + +plt.scatter(x, y, c=f, s=100, vmin=0.00, vmax=1.00, cmap='RdYlBu', linewidth=2, alpha=1.0) +plt.xlabel("z1") +plt.ylabel("z2") +#plt.xlim(3.0, 6.5) +#plt.ylim(3.0, 6.5) +plt.colorbar() +plt.savefig('ColorMapFig.png') +plt.savefig('ColorMapFig.pdf') diff --git a/extra/leed/sample/mapper/prepare.sh b/extra/leed/sample/mapper/prepare.sh new file mode 100644 index 00000000..5ac0b009 --- /dev/null +++ b/extra/leed/sample/mapper/prepare.sh @@ -0,0 +1,3 @@ +#!/bin/sh + +rm -rf ./output diff --git a/extra/leed/sample/mapper/ref_ColorMap.txt b/extra/leed/sample/mapper/ref_ColorMap.txt new file mode 100644 index 00000000..604a9c56 --- /dev/null +++ b/extra/leed/sample/mapper/ref_ColorMap.txt @@ -0,0 +1,441 @@ +-0.200000 -0.500000 0.590700 +-0.200000 -0.450000 0.594000 +-0.200000 -0.400000 0.594400 +-0.200000 -0.350000 0.587900 +-0.200000 -0.300000 0.572500 +-0.200000 -0.250000 0.550900 +-0.200000 -0.200000 0.531500 +-0.200000 -0.150000 0.519100 +-0.200000 -0.100000 0.512700 +-0.200000 -0.050000 0.509600 +-0.200000 0.000000 0.508500 +-0.200000 0.050000 0.509700 +-0.200000 0.100000 0.512800 +-0.200000 0.150000 0.519300 +-0.200000 0.200000 0.531800 +-0.200000 0.250000 0.550900 +-0.200000 0.300000 0.572500 +-0.200000 0.350000 0.587900 +-0.200000 0.400000 0.594400 +-0.200000 0.450000 0.594000 +-0.200000 0.500000 0.590700 +-0.180000 -0.500000 0.586800 +-0.180000 -0.450000 0.588700 +-0.180000 -0.400000 0.587000 +-0.180000 -0.350000 0.577900 +-0.180000 -0.300000 0.558700 +-0.180000 -0.250000 0.533000 +-0.180000 -0.200000 0.511800 +-0.180000 -0.150000 0.498700 +-0.180000 -0.100000 0.492400 +-0.180000 -0.050000 0.489200 +-0.180000 0.000000 0.488500 +-0.180000 0.050000 0.489300 +-0.180000 0.100000 0.492500 +-0.180000 0.150000 0.498900 +-0.180000 0.200000 0.512200 +-0.180000 0.250000 0.533000 +-0.180000 0.300000 0.558700 +-0.180000 0.350000 0.577900 +-0.180000 0.400000 0.587000 +-0.180000 0.450000 0.588700 +-0.180000 0.500000 0.586800 +-0.160000 -0.500000 0.585300 +-0.160000 -0.450000 0.585600 +-0.160000 -0.400000 0.581700 +-0.160000 -0.350000 0.569600 +-0.160000 -0.300000 0.545200 +-0.160000 -0.250000 0.513200 +-0.160000 -0.200000 0.487200 +-0.160000 -0.150000 0.472600 +-0.160000 -0.100000 0.465400 +-0.160000 -0.050000 0.462600 +-0.160000 0.000000 0.462000 +-0.160000 0.050000 0.462600 +-0.160000 0.100000 0.465500 +-0.160000 0.150000 0.472800 +-0.160000 0.200000 0.487600 +-0.160000 0.250000 0.513200 +-0.160000 0.300000 0.545200 +-0.160000 0.350000 0.569600 +-0.160000 0.400000 0.581700 +-0.160000 0.450000 0.585600 +-0.160000 0.500000 0.585300 +-0.140000 -0.500000 0.585000 +-0.140000 -0.450000 0.583800 +-0.140000 -0.400000 0.577200 +-0.140000 -0.350000 0.561600 +-0.140000 -0.300000 0.530600 +-0.140000 -0.250000 0.488800 +-0.140000 -0.200000 0.455500 +-0.140000 -0.150000 0.436500 +-0.140000 -0.100000 0.428700 +-0.140000 -0.050000 0.426500 +-0.140000 0.000000 0.426300 +-0.140000 0.050000 0.426500 +-0.140000 0.100000 0.428700 +-0.140000 0.150000 0.436800 +-0.140000 0.200000 0.456000 +-0.140000 0.250000 0.488800 +-0.140000 0.300000 0.530600 +-0.140000 0.350000 0.561600 +-0.140000 0.400000 0.577200 +-0.140000 0.450000 0.583800 +-0.140000 0.500000 0.585000 +-0.120000 -0.500000 0.583800 +-0.120000 -0.450000 0.581700 +-0.120000 -0.400000 0.572000 +-0.120000 -0.350000 0.552000 +-0.120000 -0.300000 0.512400 +-0.120000 -0.250000 0.457600 +-0.120000 -0.200000 0.412900 +-0.120000 -0.150000 0.387800 +-0.120000 -0.100000 0.378200 +-0.120000 -0.050000 0.378700 +-0.120000 0.000000 0.379200 +-0.120000 0.050000 0.378700 +-0.120000 0.100000 0.378200 +-0.120000 0.150000 0.388100 +-0.120000 0.200000 0.413600 +-0.120000 0.250000 0.457600 +-0.120000 0.300000 0.512400 +-0.120000 0.350000 0.552000 +-0.120000 0.400000 0.572000 +-0.120000 0.450000 0.581700 +-0.120000 0.500000 0.583800 +-0.100000 -0.500000 0.580400 +-0.100000 -0.450000 0.578100 +-0.100000 -0.400000 0.564600 +-0.100000 -0.350000 0.538200 +-0.100000 -0.300000 0.485400 +-0.100000 -0.250000 0.414500 +-0.100000 -0.200000 0.357500 +-0.100000 -0.150000 0.325400 +-0.100000 -0.100000 0.318000 +-0.100000 -0.050000 0.318600 +-0.100000 0.000000 0.319700 +-0.100000 0.050000 0.318600 +-0.100000 0.100000 0.318000 +-0.100000 0.150000 0.325800 +-0.100000 0.200000 0.358500 +-0.100000 0.250000 0.414500 +-0.100000 0.300000 0.485400 +-0.100000 0.350000 0.538200 +-0.100000 0.400000 0.564600 +-0.100000 0.450000 0.578100 +-0.100000 0.500000 0.580400 +-0.080000 -0.500000 0.566700 +-0.080000 -0.450000 0.564600 +-0.080000 -0.400000 0.549800 +-0.080000 -0.350000 0.515300 +-0.080000 -0.300000 0.446500 +-0.080000 -0.250000 0.362500 +-0.080000 -0.200000 0.294800 +-0.080000 -0.150000 0.259600 +-0.080000 -0.100000 0.255800 +-0.080000 -0.050000 0.260400 +-0.080000 0.000000 0.262900 +-0.080000 0.050000 0.260300 +-0.080000 0.100000 0.255700 +-0.080000 0.150000 0.259900 +-0.080000 0.200000 0.296900 +-0.080000 0.250000 0.362500 +-0.080000 0.300000 0.446500 +-0.080000 0.350000 0.515300 +-0.080000 0.400000 0.549800 +-0.080000 0.450000 0.564600 +-0.080000 0.500000 0.566700 +-0.060000 -0.500000 0.562500 +-0.060000 -0.450000 0.558200 +-0.060000 -0.400000 0.539900 +-0.060000 -0.350000 0.498900 +-0.060000 -0.300000 0.418600 +-0.060000 -0.250000 0.317200 +-0.060000 -0.200000 0.239200 +-0.060000 -0.150000 0.203100 +-0.060000 -0.100000 0.209900 +-0.060000 -0.050000 0.223300 +-0.060000 0.000000 0.227600 +-0.060000 0.050000 0.223100 +-0.060000 0.100000 0.209700 +-0.060000 0.150000 0.203300 +-0.060000 0.200000 0.240500 +-0.060000 0.250000 0.317200 +-0.060000 0.300000 0.418600 +-0.060000 0.350000 0.498900 +-0.060000 0.400000 0.539900 +-0.060000 0.450000 0.558200 +-0.060000 0.500000 0.562500 +-0.040000 -0.500000 0.574000 +-0.040000 -0.450000 0.569800 +-0.040000 -0.400000 0.550700 +-0.040000 -0.350000 0.504400 +-0.040000 -0.300000 0.418600 +-0.040000 -0.250000 0.302500 +-0.040000 -0.200000 0.208400 +-0.040000 -0.150000 0.169700 +-0.040000 -0.100000 0.176800 +-0.040000 -0.050000 0.188500 +-0.040000 0.000000 0.192200 +-0.040000 0.050000 0.188300 +-0.040000 0.100000 0.176500 +-0.040000 0.150000 0.169900 +-0.040000 0.200000 0.209100 +-0.040000 0.250000 0.302500 +-0.040000 0.300000 0.418600 +-0.040000 0.350000 0.504400 +-0.040000 0.400000 0.550700 +-0.040000 0.450000 0.569800 +-0.040000 0.500000 0.574000 +-0.020000 -0.500000 0.602500 +-0.020000 -0.450000 0.600100 +-0.020000 -0.400000 0.581100 +-0.020000 -0.350000 0.534200 +-0.020000 -0.300000 0.447800 +-0.020000 -0.250000 0.321500 +-0.020000 -0.200000 0.216700 +-0.020000 -0.150000 0.166400 +-0.020000 -0.100000 0.158000 +-0.020000 -0.050000 0.160500 +-0.020000 0.000000 0.161900 +-0.020000 0.050000 0.160400 +-0.020000 0.100000 0.158000 +-0.020000 0.150000 0.166800 +-0.020000 0.200000 0.218300 +-0.020000 0.250000 0.321500 +-0.020000 0.300000 0.447800 +-0.020000 0.350000 0.534200 +-0.020000 0.400000 0.581100 +-0.020000 0.450000 0.600100 +-0.020000 0.500000 0.602500 +0.000000 -0.500000 0.640800 +0.000000 -0.450000 0.640800 +0.000000 -0.400000 0.624900 +0.000000 -0.350000 0.580500 +0.000000 -0.300000 0.497700 +0.000000 -0.250000 0.378200 +0.000000 -0.200000 0.276600 +0.000000 -0.150000 0.216600 +0.000000 -0.100000 0.195400 +0.000000 -0.050000 0.190500 +0.000000 0.000000 0.189500 +0.000000 0.050000 0.190500 +0.000000 0.100000 0.195700 +0.000000 0.150000 0.217400 +0.000000 0.200000 0.278200 +0.000000 0.250000 0.378200 +0.000000 0.300000 0.497700 +0.000000 0.350000 0.580500 +0.000000 0.400000 0.624900 +0.000000 0.450000 0.640800 +0.000000 0.500000 0.640800 +0.020000 -0.500000 0.686900 +0.020000 -0.450000 0.690900 +0.020000 -0.400000 0.679100 +0.020000 -0.350000 0.641000 +0.020000 -0.300000 0.568400 +0.020000 -0.250000 0.470700 +0.020000 -0.200000 0.393800 +0.020000 -0.150000 0.334200 +0.020000 -0.100000 0.304900 +0.020000 -0.050000 0.294200 +0.020000 0.000000 0.292800 +0.020000 0.050000 0.294300 +0.020000 0.100000 0.305400 +0.020000 0.150000 0.335100 +0.020000 0.200000 0.395200 +0.020000 0.250000 0.470700 +0.020000 0.300000 0.568400 +0.020000 0.350000 0.641000 +0.020000 0.400000 0.679100 +0.020000 0.450000 0.690900 +0.020000 0.500000 0.686900 +0.040000 -0.500000 0.744900 +0.040000 -0.450000 0.751800 +0.040000 -0.400000 0.745600 +0.040000 -0.350000 0.719200 +0.040000 -0.300000 0.669400 +0.040000 -0.250000 0.605700 +0.040000 -0.200000 0.536700 +0.040000 -0.150000 0.476100 +0.040000 -0.100000 0.443000 +0.040000 -0.050000 0.428800 +0.040000 0.000000 0.425700 +0.040000 0.050000 0.428900 +0.040000 0.100000 0.443500 +0.040000 0.150000 0.477100 +0.040000 0.200000 0.538000 +0.040000 0.250000 0.605700 +0.040000 0.300000 0.669400 +0.040000 0.350000 0.719200 +0.040000 0.400000 0.745600 +0.040000 0.450000 0.751800 +0.040000 0.500000 0.744900 +0.060000 -0.500000 0.800900 +0.060000 -0.450000 0.804100 +0.060000 -0.400000 0.802000 +0.060000 -0.350000 0.794200 +0.060000 -0.300000 0.781300 +0.060000 -0.250000 0.751100 +0.060000 -0.200000 0.687800 +0.060000 -0.150000 0.636400 +0.060000 -0.100000 0.603600 +0.060000 -0.050000 0.587800 +0.060000 0.000000 0.583700 +0.060000 0.050000 0.587900 +0.060000 0.100000 0.604100 +0.060000 0.150000 0.637300 +0.060000 0.200000 0.688900 +0.060000 0.250000 0.751100 +0.060000 0.300000 0.781300 +0.060000 0.350000 0.794200 +0.060000 0.400000 0.802000 +0.060000 0.450000 0.804100 +0.060000 0.500000 0.800900 +0.080000 -0.500000 0.813300 +0.080000 -0.450000 0.809900 +0.080000 -0.400000 0.809900 +0.080000 -0.350000 0.816100 +0.080000 -0.300000 0.834900 +0.080000 -0.250000 0.858100 +0.080000 -0.200000 0.862100 +0.080000 -0.150000 0.817900 +0.080000 -0.100000 0.784100 +0.080000 -0.050000 0.765400 +0.080000 0.000000 0.760400 +0.080000 0.050000 0.765700 +0.080000 0.100000 0.784600 +0.080000 0.150000 0.818700 +0.080000 0.200000 0.863200 +0.080000 0.250000 0.858100 +0.080000 0.300000 0.834900 +0.080000 0.350000 0.816100 +0.080000 0.400000 0.809900 +0.080000 0.450000 0.809900 +0.080000 0.500000 0.813300 +0.100000 -0.500000 0.780100 +0.100000 -0.450000 0.777000 +0.100000 -0.400000 0.777100 +0.100000 -0.350000 0.785600 +0.100000 -0.300000 0.807000 +0.100000 -0.250000 0.843400 +0.100000 -0.200000 0.887300 +0.100000 -0.150000 0.897200 +0.100000 -0.100000 0.934500 +0.100000 -0.050000 0.932800 +0.100000 0.000000 0.940700 +0.100000 0.050000 0.932800 +0.100000 0.100000 0.934600 +0.100000 0.150000 0.897600 +0.100000 0.200000 0.886500 +0.100000 0.250000 0.843400 +0.100000 0.300000 0.807000 +0.100000 0.350000 0.785600 +0.100000 0.400000 0.777100 +0.100000 0.450000 0.777000 +0.100000 0.500000 0.780100 +0.120000 -0.500000 0.745500 +0.120000 -0.450000 0.746300 +0.120000 -0.400000 0.750400 +0.120000 -0.350000 0.759900 +0.120000 -0.300000 0.777700 +0.120000 -0.250000 0.807300 +0.120000 -0.200000 0.842300 +0.120000 -0.150000 0.869900 +0.120000 -0.100000 0.867400 +0.120000 -0.050000 0.857400 +0.120000 0.000000 0.852800 +0.120000 0.050000 1.009100 +0.120000 0.100000 0.867600 +0.120000 0.150000 0.869600 +0.120000 0.200000 0.841600 +0.120000 0.250000 0.807300 +0.120000 0.300000 0.777700 +0.120000 0.350000 0.759900 +0.120000 0.400000 0.750400 +0.120000 0.450000 0.746300 +0.120000 0.500000 0.745500 +0.140000 -0.500000 0.724600 +0.140000 -0.450000 0.728300 +0.140000 -0.400000 0.735800 +0.140000 -0.350000 0.747100 +0.140000 -0.300000 0.762300 +0.140000 -0.250000 0.786500 +0.140000 -0.200000 0.819000 +0.140000 -0.150000 0.847400 +0.140000 -0.100000 0.858700 +0.140000 -0.050000 0.852600 +0.140000 0.000000 0.849400 +0.140000 0.050000 0.852800 +0.140000 0.100000 0.858800 +0.140000 0.150000 0.847000 +0.140000 0.200000 0.818300 +0.140000 0.250000 0.786500 +0.140000 0.300000 0.762300 +0.140000 0.350000 0.747100 +0.140000 0.400000 0.735800 +0.140000 0.450000 0.728300 +0.140000 0.500000 0.724600 +0.160000 -0.500000 0.712300 +0.160000 -0.450000 0.717600 +0.160000 -0.400000 0.727800 +0.160000 -0.350000 0.740500 +0.160000 -0.300000 0.754500 +0.160000 -0.250000 0.775200 +0.160000 -0.200000 0.805100 +0.160000 -0.150000 0.831600 +0.160000 -0.100000 0.845500 +0.160000 -0.050000 0.843800 +0.160000 0.000000 0.840800 +0.160000 0.050000 0.843900 +0.160000 0.100000 0.845400 +0.160000 0.150000 0.831200 +0.160000 0.200000 0.804500 +0.160000 0.250000 0.775200 +0.160000 0.300000 0.754500 +0.160000 0.350000 0.740500 +0.160000 0.400000 0.727800 +0.160000 0.450000 0.717600 +0.160000 0.500000 0.712300 +0.180000 -0.500000 0.705500 +0.180000 -0.450000 0.712200 +0.180000 -0.400000 0.723700 +0.180000 -0.350000 0.737600 +0.180000 -0.300000 0.751500 +0.180000 -0.250000 0.770500 +0.180000 -0.200000 0.797300 +0.180000 -0.150000 0.777900 +0.180000 -0.100000 0.784200 +0.180000 -0.050000 0.784300 +0.180000 0.000000 0.783400 +0.180000 0.050000 0.784400 +0.180000 0.100000 0.784200 +0.180000 0.150000 0.777700 +0.180000 0.200000 0.796800 +0.180000 0.250000 0.770500 +0.180000 0.300000 0.751500 +0.180000 0.350000 0.737600 +0.180000 0.400000 0.723700 +0.180000 0.450000 0.712200 +0.180000 0.500000 0.705500 +0.200000 -0.500000 0.704300 +0.200000 -0.450000 0.711800 +0.200000 -0.400000 0.724200 +0.200000 -0.350000 0.738800 +0.200000 -0.300000 0.752800 +0.200000 -0.250000 0.714700 +0.200000 -0.200000 0.731800 +0.200000 -0.150000 0.746100 +0.200000 -0.100000 0.751600 +0.200000 -0.050000 0.750900 +0.200000 0.000000 0.749800 +0.200000 0.050000 0.751000 +0.200000 0.100000 0.751600 +0.200000 0.150000 0.745900 +0.200000 0.200000 0.731500 +0.200000 0.250000 0.714700 +0.200000 0.300000 0.752800 +0.200000 0.350000 0.738800 +0.200000 0.400000 0.724200 +0.200000 0.450000 0.711800 +0.200000 0.500000 0.704300 diff --git a/extra/leed/sample/mapper/setup.sh b/extra/leed/sample/mapper/setup.sh index 64b2fa10..cdbd4f2d 100644 --- a/extra/leed/sample/mapper/setup.sh +++ b/extra/leed/sample/mapper/setup.sh @@ -1,20 +1,24 @@ -if [ ! -e leedsatl.zip ]; then - wget http://www.icts.hkbu.edu.hk/VanHove_files/leed/leedsatl.zip -O leedsatl.zip -fi +#!/bin/sh + +set -e + +#if [ ! -e leedsatl.zip ]; then +# wget http://www.icts.hkbu.edu.hk/VanHove_files/leed/leedsatl.zip -O leedsatl.zip +#fi rm -rf leedsatl unzip leedsatl.zip -d leedsatl -cp leedsatl/leedsatl.m1 leedsatl/satl1.f -cp leedsatl/leedsatl.m2 leedsatl/satl2.f -cp leedsatl/leedsatl.sb leedsatl/satl_sub.f -patch -up0 < leedsatl.patch -cat << EOF > leedsatl/Makefile +cd leedsatl +tr -d '\r' < leedsatl.m1 > satl1.f +tr -d '\r' < leedsatl.m2 > satl2.f +tr -d '\r' < leedsatl.sb > satl_sub.f +patch -up1 < ../leedsatl.patch +cat << EOF > Makefile all: satl1.exe satl2.exe satl1.exe: satl1.f satl_sub.f - gfortran -o satl1.exe satl1.f satl_sub.f + gfortran -g -O2 -o satl1.exe satl1.f satl_sub.f satl2.exe: satl2.f satl_sub.f - gfortran -o satl2.exe satl2.f satl_sub.f + gfortran -g -O2 -o satl2.exe satl2.f satl_sub.f clean: rm -rf satl1.exe satl2.exe EOF -cd leedsatl make diff --git a/extra/leed/sample/user_program/base/exp.d b/extra/leed/sample/user_program/base/exp.d new file mode 100644 index 00000000..bafac722 --- /dev/null +++ b/extra/leed/sample/user_program/base/exp.d @@ -0,0 +1,1430 @@ +Cu(001)-p(1x1) + 5 + 1 2 3 4 5 +(2F12.3) + 1.0 +(1,0) +430 1.0000E+000 + 110.000 32909.102 + 111.000 32989.949 + 112.000 27115.830 + 113.000 20836.936 + 114.000 17491.109 + 115.000 18582.375 + 116.000 23811.061 + 117.000 28160.055 + 118.000 34106.836 + 119.000 43209.809 + 120.000 55337.309 + 121.000 74917.289 + 122.000 93303.633 + 123.000 127680.633 + 124.000 164766.625 + 125.000 217950.922 + 126.000 260295.000 + 127.000 303758.281 + 128.000 345681.938 + 129.000 377419.344 + 130.000 413735.062 + 131.000 419946.562 + 132.000 432770.312 + 133.000 452263.031 + 134.000 505907.844 + 135.000 546827.312 + 136.000 578923.188 + 137.000 632437.250 + 138.000 685416.688 + 139.000 765741.250 + 140.000 831670.375 + 141.000 899387.562 + 142.000 980058.562 + 143.000 962418.375 + 144.000 969287.250 + 145.000 987338.125 + 146.000 972646.188 + 147.000 926261.500 + 148.000 850372.500 + 149.000 826287.500 + 150.000 797515.625 + 151.000 766293.375 + 152.000 699646.312 + 153.000 640080.500 + 154.000 594140.000 + 155.000 522062.094 + 156.000 518720.688 + 157.000 473471.250 + 158.000 436965.281 + 159.000 400841.688 + 160.000 369550.125 + 161.000 346436.375 + 162.000 305236.375 + 163.000 280297.500 + 164.000 268620.656 + 165.000 262791.781 + 166.000 279864.906 + 167.000 270487.125 + 168.000 264729.875 + 169.000 256462.391 + 170.000 242067.734 + 171.000 229818.219 + 172.000 213597.938 + 173.000 195484.375 + 174.000 175022.922 + 175.000 153103.125 + 176.000 133987.766 + 177.000 123210.469 + 178.000 117077.523 + 179.000 119541.977 + 180.000 131733.625 + 181.000 149118.062 + 182.000 168445.406 + 183.000 181765.188 + 184.000 186211.938 + 185.000 186715.828 + 186.000 186305.062 + 187.000 182094.891 + 188.000 172276.328 + 189.000 160217.609 + 190.000 151400.234 + 191.000 139816.531 + 192.000 129011.508 + 193.000 119811.195 + 194.000 103119.766 + 195.000 89488.773 + 196.000 70887.078 + 197.000 51738.016 + 198.000 34914.809 + 199.000 21172.830 + 200.000 11821.845 + 201.000 5363.610 + 202.000 2786.175 + 203.000 2336.460 + 204.000 5405.925 + 205.000 11685.240 + 206.000 22033.096 + 207.000 38319.121 + 208.000 59729.145 + 209.000 92425.406 + 210.000 133250.359 + 211.000 180270.297 + 212.000 232451.734 + 213.000 297839.969 + 214.000 367414.438 + 215.000 451008.062 + 216.000 479037.250 + 217.000 588375.750 + 218.000 637339.000 + 219.000 695676.750 + 220.000 781607.000 + 221.000 864629.500 + 222.000 883315.250 + 223.000 900421.500 + 224.000 902824.750 + 225.000 896670.750 + 226.000 907167.000 + 227.000 912420.500 + 228.000 907503.250 + 229.000 901057.500 + 230.000 884973.250 + 231.000 877993.750 + 232.000 878241.250 + 233.000 995683.250 + 234.000 1020213.500 + 235.000 1110933.250 + 236.000 1180058.000 + 237.000 1244432.750 + 238.000 1384215.500 + 239.000 1441139.000 + 240.000 1458993.750 + 241.000 1449588.000 + 242.000 1426297.000 + 243.000 1438385.000 + 244.000 1386657.250 + 245.000 1336027.250 + 246.000 1248691.250 + 247.000 1186490.750 + 248.000 1110345.750 + 249.000 1047945.500 + 250.000 980296.250 + 251.000 919436.250 + 252.000 865700.750 + 253.000 841828.000 + 254.000 741847.750 + 255.000 747172.750 + 256.000 723967.500 + 257.000 786484.000 + 258.000 809302.500 + 259.000 851485.750 + 260.000 887085.750 + 261.000 912656.750 + 262.000 897436.750 + 263.000 863183.500 + 264.000 762178.500 + 265.000 712019.000 + 266.000 653793.500 + 267.000 582845.750 + 268.000 528704.250 + 269.000 436887.000 + 270.000 364977.250 + 271.000 308209.250 + 272.000 273962.000 + 273.000 254240.000 + 274.000 229668.750 + 275.000 232712.500 + 276.000 232660.250 + 277.000 231420.750 + 278.000 234453.250 + 279.000 247080.250 + 280.000 242259.500 + 281.000 239708.750 + 282.000 238029.500 + 283.000 238425.750 + 284.000 243815.000 + 285.000 255023.000 + 286.000 263901.250 + 287.000 272125.750 + 288.000 297341.250 + 289.000 302405.000 + 290.000 302553.000 + 291.000 305391.500 + 292.000 303223.000 + 293.000 295939.500 + 294.000 282358.000 + 295.000 278080.750 + 296.000 258706.250 + 297.000 250159.750 + 298.000 232676.750 + 299.000 213620.250 + 300.000 190620.750 + 301.000 171473.500 + 302.000 147162.750 + 303.000 126720.250 + 304.000 109322.500 + 305.000 91895.500 + 306.000 77587.250 + 307.000 63345.000 + 308.000 52772.750 + 309.000 46449.000 + 310.000 39993.750 + 311.000 37076.250 + 312.000 37317.500 + 313.000 42852.250 + 314.000 50711.500 + 315.000 60620.750 + 316.000 76928.250 + 317.000 97187.500 + 318.000 121184.000 + 319.000 149064.750 + 320.000 180244.500 + 321.000 211331.000 + 322.000 251011.000 + 323.000 292446.500 + 324.000 342413.500 + 325.000 390471.250 + 326.000 461504.000 + 327.000 529283.000 + 328.000 591199.500 + 329.000 664145.000 + 330.000 698879.750 + 331.000 768740.000 + 332.000 856180.250 + 333.000 953853.750 + 334.000 1062145.750 + 335.000 1175820.500 + 336.000 1294779.750 + 337.000 1435171.750 + 338.000 1554730.000 + 339.000 1676246.250 + 340.000 1770265.750 + 341.000 1833665.750 + 342.000 1903471.500 + 343.000 1907990.000 + 344.000 1865828.750 + 345.000 1813709.750 + 346.000 1743201.250 + 347.000 1662722.000 + 348.000 1568892.250 + 349.000 1468166.750 + 350.000 1371482.500 + 351.000 1280752.000 + 352.000 1201615.500 + 353.000 1139485.250 + 354.000 1063950.750 + 355.000 1012492.500 + 356.000 965742.250 + 357.000 909696.250 + 358.000 866807.500 + 359.000 814574.500 + 360.000 757251.250 + 361.000 690734.250 + 362.000 625324.750 + 363.000 557258.500 + 364.000 492614.250 + 365.000 426275.000 + 366.000 367078.750 + 367.000 319227.000 + 368.000 282867.750 + 369.000 260716.000 + 370.000 250796.750 + 371.000 248091.750 + 372.000 249112.250 + 373.000 250584.750 + 374.000 255238.750 + 375.000 258680.500 + 376.000 261692.750 + 377.000 261825.500 + 378.000 258041.250 + 379.000 250009.750 + 380.000 238443.750 + 381.000 221532.250 + 382.000 219804.000 + 383.000 204707.000 + 384.000 175861.000 + 385.000 152439.500 + 386.000 129119.250 + 387.000 111132.000 + 388.000 102871.000 + 389.000 102062.500 + 390.000 110717.500 + 391.000 126974.500 + 392.000 146367.250 + 393.000 168016.250 + 394.000 188035.000 + 395.000 206020.500 + 396.000 236628.000 + 397.000 249911.750 + 398.000 258449.750 + 399.000 260864.750 + 400.000 260949.250 + 401.000 259174.250 + 402.000 253732.000 + 403.000 244851.250 + 404.000 238979.750 + 405.000 234964.500 + 406.000 233982.750 + 407.000 235722.000 + 408.000 234070.000 + 409.000 240643.000 + 410.000 250803.250 + 411.000 260542.250 + 412.000 273420.250 + 413.000 286687.000 + 414.000 299177.750 + 415.000 314338.250 + 416.000 328019.000 + 417.000 341005.500 + 418.000 350114.750 + 419.000 356311.000 + 420.000 363167.500 + 421.000 359435.250 + 422.000 350867.750 + 423.000 336705.000 + 424.000 314769.750 + 425.000 290049.750 + 426.000 265035.750 + 427.000 235951.000 + 428.000 209885.250 + 429.000 181895.500 + 430.000 158415.750 + 431.000 135719.500 + 432.000 115104.250 + 433.000 91246.500 + 434.000 76732.500 + 435.000 63119.750 + 436.000 50554.500 + 437.000 39891.750 + 438.000 29432.500 + 439.000 19596.750 + 440.000 16841.500 + 441.000 11374.250 + 442.000 7880.500 + 443.000 9570.750 + 444.000 12792.500 + 445.000 15282.250 + 446.000 22720.000 + 447.000 33859.000 + 448.000 46637.250 + 449.000 63566.250 + 450.000 86890.250 + 451.000 114184.250 + 452.000 146913.250 + 453.000 187362.250 + 454.000 239056.250 + 455.000 299369.250 + 456.000 368571.000 + 457.000 450529.250 + 458.000 543252.750 + 459.000 650487.000 + 460.000 772895.000 + 461.000 903185.000 + 462.000 1051839.750 + 463.000 1266797.250 + 464.000 1373579.250 + 465.000 1542186.500 + 466.000 1715162.500 + 467.000 1878740.500 + 468.000 2027474.000 + 469.000 2154586.750 + 470.000 2251038.000 + 471.000 2318679.500 + 472.000 2350578.750 + 473.000 2346121.500 + 474.000 2275645.250 + 475.000 2211391.000 + 476.000 2122855.500 + 477.000 2007904.750 + 478.000 1880475.750 + 479.000 1740091.750 + 480.000 1595713.500 + 481.000 1449303.000 + 482.000 1305942.000 + 483.000 1160322.000 + 484.000 1023620.250 + 485.000 888675.500 + 486.000 769557.500 + 487.000 667070.000 + 488.000 566484.250 + 489.000 509269.500 + 490.000 453661.750 + 491.000 414390.250 + 492.000 384872.500 + 493.000 361758.000 + 494.000 344285.250 + 495.000 338578.500 + 496.000 333789.250 + 497.000 332714.500 + 498.000 330379.250 + 499.000 337528.250 + 500.000 331554.000 + 501.000 332556.500 + 502.000 334434.750 + 503.000 342663.000 + 504.000 372607.000 + 505.000 376457.000 + 506.000 381952.000 + 507.000 358359.500 + 508.000 372698.750 + 509.000 362500.750 + 510.000 341605.000 + 511.000 327486.750 + 512.000 306647.500 + 513.000 280615.000 + 514.000 252939.250 + 515.000 227459.750 + 516.000 200277.250 + 517.000 173735.000 + 518.000 147124.500 + 519.000 121023.500 + 520.000 100271.500 + 521.000 78931.250 + 522.000 60680.500 + 523.000 44373.750 + 524.000 34548.500 + 525.000 25229.250 + 526.000 17743.750 + 527.000 16985.500 + 528.000 19909.500 + 529.000 24943.750 + 530.000 33629.250 + 531.000 47126.500 + 532.000 64306.000 + 533.000 84505.750 + 534.000 114180.500 + 535.000 134219.000 + 536.000 160378.000 + 537.000 179912.500 + 538.000 192491.500 + 539.000 202616.500 +(1,2) +173 1.0000E+000 + 250.000 32627.875 + 251.000 36126.375 + 252.000 38843.625 + 253.000 40418.250 + 254.000 38205.250 + 255.000 37195.625 + 256.000 35149.750 + 257.000 33977.625 + 258.000 31204.625 + 259.000 27474.125 + 260.000 24065.375 + 261.000 21865.625 + 262.000 19053.500 + 263.000 22365.875 + 264.000 26090.500 + 265.000 36522.500 + 266.000 52044.250 + 267.000 79332.750 + 268.000 115148.250 + 269.000 157016.250 + 270.000 199473.375 + 271.000 244676.125 + 272.000 285906.375 + 273.000 314045.500 + 274.000 328219.500 + 275.000 328924.875 + 276.000 308658.125 + 277.000 296827.625 + 278.000 288219.625 + 279.000 274450.250 + 280.000 265107.250 + 281.000 259923.750 + 282.000 242104.750 + 283.000 229026.000 + 284.000 220300.375 + 285.000 206010.375 + 286.000 191402.250 + 287.000 186507.625 + 288.000 181210.625 + 289.000 173239.625 + 290.000 168409.125 + 291.000 157036.000 + 292.000 148320.375 + 293.000 143622.250 + 294.000 133597.375 + 295.000 121797.750 + 296.000 109460.875 + 297.000 93920.500 + 298.000 79001.625 + 299.000 69761.875 + 300.000 57053.750 + 301.000 48390.500 + 302.000 42758.875 + 303.000 37215.250 + 304.000 37944.125 + 305.000 35182.500 + 306.000 36316.750 + 307.000 38135.375 + 308.000 41424.000 + 309.000 44535.625 + 310.000 48504.000 + 311.000 51544.750 + 312.000 53455.375 + 313.000 56468.250 + 314.000 58843.500 + 315.000 58822.250 + 316.000 60194.500 + 317.000 59416.250 + 318.000 58234.750 + 319.000 56240.875 + 320.000 53112.250 + 321.000 47295.875 + 322.000 42509.250 + 323.000 37063.250 + 324.000 33240.000 + 325.000 30930.375 + 326.000 27367.500 + 327.000 22412.875 + 328.000 23444.250 + 329.000 20988.875 + 330.000 21586.500 + 331.000 21860.625 + 332.000 23273.875 + 333.000 20340.625 + 334.000 21348.750 + 335.000 21579.000 + 336.000 21794.625 + 337.000 20432.000 + 338.000 20499.625 + 339.000 20357.750 + 340.000 17802.375 + 341.000 15798.375 + 342.000 14458.625 + 343.000 15161.250 + 344.000 11987.625 + 345.000 12063.875 + 346.000 12318.500 + 347.000 9413.125 + 348.000 9384.500 + 349.000 10062.750 + 350.000 9627.625 + 351.000 11012.375 + 352.000 13624.250 + 353.000 15092.250 + 354.000 19275.500 + 355.000 20997.500 + 356.000 24146.375 + 357.000 27852.375 + 358.000 32455.875 + 359.000 34110.125 + 360.000 34526.500 + 361.000 37209.750 + 362.000 39187.875 + 363.000 39208.000 + 364.000 39092.125 + 365.000 37001.125 + 366.000 35963.250 + 367.000 36520.000 + 368.000 37854.625 + 369.000 37461.375 + 370.000 39899.000 + 371.000 43546.375 + 372.000 47778.250 + 373.000 57054.625 + 374.000 66915.125 + 375.000 77817.625 + 376.000 89112.625 + 377.000 105070.750 + 378.000 120097.125 + 379.000 137458.625 + 380.000 151660.875 + 381.000 167895.625 + 382.000 178948.875 + 383.000 193613.250 + 384.000 215364.500 + 385.000 228928.750 + 386.000 244948.500 + 387.000 259147.875 + 388.000 273266.500 + 389.000 279765.625 + 390.000 288546.625 + 391.000 286065.000 + 392.000 272402.375 + 393.000 255002.875 + 394.000 235121.875 + 395.000 210959.375 + 396.000 188646.375 + 397.000 164830.750 + 398.000 145123.375 + 399.000 128165.500 + 400.000 114185.625 + 401.000 105883.125 + 402.000 98491.375 + 403.000 97029.750 + 404.000 98278.625 + 405.000 98796.750 + 406.000 98736.000 + 407.000 98988.500 + 408.000 102017.500 + 409.000 101314.125 + 410.000 103090.250 + 411.000 100949.750 + 412.000 97631.875 + 413.000 93604.625 + 414.000 83932.250 + 415.000 74087.625 + 416.000 66319.250 + 417.000 59315.375 + 418.000 50896.375 + 419.000 40400.125 + 420.000 29912.000 + 421.000 23445.125 + 422.000 17742.250 +(1,1) +373 1.0000E+000 + 120.000 262958.250 + 121.000 191402.000 + 122.000 123578.000 + 123.000 80576.250 + 124.000 57366.750 + 125.000 55169.750 + 126.000 69878.500 + 127.000 83088.000 + 128.000 99856.750 + 129.000 113514.500 + 130.000 114996.000 + 131.000 113783.500 + 132.000 122017.750 + 133.000 122326.500 + 134.000 113429.750 + 135.000 106929.500 + 136.000 97425.750 + 137.000 86294.000 + 138.000 69813.250 + 139.000 57376.750 + 140.000 48373.250 + 141.000 46094.500 + 142.000 54930.250 + 143.000 69197.500 + 144.000 88464.000 + 145.000 109296.500 + 146.000 143147.250 + 147.000 181320.500 + 148.000 210681.750 + 149.000 235661.750 + 150.000 264507.750 + 151.000 282399.500 + 152.000 297022.500 + 153.000 304464.500 + 154.000 301076.500 + 155.000 299884.000 + 156.000 359908.000 + 157.000 344910.250 + 158.000 319166.750 + 159.000 300761.500 + 160.000 281662.250 + 161.000 264320.250 + 162.000 235108.750 + 163.000 210239.250 + 164.000 185691.500 + 165.000 166047.750 + 166.000 146435.500 + 167.000 138166.750 + 168.000 122349.750 + 169.000 108138.750 + 170.000 96986.250 + 171.000 86910.500 + 172.000 80072.000 + 173.000 79292.000 + 174.000 90264.250 + 175.000 105290.750 + 176.000 134745.500 + 177.000 185349.250 + 178.000 247525.750 + 179.000 341783.750 + 180.000 465566.750 + 181.000 631457.500 + 182.000 835840.000 + 183.000 1018446.250 + 184.000 1189271.000 + 185.000 1224704.250 + 186.000 1441735.500 + 187.000 1577647.750 + 188.000 1628362.500 + 189.000 1664855.000 + 190.000 1697921.500 + 191.000 1686717.500 + 192.000 1622125.750 + 193.000 1604053.500 + 194.000 1566184.500 + 195.000 1593225.250 + 196.000 1652860.750 + 197.000 1645710.500 + 198.000 1481953.000 + 199.000 1409676.250 + 200.000 1420912.500 + 201.000 1405788.750 + 202.000 1337829.250 + 203.000 1292514.000 + 204.000 1223402.250 + 205.000 1168586.250 + 206.000 1081081.000 + 207.000 996064.750 + 208.000 895505.250 + 209.000 823388.750 + 210.000 772565.250 + 211.000 671823.250 + 212.000 591860.250 + 213.000 547595.250 + 214.000 490890.250 + 215.000 428013.750 + 216.000 381616.250 + 217.000 335117.500 + 218.000 285280.500 + 219.000 241205.500 + 220.000 193124.000 + 221.000 153201.000 + 222.000 121559.000 + 223.000 116670.250 + 224.000 90034.750 + 225.000 64248.000 + 226.000 53624.500 + 227.000 49051.500 + 228.000 46860.750 + 229.000 51028.750 + 230.000 64807.000 + 231.000 70256.000 + 232.000 68059.500 + 233.000 79843.750 + 234.000 89249.750 + 235.000 97990.250 + 236.000 105617.500 + 237.000 121536.750 + 238.000 131477.000 + 239.000 144351.750 + 240.000 151710.500 + 241.000 161483.250 + 242.000 178449.500 + 243.000 189189.500 + 244.000 181182.000 + 245.000 186996.000 + 246.000 189716.000 + 247.000 190957.750 + 248.000 187351.750 + 249.000 187762.750 + 250.000 183888.750 + 251.000 164188.500 + 252.000 157807.250 + 253.000 151687.000 + 254.000 139311.250 + 255.000 127780.750 + 256.000 114212.250 + 257.000 106874.250 + 258.000 90878.750 + 259.000 76695.000 + 260.000 64601.500 + 261.000 56987.000 + 262.000 45563.750 + 263.000 37630.500 + 264.000 31165.250 + 265.000 21662.500 + 266.000 18662.250 + 267.000 14838.500 + 268.000 13550.500 + 269.000 11273.500 + 270.000 11421.000 + 271.000 13981.750 + 272.000 15040.500 + 273.000 18578.000 + 274.000 28592.500 + 275.000 38099.500 + 276.000 56455.250 + 277.000 83553.250 + 278.000 128063.250 + 279.000 192143.500 + 280.000 273777.750 + 281.000 356639.750 + 282.000 449519.500 + 283.000 535906.000 + 284.000 626843.500 + 285.000 707466.250 + 286.000 837288.750 + 287.000 874405.000 + 288.000 973387.750 + 289.000 1039946.500 + 290.000 1126569.750 + 291.000 1141896.000 + 292.000 1235785.250 + 293.000 1319692.500 + 294.000 1417963.250 + 295.000 1509619.500 + 296.000 1595949.250 + 297.000 1668066.500 + 298.000 1720744.250 + 299.000 1733202.250 + 300.000 1743176.250 + 301.000 1717181.750 + 302.000 1680056.500 + 303.000 1638789.625 + 304.000 1594867.375 + 305.000 1511026.625 + 306.000 1452515.000 + 307.000 1382712.625 + 308.000 1253331.375 + 309.000 1130485.375 + 310.000 1010836.312 + 311.000 865409.312 + 312.000 772082.312 + 313.000 686134.000 + 314.000 646813.312 + 315.000 569115.312 + 316.000 501181.656 + 317.000 437942.344 + 318.000 382261.000 + 319.000 331362.656 + 320.000 290606.656 + 321.000 247975.672 + 322.000 202754.328 + 323.000 173909.672 + 324.000 146625.328 + 325.000 125430.000 + 326.000 108246.664 + 327.000 94395.000 + 328.000 82828.000 + 329.000 74841.664 + 330.000 66734.664 + 331.000 63132.000 + 332.000 55631.332 + 333.000 51867.332 + 334.000 46288.332 + 335.000 40424.000 + 336.000 32264.000 + 337.000 27544.666 + 338.000 22456.666 + 339.000 16473.000 + 340.000 12197.667 + 341.000 8251.333 + 342.000 5681.667 + 343.000 2356.333 + 344.000 1598.000 + 345.000 3222.667 + 346.000 1224.667 + 347.000 2251.667 + 348.000 2233.667 + 349.000 3757.333 + 350.000 5675.000 + 351.000 6142.667 + 352.000 7407.000 + 353.000 17187.000 + 354.000 17202.000 + 355.000 22864.666 + 356.000 27618.000 + 357.000 33039.668 + 358.000 39219.332 + 359.000 43784.332 + 360.000 50044.000 + 361.000 50310.000 + 362.000 50709.332 + 363.000 55199.000 + 364.000 89025.664 + 365.000 80362.664 + 366.000 74896.336 + 367.000 58269.332 + 368.000 48589.332 + 369.000 41504.668 + 370.000 36433.000 + 371.000 28465.000 + 372.000 22037.334 + 373.000 18594.666 + 374.000 14025.333 + 375.000 7442.333 + 376.000 5984.333 + 377.000 4422.000 + 378.000 3542.333 + 379.000 5286.333 + 380.000 3603.667 + 381.000 2468.333 + 382.000 3552.667 + 383.000 4268.333 + 384.000 4424.000 + 385.000 3003.333 + 386.000 1521.000 + 387.000 4147.000 + 388.000 4363.333 + 389.000 2271.000 + 390.000 6364.333 + 391.000 3866.000 + 392.000 5478.667 + 393.000 3062.667 + 394.000 4540.667 + 395.000 5201.667 + 396.000 8576.667 + 397.000 11787.667 + 398.000 16315.333 + 399.000 29734.666 + 400.000 55316.668 + 401.000 71447.000 + 402.000 100312.000 + 403.000 132754.328 + 404.000 170636.328 + 405.000 207728.672 + 406.000 275832.656 + 407.000 331761.344 + 408.000 389276.000 + 409.000 466064.344 + 410.000 528966.312 + 411.000 591851.312 + 412.000 659815.312 + 413.000 734632.688 + 414.000 810164.000 + 415.000 883135.312 + 416.000 985629.312 + 417.000 1054066.000 + 418.000 1112007.000 + 419.000 1156697.625 + 420.000 1199465.375 + 421.000 1218009.625 + 422.000 1223193.000 + 423.000 1212871.000 + 424.000 1180622.375 + 425.000 1154459.000 + 426.000 1129595.375 + 427.000 1063823.625 + 428.000 976653.312 + 429.000 899792.688 + 430.000 815014.312 + 431.000 726136.312 + 432.000 641226.312 + 433.000 556814.688 + 434.000 488567.344 + 435.000 426233.000 + 436.000 352638.656 + 437.000 297304.344 + 438.000 245461.000 + 439.000 204816.672 + 440.000 153227.672 + 441.000 121207.000 + 442.000 93599.000 + 443.000 70723.000 + 444.000 55495.668 + 445.000 39659.332 + 446.000 32573.000 + 447.000 9357.333 + 448.000 6084.333 + 449.000 2362.333 + 450.000 2667.667 + 451.000 4177.333 + 452.000 6601.000 + 453.000 10199.000 + 454.000 13132.667 + 455.000 15603.000 + 456.000 21506.666 + 457.000 25137.334 + 458.000 42332.332 + 459.000 48081.668 + 460.000 49840.000 + 461.000 53491.668 + 462.000 54214.668 + 463.000 50408.000 + 464.000 49178.668 + 465.000 46405.000 + 466.000 41729.332 + 467.000 34380.332 + 468.000 34262.668 + 469.000 28322.000 + 470.000 22689.334 + 471.000 19853.666 + 472.000 14687.000 + 473.000 13005.333 + 474.000 6889.667 + 475.000 9184.000 + 476.000 3172.000 + 477.000 3635.333 + 478.000 1494.667 + 479.000 3928.000 + 480.000 7688.667 + 481.000 7626.000 + 482.000 8050.000 + 483.000 10658.333 + 484.000 7392.333 + 485.000 10084.333 + 486.000 21025.334 + 487.000 11959.333 + 488.000 16104.333 + 489.000 15054.667 + 490.000 13444.000 + 491.000 10955.000 + 492.000 9959.000 +(2,2) +138 1.0000E+000 + 360.000 250248.250 + 361.000 287548.750 + 362.000 320885.000 + 363.000 362156.250 + 364.000 400854.000 + 365.000 444919.750 + 366.000 482849.500 + 367.000 501998.500 + 368.000 529677.250 + 369.000 563841.250 + 370.000 565337.750 + 371.000 572843.750 + 372.000 560348.250 + 373.000 553518.250 + 374.000 547503.500 + 375.000 532432.750 + 376.000 513031.750 + 377.000 486469.500 + 378.000 452888.000 + 379.000 410328.000 + 380.000 368567.250 + 381.000 333108.250 + 382.000 287658.750 + 383.000 251676.500 + 384.000 219666.250 + 385.000 182405.000 + 386.000 158698.000 + 387.000 136213.000 + 388.000 116183.500 + 389.000 95867.500 + 390.000 76424.250 + 391.000 61768.750 + 392.000 49875.250 + 393.000 44698.750 + 394.000 37187.750 + 395.000 30479.000 + 396.000 27905.000 + 397.000 23857.250 + 398.000 20334.500 + 399.000 22134.250 + 400.000 21039.000 + 401.000 20882.750 + 402.000 19881.500 + 403.000 20327.000 + 404.000 20549.500 + 405.000 24274.750 + 406.000 24427.250 + 407.000 23993.250 + 408.000 25741.250 + 409.000 28087.250 + 410.000 27626.500 + 411.000 29944.500 + 412.000 30490.500 + 413.000 31039.000 + 414.000 32010.750 + 415.000 32616.750 + 416.000 30621.250 + 417.000 28912.000 + 418.000 28172.750 + 419.000 28578.250 + 420.000 29835.500 + 421.000 28103.500 + 422.000 28772.000 + 423.000 29516.250 + 424.000 28400.250 + 425.000 29528.250 + 426.000 29486.250 + 427.000 29760.000 + 428.000 28369.500 + 429.000 29144.750 + 430.000 29893.750 + 431.000 32531.250 + 432.000 32892.500 + 433.000 35183.250 + 434.000 34275.750 + 435.000 35176.000 + 436.000 20192.250 + 437.000 25602.750 + 438.000 25462.750 + 439.000 22973.000 + 440.000 23112.000 + 441.000 23107.500 + 442.000 21859.250 + 443.000 20306.000 + 444.000 19672.500 + 445.000 21774.250 + 446.000 19946.500 + 447.000 19190.000 + 448.000 18360.500 + 449.000 16509.250 + 450.000 16765.250 + 451.000 16576.250 + 452.000 15059.250 + 453.000 14068.750 + 454.000 12591.250 + 455.000 13257.000 + 456.000 12336.500 + 457.000 11771.750 + 458.000 10531.750 + 459.000 9411.000 + 460.000 8589.500 + 461.000 10897.750 + 462.000 9506.500 + 463.000 10479.250 + 464.000 11014.000 + 465.000 13371.000 + 466.000 12179.750 + 467.000 13531.750 + 468.000 15337.000 + 469.000 17146.000 + 470.000 17306.500 + 471.000 22040.250 + 472.000 21762.000 + 473.000 27503.500 + 474.000 29560.500 + 475.000 33721.000 + 476.000 37097.750 + 477.000 42616.500 + 478.000 48501.000 + 479.000 54643.500 + 480.000 59905.500 + 481.000 68460.500 + 482.000 78775.250 + 483.000 96894.000 + 484.000 135039.500 + 485.000 193728.750 + 486.000 250467.500 + 487.000 299443.500 + 488.000 348250.000 + 489.000 409601.750 + 490.000 460200.750 + 491.000 517113.250 + 492.000 560140.500 + 493.000 598529.000 + 494.000 601090.250 + 495.000 622097.750 + 496.000 626301.500 + 497.000 609906.250 +(2,0) +301 1.0000E+000 + 180.000 176112.750 + 181.000 166920.000 + 182.000 141516.500 + 183.000 113345.250 + 184.000 94153.500 + 185.000 73143.250 + 186.000 58010.250 + 187.000 42551.750 + 188.000 36919.750 + 189.000 31332.000 + 190.000 28839.500 + 191.000 28233.750 + 192.000 31953.500 + 193.000 39794.500 + 194.000 48803.500 + 195.000 64623.750 + 196.000 94230.500 + 197.000 123732.500 + 198.000 160017.500 + 199.000 204029.250 + 200.000 251582.000 + 201.000 297688.500 + 202.000 343196.250 + 203.000 392587.250 + 204.000 465355.500 + 205.000 542679.000 + 206.000 616668.750 + 207.000 714134.750 + 208.000 805756.250 + 209.000 874487.000 + 210.000 938771.500 + 211.000 979454.500 + 212.000 1014115.500 + 213.000 966961.000 + 214.000 869250.000 + 215.000 743871.000 + 216.000 596983.750 + 217.000 426690.750 + 218.000 283110.000 + 219.000 184340.000 + 220.000 106763.000 + 221.000 61827.250 + 222.000 44233.500 + 223.000 35886.750 + 224.000 31226.250 + 225.000 29373.000 + 226.000 29326.750 + 227.000 33994.750 + 228.000 34921.500 + 229.000 43556.250 + 230.000 55015.250 + 231.000 58651.000 + 232.000 57033.750 + 233.000 52152.250 + 234.000 44730.500 + 235.000 43451.500 + 236.000 41218.000 + 237.000 48848.000 + 238.000 63566.500 + 239.000 83753.500 + 240.000 103892.000 + 241.000 127654.000 + 242.000 156214.750 + 243.000 184808.000 + 244.000 210072.000 + 245.000 227701.250 + 246.000 240800.500 + 247.000 247076.750 + 248.000 256099.000 + 249.000 258184.500 + 250.000 257130.500 + 251.000 252470.000 + 252.000 243605.750 + 253.000 222908.000 + 254.000 208076.000 + 255.000 201664.000 + 256.000 206573.750 + 257.000 196457.500 + 258.000 192093.500 + 259.000 192882.500 + 260.000 196797.250 + 261.000 204389.500 + 262.000 212122.750 + 263.000 222957.500 + 264.000 226058.250 + 265.000 245519.250 + 266.000 273974.250 + 267.000 290149.250 + 268.000 304951.500 + 269.000 321057.500 + 270.000 317129.250 + 271.000 318539.500 + 272.000 288686.500 + 273.000 262613.750 + 274.000 235427.750 + 275.000 192848.500 + 276.000 168758.750 + 277.000 139644.250 + 278.000 114620.000 + 279.000 89833.250 + 280.000 72482.000 + 281.000 60812.750 + 282.000 50380.000 + 283.000 41729.250 + 284.000 34541.000 + 285.000 28692.750 + 286.000 25600.250 + 287.000 21239.250 + 288.000 21126.750 + 289.000 23086.000 + 290.000 25431.000 + 291.000 27086.500 + 292.000 32453.000 + 293.000 39374.250 + 294.000 46895.000 + 295.000 58473.750 + 296.000 74200.000 + 297.000 93628.000 + 298.000 114820.750 + 299.000 141471.500 + 300.000 176153.500 + 301.000 214803.750 + 302.000 256502.000 + 303.000 311100.750 + 304.000 370144.500 + 305.000 428930.000 + 306.000 487029.250 + 307.000 550628.500 + 308.000 617327.250 + 309.000 685512.250 + 310.000 760893.250 + 311.000 843642.000 + 312.000 922374.250 + 313.000 1000858.750 + 314.000 1073597.500 + 315.000 1150133.750 + 316.000 1224770.250 + 317.000 1304968.750 + 318.000 1350247.000 + 319.000 1405386.500 + 320.000 1475104.250 + 321.000 1503078.500 + 322.000 1549961.250 + 323.000 1573418.500 + 324.000 1590171.000 + 325.000 1584621.750 + 326.000 1581176.000 + 327.000 1577881.250 + 328.000 1528807.500 + 329.000 1443054.250 + 330.000 1310488.000 + 331.000 1199920.500 + 332.000 1071894.750 + 333.000 939756.500 + 334.000 793811.750 + 335.000 660200.750 + 336.000 530628.000 + 337.000 423488.750 + 338.000 327358.250 + 339.000 248750.500 + 340.000 175291.000 + 341.000 126829.500 + 342.000 91875.000 + 343.000 65195.500 + 344.000 46755.250 + 345.000 36578.750 + 346.000 34171.000 + 347.000 23097.000 + 348.000 32963.500 + 349.000 24659.000 + 350.000 25404.250 + 351.000 24438.500 + 352.000 28448.500 + 353.000 27667.750 + 354.000 31546.250 + 355.000 29359.250 + 356.000 30040.250 + 357.000 27300.750 + 358.000 27288.500 + 359.000 24893.750 + 360.000 26286.000 + 361.000 21854.750 + 362.000 23705.250 + 363.000 22729.500 + 364.000 30211.750 + 365.000 34476.250 + 366.000 36157.000 + 367.000 42120.750 + 368.000 49128.000 + 369.000 60511.500 + 370.000 71236.500 + 371.000 77792.000 + 372.000 82959.500 + 373.000 94803.500 + 374.000 105918.000 + 375.000 112234.750 + 376.000 121485.500 + 377.000 131604.250 + 378.000 129527.750 + 379.000 135210.250 + 380.000 155384.750 + 381.000 206175.000 + 382.000 212562.500 + 383.000 213674.750 + 384.000 202620.250 + 385.000 197963.250 + 386.000 195662.000 + 387.000 188215.500 + 388.000 183622.500 + 389.000 175554.000 + 390.000 166149.000 + 391.000 155426.250 + 392.000 142387.750 + 393.000 129780.500 + 394.000 117892.250 + 395.000 105970.750 + 396.000 97574.000 + 397.000 88917.250 + 398.000 80017.250 + 399.000 74672.750 + 400.000 72362.500 + 401.000 72671.750 + 402.000 70289.500 + 403.000 67783.250 + 404.000 63339.250 + 405.000 62200.250 + 406.000 57878.000 + 407.000 56228.500 + 408.000 47207.250 + 409.000 44074.000 + 410.000 41423.750 + 411.000 36844.000 + 412.000 32166.750 + 413.000 29945.500 + 414.000 24811.000 + 415.000 19714.500 + 416.000 19946.500 + 417.000 13079.500 + 418.000 12307.250 + 419.000 14122.250 + 420.000 10830.750 + 421.000 17708.250 + 422.000 23866.750 + 423.000 31665.250 + 424.000 46790.500 + 425.000 64706.750 + 426.000 82396.000 + 427.000 110607.750 + 428.000 133043.250 + 429.000 163192.000 + 430.000 198452.250 + 431.000 226944.000 + 432.000 265954.250 + 433.000 296172.000 + 434.000 327355.500 + 435.000 364659.000 + 436.000 409616.750 + 437.000 453563.250 + 438.000 512556.500 + 439.000 570770.000 + 440.000 627959.250 + 441.000 680374.500 + 442.000 698445.250 + 443.000 740678.250 + 444.000 778165.500 + 445.000 824557.250 + 446.000 845907.750 + 447.000 867337.250 + 448.000 865154.750 + 449.000 880550.250 + 450.000 903574.250 + 451.000 877599.250 + 452.000 914433.500 + 453.000 900253.750 + 454.000 871023.750 + 455.000 835289.000 + 456.000 790139.500 + 457.000 735387.250 + 458.000 688637.250 + 459.000 638482.250 + 460.000 581083.250 + 461.000 518274.250 + 462.000 466334.750 + 463.000 407053.750 + 464.000 358499.500 + 465.000 309999.750 + 466.000 269674.250 + 467.000 231763.000 + 468.000 191363.500 + 469.000 147887.750 + 470.000 120665.750 + 471.000 96606.500 + 472.000 77252.500 + 473.000 64478.500 + 474.000 49201.000 + 475.000 45917.750 + 476.000 29818.500 + 477.000 29612.500 + 478.000 25287.000 + 479.000 17533.250 + 480.000 15916.500 diff --git a/extra/leed/sample/user_program/base/rfac.d b/extra/leed/sample/user_program/base/rfac.d new file mode 100644 index 00000000..be60804b --- /dev/null +++ b/extra/leed/sample/user_program/base/rfac.d @@ -0,0 +1,6 @@ + 1 2 3 4 5 IBP + 0.25 EINCR + 1.0 1.0 1.0 1.0 1.0 + 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 1.0000 + 6 0 0 ISMOTH IREN IRGEXP + diff --git a/extra/leed/sample/user_program/base/short.t b/extra/leed/sample/user_program/base/short.t new file mode 100644 index 00000000..c5e8742c Binary files /dev/null and b/extra/leed/sample/user_program/base/short.t differ diff --git a/extra/leed/sample/user_program/base/tleed.o b/extra/leed/sample/user_program/base/tleed.o new file mode 100644 index 00000000..85b42403 --- /dev/null +++ b/extra/leed/sample/user_program/base/tleed.o @@ -0,0 +1,4685 @@ +Cu(001)-p(1x1)clean + + 1ST PASS TLEED...REFERENCE STRUCTURE CALCULATION + + IDEG = 4 + + PARAMETERS FOR INTERIOR + + FR = 0.5000 ASE = 1.2000 + TST = 0.0020 + THETA FI = 0.00 0.00 +VV 6.00VPIS -5.00 + LMAX = 9 + IT1 = 1 1 + THDB = 230.0000 AM = 63.5460 FPER = 1.0000 FPAR = 1.0000 DR0 = 0.0000 + THDB = 343.5000 AM = 63.5460 FPER = 1.0000 FPAR = 1.0000 DR0 = 0.0000 + + PHASE SHIFTS + +E = 1.6538 1ST ELEMENT -1.0496 -0.2554 -0.2380 0.1060 0.0119 0.0012 0.0001 0.0000 0.0000 0.0000 + ELEMENT # 2 -1.0048 -0.1940 -0.1829 0.1412 0.0177 0.0019 0.0002 0.0000 0.0000 0.0000 + +E = 1.8376 1ST ELEMENT -1.1234 -0.2953 -0.2265 0.1391 0.0171 0.0019 0.0002 0.0000 0.0000 0.0000 + ELEMENT # 2 -1.0836 -0.2400 -0.1677 0.1822 0.0253 0.0031 0.0003 0.0000 0.0000 0.0000 + +E = 2.0213 1ST ELEMENT -1.1930 -0.3352 -0.2148 0.1762 0.0235 0.0029 0.0003 0.0000 0.0000 0.0000 + ELEMENT # 2 -1.1572 -0.2855 -0.1540 0.2265 0.0345 0.0047 0.0005 0.0000 0.0000 0.0000 + +E = 2.2051 1ST ELEMENT -1.2588 -0.3748 -0.2035 0.2164 0.0312 0.0042 0.0005 0.0000 0.0000 0.0000 + ELEMENT # 2 -1.2261 -0.3301 -0.1425 0.2728 0.0454 0.0067 0.0008 0.0001 0.0000 0.0000 + +E = 2.3888 1ST ELEMENT -1.3212 -0.4138 -0.1931 0.2590 0.0402 0.0059 0.0007 0.0001 0.0000 0.0000 + ELEMENT # 2 -1.2907 -0.3734 -0.1332 0.3198 0.0578 0.0093 0.0012 0.0001 0.0000 0.0000 + +E = 2.5726 1ST ELEMENT -1.3804 -0.4521 -0.1839 0.3031 0.0504 0.0080 0.0011 0.0001 0.0000 0.0000 + ELEMENT # 2 -1.3516 -0.4153 -0.1262 0.3666 0.0717 0.0125 0.0018 0.0002 0.0000 0.0000 + +E = 2.7563 1ST ELEMENT -1.4367 -0.4894 -0.1759 0.3479 0.0618 0.0104 0.0015 0.0002 0.0000 0.0000 + ELEMENT # 2 -1.4089 -0.4556 -0.1213 0.4123 0.0868 0.0163 0.0025 0.0003 0.0000 0.0000 + +E = 2.9401 1ST ELEMENT -1.4903 -0.5259 -0.1695 0.3926 0.0743 0.0134 0.0020 0.0003 0.0000 0.0000 + ELEMENT # 2 -1.4631 -0.4944 -0.1182 0.4562 0.1030 0.0207 0.0034 0.0004 0.0000 0.0000 + +E = 3.1239 1ST ELEMENT -1.5414 -0.5613 -0.1644 0.4366 0.0879 0.0168 0.0027 0.0004 0.0000 0.0000 + ELEMENT # 2 -1.5144 -0.5316 -0.1168 0.4982 0.1201 0.0258 0.0045 0.0006 0.0001 0.0000 + +E = 3.3076 1ST ELEMENT -1.5902 -0.5957 -0.1607 0.4794 0.1023 0.0207 0.0036 0.0005 0.0001 0.0000 + ELEMENT # 2 -1.5632 -0.5672 -0.1165 0.5379 0.1377 0.0315 0.0058 0.0009 0.0001 0.0000 + +E = 3.4914 1ST ELEMENT -1.6369 -0.6290 -0.1582 0.5205 0.1175 0.0250 0.0046 0.0007 0.0001 0.0000 + ELEMENT # 2 -1.6097 -0.6014 -0.1173 0.5755 0.1558 0.0379 0.0075 0.0012 0.0001 0.0000 + +E = 3.6751 1ST ELEMENT -1.6817 -0.6613 -0.1568 0.5598 0.1333 0.0299 0.0057 0.0009 0.0001 0.0000 + ELEMENT # 2 -1.6540 -0.6342 -0.1188 0.6110 0.1740 0.0448 0.0093 0.0015 0.0002 0.0000 + +E = 3.8589 1ST ELEMENT -1.7246 -0.6926 -0.1564 0.5972 0.1496 0.0352 0.0071 0.0012 0.0002 0.0000 + ELEMENT # 2 -1.6965 -0.6656 -0.1209 0.6447 0.1921 0.0523 0.0115 0.0020 0.0003 0.0000 + +E = 4.0426 1ST ELEMENT -1.7658 -0.7229 -0.1568 0.6327 0.1662 0.0410 0.0087 0.0015 0.0002 0.0000 + ELEMENT # 2 -1.7372 -0.6959 -0.1234 0.6767 0.2101 0.0603 0.0140 0.0026 0.0004 0.0001 + +E = 4.2264 1ST ELEMENT -1.8054 -0.7522 -0.1580 0.6663 0.1830 0.0472 0.0105 0.0019 0.0003 0.0000 + ELEMENT # 2 -1.7764 -0.7250 -0.1261 0.7073 0.2277 0.0687 0.0168 0.0033 0.0005 0.0001 + +E = 4.4101 1ST ELEMENT -1.8435 -0.7806 -0.1597 0.6981 0.1999 0.0538 0.0125 0.0024 0.0004 0.0001 + ELEMENT # 2 -1.8141 -0.7530 -0.1290 0.7367 0.2449 0.0774 0.0199 0.0041 0.0007 0.0001 + +E = 4.5939 1ST ELEMENT -1.8803 -0.8081 -0.1620 0.7282 0.2168 0.0607 0.0147 0.0030 0.0005 0.0001 + ELEMENT # 2 -1.8505 -0.7801 -0.1320 0.7650 0.2616 0.0864 0.0233 0.0050 0.0009 0.0001 + +E = 4.7777 1ST ELEMENT -1.9158 -0.8347 -0.1646 0.7568 0.2336 0.0680 0.0171 0.0036 0.0006 0.0001 + ELEMENT # 2 -1.8858 -0.8064 -0.1351 0.7922 0.2777 0.0957 0.0270 0.0061 0.0011 0.0002 + +E = 4.9614 1ST ELEMENT -1.9501 -0.8606 -0.1675 0.7840 0.2501 0.0757 0.0198 0.0044 0.0008 0.0001 + ELEMENT # 2 -1.9199 -0.8318 -0.1381 0.8186 0.2933 0.1050 0.0310 0.0073 0.0014 0.0002 + +E = 5.1452 1ST ELEMENT -1.9833 -0.8856 -0.1706 0.8099 0.2664 0.0835 0.0227 0.0052 0.0010 0.0002 + ELEMENT # 2 -1.9531 -0.8565 -0.1412 0.8442 0.3083 0.1145 0.0353 0.0087 0.0017 0.0003 + +E = 5.3289 1ST ELEMENT -2.0154 -0.9099 -0.1739 0.8347 0.2823 0.0916 0.0257 0.0062 0.0012 0.0002 + ELEMENT # 2 -1.9853 -0.8805 -0.1444 0.8690 0.3228 0.1239 0.0398 0.0102 0.0021 0.0003 + +E = 5.5127 1ST ELEMENT -2.0466 -0.9335 -0.1774 0.8585 0.2978 0.0999 0.0291 0.0072 0.0015 0.0003 + ELEMENT # 2 -2.0166 -0.9039 -0.1475 0.8930 0.3367 0.1333 0.0446 0.0119 0.0025 0.0004 + +E = 5.6964 1ST ELEMENT -2.0768 -0.9563 -0.1809 0.8814 0.3130 0.1084 0.0326 0.0083 0.0018 0.0003 + ELEMENT # 2 -2.0471 -0.9267 -0.1507 0.9163 0.3502 0.1426 0.0495 0.0138 0.0031 0.0006 + +E = 5.8802 1ST ELEMENT -2.1061 -0.9786 -0.1845 0.9035 0.3277 0.1169 0.0363 0.0096 0.0022 0.0004 + ELEMENT # 2 -2.0769 -0.9489 -0.1540 0.9387 0.3633 0.1518 0.0547 0.0158 0.0037 0.0007 + +E = 6.0639 1ST ELEMENT -2.1346 -1.0002 -0.1882 0.9247 0.3420 0.1255 0.0401 0.0110 0.0025 0.0005 + ELEMENT # 2 -2.1059 -0.9707 -0.1573 0.9605 0.3759 0.1608 0.0600 0.0180 0.0043 0.0008 + +E = 6.2477 1ST ELEMENT -2.1624 -1.0213 -0.1918 0.9453 0.3558 0.1341 0.0442 0.0125 0.0030 0.0006 + ELEMENT # 2 -2.1342 -0.9920 -0.1606 0.9814 0.3883 0.1697 0.0654 0.0204 0.0051 0.0010 + +E = 6.4315 1ST ELEMENT -2.1894 -1.0418 -0.1954 0.9653 0.3692 0.1428 0.0484 0.0141 0.0035 0.0007 + ELEMENT # 2 -2.1618 -1.0129 -0.1641 1.0016 0.4003 0.1783 0.0709 0.0229 0.0059 0.0012 + +E = 6.6152 1ST ELEMENT -2.2158 -1.0618 -0.1990 0.9846 0.3822 0.1515 0.0528 0.0158 0.0040 0.0009 + ELEMENT # 2 -2.1888 -1.0333 -0.1676 1.0210 0.4121 0.1867 0.0765 0.0256 0.0068 0.0015 + +E = 6.7990 1ST ELEMENT -2.2415 -1.0813 -0.2026 1.0033 0.3948 0.1601 0.0573 0.0176 0.0046 0.0010 + ELEMENT # 2 -2.2152 -1.0533 -0.1712 1.0396 0.4236 0.1949 0.0821 0.0284 0.0079 0.0018 + +E = 6.9827 1ST ELEMENT -2.2666 -1.1004 -0.2061 1.0215 0.4070 0.1686 0.0619 0.0196 0.0053 0.0012 + ELEMENT # 2 -2.2410 -1.0729 -0.1749 1.0576 0.4349 0.2028 0.0877 0.0313 0.0090 0.0021 + +E = 7.1665 1ST ELEMENT -2.2911 -1.1190 -0.2096 1.0391 0.4188 0.1771 0.0666 0.0217 0.0060 0.0014 + ELEMENT # 2 -2.2663 -1.0921 -0.1786 1.0748 0.4461 0.2106 0.0933 0.0344 0.0102 0.0024 + +E = 7.3502 1ST ELEMENT -2.3151 -1.1372 -0.2130 1.0562 0.4302 0.1854 0.0714 0.0238 0.0068 0.0017 + ELEMENT # 2 -2.2909 -1.1110 -0.1825 1.0914 0.4571 0.2181 0.0989 0.0376 0.0115 0.0028 + +E = 7.5340 1ST ELEMENT -2.3385 -1.1549 -0.2165 1.0728 0.4413 0.1937 0.0763 0.0261 0.0077 0.0019 + ELEMENT # 2 -2.3151 -1.1294 -0.1863 1.1072 0.4678 0.2255 0.1045 0.0409 0.0129 0.0033 + +E = 7.7178 1ST ELEMENT -2.3615 -1.1724 -0.2199 1.0889 0.4521 0.2018 0.0813 0.0285 0.0086 0.0022 + ELEMENT # 2 -2.3387 -1.1475 -0.1903 1.1225 0.4785 0.2326 0.1100 0.0443 0.0144 0.0038 + +E = 7.9015 1ST ELEMENT -2.3840 -1.1894 -0.2232 1.1045 0.4627 0.2098 0.0863 0.0309 0.0096 0.0025 + ELEMENT # 2 -2.3618 -1.1653 -0.1942 1.1372 0.4889 0.2397 0.1154 0.0477 0.0160 0.0043 + +E = 8.0853 1ST ELEMENT -2.4061 -1.2062 -0.2266 1.1196 0.4729 0.2176 0.0913 0.0335 0.0106 0.0029 + ELEMENT # 2 -2.3844 -1.1826 -0.1982 1.1514 0.4993 0.2465 0.1207 0.0513 0.0177 0.0049 + +E = 8.2690 1ST ELEMENT -2.4277 -1.2226 -0.2299 1.1342 0.4829 0.2253 0.0964 0.0361 0.0117 0.0033 + ELEMENT # 2 -2.4066 -1.1997 -0.2022 1.1650 0.5094 0.2533 0.1259 0.0548 0.0195 0.0056 + +E = 8.4528 1ST ELEMENT -2.4490 -1.2387 -0.2331 1.1484 0.4927 0.2328 0.1015 0.0388 0.0129 0.0037 + ELEMENT # 2 -2.4283 -1.2164 -0.2062 1.1782 0.5194 0.2599 0.1311 0.0585 0.0214 0.0063 + +E = 8.6365 1ST ELEMENT -2.4698 -1.2545 -0.2364 1.1621 0.5022 0.2402 0.1066 0.0416 0.0141 0.0041 + ELEMENT # 2 -2.4496 -1.2328 -0.2102 1.1910 0.5292 0.2664 0.1361 0.0621 0.0233 0.0071 + +E = 8.8203 1ST ELEMENT -2.4903 -1.2701 -0.2397 1.1753 0.5116 0.2474 0.1118 0.0445 0.0154 0.0046 + ELEMENT # 2 -2.4704 -1.2489 -0.2142 1.2033 0.5388 0.2728 0.1410 0.0657 0.0254 0.0079 + +E = 9.0040 1ST ELEMENT -2.5104 -1.2854 -0.2430 1.1881 0.5207 0.2544 0.1169 0.0474 0.0168 0.0052 + ELEMENT # 2 -2.4908 -1.2647 -0.2181 1.2153 0.5482 0.2792 0.1458 0.0694 0.0275 0.0088 + +E = 9.1878 1ST ELEMENT -2.5302 -1.3004 -0.2462 1.2004 0.5297 0.2613 0.1220 0.0504 0.0182 0.0057 + ELEMENT # 2 -2.5109 -1.2801 -0.2221 1.2269 0.5575 0.2854 0.1506 0.0731 0.0297 0.0098 + +E = 9.3716 1ST ELEMENT -2.5497 -1.3152 -0.2495 1.2123 0.5386 0.2681 0.1270 0.0534 0.0197 0.0063 + ELEMENT # 2 -2.5305 -1.2953 -0.2259 1.2381 0.5665 0.2916 0.1552 0.0767 0.0319 0.0108 + +E = 9.5553 1ST ELEMENT -2.5689 -1.3298 -0.2528 1.2238 0.5473 0.2747 0.1321 0.0565 0.0213 0.0070 + ELEMENT # 2 -2.5498 -1.3102 -0.2298 1.2490 0.5754 0.2978 0.1597 0.0803 0.0342 0.0118 + +E = 9.7391 1ST ELEMENT -2.5877 -1.3442 -0.2561 1.2349 0.5558 0.2811 0.1371 0.0596 0.0229 0.0076 + ELEMENT # 2 -2.5688 -1.3248 -0.2336 1.2597 0.5840 0.3039 0.1642 0.0839 0.0366 0.0130 + +E = 9.9228 1ST ELEMENT -2.6063 -1.3583 -0.2594 1.2455 0.5643 0.2874 0.1420 0.0628 0.0245 0.0084 + ELEMENT # 2 -2.5874 -1.3392 -0.2373 1.2700 0.5925 0.3099 0.1685 0.0874 0.0390 0.0142 + +E = 10.1066 1ST ELEMENT -2.6246 -1.3723 -0.2627 1.2558 0.5726 0.2936 0.1469 0.0660 0.0262 0.0091 + ELEMENT # 2 -2.6057 -1.3533 -0.2410 1.2800 0.6008 0.3159 0.1728 0.0909 0.0414 0.0155 + +E = 10.2903 1ST ELEMENT -2.6426 -1.3861 -0.2661 1.2658 0.5808 0.2996 0.1518 0.0692 0.0280 0.0099 + ELEMENT # 2 -2.6237 -1.3671 -0.2446 1.2898 0.6088 0.3218 0.1771 0.0943 0.0439 0.0168 + +E = 10.4741 1ST ELEMENT -2.6603 -1.3997 -0.2694 1.2753 0.5889 0.3055 0.1566 0.0725 0.0298 0.0108 + ELEMENT # 2 -2.6414 -1.3807 -0.2482 1.2993 0.6168 0.3276 0.1812 0.0977 0.0464 0.0181 + +E = 10.6578 1ST ELEMENT -2.6778 -1.4130 -0.2728 1.2846 0.5969 0.3113 0.1613 0.0757 0.0316 0.0117 + ELEMENT # 2 -2.6588 -1.3942 -0.2518 1.3085 0.6245 0.3334 0.1853 0.1011 0.0489 0.0196 + +E = 10.8416 1ST ELEMENT -2.6950 -1.4262 -0.2762 1.2935 0.6048 0.3170 0.1660 0.0790 0.0335 0.0126 + ELEMENT # 2 -2.6759 -1.4073 -0.2553 1.3174 0.6321 0.3392 0.1894 0.1043 0.0514 0.0210 + +E = 11.0254 1ST ELEMENT -2.7120 -1.4393 -0.2796 1.3022 0.6126 0.3226 0.1706 0.0823 0.0354 0.0135 + ELEMENT # 2 -2.6928 -1.4203 -0.2587 1.3261 0.6395 0.3448 0.1934 0.1076 0.0539 0.0226 + +E = 11.2091 1ST ELEMENT -2.7287 -1.4521 -0.2830 1.3105 0.6202 0.3280 0.1751 0.0856 0.0374 0.0145 + ELEMENT # 2 -2.7094 -1.4331 -0.2621 1.3345 0.6468 0.3505 0.1974 0.1107 0.0564 0.0241 + +E = 11.3929 1ST ELEMENT -2.7452 -1.4648 -0.2864 1.3186 0.6278 0.3334 0.1796 0.0889 0.0394 0.0155 + ELEMENT # 2 -2.7258 -1.4457 -0.2656 1.3427 0.6539 0.3560 0.2014 0.1139 0.0589 0.0257 + +E = 11.5766 1ST ELEMENT -2.7614 -1.4773 -0.2898 1.3264 0.6353 0.3387 0.1840 0.0922 0.0414 0.0166 + ELEMENT # 2 -2.7420 -1.4581 -0.2689 1.3507 0.6609 0.3614 0.2053 0.1169 0.0614 0.0274 + +E = 11.7604 1ST ELEMENT -2.7775 -1.4897 -0.2932 1.3340 0.6427 0.3439 0.1883 0.0955 0.0435 0.0177 + ELEMENT # 2 -2.7579 -1.4704 -0.2723 1.3583 0.6677 0.3668 0.2092 0.1199 0.0639 0.0291 + +E = 11.9441 1ST ELEMENT -2.7933 -1.5019 -0.2966 1.3414 0.6499 0.3490 0.1925 0.0988 0.0456 0.0188 + ELEMENT # 2 -2.7736 -1.4825 -0.2756 1.3658 0.6745 0.3721 0.2131 0.1229 0.0664 0.0308 + +E = 12.1279 1ST ELEMENT -2.8089 -1.5139 -0.3000 1.3485 0.6571 0.3540 0.1967 0.1021 0.0477 0.0200 + ELEMENT # 2 -2.7891 -1.4944 -0.2789 1.3730 0.6812 0.3774 0.2169 0.1258 0.0689 0.0325 + +E = 12.3117 1ST ELEMENT -2.8242 -1.5258 -0.3034 1.3554 0.6641 0.3590 0.2008 0.1054 0.0498 0.0212 + ELEMENT # 2 -2.8044 -1.5062 -0.2822 1.3800 0.6877 0.3825 0.2208 0.1287 0.0713 0.0343 + +E = 12.4954 1ST ELEMENT -2.8394 -1.5375 -0.3068 1.3622 0.6711 0.3640 0.2049 0.1086 0.0520 0.0224 + ELEMENT # 2 -2.8196 -1.5178 -0.2855 1.3867 0.6942 0.3875 0.2246 0.1316 0.0737 0.0361 + +E = 12.6792 1ST ELEMENT -2.8543 -1.5490 -0.3101 1.3687 0.6779 0.3688 0.2088 0.1119 0.0542 0.0237 + ELEMENT # 2 -2.8345 -1.5293 -0.2888 1.3933 0.7005 0.3925 0.2284 0.1344 0.0761 0.0379 + +E = 12.8629 1ST ELEMENT -2.8691 -1.5604 -0.3135 1.3752 0.6846 0.3736 0.2127 0.1151 0.0564 0.0249 + ELEMENT # 2 -2.8492 -1.5407 -0.2920 1.3996 0.7068 0.3974 0.2321 0.1371 0.0784 0.0397 + +E = 13.0467 1ST ELEMENT -2.8836 -1.5717 -0.3168 1.3814 0.6912 0.3784 0.2166 0.1183 0.0586 0.0262 + ELEMENT # 2 -2.8638 -1.5519 -0.2953 1.4058 0.7130 0.4022 0.2359 0.1399 0.0807 0.0415 + +E = 13.2304 1ST ELEMENT -2.8979 -1.5828 -0.3201 1.3875 0.6977 0.3831 0.2203 0.1214 0.0608 0.0276 + ELEMENT # 2 -2.8782 -1.5630 -0.2985 1.4117 0.7191 0.4069 0.2396 0.1426 0.0830 0.0433 + +E = 13.4142 1ST ELEMENT -2.9121 -1.5937 -0.3234 1.3934 0.7040 0.3878 0.2240 0.1246 0.0630 0.0289 + ELEMENT # 2 -2.8924 -1.5740 -0.3018 1.4175 0.7251 0.4115 0.2433 0.1454 0.0852 0.0451 + +E = 13.5979 1ST ELEMENT -2.9260 -1.6045 -0.3266 1.3993 0.7103 0.3925 0.2277 0.1277 0.0653 0.0303 + ELEMENT # 2 -2.9065 -1.5848 -0.3050 1.4230 0.7311 0.4161 0.2470 0.1480 0.0874 0.0470 + +E = 13.7817 1ST ELEMENT -2.9398 -1.6152 -0.3298 1.4049 0.7164 0.3971 0.2312 0.1308 0.0675 0.0317 + ELEMENT # 2 -2.9204 -1.5955 -0.3083 1.4285 0.7370 0.4206 0.2506 0.1507 0.0896 0.0488 + +E = 13.9655 1ST ELEMENT -2.9534 -1.6257 -0.3330 1.4105 0.7224 0.4017 0.2348 0.1338 0.0698 0.0331 + ELEMENT # 2 -2.9341 -1.6061 -0.3115 1.4337 0.7428 0.4250 0.2542 0.1534 0.0917 0.0506 + +E = 14.1492 1ST ELEMENT -2.9668 -1.6360 -0.3361 1.4159 0.7283 0.4062 0.2382 0.1368 0.0721 0.0346 + ELEMENT # 2 -2.9476 -1.6166 -0.3147 1.4388 0.7485 0.4294 0.2578 0.1560 0.0939 0.0524 + +E = 14.3330 1ST ELEMENT -2.9800 -1.6463 -0.3392 1.4212 0.7341 0.4107 0.2417 0.1398 0.0744 0.0360 + ELEMENT # 2 -2.9610 -1.6270 -0.3180 1.4438 0.7542 0.4336 0.2613 0.1587 0.0959 0.0542 + +E = 14.5167 1ST ELEMENT -2.9931 -1.6564 -0.3423 1.4264 0.7398 0.4152 0.2450 0.1427 0.0766 0.0375 + ELEMENT # 2 -2.9743 -1.6372 -0.3212 1.4487 0.7598 0.4379 0.2648 0.1613 0.0980 0.0560 + +E = 14.7005 1ST ELEMENT -3.0060 -1.6663 -0.3453 1.4314 0.7453 0.4197 0.2483 0.1457 0.0789 0.0390 + ELEMENT # 2 -2.9874 -1.6473 -0.3243 1.4534 0.7653 0.4420 0.2683 0.1639 0.1000 0.0577 + +E = 14.8842 1ST ELEMENT -3.0187 -1.6762 -0.3483 1.4364 0.7508 0.4241 0.2516 0.1485 0.0812 0.0405 + ELEMENT # 2 -3.0003 -1.6574 -0.3275 1.4580 0.7708 0.4461 0.2717 0.1666 0.1021 0.0595 + +E = 15.0680 1ST ELEMENT -3.0313 -1.6859 -0.3513 1.4412 0.7561 0.4284 0.2549 0.1514 0.0835 0.0420 + ELEMENT # 2 -3.0131 -1.6673 -0.3307 1.4625 0.7761 0.4502 0.2751 0.1692 0.1041 0.0612 + +E = 15.2517 1ST ELEMENT -3.0437 -1.6955 -0.3542 1.4460 0.7614 0.4328 0.2581 0.1541 0.0857 0.0436 + ELEMENT # 2 -3.0258 -1.6771 -0.3338 1.4668 0.7814 0.4542 0.2784 0.1718 0.1060 0.0629 + +E = 15.4355 1ST ELEMENT -3.0560 -1.7049 -0.3570 1.4506 0.7665 0.4371 0.2612 0.1569 0.0880 0.0451 + ELEMENT # 2 -3.0383 -1.6868 -0.3369 1.4711 0.7866 0.4582 0.2817 0.1744 0.1080 0.0646 + +E = 15.6193 1ST ELEMENT -3.0681 -1.7143 -0.3599 1.4551 0.7716 0.4414 0.2644 0.1596 0.0903 0.0467 + ELEMENT # 2 -3.0507 -1.6963 -0.3400 1.4753 0.7917 0.4622 0.2849 0.1770 0.1099 0.0663 + +E = 15.8030 1ST ELEMENT -3.0801 -1.7235 -0.3627 1.4595 0.7766 0.4456 0.2675 0.1623 0.0925 0.0483 + ELEMENT # 2 -3.0629 -1.7058 -0.3431 1.4793 0.7968 0.4661 0.2881 0.1795 0.1119 0.0679 + +E = 15.9868 1ST ELEMENT -3.0919 -1.7326 -0.3655 1.4638 0.7814 0.4498 0.2706 0.1649 0.0947 0.0498 + ELEMENT # 2 -3.0750 -1.7152 -0.3461 1.4833 0.8017 0.4699 0.2913 0.1821 0.1138 0.0695 + +E = 16.1705 1ST ELEMENT -3.1037 -1.7416 -0.3682 1.4679 0.7862 0.4539 0.2736 0.1675 0.0970 0.0514 + ELEMENT # 2 -3.0869 -1.7244 -0.3492 1.4872 0.8066 0.4738 0.2944 0.1847 0.1157 0.0712 + +E = 16.3543 1ST ELEMENT -3.1152 -1.7506 -0.3710 1.4720 0.7910 0.4581 0.2767 0.1701 0.0992 0.0530 + ELEMENT # 2 -3.0987 -1.7336 -0.3522 1.4910 0.8114 0.4775 0.2974 0.1872 0.1176 0.0727 + +E = 16.5380 1ST ELEMENT -3.1267 -1.7594 -0.3737 1.4759 0.7956 0.4621 0.2797 0.1726 0.1014 0.0547 + ELEMENT # 2 -3.1104 -1.7426 -0.3551 1.4948 0.8161 0.4813 0.3004 0.1898 0.1195 0.0743 + +E = 16.7218 1ST ELEMENT -3.1381 -1.7681 -0.3763 1.4798 0.8002 0.4661 0.2827 0.1751 0.1036 0.0563 + ELEMENT # 2 -3.1219 -1.7516 -0.3580 1.4985 0.8207 0.4851 0.3034 0.1923 0.1214 0.0759 + +E = 16.9055 1ST ELEMENT -3.1493 -1.7767 -0.3790 1.4835 0.8047 0.4701 0.2857 0.1775 0.1058 0.0579 + ELEMENT # 2 -3.1334 -1.7604 -0.3609 1.5020 0.8253 0.4888 0.3064 0.1948 0.1233 0.0774 + +E = 17.0893 1ST ELEMENT -3.1604 -1.7852 -0.3816 1.4872 0.8092 0.4740 0.2887 0.1799 0.1079 0.0595 + ELEMENT # 2 -3.1447 -1.7691 -0.3638 1.5055 0.8297 0.4925 0.3093 0.1973 0.1252 0.0789 + +E = 17.2731 1ST ELEMENT -3.1714 -1.7937 -0.3842 1.4907 0.8135 0.4779 0.2916 0.1823 0.1100 0.0612 + ELEMENT # 2 -3.1558 -1.7778 -0.3667 1.5090 0.8341 0.4962 0.3121 0.1997 0.1270 0.0804 + +E = 17.4568 1ST ELEMENT -3.1823 -1.8021 -0.3869 1.4941 0.8179 0.4817 0.2945 0.1846 0.1122 0.0628 + ELEMENT # 2 -3.1669 -1.7863 -0.3695 1.5123 0.8384 0.4998 0.3149 0.2022 0.1289 0.0819 + +E = 17.6406 1ST ELEMENT -3.1931 -1.8103 -0.3895 1.4975 0.8222 0.4855 0.2975 0.1870 0.1143 0.0645 + ELEMENT # 2 -3.1778 -1.7948 -0.3723 1.5156 0.8427 0.5034 0.3177 0.2046 0.1308 0.0833 + +E = 17.8243 1ST ELEMENT -3.2038 -1.8185 -0.3920 1.5007 0.8264 0.4892 0.3004 0.1893 0.1163 0.0661 + ELEMENT # 2 -3.1887 -1.8031 -0.3750 1.5188 0.8468 0.5070 0.3205 0.2070 0.1327 0.0848 + +E = 18.0081 1ST ELEMENT -3.2144 -1.8267 -0.3946 1.5038 0.8306 0.4929 0.3033 0.1915 0.1184 0.0678 + ELEMENT # 2 -3.1994 -1.8114 -0.3778 1.5219 0.8510 0.5106 0.3232 0.2094 0.1346 0.0862 + +E = 18.1918 1ST ELEMENT -3.2249 -1.8347 -0.3972 1.5069 0.8347 0.4965 0.3062 0.1938 0.1204 0.0694 + ELEMENT # 2 -3.2100 -1.8196 -0.3805 1.5249 0.8550 0.5141 0.3259 0.2117 0.1364 0.0877 + +E = 18.3756 1ST ELEMENT -3.2354 -1.8427 -0.3997 1.5099 0.8388 0.5000 0.3091 0.1960 0.1224 0.0711 + ELEMENT # 2 -3.2205 -1.8277 -0.3832 1.5279 0.8590 0.5176 0.3286 0.2140 0.1383 0.0891 + +E = 18.5594 1ST ELEMENT -3.2457 -1.8507 -0.4023 1.5128 0.8429 0.5035 0.3120 0.1982 0.1244 0.0727 + ELEMENT # 2 -3.2309 -1.8357 -0.3858 1.5308 0.8629 0.5211 0.3313 0.2163 0.1402 0.0905 + + SURF VECS 2.5561 0.0000 + 0.0000 2.5561 + + SURF VECS 2.5561 0.0000 + 0.0000 2.5561 + NL1 = 1 NL2 = 1 + + Interlayer Vectors + + ASA 1 1.8075 0.0000 0.0000 + NTAU = 2 1 1 + + PHASE SHIFT ASSIGNMENT IN COMPOSITE LAYER No. 1 1 2 2 2 + + PHASE SHIFT ASSIGNMENT IN COMPOSITE LAYER No. 2 2 + + PHASE SHIFT ASSIGNMENT IN COMPOSITE LAYER No. 3 2 + + COMPOSITE LAYER VECTOR 0.0100 0.0000 0.0000 + + COMPOSITE LAYER VECTOR 1.7775 1.2781 1.2781 + + COMPOSITE LAYER VECTOR 3.6050 0.0000 0.0000 + + COMPOSITE LAYER VECTOR 5.4125 1.2781 1.2781 + + ASB 1 1.8175 0.0000 0.0000 + + COORDINATES AFTER SORTING + X Y Z + 0.0100 0.0000 0.0000 + 1.7775 1.2781 1.2781 + 3.6050 0.0000 0.0000 + 5.4125 1.2781 1.2781 + + COMPOSITE LAYER VECTOR 7.2300 0.0000 0.0000 + + ASB 2 1.8075 0.0000 0.0000 + + COORDINATES AFTER SORTING + X Y Z + 7.2300 0.0000 0.0000 + + COMPOSITE LAYER VECTOR 9.0375 1.2781 1.2781 + + ASB 3 1.8075 0.0000 0.0000 + + COORDINATES AFTER SORTING + X Y Z + 9.0375 1.2781 1.2781 + + Calculating for Exit Beams; + =========================== + 1.0000 0.0000 + 1.0000 2.0000 + 1.0000 1.0000 + 2.0000 2.0000 + 2.0000 0.0000 + + Initial Coordinates in Search + ============================= + 0.0000 0.0000 0.0000 + 0.0000 0.0000 0.0000 + 0.0000 0.0000 0.0000 + 0.0000 0.0000 0.0000 + + Direction Set with Principal Directions Requested + + Search Information; + + ALPHA = 1.0000 BETA = 0.5000 GAMMA = 2.0000 + + Max. Number of Iterations =100 + NUMBER OF ELEMENTS IN Q IS 15 + TEMP = 130.0000 + BEAMGENERATION CODE + =================== + + + STARTING LOOP OVER ENERGIES + + +==================================================== + + CALCULATING FOR E= 100.000000 + +==================================================== + + VPIS = -0.1838 VPIO = -0.1838 DCUTS = 60.7606 DCUTO = 60.7606 +0 5 SYMMETRIC BEAMS USED 5 + 0.000 0.000 0.000 1.000 1.000 1.000 0.000 2.000 1.000 2.000 + + RFS CONVERGENCE TEST + IMAX = 8 BNORM = 0.1650E-02 ANORM = 0.2668E-01 + IMAX = 3 BNORM = 0.5807E-03 ANORM = 0.2668E-01 + E= 3.8956 THETA= 0.0000 FI= 0.0000 + + PQ1 PQ2 REF INT + 0.000 0.000 0.93657E-02 + 0.000 1.000 0.12008E-02 + 1.000 1.000 0.18834E-03 + 0.000 2.000 0.42003E-02 + + RFS CONVERGENCE TEST + IMAX = 7 BNORM = 0.1228E-02 ANORM = 0.1166E+00 + IMAX = 3 BNORM = 0.1008E-02 ANORM = 0.1166E+00 + + RFS CONVERGENCE TEST + IMAX = 9 BNORM = 0.8570E-03 ANORM = 0.5840E-01 + IMAX = 3 BNORM = 0.1305E-02 ANORM = 0.5840E-01 + + RFS CONVERGENCE TEST + IMAX = 6 BNORM = 0.1353E-02 ANORM = 0.4658E-01 + IMAX = 3 BNORM = 0.2691E-03 ANORM = 0.4658E-01 + CALCULATING FOR E= 104.000000 + +==================================================== + + VPIS = -0.1838 VPIO = -0.1838 DCUTS = 61.8964 DCUTO = 61.8964 +0 5 SYMMETRIC BEAMS USED 5 + 0.000 0.000 0.000 1.000 1.000 1.000 0.000 2.000 1.000 2.000 + + RFS CONVERGENCE TEST + IMAX = 9 BNORM = 0.1219E-02 ANORM = 0.1473E-01 + IMAX = 3 BNORM = 0.6088E-03 ANORM = 0.1473E-01 + E= 4.0426 THETA= 0.0000 FI= 0.0000 + + PQ1 PQ2 REF INT + 0.000 0.000 0.17643E-02 + 0.000 1.000 0.10291E-02 + 1.000 1.000 0.47938E-03 + 0.000 2.000 0.29629E-02 + + RFS CONVERGENCE TEST + IMAX = 5 BNORM = 0.1934E-02 ANORM = 0.1176E+00 + IMAX = 3 BNORM = 0.5398E-03 ANORM = 0.1176E+00 + + RFS CONVERGENCE TEST + IMAX = 9 BNORM = 0.9206E-03 ANORM = 0.7265E-01 + IMAX = 3 BNORM = 0.1218E-02 ANORM = 0.7265E-01 + + RFS CONVERGENCE TEST + IMAX = 6 BNORM = 0.1389E-02 ANORM = 0.4358E-01 + IMAX = 3 BNORM = 0.2961E-03 ANORM = 0.4358E-01 + CALCULATING FOR E= 108.000000 + +==================================================== + + VPIS = -0.1838 VPIO = -0.1838 DCUTS = 63.0118 DCUTO = 63.0118 +0 5 SYMMETRIC BEAMS USED 5 + 0.000 0.000 0.000 1.000 1.000 1.000 0.000 2.000 1.000 2.000 + + RFS CONVERGENCE TEST + IMAX = 9 BNORM = 0.1150E-02 ANORM = 0.1558E-01 + IMAX = 3 BNORM = 0.8180E-03 ANORM = 0.1558E-01 + E= 4.1896 THETA= 0.0000 FI= 0.0000 + + PQ1 PQ2 REF INT + 0.000 0.000 0.20425E-02 + 0.000 1.000 0.73731E-03 + 1.000 1.000 0.13321E-02 + 0.000 2.000 0.20858E-02 + + RFS CONVERGENCE TEST + IMAX = 5 BNORM = 0.1833E-02 ANORM = 0.1473E+00 + IMAX = 3 BNORM = 0.1805E-03 ANORM = 0.1473E+00 + + RFS CONVERGENCE TEST + IMAX = 8 BNORM = 0.1803E-02 ANORM = 0.1002E+00 + IMAX = 4 BNORM = 0.1465E-02 ANORM = 0.1002E+00 + + RFS CONVERGENCE TEST + IMAX = 7 BNORM = 0.1113E-02 ANORM = 0.4966E-01 + IMAX = 3 BNORM = 0.3075E-03 ANORM = 0.4966E-01 + CALCULATING FOR E= 112.000000 + +==================================================== + + VPIS = -0.1838 VPIO = -0.1838 DCUTS = 64.1077 DCUTO = 64.1077 +0 5 SYMMETRIC BEAMS USED 5 + 0.000 0.000 0.000 1.000 1.000 1.000 0.000 2.000 1.000 2.000 + + RFS CONVERGENCE TEST + IMAX = 8 BNORM = 0.1567E-02 ANORM = 0.1945E-01 + IMAX = 3 BNORM = 0.1009E-02 ANORM = 0.1945E-01 + E= 4.3366 THETA= 0.0000 FI= 0.0000 + + PQ1 PQ2 REF INT + 0.000 0.000 0.45781E-02 + 0.000 1.000 0.39768E-03 + 1.000 1.000 0.28643E-02 + 0.000 2.000 0.16351E-02 + + RFS CONVERGENCE TEST + IMAX = 6 BNORM = 0.1234E-02 ANORM = 0.1668E+00 + IMAX = 3 BNORM = 0.2312E-03 ANORM = 0.1668E+00 + + RFS CONVERGENCE TEST + IMAX = 8 BNORM = 0.1531E-02 ANORM = 0.1180E+00 + IMAX = 4 BNORM = 0.1995E-02 ANORM = 0.1180E+00 + + RFS CONVERGENCE TEST + IMAX = 6 BNORM = 0.1700E-02 ANORM = 0.4915E-01 + IMAX = 3 BNORM = 0.3981E-03 ANORM = 0.4915E-01 + CALCULATING FOR E= 116.000000 + +==================================================== + + VPIS = -0.1838 VPIO = -0.1838 DCUTS = 65.1852 DCUTO = 65.1852 +0 5 SYMMETRIC BEAMS USED 5 + 0.000 0.000 0.000 1.000 1.000 1.000 0.000 2.000 1.000 2.000 + + RFS CONVERGENCE TEST + IMAX = 8 BNORM = 0.1416E-02 ANORM = 0.2133E-01 + IMAX = 3 BNORM = 0.1239E-02 ANORM = 0.2133E-01 + E= 4.4836 THETA= 0.0000 FI= 0.0000 + + PQ1 PQ2 REF INT + 0.000 0.000 0.67442E-02 + 0.000 1.000 0.26000E-03 + 1.000 1.000 0.44100E-02 + 0.000 2.000 0.12129E-02 + 1.000 2.000 0.53757E-03 + + RFS CONVERGENCE TEST + IMAX = 7 BNORM = 0.1019E-02 ANORM = 0.1658E+00 + IMAX = 3 BNORM = 0.2730E-03 ANORM = 0.1658E+00 + + RFS CONVERGENCE TEST + IMAX = 5 BNORM = 0.1394E-02 ANORM = 0.7083E-01 + IMAX = 3 BNORM = 0.2124E-03 ANORM = 0.7083E-01 + + RFS CONVERGENCE TEST + IMAX = 8 BNORM = 0.1527E-02 ANORM = 0.1119E+00 + IMAX = 5 BNORM = 0.1530E-02 ANORM = 0.1119E+00 + + RFS CONVERGENCE TEST + IMAX = 6 BNORM = 0.1338E-02 ANORM = 0.3899E-01 + IMAX = 3 BNORM = 0.7599E-03 ANORM = 0.3899E-01 + CALCULATING FOR E= 120.000000 + +==================================================== + + VPIS = -0.1838 VPIO = -0.1838 DCUTS = 66.2452 DCUTO = 66.2452 +0 5 SYMMETRIC BEAMS USED 5 + 0.000 0.000 0.000 1.000 1.000 1.000 0.000 2.000 1.000 2.000 + + RFS CONVERGENCE TEST + IMAX = 8 BNORM = 0.1381E-02 ANORM = 0.2281E-01 + IMAX = 3 BNORM = 0.1448E-02 ANORM = 0.2281E-01 + E= 4.6307 THETA= 0.0000 FI= 0.0000 + + PQ1 PQ2 REF INT + 0.000 0.000 0.90480E-02 + 0.000 1.000 0.56686E-03 + 1.000 1.000 0.46789E-02 + 0.000 2.000 0.79926E-03 + 1.000 2.000 0.11497E-02 + + RFS CONVERGENCE TEST + IMAX = 7 BNORM = 0.1315E-02 ANORM = 0.1686E+00 + IMAX = 3 BNORM = 0.3372E-03 ANORM = 0.1686E+00 + + RFS CONVERGENCE TEST + IMAX = 5 BNORM = 0.1749E-02 ANORM = 0.9153E-01 + IMAX = 3 BNORM = 0.2381E-03 ANORM = 0.9153E-01 + + RFS CONVERGENCE TEST + IMAX = 8 BNORM = 0.1609E-02 ANORM = 0.9638E-01 + IMAX = 4 BNORM = 0.1869E-02 ANORM = 0.9639E-01 + + RFS CONVERGENCE TEST + IMAX = 6 BNORM = 0.1368E-02 ANORM = 0.3139E-01 + IMAX = 3 BNORM = 0.1315E-02 ANORM = 0.3139E-01 + CALCULATING FOR E= 124.000000 + +==================================================== + + VPIS = -0.1838 VPIO = -0.1838 DCUTS = 67.2885 DCUTO = 67.2885 +0 5 SYMMETRIC BEAMS USED 5 + 0.000 0.000 0.000 1.000 1.000 1.000 0.000 2.000 1.000 2.000 + + RFS CONVERGENCE TEST + IMAX = 8 BNORM = 0.1296E-02 ANORM = 0.2638E-01 + IMAX = 3 BNORM = 0.1566E-02 ANORM = 0.2638E-01 + E= 4.7777 THETA= 0.0000 FI= 0.0000 + + PQ1 PQ2 REF INT + 0.000 0.000 0.12018E-01 + 0.000 1.000 0.14123E-02 + 1.000 1.000 0.28760E-02 + 0.000 2.000 0.56180E-03 + 1.000 2.000 0.21484E-02 + + RFS CONVERGENCE TEST + IMAX = 7 BNORM = 0.1553E-02 ANORM = 0.1817E+00 + IMAX = 3 BNORM = 0.4350E-03 ANORM = 0.1817E+00 + + RFS CONVERGENCE TEST + IMAX = 6 BNORM = 0.1103E-02 ANORM = 0.1198E+00 + IMAX = 3 BNORM = 0.2004E-03 ANORM = 0.1198E+00 + + RFS CONVERGENCE TEST + IMAX = 8 BNORM = 0.1650E-02 ANORM = 0.6702E-01 + IMAX = 5 BNORM = 0.1366E-02 ANORM = 0.6704E-01 + + RFS CONVERGENCE TEST + IMAX = 6 BNORM = 0.1787E-02 ANORM = 0.3175E-01 + IMAX = 3 BNORM = 0.1774E-02 ANORM = 0.3175E-01 + CALCULATING FOR E= 128.000000 + +==================================================== + + VPIS = -0.1838 VPIO = -0.1838 DCUTS = 68.3159 DCUTO = 68.3159 +0 5 SYMMETRIC BEAMS USED 5 + 0.000 0.000 0.000 1.000 1.000 1.000 0.000 2.000 1.000 2.000 + + RFS CONVERGENCE TEST + IMAX = 8 BNORM = 0.1207E-02 ANORM = 0.3379E-01 + IMAX = 3 BNORM = 0.1499E-02 ANORM = 0.3379E-01 + E= 4.9247 THETA= 0.0000 FI= 0.0000 + + PQ1 PQ2 REF INT + 0.000 0.000 0.15442E-01 + 0.000 1.000 0.33348E-02 + 1.000 1.000 0.18662E-02 + 0.000 2.000 0.14851E-03 + 1.000 2.000 0.38088E-02 + + RFS CONVERGENCE TEST + IMAX = 7 BNORM = 0.1997E-02 ANORM = 0.2026E+00 + IMAX = 3 BNORM = 0.8259E-03 ANORM = 0.2026E+00 + + RFS CONVERGENCE TEST + IMAX = 6 BNORM = 0.1615E-02 ANORM = 0.1644E+00 + IMAX = 3 BNORM = 0.3025E-03 ANORM = 0.1644E+00 + + RFS CONVERGENCE TEST + IMAX = 8 BNORM = 0.1595E-02 ANORM = 0.5008E-01 + IMAX = 5 BNORM = 0.1556E-02 ANORM = 0.5009E-01 + + RFS CONVERGENCE TEST + IMAX = 7 BNORM = 0.1759E-02 ANORM = 0.3488E-01 + IMAX = 4 BNORM = 0.1487E-02 ANORM = 0.3488E-01 + CALCULATING FOR E= 132.000000 + +==================================================== + + VPIS = -0.1838 VPIO = -0.1838 DCUTS = 69.3280 DCUTO = 69.3280 +0 5 SYMMETRIC BEAMS USED 5 + 0.000 0.000 0.000 1.000 1.000 1.000 0.000 2.000 1.000 2.000 + + RFS CONVERGENCE TEST + IMAX = 8 BNORM = 0.1321E-02 ANORM = 0.3120E-01 + IMAX = 3 BNORM = 0.1080E-02 ANORM = 0.3120E-01 + E= 5.0717 THETA= 0.0000 FI= 0.0000 + + PQ1 PQ2 REF INT + 0.000 0.000 0.11423E-01 + 0.000 1.000 0.58892E-02 + 1.000 1.000 0.12197E-02 + 0.000 2.000 0.61566E-04 + 1.000 2.000 0.42273E-02 + + RFS CONVERGENCE TEST + IMAX = 8 BNORM = 0.1366E-02 ANORM = 0.2250E+00 + IMAX = 3 BNORM = 0.1404E-02 ANORM = 0.2250E+00 + + RFS CONVERGENCE TEST + IMAX = 7 BNORM = 0.1222E-02 ANORM = 0.1773E+00 + IMAX = 3 BNORM = 0.6026E-03 ANORM = 0.1773E+00 + + RFS CONVERGENCE TEST + IMAX = 8 BNORM = 0.1430E-02 ANORM = 0.4812E-01 + IMAX = 5 BNORM = 0.1681E-02 ANORM = 0.4813E-01 + + RFS CONVERGENCE TEST + IMAX = 8 BNORM = 0.1561E-02 ANORM = 0.3785E-01 + IMAX = 3 BNORM = 0.1803E-02 ANORM = 0.3786E-01 + CALCULATING FOR E= 136.000000 + +==================================================== + + VPIS = -0.1838 VPIO = -0.1838 DCUTS = 70.3256 DCUTO = 70.3256 +0 6 SYMMETRIC BEAMS USED 6 + 0.000 0.000 0.000 1.000 1.000 1.000 0.000 2.000 1.000 2.000 2.000 2.000 + + RFS CONVERGENCE TEST + IMAX = 9 BNORM = 0.1414E-02 ANORM = 0.2210E-01 + IMAX = 3 BNORM = 0.1734E-02 ANORM = 0.2210E-01 + E= 5.2187 THETA= 0.0000 FI= 0.0000 + + PQ1 PQ2 REF INT + 0.000 0.000 0.44925E-02 + 0.000 1.000 0.71876E-02 + 1.000 1.000 0.61896E-03 + 0.000 2.000 0.56734E-03 + 1.000 2.000 0.30973E-02 + + RFS CONVERGENCE TEST + IMAX = 9 BNORM = 0.1178E-02 ANORM = 0.2272E+00 + IMAX = 3 BNORM = 0.2115E-02 ANORM = 0.2272E+00 + + RFS CONVERGENCE TEST + IMAX = 8 BNORM = 0.9465E-03 ANORM = 0.1532E+00 + IMAX = 3 BNORM = 0.1457E-02 ANORM = 0.1532E+00 + + RFS CONVERGENCE TEST + IMAX = 9 BNORM = 0.7440E-03 ANORM = 0.5181E-01 + IMAX = 6 BNORM = 0.1838E-02 ANORM = 0.5182E-01 + + RFS CONVERGENCE TEST + IMAX = 9 BNORM = 0.1618E-02 ANORM = 0.4108E-01 + IMAX = 3 BNORM = 0.1896E-02 ANORM = 0.4109E-01 + CALCULATING FOR E= 140.000000 + +==================================================== + + VPIS = -0.1838 VPIO = -0.1838 DCUTS = 71.3092 DCUTO = 71.3092 +0 6 SYMMETRIC BEAMS USED 6 + 0.000 0.000 0.000 1.000 1.000 1.000 0.000 2.000 1.000 2.000 2.000 2.000 + + RFS CONVERGENCE TEST + IMAX = 9 BNORM = 0.1855E-02 ANORM = 0.1719E-01 + IMAX = 3 BNORM = 0.1342E-02 ANORM = 0.1719E-01 + E= 5.3657 THETA= 0.0000 FI= 0.0000 + + PQ1 PQ2 REF INT + 0.000 0.000 0.12047E-02 + 0.000 1.000 0.81221E-02 + 1.000 1.000 0.54479E-03 + 0.000 2.000 0.13621E-02 + 1.000 2.000 0.17776E-02 + + RFS CONVERGENCE TEST + IMAX = 9 BNORM = 0.1478E-02 ANORM = 0.2168E+00 + IMAX = 3 BNORM = 0.1890E-02 ANORM = 0.2168E+00 + + RFS CONVERGENCE TEST + IMAX = 8 BNORM = 0.1360E-02 ANORM = 0.1323E+00 + IMAX = 3 BNORM = 0.1571E-02 ANORM = 0.1323E+00 + + RFS CONVERGENCE TEST + IMAX = 9 BNORM = 0.6386E-03 ANORM = 0.7211E-01 + IMAX = 6 BNORM = 0.1609E-02 ANORM = 0.7212E-01 + + RFS CONVERGENCE TEST + IMAX = 10 BNORM = 0.1575E-02 ANORM = 0.4487E-01 + IMAX = 3 BNORM = 0.1674E-02 ANORM = 0.4488E-01 + CALCULATING FOR E= 144.000000 + +==================================================== + + VPIS = -0.1838 VPIO = -0.1838 DCUTS = 72.2795 DCUTO = 72.2795 +0 6 SYMMETRIC BEAMS USED 6 + 0.000 0.000 0.000 1.000 1.000 1.000 0.000 2.000 1.000 2.000 2.000 2.000 + + RFS CONVERGENCE TEST + IMAX = 10 BNORM = 0.1238E-02 ANORM = 0.1621E-01 + IMAX = 3 BNORM = 0.1426E-02 ANORM = 0.1622E-01 + E= 5.5127 THETA= 0.0000 FI= 0.0000 + + PQ1 PQ2 REF INT + 0.000 0.000 0.14751E-03 + 0.000 1.000 0.98906E-02 + 1.000 1.000 0.84216E-03 + 0.000 2.000 0.15172E-02 + 1.000 2.000 0.71036E-03 + + RFS CONVERGENCE TEST + IMAX = 9 BNORM = 0.1881E-02 ANORM = 0.2178E+00 + IMAX = 3 BNORM = 0.1684E-02 ANORM = 0.2178E+00 + + RFS CONVERGENCE TEST + IMAX = 8 BNORM = 0.1816E-02 ANORM = 0.1138E+00 + IMAX = 3 BNORM = 0.1747E-02 ANORM = 0.1138E+00 + + RFS CONVERGENCE TEST + IMAX = 8 BNORM = 0.1955E-02 ANORM = 0.1036E+00 + IMAX = 5 BNORM = 0.1995E-02 ANORM = 0.1036E+00 + + RFS CONVERGENCE TEST + IMAX = 11 BNORM = 0.9869E-03 ANORM = 0.4141E-01 + IMAX = 3 BNORM = 0.1278E-02 ANORM = 0.4141E-01 + CALCULATING FOR E= 148.000000 + +==================================================== + + VPIS = -0.1838 VPIO = -0.1838 DCUTS = 73.2368 DCUTO = 73.2368 +0 6 SYMMETRIC BEAMS USED 6 + 0.000 0.000 0.000 1.000 1.000 1.000 0.000 2.000 1.000 2.000 2.000 2.000 + + RFS CONVERGENCE TEST + IMAX = 10 BNORM = 0.1473E-02 ANORM = 0.1567E-01 + IMAX = 3 BNORM = 0.1566E-02 ANORM = 0.1567E-01 + E= 5.6597 THETA= 0.0000 FI= 0.0000 + + PQ1 PQ2 REF INT + 0.000 0.000 0.22629E-03 + 0.000 1.000 0.98704E-02 + 1.000 1.000 0.13165E-02 + 0.000 2.000 0.17000E-02 + 1.000 2.000 0.19246E-03 + + RFS CONVERGENCE TEST + IMAX = 10 BNORM = 0.1701E-02 ANORM = 0.1984E+00 + IMAX = 3 BNORM = 0.1628E-02 ANORM = 0.1984E+00 + + RFS CONVERGENCE TEST + IMAX = 9 BNORM = 0.1562E-02 ANORM = 0.9922E-01 + IMAX = 3 BNORM = 0.1840E-02 ANORM = 0.9922E-01 + + RFS CONVERGENCE TEST + IMAX = 8 BNORM = 0.1720E-02 ANORM = 0.1229E+00 + IMAX = 3 BNORM = 0.1805E-02 ANORM = 0.1229E+00 + + RFS CONVERGENCE TEST + IMAX = 11 BNORM = 0.1367E-02 ANORM = 0.3840E-01 + IMAX = 3 BNORM = 0.8802E-03 ANORM = 0.3840E-01 + CALCULATING FOR E= 152.000000 + +==================================================== + + VPIS = -0.1838 VPIO = -0.1838 DCUTS = 74.1819 DCUTO = 74.1819 +0 6 SYMMETRIC BEAMS USED 6 + 0.000 0.000 0.000 1.000 1.000 1.000 0.000 2.000 1.000 2.000 2.000 2.000 + + RFS CONVERGENCE TEST + IMAX = 10 BNORM = 0.1814E-02 ANORM = 0.1446E-01 + IMAX = 3 BNORM = 0.1274E-02 ANORM = 0.1447E-01 + E= 5.8067 THETA= 0.0000 FI= 0.0000 + + PQ1 PQ2 REF INT + 0.000 0.000 0.18278E-02 + 0.000 1.000 0.70865E-02 + 1.000 1.000 0.17262E-02 + 0.000 2.000 0.15843E-02 + 1.000 2.000 0.16117E-03 + + RFS CONVERGENCE TEST + IMAX = 10 BNORM = 0.1985E-02 ANORM = 0.1532E+00 + IMAX = 3 BNORM = 0.1903E-02 ANORM = 0.1532E+00 + + RFS CONVERGENCE TEST + IMAX = 9 BNORM = 0.1670E-02 ANORM = 0.9292E-01 + IMAX = 3 BNORM = 0.1718E-02 ANORM = 0.9292E-01 + + RFS CONVERGENCE TEST + IMAX = 8 BNORM = 0.1312E-02 ANORM = 0.1215E+00 + IMAX = 3 BNORM = 0.9069E-03 ANORM = 0.1216E+00 + + RFS CONVERGENCE TEST + IMAX = 11 BNORM = 0.1817E-02 ANORM = 0.3835E-01 + IMAX = 3 BNORM = 0.6504E-03 ANORM = 0.3835E-01 + CALCULATING FOR E= 156.000000 + +==================================================== + + VPIS = -0.1838 VPIO = -0.1838 DCUTS = 75.1150 DCUTO = 75.1150 +0 6 SYMMETRIC BEAMS USED 6 + 0.000 0.000 0.000 1.000 1.000 1.000 0.000 2.000 1.000 2.000 2.000 2.000 + + RFS CONVERGENCE TEST + IMAX = 11 BNORM = 0.1161E-02 ANORM = 0.1071E-01 + IMAX = 3 BNORM = 0.8549E-03 ANORM = 0.1071E-01 + E= 5.9537 THETA= 0.0000 FI= 0.0000 + + PQ1 PQ2 REF INT + 0.000 0.000 0.23606E-02 + 0.000 1.000 0.41687E-02 + 1.000 1.000 0.16198E-02 + 0.000 2.000 0.78241E-03 + 1.000 2.000 0.21063E-03 + + RFS CONVERGENCE TEST + IMAX = 11 BNORM = 0.1351E-02 ANORM = 0.1192E+00 + IMAX = 3 BNORM = 0.2291E-02 ANORM = 0.1192E+00 + + RFS CONVERGENCE TEST + IMAX = 10 BNORM = 0.1514E-02 ANORM = 0.9508E-01 + IMAX = 3 BNORM = 0.1439E-02 ANORM = 0.9508E-01 + + RFS CONVERGENCE TEST + IMAX = 8 BNORM = 0.9892E-03 ANORM = 0.1054E+00 + IMAX = 3 BNORM = 0.1426E-02 ANORM = 0.1054E+00 + + RFS CONVERGENCE TEST + IMAX = 12 BNORM = 0.1247E-02 ANORM = 0.3277E-01 + IMAX = 3 BNORM = 0.7042E-03 ANORM = 0.3277E-01 + CALCULATING FOR E= 160.000000 + +==================================================== + + VPIS = -0.1838 VPIO = -0.1838 DCUTS = 76.0367 DCUTO = 76.0367 +0 7 SYMMETRIC BEAMS USED 7 + 0.000 0.000 0.000 1.000 1.000 1.000 0.000 2.000 1.000 2.000 2.000 2.000 0.000 3.000 + + RFS CONVERGENCE TEST + IMAX = 11 BNORM = 0.1785E-02 ANORM = 0.6848E-02 + IMAX = 3 BNORM = 0.7876E-03 ANORM = 0.6852E-02 + E= 6.1007 THETA= 0.0000 FI= 0.0000 + + PQ1 PQ2 REF INT + 0.000 0.000 0.13916E-02 + 0.000 1.000 0.32515E-02 + 1.000 1.000 0.11357E-02 + 0.000 2.000 0.18907E-03 + 1.000 2.000 0.13964E-03 + + RFS CONVERGENCE TEST + IMAX = 11 BNORM = 0.1913E-02 ANORM = 0.1159E+00 + IMAX = 4 BNORM = 0.1835E-02 ANORM = 0.1159E+00 + + RFS CONVERGENCE TEST + IMAX = 10 BNORM = 0.1300E-02 ANORM = 0.1064E+00 + IMAX = 4 BNORM = 0.1650E-02 ANORM = 0.1064E+00 + + RFS CONVERGENCE TEST + IMAX = 8 BNORM = 0.1427E-02 ANORM = 0.8429E-01 + IMAX = 4 BNORM = 0.1720E-02 ANORM = 0.8429E-01 + + RFS CONVERGENCE TEST + IMAX = 12 BNORM = 0.1848E-02 ANORM = 0.2804E-01 + IMAX = 3 BNORM = 0.1359E-02 ANORM = 0.2804E-01 + CALCULATING FOR E= 164.000000 + +==================================================== + + VPIS = -0.1838 VPIO = -0.1838 DCUTS = 76.9474 DCUTO = 76.9474 +0 7 SYMMETRIC BEAMS USED 7 + 0.000 0.000 0.000 1.000 1.000 1.000 0.000 2.000 1.000 2.000 2.000 2.000 0.000 3.000 + + RFS CONVERGENCE TEST + IMAX = 12 BNORM = 0.1328E-02 ANORM = 0.6970E-02 + IMAX = 3 BNORM = 0.6153E-03 ANORM = 0.6974E-02 + E= 6.2477 THETA= 0.0000 FI= 0.0000 + + PQ1 PQ2 REF INT + 0.000 0.000 0.21330E-02 + 0.000 1.000 0.29240E-02 + 1.000 1.000 0.65295E-03 + 0.000 2.000 0.19743E-03 + 1.000 2.000 0.49250E-04 + + RFS CONVERGENCE TEST + IMAX = 12 BNORM = 0.1196E-02 ANORM = 0.1254E+00 + IMAX = 4 BNORM = 0.1456E-02 ANORM = 0.1254E+00 + + RFS CONVERGENCE TEST + IMAX = 10 BNORM = 0.1260E-02 ANORM = 0.1195E+00 + IMAX = 5 BNORM = 0.1363E-02 ANORM = 0.1195E+00 + + RFS CONVERGENCE TEST + IMAX = 9 BNORM = 0.9109E-03 ANORM = 0.6865E-01 + IMAX = 5 BNORM = 0.1984E-02 ANORM = 0.6866E-01 + + RFS CONVERGENCE TEST + IMAX = 13 BNORM = 0.1504E-02 ANORM = 0.2797E-01 + IMAX = 3 BNORM = 0.8347E-03 ANORM = 0.2797E-01 + CALCULATING FOR E= 168.000000 + +==================================================== + + VPIS = -0.1838 VPIO = -0.1838 DCUTS = 77.8474 DCUTO = 77.8474 +0 7 SYMMETRIC BEAMS USED 7 + 0.000 0.000 0.000 1.000 1.000 1.000 0.000 2.000 1.000 2.000 2.000 2.000 0.000 3.000 + + RFS CONVERGENCE TEST + IMAX = 12 BNORM = 0.1438E-02 ANORM = 0.1197E-01 + IMAX = 3 BNORM = 0.6673E-03 ANORM = 0.1197E-01 + E= 6.3947 THETA= 0.0000 FI= 0.0000 + + PQ1 PQ2 REF INT + 0.000 0.000 0.70064E-02 + 0.000 1.000 0.27649E-02 + 1.000 1.000 0.27368E-03 + 0.000 2.000 0.36218E-03 + 1.000 2.000 0.62704E-04 + + RFS CONVERGENCE TEST + IMAX = 12 BNORM = 0.1146E-02 ANORM = 0.1437E+00 + IMAX = 3 BNORM = 0.1765E-02 ANORM = 0.1437E+00 + + RFS CONVERGENCE TEST + IMAX = 10 BNORM = 0.1765E-02 ANORM = 0.1271E+00 + IMAX = 6 BNORM = 0.1391E-02 ANORM = 0.1271E+00 + + RFS CONVERGENCE TEST + IMAX = 9 BNORM = 0.8852E-03 ANORM = 0.7002E-01 + IMAX = 6 BNORM = 0.1399E-02 ANORM = 0.7003E-01 + + RFS CONVERGENCE TEST + IMAX = 13 BNORM = 0.1777E-02 ANORM = 0.2912E-01 + IMAX = 3 BNORM = 0.8226E-03 ANORM = 0.2912E-01 + CALCULATING FOR E= 172.000000 + +==================================================== + + VPIS = -0.1838 VPIO = -0.1838 DCUTS = 78.7371 DCUTO = 78.7371 +0 7 SYMMETRIC BEAMS USED 7 + 0.000 0.000 0.000 1.000 1.000 1.000 0.000 2.000 1.000 2.000 2.000 2.000 0.000 3.000 + + RFS CONVERGENCE TEST + IMAX = 11 BNORM = 0.1786E-02 ANORM = 0.2016E-01 + IMAX = 3 BNORM = 0.1258E-02 ANORM = 0.2016E-01 + E= 6.5417 THETA= 0.0000 FI= 0.0000 + + PQ1 PQ2 REF INT + 0.000 0.000 0.15317E-01 + 0.000 1.000 0.24302E-02 + 1.000 1.000 0.39545E-04 + 0.000 2.000 0.35958E-03 + 1.000 2.000 0.12243E-03 + + RFS CONVERGENCE TEST + IMAX = 12 BNORM = 0.1011E-02 ANORM = 0.1564E+00 + IMAX = 3 BNORM = 0.1829E-02 ANORM = 0.1564E+00 + + RFS CONVERGENCE TEST + IMAX = 11 BNORM = 0.7582E-03 ANORM = 0.1299E+00 + IMAX = 6 BNORM = 0.1936E-02 ANORM = 0.1299E+00 + + RFS CONVERGENCE TEST + IMAX = 9 BNORM = 0.9852E-03 ANORM = 0.8431E-01 + IMAX = 6 BNORM = 0.1594E-02 ANORM = 0.8432E-01 + + RFS CONVERGENCE TEST + IMAX = 13 BNORM = 0.1794E-02 ANORM = 0.3076E-01 + IMAX = 4 BNORM = 0.1120E-02 ANORM = 0.3076E-01 + CALCULATING FOR E= 176.000000 + +==================================================== + + VPIS = -0.1838 VPIO = -0.1838 DCUTS = 79.6168 DCUTO = 79.6168 +0 7 SYMMETRIC BEAMS USED 7 + 0.000 0.000 0.000 1.000 1.000 1.000 0.000 2.000 1.000 2.000 2.000 2.000 0.000 3.000 + + RFS CONVERGENCE TEST + IMAX = 11 BNORM = 0.1520E-02 ANORM = 0.2500E-01 + IMAX = 3 BNORM = 0.1206E-02 ANORM = 0.2500E-01 + E= 6.6887 THETA= 0.0000 FI= 0.0000 + + PQ1 PQ2 REF INT + 0.000 0.000 0.19591E-01 + 0.000 1.000 0.20657E-02 + 1.000 1.000 0.49740E-04 + 0.000 2.000 0.29135E-03 + 1.000 2.000 0.27389E-03 + + RFS CONVERGENCE TEST + IMAX = 11 BNORM = 0.1771E-02 ANORM = 0.1620E+00 + IMAX = 4 BNORM = 0.1558E-02 ANORM = 0.1620E+00 + + RFS CONVERGENCE TEST + IMAX = 11 BNORM = 0.8774E-03 ANORM = 0.1410E+00 + IMAX = 7 BNORM = 0.1275E-02 ANORM = 0.1410E+00 + + RFS CONVERGENCE TEST + IMAX = 9 BNORM = 0.1160E-02 ANORM = 0.9914E-01 + IMAX = 6 BNORM = 0.1390E-02 ANORM = 0.9915E-01 + + RFS CONVERGENCE TEST + IMAX = 13 BNORM = 0.1484E-02 ANORM = 0.3560E-01 + IMAX = 4 BNORM = 0.1673E-02 ANORM = 0.3560E-01 + CALCULATING FOR E= 180.000000 + +==================================================== + + VPIS = -0.1838 VPIO = -0.1838 DCUTS = 80.4870 DCUTO = 80.4870 +0 8 SYMMETRIC BEAMS USED 8 + 0.000 0.000 0.000 1.000 1.000 1.000 0.000 2.000 1.000 2.000 2.000 2.000 0.000 3.000 1.000 3.000 + + RFS CONVERGENCE TEST + IMAX = 13 BNORM = 0.9911E-03 ANORM = 0.2717E-01 + IMAX = 3 BNORM = 0.1874E-02 ANORM = 0.2717E-01 + E= 6.8357 THETA= 0.0000 FI= 0.0000 + + PQ1 PQ2 REF INT + 0.000 0.000 0.20472E-01 + 0.000 1.000 0.18407E-02 + 1.000 1.000 0.44989E-03 + 0.000 2.000 0.23906E-03 + 1.000 2.000 0.63945E-03 + + RFS CONVERGENCE TEST + IMAX = 12 BNORM = 0.1014E-02 ANORM = 0.1683E+00 + IMAX = 4 BNORM = 0.1690E-02 ANORM = 0.1683E+00 + + RFS CONVERGENCE TEST + IMAX = 12 BNORM = 0.4445E-03 ANORM = 0.1526E+00 + IMAX = 7 BNORM = 0.1492E-02 ANORM = 0.1526E+00 + + RFS CONVERGENCE TEST + IMAX = 10 BNORM = 0.9373E-03 ANORM = 0.1030E+00 + IMAX = 6 BNORM = 0.1203E-02 ANORM = 0.1030E+00 + + RFS CONVERGENCE TEST + IMAX = 14 BNORM = 0.9571E-03 ANORM = 0.4533E-01 + IMAX = 4 BNORM = 0.1556E-02 ANORM = 0.4533E-01 + CALCULATING FOR E= 184.000000 + +==================================================== + + VPIS = -0.1838 VPIO = -0.1838 DCUTS = 81.3478 DCUTO = 81.3478 +0 8 SYMMETRIC BEAMS USED 8 + 0.000 0.000 0.000 1.000 1.000 1.000 0.000 2.000 1.000 2.000 2.000 2.000 0.000 3.000 1.000 3.000 + + RFS CONVERGENCE TEST + IMAX = 13 BNORM = 0.1040E-02 ANORM = 0.3059E-01 + IMAX = 4 BNORM = 0.1048E-02 ANORM = 0.3059E-01 + E= 6.9827 THETA= 0.0000 FI= 0.0000 + + PQ1 PQ2 REF INT + 0.000 0.000 0.22337E-01 + 0.000 1.000 0.17455E-02 + 1.000 1.000 0.19347E-02 + 0.000 2.000 0.15522E-03 + 1.000 2.000 0.11111E-02 + + RFS CONVERGENCE TEST + IMAX = 12 BNORM = 0.1238E-02 ANORM = 0.1650E+00 + IMAX = 5 BNORM = 0.8389E-03 ANORM = 0.1650E+00 + + RFS CONVERGENCE TEST + IMAX = 12 BNORM = 0.4618E-03 ANORM = 0.1563E+00 + IMAX = 7 BNORM = 0.9180E-03 ANORM = 0.1563E+00 + + RFS CONVERGENCE TEST + IMAX = 10 BNORM = 0.1631E-02 ANORM = 0.1102E+00 + IMAX = 5 BNORM = 0.1474E-02 ANORM = 0.1102E+00 + + RFS CONVERGENCE TEST + IMAX = 14 BNORM = 0.1242E-02 ANORM = 0.4875E-01 + IMAX = 4 BNORM = 0.1348E-02 ANORM = 0.4875E-01 + CALCULATING FOR E= 188.000000 + +==================================================== + + VPIS = -0.1838 VPIO = -0.1838 DCUTS = 82.1997 DCUTO = 82.1997 +0 8 SYMMETRIC BEAMS USED 8 + 0.000 0.000 0.000 1.000 1.000 1.000 0.000 2.000 1.000 2.000 2.000 2.000 0.000 3.000 1.000 3.000 + + RFS CONVERGENCE TEST + IMAX = 12 BNORM = 0.1709E-02 ANORM = 0.3060E-01 + IMAX = 4 BNORM = 0.1239E-02 ANORM = 0.3060E-01 + E= 7.1297 THETA= 0.0000 FI= 0.0000 + + PQ1 PQ2 REF INT + 0.000 0.000 0.18741E-01 + 0.000 1.000 0.17003E-02 + 1.000 1.000 0.52458E-02 + 0.000 2.000 0.11519E-03 + 1.000 2.000 0.11838E-02 + 2.000 2.000 0.22945E-03 + + RFS CONVERGENCE TEST + IMAX = 12 BNORM = 0.1555E-02 ANORM = 0.1539E+00 + IMAX = 5 BNORM = 0.7390E-03 ANORM = 0.1539E+00 + + RFS CONVERGENCE TEST + IMAX = 12 BNORM = 0.6604E-03 ANORM = 0.1420E+00 + IMAX = 5 BNORM = 0.1830E-02 ANORM = 0.1420E+00 + + RFS CONVERGENCE TEST + IMAX = 11 BNORM = 0.7667E-03 ANORM = 0.1381E+00 + IMAX = 5 BNORM = 0.1512E-02 ANORM = 0.1381E+00 + + RFS CONVERGENCE TEST + IMAX = 5 BNORM = 0.1441E-02 ANORM = 0.1103E-01 + IMAX = 3 BNORM = 0.7237E-04 ANORM = 0.1104E-01 + + RFS CONVERGENCE TEST + IMAX = 14 BNORM = 0.1565E-02 ANORM = 0.4792E-01 + IMAX = 3 BNORM = 0.1964E-02 ANORM = 0.4793E-01 + CALCULATING FOR E= 192.000000 + +==================================================== + + VPIS = -0.1838 VPIO = -0.1838 DCUTS = 83.0428 DCUTO = 83.0428 +0 8 SYMMETRIC BEAMS USED 8 + 0.000 0.000 0.000 1.000 1.000 1.000 0.000 2.000 1.000 2.000 2.000 2.000 0.000 3.000 1.000 3.000 + + RFS CONVERGENCE TEST + IMAX = 11 BNORM = 0.1916E-02 ANORM = 0.2165E-01 + IMAX = 4 BNORM = 0.1579E-02 ANORM = 0.2165E-01 + E= 7.2767 THETA= 0.0000 FI= 0.0000 + + PQ1 PQ2 REF INT + 0.000 0.000 0.85741E-02 + 0.000 1.000 0.13601E-02 + 1.000 1.000 0.76791E-02 + 0.000 2.000 0.69619E-04 + 1.000 2.000 0.52846E-03 + 2.000 2.000 0.26442E-03 + + RFS CONVERGENCE TEST + IMAX = 12 BNORM = 0.1764E-02 ANORM = 0.1417E+00 + IMAX = 4 BNORM = 0.1672E-02 ANORM = 0.1417E+00 + + RFS CONVERGENCE TEST + IMAX = 12 BNORM = 0.7621E-03 ANORM = 0.9766E-01 + IMAX = 5 BNORM = 0.8893E-03 ANORM = 0.9766E-01 + + RFS CONVERGENCE TEST + IMAX = 9 BNORM = 0.1581E-02 ANORM = 0.1525E+00 + IMAX = 6 BNORM = 0.8874E-03 ANORM = 0.1525E+00 + + RFS CONVERGENCE TEST + IMAX = 6 BNORM = 0.1027E-02 ANORM = 0.1054E-01 + IMAX = 3 BNORM = 0.2363E-03 ANORM = 0.1054E-01 + + RFS CONVERGENCE TEST + IMAX = 14 BNORM = 0.1692E-02 ANORM = 0.4809E-01 + IMAX = 4 BNORM = 0.1715E-02 ANORM = 0.4810E-01 + CALCULATING FOR E= 196.000000 + +==================================================== + + VPIS = -0.1838 VPIO = -0.1838 DCUTS = 83.8774 DCUTO = 83.8774 +0 8 SYMMETRIC BEAMS USED 8 + 0.000 0.000 0.000 1.000 1.000 1.000 0.000 2.000 1.000 2.000 2.000 2.000 0.000 3.000 1.000 3.000 + + RFS CONVERGENCE TEST + IMAX = 10 BNORM = 0.1638E-02 ANORM = 0.1719E-01 + IMAX = 4 BNORM = 0.1635E-02 ANORM = 0.1720E-01 + E= 7.4237 THETA= 0.0000 FI= 0.0000 + + PQ1 PQ2 REF INT + 0.000 0.000 0.18710E-02 + 0.000 1.000 0.76491E-03 + 1.000 1.000 0.86246E-02 + 0.000 2.000 0.19436E-04 + 1.000 2.000 0.45162E-04 + 2.000 2.000 0.54654E-03 + + RFS CONVERGENCE TEST + IMAX = 12 BNORM = 0.1589E-02 ANORM = 0.1386E+00 + IMAX = 4 BNORM = 0.1433E-02 ANORM = 0.1386E+00 + + RFS CONVERGENCE TEST + IMAX = 9 BNORM = 0.1315E-02 ANORM = 0.6764E-01 + IMAX = 3 BNORM = 0.1947E-02 ANORM = 0.6764E-01 + + RFS CONVERGENCE TEST + IMAX = 9 BNORM = 0.7031E-03 ANORM = 0.1603E+00 + IMAX = 6 BNORM = 0.9428E-03 ANORM = 0.1603E+00 + + RFS CONVERGENCE TEST + IMAX = 7 BNORM = 0.6433E-03 ANORM = 0.1746E-01 + IMAX = 3 BNORM = 0.1115E-02 ANORM = 0.1746E-01 + + RFS CONVERGENCE TEST + IMAX = 14 BNORM = 0.1370E-02 ANORM = 0.4918E-01 + IMAX = 4 BNORM = 0.1740E-02 ANORM = 0.4918E-01 + CALCULATING FOR E= 200.000000 + +==================================================== + + VPIS = -0.1838 VPIO = -0.1838 DCUTS = 84.7038 DCUTO = 84.7038 +0 8 SYMMETRIC BEAMS USED 8 + 0.000 0.000 0.000 1.000 1.000 1.000 0.000 2.000 1.000 2.000 2.000 2.000 0.000 3.000 1.000 3.000 + + RFS CONVERGENCE TEST + IMAX = 10 BNORM = 0.9172E-03 ANORM = 0.2259E-01 + IMAX = 4 BNORM = 0.1265E-02 ANORM = 0.2259E-01 + E= 7.5707 THETA= 0.0000 FI= 0.0000 + + PQ1 PQ2 REF INT + 0.000 0.000 0.10259E-02 + 0.000 1.000 0.22241E-03 + 1.000 1.000 0.10451E-01 + 0.000 2.000 0.53239E-04 + 1.000 2.000 0.13413E-03 + 2.000 2.000 0.13601E-02 + + RFS CONVERGENCE TEST + IMAX = 11 BNORM = 0.1499E-02 ANORM = 0.1440E+00 + IMAX = 4 BNORM = 0.1692E-02 ANORM = 0.1440E+00 + + RFS CONVERGENCE TEST + IMAX = 9 BNORM = 0.1206E-02 ANORM = 0.8085E-01 + IMAX = 5 BNORM = 0.1444E-02 ANORM = 0.8085E-01 + + RFS CONVERGENCE TEST + IMAX = 8 BNORM = 0.1457E-02 ANORM = 0.1982E+00 + IMAX = 5 BNORM = 0.1248E-02 ANORM = 0.1982E+00 + + RFS CONVERGENCE TEST + IMAX = 7 BNORM = 0.1161E-02 ANORM = 0.3408E-01 + IMAX = 3 BNORM = 0.2021E-02 ANORM = 0.3408E-01 + + RFS CONVERGENCE TEST + IMAX = 13 BNORM = 0.1286E-02 ANORM = 0.5123E-01 + IMAX = 5 BNORM = 0.1613E-02 ANORM = 0.5123E-01 + CALCULATING FOR E= 204.000000 + +==================================================== + + VPIS = -0.1838 VPIO = -0.1838 DCUTS = 85.5222 DCUTO = 85.5222 +0 8 SYMMETRIC BEAMS USED 8 + 0.000 0.000 0.000 1.000 1.000 1.000 0.000 2.000 1.000 2.000 2.000 2.000 0.000 3.000 1.000 3.000 + + RFS CONVERGENCE TEST + IMAX = 10 BNORM = 0.1223E-02 ANORM = 0.2461E-01 + IMAX = 4 BNORM = 0.1402E-02 ANORM = 0.2462E-01 + E= 7.7178 THETA= 0.0000 FI= 0.0000 + + PQ1 PQ2 REF INT + 0.000 0.000 0.26155E-02 + 0.000 1.000 0.26587E-04 + 1.000 1.000 0.89758E-02 + 0.000 2.000 0.50454E-03 + 1.000 2.000 0.45362E-03 + 2.000 2.000 0.20224E-02 + + RFS CONVERGENCE TEST + IMAX = 11 BNORM = 0.1146E-02 ANORM = 0.1409E+00 + IMAX = 4 BNORM = 0.1730E-02 ANORM = 0.1409E+00 + + RFS CONVERGENCE TEST + IMAX = 9 BNORM = 0.1495E-02 ANORM = 0.1208E+00 + IMAX = 5 BNORM = 0.1639E-02 ANORM = 0.1208E+00 + + RFS CONVERGENCE TEST + IMAX = 8 BNORM = 0.1136E-02 ANORM = 0.2081E+00 + IMAX = 5 BNORM = 0.1016E-02 ANORM = 0.2081E+00 + + RFS CONVERGENCE TEST + IMAX = 7 BNORM = 0.1588E-02 ANORM = 0.5023E-01 + IMAX = 3 BNORM = 0.1640E-02 ANORM = 0.5023E-01 + + RFS CONVERGENCE TEST + IMAX = 12 BNORM = 0.1774E-02 ANORM = 0.5186E-01 + IMAX = 5 BNORM = 0.1817E-02 ANORM = 0.5186E-01 + CALCULATING FOR E= 208.000000 + +==================================================== + + VPIS = -0.1838 VPIO = -0.1838 DCUTS = 86.3329 DCUTO = 86.3329 +0 8 SYMMETRIC BEAMS USED 8 + 0.000 0.000 0.000 1.000 1.000 1.000 0.000 2.000 1.000 2.000 2.000 2.000 0.000 3.000 1.000 3.000 + + RFS CONVERGENCE TEST + IMAX = 11 BNORM = 0.1407E-02 ANORM = 0.2061E-01 + IMAX = 4 BNORM = 0.1782E-02 ANORM = 0.2061E-01 + E= 7.8648 THETA= 0.0000 FI= 0.0000 + + PQ1 PQ2 REF INT + 0.000 0.000 0.32458E-02 + 0.000 1.000 0.22278E-03 + 1.000 1.000 0.55620E-02 + 0.000 2.000 0.10312E-02 + 1.000 2.000 0.50349E-03 + 2.000 2.000 0.17693E-02 + 0.000 3.000 0.22640E-03 + + RFS CONVERGENCE TEST + IMAX = 11 BNORM = 0.1122E-02 ANORM = 0.1350E+00 + IMAX = 4 BNORM = 0.1822E-02 ANORM = 0.1350E+00 + + RFS CONVERGENCE TEST + IMAX = 9 BNORM = 0.1701E-02 ANORM = 0.1338E+00 + IMAX = 6 BNORM = 0.1889E-02 ANORM = 0.1338E+00 + + RFS CONVERGENCE TEST + IMAX = 8 BNORM = 0.8932E-03 ANORM = 0.1743E+00 + IMAX = 5 BNORM = 0.1196E-02 ANORM = 0.1743E+00 + + RFS CONVERGENCE TEST + IMAX = 8 BNORM = 0.1344E-02 ANORM = 0.5334E-01 + IMAX = 3 BNORM = 0.1256E-02 ANORM = 0.5334E-01 + + RFS CONVERGENCE TEST + IMAX = 12 BNORM = 0.1728E-02 ANORM = 0.5124E-01 + IMAX = 5 BNORM = 0.1725E-02 ANORM = 0.5125E-01 + CALCULATING FOR E= 212.000000 + +==================================================== + + VPIS = -0.1838 VPIO = -0.1838 DCUTS = 87.1360 DCUTO = 87.1360 +0 8 SYMMETRIC BEAMS USED 8 + 0.000 0.000 0.000 1.000 1.000 1.000 0.000 2.000 1.000 2.000 2.000 2.000 0.000 3.000 1.000 3.000 + + RFS CONVERGENCE TEST + IMAX = 12 BNORM = 0.1294E-02 ANORM = 0.1677E-01 + IMAX = 3 BNORM = 0.1404E-02 ANORM = 0.1678E-01 + E= 8.0118 THETA= 0.0000 FI= 0.0000 + + PQ1 PQ2 REF INT + 0.000 0.000 0.34801E-02 + 0.000 1.000 0.73031E-03 + 1.000 1.000 0.41720E-02 + 0.000 2.000 0.10442E-02 + 1.000 2.000 0.41776E-03 + 2.000 2.000 0.90281E-03 + 0.000 3.000 0.49910E-03 + + RFS CONVERGENCE TEST + IMAX = 11 BNORM = 0.1119E-02 ANORM = 0.1409E+00 + IMAX = 5 BNORM = 0.1967E-02 ANORM = 0.1409E+00 + + RFS CONVERGENCE TEST + IMAX = 11 BNORM = 0.1500E-02 ANORM = 0.1393E+00 + IMAX = 7 BNORM = 0.1383E-02 ANORM = 0.1393E+00 + + RFS CONVERGENCE TEST + IMAX = 8 BNORM = 0.6154E-03 ANORM = 0.1478E+00 + IMAX = 5 BNORM = 0.1035E-02 ANORM = 0.1478E+00 + + RFS CONVERGENCE TEST + IMAX = 9 BNORM = 0.7157E-03 ANORM = 0.4577E-01 + IMAX = 3 BNORM = 0.9938E-03 ANORM = 0.4577E-01 + + RFS CONVERGENCE TEST + IMAX = 12 BNORM = 0.1791E-02 ANORM = 0.4562E-01 + IMAX = 5 BNORM = 0.1702E-02 ANORM = 0.4562E-01 + CALCULATING FOR E= 216.000000 + +==================================================== + + VPIS = -0.1838 VPIO = -0.1838 DCUTS = 87.9318 DCUTO = 87.9318 +0 8 SYMMETRIC BEAMS USED 8 + 0.000 0.000 0.000 1.000 1.000 1.000 0.000 2.000 1.000 2.000 2.000 2.000 0.000 3.000 1.000 3.000 + + RFS CONVERGENCE TEST + IMAX = 12 BNORM = 0.1927E-02 ANORM = 0.1532E-01 + IMAX = 3 BNORM = 0.5181E-03 ANORM = 0.1532E-01 + E= 8.1588 THETA= 0.0000 FI= 0.0000 + + PQ1 PQ2 REF INT + 0.000 0.000 0.44177E-02 + 0.000 1.000 0.20009E-02 + 1.000 1.000 0.33888E-02 + 0.000 2.000 0.72812E-03 + 1.000 2.000 0.37171E-03 + 2.000 2.000 0.36732E-03 + 0.000 3.000 0.51515E-03 + + RFS CONVERGENCE TEST + IMAX = 11 BNORM = 0.1069E-02 ANORM = 0.1637E+00 + IMAX = 5 BNORM = 0.1496E-02 ANORM = 0.1637E+00 + + RFS CONVERGENCE TEST + IMAX = 13 BNORM = 0.8259E-03 ANORM = 0.1454E+00 + IMAX = 5 BNORM = 0.1764E-02 ANORM = 0.1454E+00 + + RFS CONVERGENCE TEST + IMAX = 8 BNORM = 0.8292E-03 ANORM = 0.1339E+00 + IMAX = 4 BNORM = 0.1931E-02 ANORM = 0.1339E+00 + + RFS CONVERGENCE TEST + IMAX = 9 BNORM = 0.1726E-02 ANORM = 0.3657E-01 + IMAX = 3 BNORM = 0.9894E-03 ANORM = 0.3658E-01 + + RFS CONVERGENCE TEST + IMAX = 12 BNORM = 0.1891E-02 ANORM = 0.4134E-01 + IMAX = 5 BNORM = 0.1836E-02 ANORM = 0.4135E-01 + CALCULATING FOR E= 220.000000 + +==================================================== + + VPIS = -0.1838 VPIO = -0.1838 DCUTS = 88.7204 DCUTO = 88.7204 +0 8 SYMMETRIC BEAMS USED 8 + 0.000 0.000 0.000 1.000 1.000 1.000 0.000 2.000 1.000 2.000 2.000 2.000 0.000 3.000 1.000 3.000 + + RFS CONVERGENCE TEST + IMAX = 12 BNORM = 0.1853E-02 ANORM = 0.1459E-01 + IMAX = 3 BNORM = 0.8374E-03 ANORM = 0.1459E-01 + E= 8.3058 THETA= 0.0000 FI= 0.0000 + + PQ1 PQ2 REF INT + 0.000 0.000 0.47564E-02 + 0.000 1.000 0.35267E-02 + 1.000 1.000 0.21336E-02 + 0.000 2.000 0.49815E-03 + 1.000 2.000 0.31350E-03 + 2.000 2.000 0.32679E-03 + 0.000 3.000 0.33742E-03 + + RFS CONVERGENCE TEST + IMAX = 11 BNORM = 0.9694E-03 ANORM = 0.1878E+00 + IMAX = 3 BNORM = 0.1973E-02 ANORM = 0.1878E+00 + + RFS CONVERGENCE TEST + IMAX = 13 BNORM = 0.1286E-02 ANORM = 0.1359E+00 + IMAX = 5 BNORM = 0.1645E-02 ANORM = 0.1359E+00 + + RFS CONVERGENCE TEST + IMAX = 8 BNORM = 0.1700E-02 ANORM = 0.1163E+00 + IMAX = 4 BNORM = 0.1542E-02 ANORM = 0.1163E+00 + + RFS CONVERGENCE TEST + IMAX = 10 BNORM = 0.1449E-02 ANORM = 0.2961E-01 + IMAX = 3 BNORM = 0.1399E-02 ANORM = 0.2961E-01 + + RFS CONVERGENCE TEST + IMAX = 12 BNORM = 0.1898E-02 ANORM = 0.4445E-01 + IMAX = 7 BNORM = 0.9898E-03 ANORM = 0.4446E-01 + CALCULATING FOR E= 224.000000 + +==================================================== + + VPIS = -0.1838 VPIO = -0.1838 DCUTS = 89.5021 DCUTO = 89.5021 +0 8 SYMMETRIC BEAMS USED 8 + 0.000 0.000 0.000 1.000 1.000 1.000 0.000 2.000 1.000 2.000 2.000 2.000 0.000 3.000 1.000 3.000 + + RFS CONVERGENCE TEST + IMAX = 11 BNORM = 0.1685E-02 ANORM = 0.1369E-01 + IMAX = 3 BNORM = 0.1754E-02 ANORM = 0.1369E-01 + E= 8.4528 THETA= 0.0000 FI= 0.0000 + + PQ1 PQ2 REF INT + 0.000 0.000 0.42076E-02 + 0.000 1.000 0.46247E-02 + 1.000 1.000 0.12016E-02 + 0.000 2.000 0.43494E-03 + 1.000 2.000 0.20499E-03 + 2.000 2.000 0.36463E-03 + 0.000 3.000 0.19522E-03 + + RFS CONVERGENCE TEST + IMAX = 11 BNORM = 0.8598E-03 ANORM = 0.2000E+00 + IMAX = 3 BNORM = 0.1737E-02 ANORM = 0.2000E+00 + + RFS CONVERGENCE TEST + IMAX = 13 BNORM = 0.1260E-02 ANORM = 0.1267E+00 + IMAX = 5 BNORM = 0.1817E-02 ANORM = 0.1267E+00 + + RFS CONVERGENCE TEST + IMAX = 9 BNORM = 0.1201E-02 ANORM = 0.1104E+00 + IMAX = 4 BNORM = 0.1061E-02 ANORM = 0.1104E+00 + + RFS CONVERGENCE TEST + IMAX = 10 BNORM = 0.1359E-02 ANORM = 0.2849E-01 + IMAX = 3 BNORM = 0.1585E-02 ANORM = 0.2850E-01 + + RFS CONVERGENCE TEST + IMAX = 12 BNORM = 0.1686E-02 ANORM = 0.4525E-01 + IMAX = 6 BNORM = 0.1907E-02 ANORM = 0.4526E-01 + CALCULATING FOR E= 228.000000 + +==================================================== + + VPIS = -0.1838 VPIO = -0.1838 DCUTS = 90.2770 DCUTO = 90.2770 +0 8 SYMMETRIC BEAMS USED 8 + 0.000 0.000 0.000 1.000 1.000 1.000 0.000 2.000 1.000 2.000 2.000 2.000 0.000 3.000 1.000 3.000 + + RFS CONVERGENCE TEST + IMAX = 10 BNORM = 0.1288E-02 ANORM = 0.1304E-01 + IMAX = 3 BNORM = 0.1320E-02 ANORM = 0.1304E-01 + E= 8.5998 THETA= 0.0000 FI= 0.0000 + + PQ1 PQ2 REF INT + 0.000 0.000 0.34878E-02 + 0.000 1.000 0.53964E-02 + 1.000 1.000 0.77161E-03 + 0.000 2.000 0.49380E-03 + 1.000 2.000 0.74930E-04 + 2.000 2.000 0.37089E-03 + 0.000 3.000 0.17571E-03 + + RFS CONVERGENCE TEST + IMAX = 10 BNORM = 0.1937E-02 ANORM = 0.2031E+00 + IMAX = 4 BNORM = 0.1788E-02 ANORM = 0.2031E+00 + + RFS CONVERGENCE TEST + IMAX = 12 BNORM = 0.1843E-02 ANORM = 0.1237E+00 + IMAX = 5 BNORM = 0.1415E-02 ANORM = 0.1237E+00 + + RFS CONVERGENCE TEST + IMAX = 9 BNORM = 0.1703E-02 ANORM = 0.1124E+00 + IMAX = 3 BNORM = 0.1704E-02 ANORM = 0.1124E+00 + + RFS CONVERGENCE TEST + IMAX = 9 BNORM = 0.1570E-02 ANORM = 0.3180E-01 + IMAX = 3 BNORM = 0.1531E-02 ANORM = 0.3180E-01 + + RFS CONVERGENCE TEST + IMAX = 12 BNORM = 0.1594E-02 ANORM = 0.4097E-01 + IMAX = 6 BNORM = 0.1790E-02 ANORM = 0.4099E-01 + CALCULATING FOR E= 232.000000 + +==================================================== + + VPIS = -0.1838 VPIO = -0.1838 DCUTS = 91.0453 DCUTO = 91.0453 +0 8 SYMMETRIC BEAMS USED 8 + 0.000 0.000 0.000 1.000 1.000 1.000 0.000 2.000 1.000 2.000 2.000 2.000 0.000 3.000 1.000 3.000 + + RFS CONVERGENCE TEST + IMAX = 9 BNORM = 0.1707E-02 ANORM = 0.1280E-01 + IMAX = 3 BNORM = 0.1515E-02 ANORM = 0.1280E-01 + E= 8.7468 THETA= 0.0000 FI= 0.0000 + + PQ1 PQ2 REF INT + 0.000 0.000 0.27528E-02 + 0.000 1.000 0.59671E-02 + 1.000 1.000 0.65014E-03 + 0.000 2.000 0.65940E-03 + 1.000 2.000 0.55638E-05 + 2.000 2.000 0.37485E-03 + 0.000 3.000 0.14250E-03 + 1.000 3.000 0.92956E-04 + + RFS CONVERGENCE TEST + IMAX = 10 BNORM = 0.1891E-02 ANORM = 0.1979E+00 + IMAX = 3 BNORM = 0.1879E-02 ANORM = 0.1979E+00 + + RFS CONVERGENCE TEST + IMAX = 12 BNORM = 0.1782E-02 ANORM = 0.1254E+00 + IMAX = 4 BNORM = 0.1566E-02 ANORM = 0.1254E+00 + + RFS CONVERGENCE TEST + IMAX = 10 BNORM = 0.1141E-02 ANORM = 0.1137E+00 + IMAX = 3 BNORM = 0.1260E-02 ANORM = 0.1137E+00 + + RFS CONVERGENCE TEST + IMAX = 9 BNORM = 0.1315E-02 ANORM = 0.3527E-01 + IMAX = 4 BNORM = 0.1090E-02 ANORM = 0.3527E-01 + + RFS CONVERGENCE TEST + IMAX = 12 BNORM = 0.1571E-02 ANORM = 0.4165E-01 + IMAX = 6 BNORM = 0.1791E-02 ANORM = 0.4167E-01 + CALCULATING FOR E= 236.000000 + +==================================================== + + VPIS = -0.1838 VPIO = -0.1838 DCUTS = 91.8072 DCUTO = 91.8072 +0 8 SYMMETRIC BEAMS USED 8 + 0.000 0.000 0.000 1.000 1.000 1.000 0.000 2.000 1.000 2.000 2.000 2.000 0.000 3.000 1.000 3.000 + + RFS CONVERGENCE TEST + IMAX = 9 BNORM = 0.1603E-02 ANORM = 0.1273E-01 + IMAX = 4 BNORM = 0.1087E-02 ANORM = 0.1273E-01 + E= 8.8938 THETA= 0.0000 FI= 0.0000 + + PQ1 PQ2 REF INT + 0.000 0.000 0.19397E-02 + 0.000 1.000 0.62248E-02 + 1.000 1.000 0.63778E-03 + 0.000 2.000 0.86183E-03 + 1.000 2.000 0.11842E-04 + 2.000 2.000 0.34879E-03 + 0.000 3.000 0.67560E-04 + 1.000 3.000 0.23003E-03 + + RFS CONVERGENCE TEST + IMAX = 10 BNORM = 0.1853E-02 ANORM = 0.1916E+00 + IMAX = 3 BNORM = 0.1208E-02 ANORM = 0.1916E+00 + + RFS CONVERGENCE TEST + IMAX = 12 BNORM = 0.1641E-02 ANORM = 0.1293E+00 + IMAX = 4 BNORM = 0.9957E-03 ANORM = 0.1293E+00 + + RFS CONVERGENCE TEST + IMAX = 10 BNORM = 0.1259E-02 ANORM = 0.1115E+00 + IMAX = 3 BNORM = 0.8463E-03 ANORM = 0.1115E+00 + + RFS CONVERGENCE TEST + IMAX = 8 BNORM = 0.1855E-02 ANORM = 0.3755E-01 + IMAX = 4 BNORM = 0.1672E-02 ANORM = 0.3756E-01 + + RFS CONVERGENCE TEST + IMAX = 12 BNORM = 0.1508E-02 ANORM = 0.4653E-01 + IMAX = 6 BNORM = 0.1460E-02 ANORM = 0.4654E-01 + CALCULATING FOR E= 240.000000 + +==================================================== + + VPIS = -0.1838 VPIO = -0.1838 DCUTS = 92.5629 DCUTO = 92.5629 +0 8 SYMMETRIC BEAMS USED 8 + 0.000 0.000 0.000 1.000 1.000 1.000 0.000 2.000 1.000 2.000 2.000 2.000 0.000 3.000 1.000 3.000 + + RFS CONVERGENCE TEST + IMAX = 9 BNORM = 0.1759E-02 ANORM = 0.1156E-01 + IMAX = 4 BNORM = 0.1577E-02 ANORM = 0.1156E-01 + E= 9.0408 THETA= 0.0000 FI= 0.0000 + + PQ1 PQ2 REF INT + 0.000 0.000 0.11961E-02 + 0.000 1.000 0.61451E-02 + 1.000 1.000 0.65253E-03 + 0.000 2.000 0.71780E-03 + 1.000 2.000 0.34581E-04 + 2.000 2.000 0.26970E-03 + 0.000 3.000 0.45262E-05 + 1.000 3.000 0.33133E-03 + + RFS CONVERGENCE TEST + IMAX = 10 BNORM = 0.1706E-02 ANORM = 0.1822E+00 + IMAX = 3 BNORM = 0.7178E-03 ANORM = 0.1822E+00 + + RFS CONVERGENCE TEST + IMAX = 12 BNORM = 0.1441E-02 ANORM = 0.1266E+00 + IMAX = 4 BNORM = 0.1842E-02 ANORM = 0.1266E+00 + + RFS CONVERGENCE TEST + IMAX = 10 BNORM = 0.1228E-02 ANORM = 0.1090E+00 + IMAX = 3 BNORM = 0.6463E-03 ANORM = 0.1090E+00 + + RFS CONVERGENCE TEST + IMAX = 8 BNORM = 0.1457E-02 ANORM = 0.3846E-01 + IMAX = 5 BNORM = 0.1292E-02 ANORM = 0.3846E-01 + + RFS CONVERGENCE TEST + IMAX = 12 BNORM = 0.1460E-02 ANORM = 0.5111E-01 + IMAX = 5 BNORM = 0.1742E-02 ANORM = 0.5112E-01 + CALCULATING FOR E= 244.000000 + +==================================================== + + VPIS = -0.1838 VPIO = -0.1838 DCUTS = 93.3124 DCUTO = 93.3124 +0 8 SYMMETRIC BEAMS USED 8 + 0.000 0.000 0.000 1.000 1.000 1.000 0.000 2.000 1.000 2.000 2.000 2.000 0.000 3.000 1.000 3.000 + + RFS CONVERGENCE TEST + IMAX = 9 BNORM = 0.1939E-02 ANORM = 0.1033E-01 + IMAX = 4 BNORM = 0.1888E-02 ANORM = 0.1033E-01 + E= 9.1878 THETA= 0.0000 FI= 0.0000 + + PQ1 PQ2 REF INT + 0.000 0.000 0.84951E-03 + 0.000 1.000 0.57266E-02 + 1.000 1.000 0.70756E-03 + 0.000 2.000 0.61643E-03 + 1.000 2.000 0.30483E-04 + 2.000 2.000 0.22788E-03 + 0.000 3.000 0.34357E-04 + 1.000 3.000 0.30815E-03 + + RFS CONVERGENCE TEST + IMAX = 10 BNORM = 0.1608E-02 ANORM = 0.1751E+00 + IMAX = 3 BNORM = 0.7253E-03 ANORM = 0.1751E+00 + + RFS CONVERGENCE TEST + IMAX = 12 BNORM = 0.1221E-02 ANORM = 0.1244E+00 + IMAX = 7 BNORM = 0.1594E-02 ANORM = 0.1244E+00 + + RFS CONVERGENCE TEST + IMAX = 10 BNORM = 0.1094E-02 ANORM = 0.1080E+00 + IMAX = 3 BNORM = 0.7845E-03 ANORM = 0.1080E+00 + + RFS CONVERGENCE TEST + IMAX = 7 BNORM = 0.1908E-02 ANORM = 0.3652E-01 + IMAX = 5 BNORM = 0.1871E-02 ANORM = 0.3652E-01 + + RFS CONVERGENCE TEST + IMAX = 12 BNORM = 0.1485E-02 ANORM = 0.5105E-01 + IMAX = 5 BNORM = 0.1711E-02 ANORM = 0.5105E-01 + CALCULATING FOR E= 248.000000 + +==================================================== + + VPIS = -0.1838 VPIO = -0.1838 DCUTS = 94.0559 DCUTO = 94.0559 +0 8 SYMMETRIC BEAMS USED 8 + 0.000 0.000 0.000 1.000 1.000 1.000 0.000 2.000 1.000 2.000 2.000 2.000 0.000 3.000 1.000 3.000 + + RFS CONVERGENCE TEST + IMAX = 10 BNORM = 0.1216E-02 ANORM = 0.1004E-01 + IMAX = 4 BNORM = 0.1980E-02 ANORM = 0.1004E-01 + E= 9.3348 THETA= 0.0000 FI= 0.0000 + + PQ1 PQ2 REF INT + 0.000 0.000 0.10852E-02 + 0.000 1.000 0.50184E-02 + 1.000 1.000 0.78676E-03 + 0.000 2.000 0.78335E-03 + 1.000 2.000 0.66147E-04 + 2.000 2.000 0.28757E-03 + 0.000 3.000 0.11081E-03 + 1.000 3.000 0.25572E-03 + + RFS CONVERGENCE TEST + IMAX = 10 BNORM = 0.1661E-02 ANORM = 0.1687E+00 + IMAX = 3 BNORM = 0.8691E-03 ANORM = 0.1687E+00 + + RFS CONVERGENCE TEST + IMAX = 11 BNORM = 0.1783E-02 ANORM = 0.1296E+00 + IMAX = 8 BNORM = 0.1736E-02 ANORM = 0.1296E+00 + + RFS CONVERGENCE TEST + IMAX = 9 BNORM = 0.1717E-02 ANORM = 0.1073E+00 + IMAX = 3 BNORM = 0.1175E-02 ANORM = 0.1073E+00 + + RFS CONVERGENCE TEST + IMAX = 8 BNORM = 0.9245E-03 ANORM = 0.3300E-01 + IMAX = 6 BNORM = 0.1694E-02 ANORM = 0.3300E-01 + + RFS CONVERGENCE TEST + IMAX = 12 BNORM = 0.1560E-02 ANORM = 0.5160E-01 + IMAX = 5 BNORM = 0.1814E-02 ANORM = 0.5161E-01 + CALCULATING FOR E= 252.000000 + +==================================================== + + VPIS = -0.1838 VPIO = -0.1838 DCUTS = 94.7936 DCUTO = 94.7936 +0 9 SYMMETRIC BEAMS USED 9 + 0.000 0.000 0.000 1.000 1.000 1.000 0.000 2.000 1.000 2.000 2.000 2.000 0.000 3.000 1.000 3.000 2.000 3.000 + + + RFS CONVERGENCE TEST + IMAX = 11 BNORM = 0.1762E-02 ANORM = 0.1020E-01 + IMAX = 5 BNORM = 0.1364E-02 ANORM = 0.1020E-01 + E= 9.4818 THETA= 0.0000 FI= 0.0000 + + PQ1 PQ2 REF INT + 0.000 0.000 0.20322E-02 + 0.000 1.000 0.38829E-02 + 1.000 1.000 0.74625E-03 + 0.000 2.000 0.93364E-03 + 1.000 2.000 0.12598E-03 + 2.000 2.000 0.43066E-03 + 0.000 3.000 0.58647E-04 + 1.000 3.000 0.28633E-03 + + RFS CONVERGENCE TEST + IMAX = 11 BNORM = 0.1357E-02 ANORM = 0.1550E+00 + IMAX = 4 BNORM = 0.1977E-02 ANORM = 0.1550E+00 + + RFS CONVERGENCE TEST + IMAX = 12 BNORM = 0.1539E-02 ANORM = 0.1348E+00 + IMAX = 10 BNORM = 0.1141E-02 ANORM = 0.1348E+00 + + RFS CONVERGENCE TEST + IMAX = 9 BNORM = 0.1577E-02 ANORM = 0.1024E+00 + IMAX = 6 BNORM = 0.1488E-02 ANORM = 0.1024E+00 + + RFS CONVERGENCE TEST + IMAX = 10 BNORM = 0.8978E-03 ANORM = 0.2940E-01 + IMAX = 7 BNORM = 0.1490E-02 ANORM = 0.2940E-01 + + RFS CONVERGENCE TEST + IMAX = 12 BNORM = 0.1626E-02 ANORM = 0.5468E-01 + IMAX = 6 BNORM = 0.1709E-02 ANORM = 0.5469E-01 + CALCULATING FOR E= 256.000000 + +==================================================== + + VPIS = -0.1838 VPIO = -0.1838 DCUTS = 95.5256 DCUTO = 95.5256 +0 9 SYMMETRIC BEAMS USED 9 + 0.000 0.000 0.000 1.000 1.000 1.000 0.000 2.000 1.000 2.000 2.000 2.000 0.000 3.000 1.000 3.000 2.000 3.000 + + + RFS CONVERGENCE TEST + IMAX = 11 BNORM = 0.1635E-02 ANORM = 0.1215E-01 + IMAX = 3 BNORM = 0.3539E-02 ANORM = 0.1215E-01 + E= 9.6288 THETA= 0.0000 FI= 0.0000 + + PQ1 PQ2 REF INT + 0.000 0.000 0.44130E-02 + 0.000 1.000 0.32894E-02 + 1.000 1.000 0.59465E-03 + 0.000 2.000 0.84316E-03 + 1.000 2.000 0.15218E-03 + 2.000 2.000 0.61942E-03 + 0.000 3.000 0.39737E-04 + 1.000 3.000 0.29997E-03 + + RFS CONVERGENCE TEST + IMAX = 11 BNORM = 0.1386E-02 ANORM = 0.1468E+00 + IMAX = 5 BNORM = 0.1034E-02 ANORM = 0.1468E+00 + + RFS CONVERGENCE TEST + IMAX = 12 BNORM = 0.1479E-02 ANORM = 0.1349E+00 + IMAX = 10 BNORM = 0.1205E-02 ANORM = 0.1350E+00 + + RFS CONVERGENCE TEST + IMAX = 9 BNORM = 0.1516E-02 ANORM = 0.9525E-01 + IMAX = 6 BNORM = 0.1516E-02 ANORM = 0.9525E-01 + + RFS CONVERGENCE TEST + IMAX = 11 BNORM = 0.8275E-03 ANORM = 0.2618E-01 + IMAX = 7 BNORM = 0.1353E-02 ANORM = 0.2618E-01 + + RFS CONVERGENCE TEST + IMAX = 12 BNORM = 0.1508E-02 ANORM = 0.5422E-01 + IMAX = 6 BNORM = 0.1545E-02 ANORM = 0.5423E-01 + CALCULATING FOR E= 260.000000 + +==================================================== + + VPIS = -0.1838 VPIO = -0.1838 DCUTS = 96.2521 DCUTO = 96.2521 +0 9 SYMMETRIC BEAMS USED 9 + 0.000 0.000 0.000 1.000 1.000 1.000 0.000 2.000 1.000 2.000 2.000 2.000 0.000 3.000 1.000 3.000 2.000 3.000 + + + RFS CONVERGENCE TEST + IMAX = 10 BNORM = 0.1902E-02 ANORM = 0.1672E-01 + IMAX = 3 BNORM = 0.3063E-02 ANORM = 0.1672E-01 + E= 9.7758 THETA= 0.0000 FI= 0.0000 + + PQ1 PQ2 REF INT + 0.000 0.000 0.95035E-02 + 0.000 1.000 0.34619E-02 + 1.000 1.000 0.34716E-03 + 0.000 2.000 0.74245E-03 + 1.000 2.000 0.97206E-04 + 2.000 2.000 0.72265E-03 + 0.000 3.000 0.98919E-04 + 1.000 3.000 0.21507E-03 + + RFS CONVERGENCE TEST + IMAX = 11 BNORM = 0.1314E-02 ANORM = 0.1462E+00 + IMAX = 5 BNORM = 0.1129E-02 ANORM = 0.1462E+00 + + RFS CONVERGENCE TEST + IMAX = 11 BNORM = 0.1809E-02 ANORM = 0.1290E+00 + IMAX = 9 BNORM = 0.1861E-02 ANORM = 0.1290E+00 + + RFS CONVERGENCE TEST + IMAX = 9 BNORM = 0.1609E-02 ANORM = 0.8706E-01 + IMAX = 6 BNORM = 0.1827E-02 ANORM = 0.8707E-01 + + RFS CONVERGENCE TEST + IMAX = 12 BNORM = 0.7693E-03 ANORM = 0.2446E-01 + IMAX = 6 BNORM = 0.1797E-02 ANORM = 0.2446E-01 + + RFS CONVERGENCE TEST + IMAX = 12 BNORM = 0.1354E-02 ANORM = 0.5297E-01 + IMAX = 6 BNORM = 0.1984E-02 ANORM = 0.5298E-01 + CALCULATING FOR E= 264.000000 + +==================================================== + + VPIS = -0.1838 VPIO = -0.1838 DCUTS = 96.9731 DCUTO = 96.9731 +0 9 SYMMETRIC BEAMS USED 9 + 0.000 0.000 0.000 1.000 1.000 1.000 0.000 2.000 1.000 2.000 2.000 2.000 0.000 3.000 1.000 3.000 2.000 3.000 + + + RFS CONVERGENCE TEST + IMAX = 10 BNORM = 0.1357E-02 ANORM = 0.2079E-01 + IMAX = 3 BNORM = 0.2307E-02 ANORM = 0.2079E-01 + E= 9.9228 THETA= 0.0000 FI= 0.0000 + + PQ1 PQ2 REF INT + 0.000 0.000 0.14930E-01 + 0.000 1.000 0.32440E-02 + 1.000 1.000 0.13650E-03 + 0.000 2.000 0.86139E-03 + 1.000 2.000 0.60896E-04 + 2.000 2.000 0.56371E-03 + 0.000 3.000 0.83776E-04 + 1.000 3.000 0.89956E-04 + + RFS CONVERGENCE TEST + IMAX = 11 BNORM = 0.1232E-02 ANORM = 0.1408E+00 + IMAX = 5 BNORM = 0.1728E-02 ANORM = 0.1408E+00 + + RFS CONVERGENCE TEST + IMAX = 11 BNORM = 0.1743E-02 ANORM = 0.1141E+00 + IMAX = 9 BNORM = 0.1649E-02 ANORM = 0.1142E+00 + + RFS CONVERGENCE TEST + IMAX = 9 BNORM = 0.1961E-02 ANORM = 0.8051E-01 + IMAX = 5 BNORM = 0.1966E-02 ANORM = 0.8052E-01 + + RFS CONVERGENCE TEST + IMAX = 12 BNORM = 0.1568E-02 ANORM = 0.2293E-01 + IMAX = 6 BNORM = 0.1412E-02 ANORM = 0.2293E-01 + + RFS CONVERGENCE TEST + IMAX = 12 BNORM = 0.1209E-02 ANORM = 0.5567E-01 + IMAX = 7 BNORM = 0.7702E-03 ANORM = 0.5568E-01 + CALCULATING FOR E= 268.000000 + +==================================================== + + VPIS = -0.1838 VPIO = -0.1838 DCUTS = 97.6888 DCUTO = 97.6888 +0 9 SYMMETRIC BEAMS USED 9 + 0.000 0.000 0.000 1.000 1.000 1.000 0.000 2.000 1.000 2.000 2.000 2.000 0.000 3.000 1.000 3.000 2.000 3.000 + + + RFS CONVERGENCE TEST + IMAX = 10 BNORM = 0.1043E-02 ANORM = 0.1844E-01 + IMAX = 3 BNORM = 0.1706E-02 ANORM = 0.1845E-01 + E= 10.0698 THETA= 0.0000 FI= 0.0000 + + PQ1 PQ2 REF INT + 0.000 0.000 0.13930E-01 + 0.000 1.000 0.22180E-02 + 1.000 1.000 0.26668E-04 + 0.000 2.000 0.99569E-03 + 1.000 2.000 0.20914E-03 + 2.000 2.000 0.29690E-03 + 0.000 3.000 0.28444E-04 + 1.000 3.000 0.30922E-04 + + RFS CONVERGENCE TEST + IMAX = 11 BNORM = 0.1189E-02 ANORM = 0.1278E+00 + IMAX = 4 BNORM = 0.1652E-02 ANORM = 0.1278E+00 + + RFS CONVERGENCE TEST + IMAX = 12 BNORM = 0.1500E-02 ANORM = 0.1087E+00 + IMAX = 9 BNORM = 0.1458E-02 ANORM = 0.1087E+00 + + RFS CONVERGENCE TEST + IMAX = 10 BNORM = 0.1019E-02 ANORM = 0.7395E-01 + IMAX = 7 BNORM = 0.1185E-02 ANORM = 0.7396E-01 + + RFS CONVERGENCE TEST + IMAX = 13 BNORM = 0.9761E-03 ANORM = 0.2096E-01 + IMAX = 3 BNORM = 0.1994E-02 ANORM = 0.2096E-01 + + RFS CONVERGENCE TEST + IMAX = 11 BNORM = 0.1807E-02 ANORM = 0.5835E-01 + IMAX = 5 BNORM = 0.1671E-02 ANORM = 0.5836E-01 + CALCULATING FOR E= 272.000000 + +==================================================== + + VPIS = -0.1838 VPIO = -0.1838 DCUTS = 98.3992 DCUTO = 98.3992 +0 9 SYMMETRIC BEAMS USED 9 + 0.000 0.000 0.000 1.000 1.000 1.000 0.000 2.000 1.000 2.000 2.000 2.000 0.000 3.000 1.000 3.000 2.000 3.000 + + + RFS CONVERGENCE TEST + IMAX = 10 BNORM = 0.1199E-02 ANORM = 0.1298E-01 + IMAX = 3 BNORM = 0.1376E-02 ANORM = 0.1298E-01 + E= 10.2168 THETA= 0.0000 FI= 0.0000 + + PQ1 PQ2 REF INT + 0.000 0.000 0.86352E-02 + 0.000 1.000 0.14117E-02 + 1.000 1.000 0.48644E-05 + 0.000 2.000 0.10282E-02 + 1.000 2.000 0.54799E-03 + 2.000 2.000 0.32272E-03 + 0.000 3.000 0.94994E-05 + 1.000 3.000 0.12490E-04 + + RFS CONVERGENCE TEST + IMAX = 11 BNORM = 0.1148E-02 ANORM = 0.1163E+00 + IMAX = 4 BNORM = 0.1967E-02 ANORM = 0.1163E+00 + + RFS CONVERGENCE TEST + IMAX = 13 BNORM = 0.1262E-02 ANORM = 0.1193E+00 + IMAX = 8 BNORM = 0.1987E-02 ANORM = 0.1193E+00 + + RFS CONVERGENCE TEST + IMAX = 10 BNORM = 0.1318E-02 ANORM = 0.6586E-01 + IMAX = 7 BNORM = 0.1184E-02 ANORM = 0.6587E-01 + + RFS CONVERGENCE TEST + IMAX = 13 BNORM = 0.1363E-02 ANORM = 0.2271E-01 + IMAX = 3 BNORM = 0.1427E-02 ANORM = 0.2271E-01 + + RFS CONVERGENCE TEST + IMAX = 11 BNORM = 0.1670E-02 ANORM = 0.5553E-01 + IMAX = 6 BNORM = 0.1541E-02 ANORM = 0.5554E-01 + CALCULATING FOR E= 276.000000 + +==================================================== + + VPIS = -0.1838 VPIO = -0.1838 DCUTS = 99.1046 DCUTO = 99.1046 +0 9 SYMMETRIC BEAMS USED 9 + 0.000 0.000 0.000 1.000 1.000 1.000 0.000 2.000 1.000 2.000 2.000 2.000 0.000 3.000 1.000 3.000 2.000 3.000 + + + RFS CONVERGENCE TEST + IMAX = 10 BNORM = 0.1850E-02 ANORM = 0.9777E-02 + IMAX = 3 BNORM = 0.1157E-02 ANORM = 0.9778E-02 + E= 10.3638 THETA= 0.0000 FI= 0.0000 + + PQ1 PQ2 REF INT + 0.000 0.000 0.51446E-02 + 0.000 1.000 0.12441E-02 + 1.000 1.000 0.55788E-04 + 0.000 2.000 0.77248E-03 + 1.000 2.000 0.10548E-02 + 2.000 2.000 0.43243E-03 + 0.000 3.000 0.25296E-04 + 1.000 3.000 0.28972E-04 + + RFS CONVERGENCE TEST + IMAX = 11 BNORM = 0.1036E-02 ANORM = 0.1089E+00 + IMAX = 6 BNORM = 0.8432E-03 ANORM = 0.1090E+00 + + RFS CONVERGENCE TEST + IMAX = 13 BNORM = 0.1983E-02 ANORM = 0.1417E+00 + IMAX = 8 BNORM = 0.1745E-02 ANORM = 0.1417E+00 + + RFS CONVERGENCE TEST + IMAX = 10 BNORM = 0.1524E-02 ANORM = 0.6125E-01 + IMAX = 7 BNORM = 0.1154E-02 ANORM = 0.6125E-01 + + RFS CONVERGENCE TEST + IMAX = 13 BNORM = 0.1558E-02 ANORM = 0.2609E-01 + IMAX = 3 BNORM = 0.8861E-03 ANORM = 0.2609E-01 + + RFS CONVERGENCE TEST + IMAX = 11 BNORM = 0.1559E-02 ANORM = 0.4938E-01 + IMAX = 6 BNORM = 0.1608E-02 ANORM = 0.4939E-01 + CALCULATING FOR E= 280.000000 + +==================================================== + + VPIS = -0.1838 VPIO = -0.1838 DCUTS = 99.8050 DCUTO = 99.8050 +0 9 SYMMETRIC BEAMS USED 9 + 0.000 0.000 0.000 1.000 1.000 1.000 0.000 2.000 1.000 2.000 2.000 2.000 0.000 3.000 1.000 3.000 2.000 3.000 + + + RFS CONVERGENCE TEST + IMAX = 12 BNORM = 0.1976E-02 ANORM = 0.1106E-01 + IMAX = 3 BNORM = 0.9151E-03 ANORM = 0.1106E-01 + E= 10.5108 THETA= 0.0000 FI= 0.0000 + + PQ1 PQ2 REF INT + 0.000 0.000 0.63682E-02 + 0.000 1.000 0.11755E-02 + 1.000 1.000 0.25483E-03 + 0.000 2.000 0.41919E-03 + 1.000 2.000 0.14590E-02 + 2.000 2.000 0.25550E-03 + 0.000 3.000 0.36670E-04 + 1.000 3.000 0.69648E-04 + + RFS CONVERGENCE TEST + IMAX = 11 BNORM = 0.9831E-03 ANORM = 0.1036E+00 + IMAX = 6 BNORM = 0.6946E-03 ANORM = 0.1036E+00 + + RFS CONVERGENCE TEST + IMAX = 14 BNORM = 0.1836E-02 ANORM = 0.1597E+00 + IMAX = 8 BNORM = 0.1253E-02 ANORM = 0.1597E+00 + + RFS CONVERGENCE TEST + IMAX = 10 BNORM = 0.1571E-02 ANORM = 0.6165E-01 + IMAX = 7 BNORM = 0.1068E-02 ANORM = 0.6165E-01 + + RFS CONVERGENCE TEST + IMAX = 13 BNORM = 0.1661E-02 ANORM = 0.2747E-01 + IMAX = 3 BNORM = 0.3760E-03 ANORM = 0.2747E-01 + + RFS CONVERGENCE TEST + IMAX = 11 BNORM = 0.1383E-02 ANORM = 0.4837E-01 + IMAX = 6 BNORM = 0.1698E-02 ANORM = 0.4837E-01 + CALCULATING FOR E= 284.000000 + +==================================================== + + VPIS = -0.1838 VPIO = -0.1838 DCUTS = 100.5005 DCUTO = 100.5005 +0 9 SYMMETRIC BEAMS USED 9 + 0.000 0.000 0.000 1.000 1.000 1.000 0.000 2.000 1.000 2.000 2.000 2.000 0.000 3.000 1.000 3.000 2.000 3.000 + + + RFS CONVERGENCE TEST + IMAX = 14 BNORM = 0.1451E-02 ANORM = 0.1417E-01 + IMAX = 3 BNORM = 0.6598E-03 ANORM = 0.1417E-01 + E= 10.6578 THETA= 0.0000 FI= 0.0000 + + PQ1 PQ2 REF INT + 0.000 0.000 0.92283E-02 + 0.000 1.000 0.10402E-02 + 1.000 1.000 0.10286E-02 + 0.000 2.000 0.17435E-03 + 1.000 2.000 0.13523E-02 + 2.000 2.000 0.85723E-04 + 0.000 3.000 0.39061E-04 + 1.000 3.000 0.11713E-03 + + RFS CONVERGENCE TEST + IMAX = 9 BNORM = 0.1755E-02 ANORM = 0.9808E-01 + IMAX = 6 BNORM = 0.8540E-03 ANORM = 0.9808E-01 + + RFS CONVERGENCE TEST + IMAX = 15 BNORM = 0.1828E-02 ANORM = 0.1490E+00 + IMAX = 6 BNORM = 0.1609E-02 ANORM = 0.1491E+00 + + RFS CONVERGENCE TEST + IMAX = 10 BNORM = 0.1462E-02 ANORM = 0.6961E-01 + IMAX = 7 BNORM = 0.9966E-03 ANORM = 0.6961E-01 + + RFS CONVERGENCE TEST + IMAX = 14 BNORM = 0.1512E-02 ANORM = 0.3030E-01 + IMAX = 3 BNORM = 0.1229E-02 ANORM = 0.3031E-01 + + RFS CONVERGENCE TEST + IMAX = 11 BNORM = 0.1085E-02 ANORM = 0.5016E-01 + IMAX = 6 BNORM = 0.1794E-02 ANORM = 0.5017E-01 + CALCULATING FOR E= 288.000000 + +==================================================== + + VPIS = -0.1838 VPIO = -0.1838 DCUTS = 101.1912 DCUTO = 101.1912 +0 9 SYMMETRIC BEAMS USED 9 + 0.000 0.000 0.000 1.000 1.000 1.000 0.000 2.000 1.000 2.000 2.000 2.000 0.000 3.000 1.000 3.000 2.000 3.000 + + + RFS CONVERGENCE TEST + IMAX = 14 BNORM = 0.1690E-02 ANORM = 0.1384E-01 + IMAX = 3 BNORM = 0.5178E-03 ANORM = 0.1384E-01 + E= 10.8049 THETA= 0.0000 FI= 0.0000 + + PQ1 PQ2 REF INT + 0.000 0.000 0.77362E-02 + 0.000 1.000 0.10467E-02 + 1.000 1.000 0.23677E-02 + 0.000 2.000 0.76299E-04 + 1.000 2.000 0.10944E-02 + 2.000 2.000 0.46980E-04 + 0.000 3.000 0.73563E-04 + 1.000 3.000 0.18912E-03 + + RFS CONVERGENCE TEST + IMAX = 9 BNORM = 0.1519E-02 ANORM = 0.9864E-01 + IMAX = 6 BNORM = 0.1516E-02 ANORM = 0.9864E-01 + + RFS CONVERGENCE TEST + IMAX = 16 BNORM = 0.1788E-02 ANORM = 0.1332E+00 + IMAX = 6 BNORM = 0.1584E-02 ANORM = 0.1332E+00 + + RFS CONVERGENCE TEST + IMAX = 10 BNORM = 0.1241E-02 ANORM = 0.8860E-01 + IMAX = 6 BNORM = 0.1816E-02 ANORM = 0.8860E-01 + + RFS CONVERGENCE TEST + IMAX = 14 BNORM = 0.1885E-02 ANORM = 0.3430E-01 + IMAX = 4 BNORM = 0.1048E-02 ANORM = 0.3430E-01 + + RFS CONVERGENCE TEST + IMAX = 10 BNORM = 0.1665E-02 ANORM = 0.4954E-01 + IMAX = 7 BNORM = 0.1131E-02 ANORM = 0.4955E-01 + CALCULATING FOR E= 292.000000 + +==================================================== + + VPIS = -0.1838 VPIO = -0.1838 DCUTS = 101.8773 DCUTO = 101.8773 +0 9 SYMMETRIC BEAMS USED 9 + 0.000 0.000 0.000 1.000 1.000 1.000 0.000 2.000 1.000 2.000 2.000 2.000 0.000 3.000 1.000 3.000 2.000 3.000 + + + RFS CONVERGENCE TEST + IMAX = 14 BNORM = 0.1976E-02 ANORM = 0.1186E-01 + IMAX = 3 BNORM = 0.5841E-03 ANORM = 0.1186E-01 + E= 10.9519 THETA= 0.0000 FI= 0.0000 + + PQ1 PQ2 REF INT + 0.000 0.000 0.42332E-02 + 0.000 1.000 0.10371E-02 + 1.000 1.000 0.37228E-02 + 0.000 2.000 0.61770E-04 + 1.000 2.000 0.10671E-02 + 2.000 2.000 0.64587E-04 + 0.000 3.000 0.79686E-04 + 1.000 3.000 0.25313E-03 + + RFS CONVERGENCE TEST + IMAX = 9 BNORM = 0.1266E-02 ANORM = 0.1037E+00 + IMAX = 6 BNORM = 0.1931E-02 ANORM = 0.1037E+00 + + RFS CONVERGENCE TEST + IMAX = 17 BNORM = 0.1628E-02 ANORM = 0.1315E+00 + IMAX = 6 BNORM = 0.1685E-02 ANORM = 0.1315E+00 + + RFS CONVERGENCE TEST + IMAX = 9 BNORM = 0.1622E-02 ANORM = 0.1084E+00 + IMAX = 6 BNORM = 0.1585E-02 ANORM = 0.1084E+00 + + RFS CONVERGENCE TEST + IMAX = 14 BNORM = 0.1995E-02 ANORM = 0.3752E-01 + IMAX = 3 BNORM = 0.1506E-02 ANORM = 0.3752E-01 + + RFS CONVERGENCE TEST + IMAX = 10 BNORM = 0.1327E-02 ANORM = 0.4873E-01 + IMAX = 7 BNORM = 0.1452E-02 ANORM = 0.4874E-01 + CALCULATING FOR E= 296.000000 + +==================================================== + + VPIS = -0.1838 VPIO = -0.1838 DCUTS = 102.5587 DCUTO = 102.5587 +0 9 SYMMETRIC BEAMS USED 9 + 0.000 0.000 0.000 1.000 1.000 1.000 0.000 2.000 1.000 2.000 2.000 2.000 0.000 3.000 1.000 3.000 2.000 3.000 + + + RFS CONVERGENCE TEST + IMAX = 15 BNORM = 0.1590E-02 ANORM = 0.1152E-01 + IMAX = 3 BNORM = 0.7389E-03 ANORM = 0.1152E-01 + E= 11.0989 THETA= 0.0000 FI= 0.0000 + + PQ1 PQ2 REF INT + 0.000 0.000 0.23888E-02 + 0.000 1.000 0.86872E-03 + 1.000 1.000 0.52229E-02 + 0.000 2.000 0.98885E-04 + 1.000 2.000 0.10590E-02 + 2.000 2.000 0.11550E-03 + 0.000 3.000 0.57115E-04 + 1.000 3.000 0.29663E-03 + + RFS CONVERGENCE TEST + IMAX = 9 BNORM = 0.1105E-02 ANORM = 0.1071E+00 + IMAX = 7 BNORM = 0.1077E-02 ANORM = 0.1071E+00 + + RFS CONVERGENCE TEST + IMAX = 17 BNORM = 0.1959E-02 ANORM = 0.1389E+00 + IMAX = 6 BNORM = 0.1530E-02 ANORM = 0.1389E+00 + + RFS CONVERGENCE TEST + IMAX = 8 BNORM = 0.1759E-02 ANORM = 0.1249E+00 + IMAX = 5 BNORM = 0.1907E-02 ANORM = 0.1249E+00 + + RFS CONVERGENCE TEST + IMAX = 14 BNORM = 0.1993E-02 ANORM = 0.3912E-01 + IMAX = 3 BNORM = 0.8252E-03 ANORM = 0.3912E-01 + + RFS CONVERGENCE TEST + IMAX = 9 BNORM = 0.1874E-02 ANORM = 0.4867E-01 + IMAX = 7 BNORM = 0.1503E-02 ANORM = 0.4868E-01 + CALCULATING FOR E= 300.000000 + +==================================================== + + VPIS = -0.1838 VPIO = -0.1838 DCUTS = 103.2357 DCUTO = 103.2357 +0 9 SYMMETRIC BEAMS USED 9 + 0.000 0.000 0.000 1.000 1.000 1.000 0.000 2.000 1.000 2.000 2.000 2.000 0.000 3.000 1.000 3.000 2.000 3.000 + + + RFS CONVERGENCE TEST + IMAX = 15 BNORM = 0.1795E-02 ANORM = 0.1189E-01 + IMAX = 3 BNORM = 0.8024E-03 ANORM = 0.1189E-01 + E= 11.2459 THETA= 0.0000 FI= 0.0000 + + PQ1 PQ2 REF INT + 0.000 0.000 0.13118E-02 + 0.000 1.000 0.62093E-03 + 1.000 1.000 0.65535E-02 + 0.000 2.000 0.24895E-03 + 1.000 2.000 0.86912E-03 + 2.000 2.000 0.16174E-03 + 0.000 3.000 0.35500E-04 + 1.000 3.000 0.27453E-03 + 2.000 3.000 0.27757E-04 + + RFS CONVERGENCE TEST + IMAX = 9 BNORM = 0.1127E-02 ANORM = 0.1036E+00 + IMAX = 6 BNORM = 0.1836E-02 ANORM = 0.1036E+00 + + RFS CONVERGENCE TEST +0***THIS ORDER TOO DEEP + IMAX = 18 BNORM = 0.1630E-02 ANORM = 0.1396E+00 + IMAX = 5 BNORM = 0.1901E-02 ANORM = 0.1396E+00 + + RFS CONVERGENCE TEST + IMAX = 8 BNORM = 0.1242E-02 ANORM = 0.1388E+00 + IMAX = 5 BNORM = 0.1386E-02 ANORM = 0.1388E+00 + + RFS CONVERGENCE TEST + IMAX = 14 BNORM = 0.1942E-02 ANORM = 0.4033E-01 + IMAX = 3 BNORM = 0.4755E-03 ANORM = 0.4033E-01 + + RFS CONVERGENCE TEST + IMAX = 9 BNORM = 0.1853E-02 ANORM = 0.4890E-01 + IMAX = 7 BNORM = 0.1291E-02 ANORM = 0.4891E-01 + CALCULATING FOR E= 304.000000 + +==================================================== + + VPIS = -0.1838 VPIO = -0.1838 DCUTS = 103.9083 DCUTO = 103.9083 +0 9 SYMMETRIC BEAMS USED 9 + 0.000 0.000 0.000 1.000 1.000 1.000 0.000 2.000 1.000 2.000 2.000 2.000 0.000 3.000 1.000 3.000 2.000 3.000 + + + RFS CONVERGENCE TEST + IMAX = 15 BNORM = 0.1978E-02 ANORM = 0.1203E-01 + IMAX = 3 BNORM = 0.7140E-03 ANORM = 0.1203E-01 + E= 11.3929 THETA= 0.0000 FI= 0.0000 + + PQ1 PQ2 REF INT + 0.000 0.000 0.57120E-03 + 0.000 1.000 0.41546E-03 + 1.000 1.000 0.68082E-02 + 0.000 2.000 0.58731E-03 + 1.000 2.000 0.61529E-03 + 2.000 2.000 0.17340E-03 + 0.000 3.000 0.37906E-04 + 1.000 3.000 0.19534E-03 + 2.000 3.000 0.18531E-03 + + RFS CONVERGENCE TEST + IMAX = 9 BNORM = 0.1250E-02 ANORM = 0.9575E-01 + IMAX = 6 BNORM = 0.1280E-02 ANORM = 0.9575E-01 + + RFS CONVERGENCE TEST +0***THIS ORDER TOO DEEP + IMAX = 18 BNORM = 0.1873E-02 ANORM = 0.1334E+00 + IMAX = 5 BNORM = 0.1322E-02 ANORM = 0.1334E+00 + + RFS CONVERGENCE TEST + IMAX = 8 BNORM = 0.9517E-03 ANORM = 0.1412E+00 + IMAX = 4 BNORM = 0.1984E-02 ANORM = 0.1412E+00 + + RFS CONVERGENCE TEST + IMAX = 14 BNORM = 0.1854E-02 ANORM = 0.4223E-01 + IMAX = 3 BNORM = 0.3523E-03 ANORM = 0.4224E-01 + + RFS CONVERGENCE TEST + IMAX = 9 BNORM = 0.1752E-02 ANORM = 0.5185E-01 + IMAX = 6 BNORM = 0.1878E-02 ANORM = 0.5186E-01 + CALCULATING FOR E= 308.000000 + +==================================================== + + VPIS = -0.1838 VPIO = -0.1838 DCUTS = 104.5765 DCUTO = 104.5765 +0 9 SYMMETRIC BEAMS USED 9 + 0.000 0.000 0.000 1.000 1.000 1.000 0.000 2.000 1.000 2.000 2.000 2.000 0.000 3.000 1.000 3.000 2.000 3.000 + + + RFS CONVERGENCE TEST + IMAX = 16 BNORM = 0.1535E-02 ANORM = 0.1184E-01 + IMAX = 3 BNORM = 0.5799E-03 ANORM = 0.1184E-01 + E= 11.5399 THETA= 0.0000 FI= 0.0000 + + PQ1 PQ2 REF INT + 0.000 0.000 0.24309E-03 + 0.000 1.000 0.28853E-03 + 1.000 1.000 0.59296E-02 + 0.000 2.000 0.11054E-02 + 1.000 2.000 0.46002E-03 + 2.000 2.000 0.15824E-03 + 0.000 3.000 0.62954E-04 + 1.000 3.000 0.12290E-03 + 2.000 3.000 0.40040E-03 + + RFS CONVERGENCE TEST + IMAX = 9 BNORM = 0.1518E-02 ANORM = 0.8714E-01 + IMAX = 5 BNORM = 0.1575E-02 ANORM = 0.8715E-01 + + RFS CONVERGENCE TEST +0***THIS ORDER TOO DEEP + IMAX = 18 BNORM = 0.2100E-02 ANORM = 0.1291E+00 + IMAX = 4 BNORM = 0.1448E-02 ANORM = 0.1291E+00 + + RFS CONVERGENCE TEST + IMAX = 7 BNORM = 0.1841E-02 ANORM = 0.1309E+00 + IMAX = 4 BNORM = 0.1550E-02 ANORM = 0.1309E+00 + + RFS CONVERGENCE TEST + IMAX = 14 BNORM = 0.1750E-02 ANORM = 0.4275E-01 + IMAX = 3 BNORM = 0.3751E-03 ANORM = 0.4275E-01 + + RFS CONVERGENCE TEST + IMAX = 9 BNORM = 0.1659E-02 ANORM = 0.5894E-01 + IMAX = 6 BNORM = 0.1492E-02 ANORM = 0.5895E-01 + CALCULATING FOR E= 312.000000 + +==================================================== + + VPIS = -0.1838 VPIO = -0.1838 DCUTS = 105.2405 DCUTO = 105.2405 +0 9 SYMMETRIC BEAMS USED 9 + 0.000 0.000 0.000 1.000 1.000 1.000 0.000 2.000 1.000 2.000 2.000 2.000 0.000 3.000 1.000 3.000 2.000 3.000 + + + RFS CONVERGENCE TEST + IMAX = 16 BNORM = 0.1622E-02 ANORM = 0.1161E-01 + IMAX = 3 BNORM = 0.5406E-03 ANORM = 0.1161E-01 + E= 11.6869 THETA= 0.0000 FI= 0.0000 + + PQ1 PQ2 REF INT + 0.000 0.000 0.44966E-03 + 0.000 1.000 0.26571E-03 + 1.000 1.000 0.47257E-02 + 0.000 2.000 0.18349E-02 + 1.000 2.000 0.41635E-03 + 2.000 2.000 0.15587E-03 + 0.000 3.000 0.95798E-04 + 1.000 3.000 0.77387E-04 + 2.000 3.000 0.50428E-03 + + RFS CONVERGENCE TEST + IMAX = 9 BNORM = 0.1899E-02 ANORM = 0.8173E-01 + IMAX = 5 BNORM = 0.1610E-02 ANORM = 0.8173E-01 + + RFS CONVERGENCE TEST +0***THIS ORDER TOO DEEP + IMAX = 18 BNORM = 0.2277E-02 ANORM = 0.1287E+00 + IMAX = 4 BNORM = 0.1360E-02 ANORM = 0.1287E+00 + + RFS CONVERGENCE TEST + IMAX = 7 BNORM = 0.1962E-02 ANORM = 0.1179E+00 + IMAX = 4 BNORM = 0.1487E-02 ANORM = 0.1179E+00 + + RFS CONVERGENCE TEST + IMAX = 14 BNORM = 0.1648E-02 ANORM = 0.4149E-01 + IMAX = 3 BNORM = 0.4519E-03 ANORM = 0.4149E-01 + + RFS CONVERGENCE TEST + IMAX = 9 BNORM = 0.1554E-02 ANORM = 0.6802E-01 + IMAX = 6 BNORM = 0.1382E-02 ANORM = 0.6802E-01 + CALCULATING FOR E= 316.000000 + +==================================================== + + VPIS = -0.1838 VPIO = -0.1838 DCUTS = 105.9003 DCUTO = 105.9003 +0 9 SYMMETRIC BEAMS USED 9 + 0.000 0.000 0.000 1.000 1.000 1.000 0.000 2.000 1.000 2.000 2.000 2.000 0.000 3.000 1.000 3.000 2.000 3.000 + + + RFS CONVERGENCE TEST + IMAX = 16 BNORM = 0.1675E-02 ANORM = 0.1182E-01 + IMAX = 3 BNORM = 0.5185E-03 ANORM = 0.1182E-01 + E= 11.8339 THETA= 0.0000 FI= 0.0000 + + PQ1 PQ2 REF INT + 0.000 0.000 0.12404E-02 + 0.000 1.000 0.39200E-03 + 1.000 1.000 0.36598E-02 + 0.000 2.000 0.27310E-02 + 1.000 2.000 0.42859E-03 + 2.000 2.000 0.15485E-03 + 0.000 3.000 0.12731E-03 + 1.000 3.000 0.56467E-04 + 2.000 3.000 0.43609E-03 + + RFS CONVERGENCE TEST + IMAX = 10 BNORM = 0.1469E-02 ANORM = 0.8019E-01 + IMAX = 5 BNORM = 0.1986E-02 ANORM = 0.8019E-01 + + RFS CONVERGENCE TEST +0***THIS ORDER TOO DEEP + IMAX = 18 BNORM = 0.2379E-02 ANORM = 0.1279E+00 + IMAX = 4 BNORM = 0.1521E-02 ANORM = 0.1279E+00 + + RFS CONVERGENCE TEST + IMAX = 8 BNORM = 0.1206E-02 ANORM = 0.1097E+00 + IMAX = 4 BNORM = 0.1712E-02 ANORM = 0.1097E+00 + + RFS CONVERGENCE TEST + IMAX = 14 BNORM = 0.1564E-02 ANORM = 0.4214E-01 + IMAX = 3 BNORM = 0.4412E-03 ANORM = 0.4214E-01 + + RFS CONVERGENCE TEST + IMAX = 9 BNORM = 0.1392E-02 ANORM = 0.7387E-01 + IMAX = 6 BNORM = 0.1396E-02 ANORM = 0.7387E-01 + CALCULATING FOR E= 320.000000 + +==================================================== + + VPIS = -0.1838 VPIO = -0.1838 DCUTS = 106.5560 DCUTO = 106.5560 +0 10 SYMMETRIC BEAMS USED 10 + 0.000 0.000 0.000 1.000 1.000 1.000 0.000 2.000 1.000 2.000 2.000 2.000 0.000 3.000 1.000 3.000 2.000 3.000 + 0.000 4.000 + + RFS CONVERGENCE TEST + IMAX = 17 BNORM = 0.1506E-02 ANORM = 0.1209E-01 + IMAX = 3 BNORM = 0.5103E-03 ANORM = 0.1209E-01 + E= 11.9809 THETA= 0.0000 FI= 0.0000 + + PQ1 PQ2 REF INT + 0.000 0.000 0.22515E-02 + 0.000 1.000 0.70221E-03 + 1.000 1.000 0.27304E-02 + 0.000 2.000 0.33717E-02 + 1.000 2.000 0.43081E-03 + 2.000 2.000 0.14466E-03 + 0.000 3.000 0.13722E-03 + 1.000 3.000 0.48700E-04 + 2.000 3.000 0.27697E-03 + + RFS CONVERGENCE TEST + IMAX = 10 BNORM = 0.1958E-02 ANORM = 0.7968E-01 + IMAX = 6 BNORM = 0.1493E-02 ANORM = 0.7968E-01 + + RFS CONVERGENCE TEST +0***THIS ORDER TOO DEEP + IMAX = 18 BNORM = 0.2971E-02 ANORM = 0.1255E+00 + IMAX = 5 BNORM = 0.1314E-02 ANORM = 0.1255E+00 + + RFS CONVERGENCE TEST + IMAX = 9 BNORM = 0.1026E-02 ANORM = 0.1036E+00 + IMAX = 4 BNORM = 0.1959E-02 ANORM = 0.1037E+00 + + RFS CONVERGENCE TEST + IMAX = 14 BNORM = 0.1894E-02 ANORM = 0.4403E-01 + IMAX = 3 BNORM = 0.4405E-03 ANORM = 0.4403E-01 + + RFS CONVERGENCE TEST + IMAX = 9 BNORM = 0.1754E-02 ANORM = 0.7432E-01 + IMAX = 6 BNORM = 0.1523E-02 ANORM = 0.7433E-01 + CALCULATING FOR E= 324.000000 + +==================================================== + + VPIS = -0.1838 VPIO = -0.1838 DCUTS = 107.2078 DCUTO = 107.2078 +0 10 SYMMETRIC BEAMS USED 10 + 0.000 0.000 0.000 1.000 1.000 1.000 0.000 2.000 1.000 2.000 2.000 2.000 0.000 3.000 1.000 3.000 2.000 3.000 + 0.000 4.000 + + RFS CONVERGENCE TEST + IMAX = 17 BNORM = 0.1494E-02 ANORM = 0.1208E-01 + IMAX = 3 BNORM = 0.3294E-03 ANORM = 0.1208E-01 + E= 12.1279 THETA= 0.0000 FI= 0.0000 + + PQ1 PQ2 REF INT + 0.000 0.000 0.29735E-02 + 0.000 1.000 0.11702E-02 + 1.000 1.000 0.19365E-02 + 0.000 2.000 0.36150E-02 + 1.000 2.000 0.39182E-03 + 2.000 2.000 0.13693E-03 + 0.000 3.000 0.15728E-03 + 1.000 3.000 0.42447E-04 + 2.000 3.000 0.13656E-03 + + RFS CONVERGENCE TEST + IMAX = 12 BNORM = 0.9108E-03 ANORM = 0.8216E-01 + IMAX = 5 BNORM = 0.1864E-02 ANORM = 0.8216E-01 + + RFS CONVERGENCE TEST +0***THIS ORDER TOO DEEP + IMAX = 18 BNORM = 0.2953E-02 ANORM = 0.1213E+00 + IMAX = 4 BNORM = 0.1650E-02 ANORM = 0.1213E+00 + + RFS CONVERGENCE TEST + IMAX = 9 BNORM = 0.1029E-02 ANORM = 0.9747E-01 + IMAX = 4 BNORM = 0.1823E-02 ANORM = 0.9748E-01 + + RFS CONVERGENCE TEST + IMAX = 14 BNORM = 0.1816E-02 ANORM = 0.4454E-01 + IMAX = 3 BNORM = 0.5157E-03 ANORM = 0.4455E-01 + + RFS CONVERGENCE TEST + IMAX = 9 BNORM = 0.1337E-02 ANORM = 0.7373E-01 + IMAX = 6 BNORM = 0.1478E-02 ANORM = 0.7374E-01 + CALCULATING FOR E= 328.000000 + +==================================================== + + VPIS = -0.1838 VPIO = -0.1838 DCUTS = 107.8555 DCUTO = 107.8555 +0 10 SYMMETRIC BEAMS USED 10 + 0.000 0.000 0.000 1.000 1.000 1.000 0.000 2.000 1.000 2.000 2.000 2.000 0.000 3.000 1.000 3.000 2.000 3.000 + 0.000 4.000 + + RFS CONVERGENCE TEST + IMAX = 17 BNORM = 0.1431E-02 ANORM = 0.1201E-01 + IMAX = 3 BNORM = 0.2134E-03 ANORM = 0.1201E-01 + E= 12.2749 THETA= 0.0000 FI= 0.0000 + + PQ1 PQ2 REF INT + 0.000 0.000 0.29114E-02 + 0.000 1.000 0.15781E-02 + 1.000 1.000 0.12254E-02 + 0.000 2.000 0.39313E-02 + 1.000 2.000 0.29199E-03 + 2.000 2.000 0.12634E-03 + 0.000 3.000 0.36664E-03 + 1.000 3.000 0.37255E-04 + 2.000 3.000 0.74921E-04 + + RFS CONVERGENCE TEST + IMAX = 12 BNORM = 0.1020E-02 ANORM = 0.8711E-01 + IMAX = 5 BNORM = 0.1390E-02 ANORM = 0.8711E-01 + + RFS CONVERGENCE TEST +0***THIS ORDER TOO DEEP + IMAX = 18 BNORM = 0.2789E-02 ANORM = 0.1184E+00 + IMAX = 3 BNORM = 0.1711E-02 ANORM = 0.1184E+00 + + RFS CONVERGENCE TEST + IMAX = 9 BNORM = 0.1515E-02 ANORM = 0.9035E-01 + IMAX = 4 BNORM = 0.1499E-02 ANORM = 0.9035E-01 + + RFS CONVERGENCE TEST + IMAX = 14 BNORM = 0.1706E-02 ANORM = 0.4348E-01 + IMAX = 3 BNORM = 0.7555E-03 ANORM = 0.4348E-01 + + RFS CONVERGENCE TEST + IMAX = 9 BNORM = 0.9938E-03 ANORM = 0.7847E-01 + IMAX = 5 BNORM = 0.1866E-02 ANORM = 0.7848E-01 + CALCULATING FOR E= 332.000000 + +==================================================== + + VPIS = -0.1838 VPIO = -0.1838 DCUTS = 108.4995 DCUTO = 108.4995 +0 10 SYMMETRIC BEAMS USED 10 + 0.000 0.000 0.000 1.000 1.000 1.000 0.000 2.000 1.000 2.000 2.000 2.000 0.000 3.000 1.000 3.000 2.000 3.000 + 0.000 4.000 + + RFS CONVERGENCE TEST + IMAX = 16 BNORM = 0.1921E-02 ANORM = 0.1151E-01 + IMAX = 3 BNORM = 0.2258E-03 ANORM = 0.1151E-01 + E= 12.4219 THETA= 0.0000 FI= 0.0000 + + PQ1 PQ2 REF INT + 0.000 0.000 0.21820E-02 + 0.000 1.000 0.18172E-02 + 1.000 1.000 0.69751E-03 + 0.000 2.000 0.39374E-02 + 1.000 2.000 0.23314E-03 + 2.000 2.000 0.11704E-03 + 0.000 3.000 0.81302E-03 + 1.000 3.000 0.31243E-04 + 2.000 3.000 0.58391E-04 + + RFS CONVERGENCE TEST + IMAX = 12 BNORM = 0.1133E-02 ANORM = 0.8834E-01 + IMAX = 3 BNORM = 0.1917E-02 ANORM = 0.8835E-01 + + RFS CONVERGENCE TEST +0***THIS ORDER TOO DEEP + IMAX = 18 BNORM = 0.2542E-02 ANORM = 0.1197E+00 + IMAX = 3 BNORM = 0.1730E-02 ANORM = 0.1197E+00 + + RFS CONVERGENCE TEST + IMAX = 11 BNORM = 0.7486E-03 ANORM = 0.8367E-01 + IMAX = 4 BNORM = 0.1146E-02 ANORM = 0.8367E-01 + + RFS CONVERGENCE TEST + IMAX = 14 BNORM = 0.1587E-02 ANORM = 0.4174E-01 + IMAX = 3 BNORM = 0.1138E-02 ANORM = 0.4175E-01 + + RFS CONVERGENCE TEST + IMAX = 9 BNORM = 0.8195E-03 ANORM = 0.8469E-01 + IMAX = 5 BNORM = 0.1371E-02 ANORM = 0.8470E-01 + CALCULATING FOR E= 336.000000 + +==================================================== + + VPIS = -0.1838 VPIO = -0.1838 DCUTS = 109.1396 DCUTO = 109.1396 +0 10 SYMMETRIC BEAMS USED 10 + 0.000 0.000 0.000 1.000 1.000 1.000 0.000 2.000 1.000 2.000 2.000 2.000 0.000 3.000 1.000 3.000 2.000 3.000 + 0.000 4.000 + + RFS CONVERGENCE TEST + IMAX = 16 BNORM = 0.1641E-02 ANORM = 0.1068E-01 + IMAX = 3 BNORM = 0.3971E-03 ANORM = 0.1068E-01 + E= 12.5689 THETA= 0.0000 FI= 0.0000 + + PQ1 PQ2 REF INT + 0.000 0.000 0.19155E-02 + 0.000 1.000 0.23836E-02 + 1.000 1.000 0.46915E-03 + 0.000 2.000 0.28785E-02 + 1.000 2.000 0.21236E-03 + 2.000 2.000 0.14821E-03 + 0.000 3.000 0.10686E-02 + 1.000 3.000 0.31992E-04 + 2.000 3.000 0.53979E-04 + + RFS CONVERGENCE TEST + IMAX = 12 BNORM = 0.1214E-02 ANORM = 0.8904E-01 + IMAX = 3 BNORM = 0.1240E-02 ANORM = 0.8904E-01 + + RFS CONVERGENCE TEST +0***THIS ORDER TOO DEEP + IMAX = 18 BNORM = 0.2135E-02 ANORM = 0.1148E+00 + IMAX = 4 BNORM = 0.1406E-02 ANORM = 0.1148E+00 + + RFS CONVERGENCE TEST + IMAX = 11 BNORM = 0.1121E-02 ANORM = 0.7955E-01 + IMAX = 3 BNORM = 0.1837E-02 ANORM = 0.7955E-01 + + RFS CONVERGENCE TEST + IMAX = 14 BNORM = 0.1490E-02 ANORM = 0.4049E-01 + IMAX = 3 BNORM = 0.1378E-02 ANORM = 0.4049E-01 + + RFS CONVERGENCE TEST + IMAX = 8 BNORM = 0.1453E-02 ANORM = 0.8107E-01 + IMAX = 4 BNORM = 0.1778E-02 ANORM = 0.8107E-01 + CALCULATING FOR E= 340.000000 + +==================================================== + + VPIS = -0.1838 VPIO = -0.1838 DCUTS = 109.7760 DCUTO = 109.7760 +0 10 SYMMETRIC BEAMS USED 10 + 0.000 0.000 0.000 1.000 1.000 1.000 0.000 2.000 1.000 2.000 2.000 2.000 0.000 3.000 1.000 3.000 2.000 3.000 + 0.000 4.000 + + RFS CONVERGENCE TEST + IMAX = 16 BNORM = 0.1350E-02 ANORM = 0.1018E-01 + IMAX = 3 BNORM = 0.6011E-03 ANORM = 0.1018E-01 + E= 12.7159 THETA= 0.0000 FI= 0.0000 + + PQ1 PQ2 REF INT + 0.000 0.000 0.21510E-02 + 0.000 1.000 0.31959E-02 + 1.000 1.000 0.37135E-03 + 0.000 2.000 0.14800E-02 + 1.000 2.000 0.17746E-03 + 2.000 2.000 0.24050E-03 + 0.000 3.000 0.10714E-02 + 1.000 3.000 0.39399E-04 + 2.000 3.000 0.47460E-04 + + RFS CONVERGENCE TEST + IMAX = 12 BNORM = 0.1255E-02 ANORM = 0.9046E-01 + IMAX = 3 BNORM = 0.1428E-02 ANORM = 0.9047E-01 + + RFS CONVERGENCE TEST +0***THIS ORDER TOO DEEP + IMAX = 18 BNORM = 0.1769E-02 ANORM = 0.1041E+00 + IMAX = 3 BNORM = 0.2092E-02 ANORM = 0.1041E+00 + + RFS CONVERGENCE TEST + IMAX = 11 BNORM = 0.1350E-02 ANORM = 0.7756E-01 + IMAX = 3 BNORM = 0.1236E-02 ANORM = 0.7756E-01 + + RFS CONVERGENCE TEST + IMAX = 13 BNORM = 0.1920E-02 ANORM = 0.3855E-01 + IMAX = 3 BNORM = 0.1565E-02 ANORM = 0.3855E-01 + + RFS CONVERGENCE TEST + IMAX = 8 BNORM = 0.1320E-02 ANORM = 0.6982E-01 + IMAX = 4 BNORM = 0.1647E-02 ANORM = 0.6983E-01 + CALCULATING FOR E= 344.000000 + +==================================================== + + VPIS = -0.1838 VPIO = -0.1838 DCUTS = 110.4087 DCUTO = 110.4087 +0 11 SYMMETRIC BEAMS USED 11 + 0.000 0.000 0.000 1.000 1.000 1.000 0.000 2.000 1.000 2.000 2.000 2.000 0.000 3.000 1.000 3.000 2.000 3.000 + 0.000 4.000 1.000 4.000 + + RFS CONVERGENCE TEST + IMAX = 16 BNORM = 0.1970E-02 ANORM = 0.9629E-02 + IMAX = 3 BNORM = 0.6821E-03 ANORM = 0.9629E-02 + E= 12.8629 THETA= 0.0000 FI= 0.0000 + + PQ1 PQ2 REF INT + 0.000 0.000 0.23974E-02 + 0.000 1.000 0.37361E-02 + 1.000 1.000 0.26781E-03 + 0.000 2.000 0.46056E-03 + 1.000 2.000 0.13383E-03 + 2.000 2.000 0.38799E-03 + 0.000 3.000 0.91922E-03 + 1.000 3.000 0.46712E-04 + 2.000 3.000 0.43357E-04 + + RFS CONVERGENCE TEST + IMAX = 13 BNORM = 0.1139E-02 ANORM = 0.9080E-01 + IMAX = 4 BNORM = 0.1567E-02 ANORM = 0.9080E-01 + + RFS CONVERGENCE TEST +0***THIS ORDER TOO DEEP + IMAX = 18 BNORM = 0.3092E-02 ANORM = 0.9265E-01 + IMAX = 4 BNORM = 0.1269E-02 ANORM = 0.9265E-01 + + RFS CONVERGENCE TEST + IMAX = 11 BNORM = 0.1833E-02 ANORM = 0.7513E-01 + IMAX = 3 BNORM = 0.1174E-02 ANORM = 0.7513E-01 + + RFS CONVERGENCE TEST + IMAX = 13 BNORM = 0.1798E-02 ANORM = 0.3863E-01 + IMAX = 4 BNORM = 0.6901E-03 ANORM = 0.3863E-01 + + RFS CONVERGENCE TEST + IMAX = 8 BNORM = 0.1869E-02 ANORM = 0.5813E-01 + IMAX = 4 BNORM = 0.1827E-02 ANORM = 0.5813E-01 + CALCULATING FOR E= 348.000000 + +==================================================== + + VPIS = -0.1838 VPIO = -0.1838 DCUTS = 111.0378 DCUTO = 111.0378 +0 11 SYMMETRIC BEAMS USED 11 + 0.000 0.000 0.000 1.000 1.000 1.000 0.000 2.000 1.000 2.000 2.000 2.000 0.000 3.000 1.000 3.000 2.000 3.000 + 0.000 4.000 1.000 4.000 + + RFS CONVERGENCE TEST + IMAX = 16 BNORM = 0.1895E-02 ANORM = 0.8844E-02 + IMAX = 3 BNORM = 0.6228E-03 ANORM = 0.8844E-02 + E= 13.0099 THETA= 0.0000 FI= 0.0000 + + PQ1 PQ2 REF INT + 0.000 0.000 0.22024E-02 + 0.000 1.000 0.36218E-02 + 1.000 1.000 0.16888E-03 + 0.000 2.000 0.65954E-04 + 1.000 2.000 0.95834E-04 + 2.000 2.000 0.57333E-03 + 0.000 3.000 0.72854E-03 + 1.000 3.000 0.65794E-04 + 2.000 3.000 0.56907E-04 + + RFS CONVERGENCE TEST + IMAX = 11 BNORM = 0.1991E-02 ANORM = 0.8947E-01 + IMAX = 4 BNORM = 0.1632E-02 ANORM = 0.8947E-01 + + RFS CONVERGENCE TEST +0***THIS ORDER TOO DEEP + IMAX = 18 BNORM = 0.3306E-02 ANORM = 0.8383E-01 + IMAX = 4 BNORM = 0.1918E-02 ANORM = 0.8383E-01 + + RFS CONVERGENCE TEST + IMAX = 11 BNORM = 0.1660E-02 ANORM = 0.7171E-01 + IMAX = 3 BNORM = 0.1231E-02 ANORM = 0.7171E-01 + + RFS CONVERGENCE TEST + IMAX = 11 BNORM = 0.1657E-02 ANORM = 0.4128E-01 + IMAX = 4 BNORM = 0.4795E-03 ANORM = 0.4128E-01 + + RFS CONVERGENCE TEST + IMAX = 10 BNORM = 0.1137E-02 ANORM = 0.5165E-01 + IMAX = 4 BNORM = 0.1466E-02 ANORM = 0.5165E-01 + CALCULATING FOR E= 352.000000 + +==================================================== + + VPIS = -0.1838 VPIO = -0.1838 DCUTS = 111.6634 DCUTO = 111.6634 +0 11 SYMMETRIC BEAMS USED 11 + 0.000 0.000 0.000 1.000 1.000 1.000 0.000 2.000 1.000 2.000 2.000 2.000 0.000 3.000 1.000 3.000 2.000 3.000 + 0.000 4.000 1.000 4.000 + + RFS CONVERGENCE TEST + IMAX = 16 BNORM = 0.1981E-02 ANORM = 0.8011E-02 + IMAX = 3 BNORM = 0.6288E-03 ANORM = 0.8011E-02 + E= 13.1569 THETA= 0.0000 FI= 0.0000 + + PQ1 PQ2 REF INT + 0.000 0.000 0.15949E-02 + 0.000 1.000 0.30792E-02 + 1.000 1.000 0.16257E-03 + 0.000 2.000 0.10596E-03 + 1.000 2.000 0.75615E-04 + 2.000 2.000 0.74858E-03 + 0.000 3.000 0.52107E-03 + 1.000 3.000 0.93498E-04 + 2.000 3.000 0.76630E-04 + + RFS CONVERGENCE TEST + IMAX = 11 BNORM = 0.1700E-02 ANORM = 0.8669E-01 + IMAX = 4 BNORM = 0.1595E-02 ANORM = 0.8669E-01 + + RFS CONVERGENCE TEST +0***THIS ORDER TOO DEEP + IMAX = 18 BNORM = 0.3407E-02 ANORM = 0.8107E-01 + IMAX = 6 BNORM = 0.1068E-02 ANORM = 0.8107E-01 + + RFS CONVERGENCE TEST + IMAX = 11 BNORM = 0.1600E-02 ANORM = 0.6671E-01 + IMAX = 3 BNORM = 0.1506E-02 ANORM = 0.6671E-01 + + RFS CONVERGENCE TEST + IMAX = 9 BNORM = 0.1241E-02 ANORM = 0.4668E-01 + IMAX = 4 BNORM = 0.5538E-03 ANORM = 0.4668E-01 + + RFS CONVERGENCE TEST + IMAX = 10 BNORM = 0.1468E-02 ANORM = 0.5075E-01 + IMAX = 4 BNORM = 0.1289E-02 ANORM = 0.5075E-01 + CALCULATING FOR E= 356.000000 + +==================================================== + + VPIS = -0.1838 VPIO = -0.1838 DCUTS = 112.2855 DCUTO = 112.2855 +0 11 SYMMETRIC BEAMS USED 11 + 0.000 0.000 0.000 1.000 1.000 1.000 0.000 2.000 1.000 2.000 2.000 2.000 0.000 3.000 1.000 3.000 2.000 3.000 + 0.000 4.000 1.000 4.000 + + RFS CONVERGENCE TEST + IMAX = 17 BNORM = 0.1444E-02 ANORM = 0.7806E-02 + IMAX = 3 BNORM = 0.8518E-03 ANORM = 0.7807E-02 + E= 13.3039 THETA= 0.0000 FI= 0.0000 + + PQ1 PQ2 REF INT + 0.000 0.000 0.10138E-02 + 0.000 1.000 0.25296E-02 + 1.000 1.000 0.24225E-03 + 0.000 2.000 0.23403E-03 + 1.000 2.000 0.87846E-04 + 2.000 2.000 0.10265E-02 + 0.000 3.000 0.34688E-03 + 1.000 3.000 0.12217E-03 + 2.000 3.000 0.93887E-04 + + RFS CONVERGENCE TEST + IMAX = 11 BNORM = 0.1976E-02 ANORM = 0.8397E-01 + IMAX = 4 BNORM = 0.1360E-02 ANORM = 0.8397E-01 + + RFS CONVERGENCE TEST +0***THIS ORDER TOO DEEP + IMAX = 18 BNORM = 0.3463E-02 ANORM = 0.8781E-01 + IMAX = 6 BNORM = 0.8732E-03 ANORM = 0.8781E-01 + + RFS CONVERGENCE TEST + IMAX = 11 BNORM = 0.1418E-02 ANORM = 0.6357E-01 + IMAX = 3 BNORM = 0.1850E-02 ANORM = 0.6357E-01 + + RFS CONVERGENCE TEST + IMAX = 8 BNORM = 0.1948E-02 ANORM = 0.5418E-01 + IMAX = 3 BNORM = 0.1208E-02 ANORM = 0.5419E-01 + + RFS CONVERGENCE TEST + IMAX = 10 BNORM = 0.1609E-02 ANORM = 0.5316E-01 + IMAX = 4 BNORM = 0.1291E-02 ANORM = 0.5316E-01 + CALCULATING FOR E= 360.000000 + +==================================================== + + VPIS = -0.1838 VPIO = -0.1838 DCUTS = 112.9041 DCUTO = 112.9041 +0 11 SYMMETRIC BEAMS USED 11 + 0.000 0.000 0.000 1.000 1.000 1.000 0.000 2.000 1.000 2.000 2.000 2.000 0.000 3.000 1.000 3.000 2.000 3.000 + 0.000 4.000 1.000 4.000 + + RFS CONVERGENCE TEST + IMAX = 17 BNORM = 0.1539E-02 ANORM = 0.8483E-02 + IMAX = 3 BNORM = 0.1159E-02 ANORM = 0.8483E-02 + E= 13.4509 THETA= 0.0000 FI= 0.0000 + + PQ1 PQ2 REF INT + 0.000 0.000 0.67245E-03 + 0.000 1.000 0.20965E-02 + 1.000 1.000 0.40240E-03 + 0.000 2.000 0.30609E-03 + 1.000 2.000 0.13633E-03 + 2.000 2.000 0.14598E-02 + 0.000 3.000 0.20342E-03 + 1.000 3.000 0.14093E-03 + 2.000 3.000 0.10430E-03 + + RFS CONVERGENCE TEST + IMAX = 12 BNORM = 0.1499E-02 ANORM = 0.8657E-01 + IMAX = 4 BNORM = 0.1007E-02 ANORM = 0.8658E-01 + + RFS CONVERGENCE TEST +0***THIS ORDER TOO DEEP + IMAX = 18 BNORM = 0.3534E-02 ANORM = 0.1024E+00 + IMAX = 6 BNORM = 0.7961E-03 ANORM = 0.1024E+00 + + RFS CONVERGENCE TEST + IMAX = 10 BNORM = 0.1895E-02 ANORM = 0.6762E-01 + IMAX = 6 BNORM = 0.1203E-02 ANORM = 0.6762E-01 + + RFS CONVERGENCE TEST + IMAX = 9 BNORM = 0.1155E-02 ANORM = 0.5864E-01 + IMAX = 3 BNORM = 0.7737E-03 ANORM = 0.5864E-01 + + RFS CONVERGENCE TEST + IMAX = 10 BNORM = 0.1813E-02 ANORM = 0.5810E-01 + IMAX = 4 BNORM = 0.1241E-02 ANORM = 0.5811E-01 + CALCULATING FOR E= 364.000000 + +==================================================== + + VPIS = -0.1838 VPIO = -0.1838 DCUTS = 113.5194 DCUTO = 113.5194 +0 12 SYMMETRIC BEAMS USED 12 + 0.000 0.000 0.000 1.000 1.000 1.000 0.000 2.000 1.000 2.000 2.000 2.000 0.000 3.000 1.000 3.000 2.000 3.000 + 0.000 4.000 1.000 4.000 3.000 3.000 + + RFS CONVERGENCE TEST + IMAX = 17 BNORM = 0.1788E-02 ANORM = 0.9424E-02 + IMAX = 3 BNORM = 0.1855E-02 ANORM = 0.9425E-02 + E= 13.5979 THETA= 0.0000 FI= 0.0000 + + PQ1 PQ2 REF INT + 0.000 0.000 0.44453E-03 + 0.000 1.000 0.15030E-02 + 1.000 1.000 0.58568E-03 + 0.000 2.000 0.33191E-03 + 1.000 2.000 0.20731E-03 + 2.000 2.000 0.20860E-02 + 0.000 3.000 0.96897E-04 + 1.000 3.000 0.15618E-03 + 2.000 3.000 0.12485E-03 + + RFS CONVERGENCE TEST + IMAX = 12 BNORM = 0.1591E-02 ANORM = 0.9653E-01 + IMAX = 4 BNORM = 0.1205E-02 ANORM = 0.9653E-01 + + RFS CONVERGENCE TEST +0***THIS ORDER TOO DEEP + IMAX = 18 BNORM = 0.4287E-02 ANORM = 0.1132E+00 + IMAX = 5 BNORM = 0.1838E-02 ANORM = 0.1132E+00 + + RFS CONVERGENCE TEST + IMAX = 11 BNORM = 0.9783E-03 ANORM = 0.7121E-01 + IMAX = 6 BNORM = 0.1627E-02 ANORM = 0.7121E-01 + + RFS CONVERGENCE TEST + IMAX = 9 BNORM = 0.1349E-02 ANORM = 0.5973E-01 + IMAX = 3 BNORM = 0.1280E-02 ANORM = 0.5973E-01 + + RFS CONVERGENCE TEST + IMAX = 11 BNORM = 0.1788E-02 ANORM = 0.6495E-01 + IMAX = 5 BNORM = 0.9313E-03 ANORM = 0.6495E-01 + CALCULATING FOR E= 368.000000 + +==================================================== + + VPIS = -0.1838 VPIO = -0.1838 DCUTS = 114.1314 DCUTO = 114.1314 +0 12 SYMMETRIC BEAMS USED 12 + 0.000 0.000 0.000 1.000 1.000 1.000 0.000 2.000 1.000 2.000 2.000 2.000 0.000 3.000 1.000 3.000 2.000 3.000 + 0.000 4.000 1.000 4.000 3.000 3.000 + + RFS CONVERGENCE TEST + IMAX = 17 BNORM = 0.1816E-02 ANORM = 0.9734E-02 + IMAX = 4 BNORM = 0.1088E-02 ANORM = 0.9734E-02 + E= 13.7449 THETA= 0.0000 FI= 0.0000 + + PQ1 PQ2 REF INT + 0.000 0.000 0.33474E-03 + 0.000 1.000 0.88499E-03 + 1.000 1.000 0.61218E-03 + 0.000 2.000 0.32805E-03 + 1.000 2.000 0.24048E-03 + 2.000 2.000 0.31627E-02 + 0.000 3.000 0.42758E-04 + 1.000 3.000 0.15069E-03 + 2.000 3.000 0.13641E-03 + + RFS CONVERGENCE TEST + IMAX = 12 BNORM = 0.1617E-02 ANORM = 0.1055E+00 + IMAX = 4 BNORM = 0.1620E-02 ANORM = 0.1055E+00 + + RFS CONVERGENCE TEST +0***THIS ORDER TOO DEEP + IMAX = 18 BNORM = 0.4349E-02 ANORM = 0.1118E+00 + IMAX = 5 BNORM = 0.1931E-02 ANORM = 0.1118E+00 + + RFS CONVERGENCE TEST + IMAX = 11 BNORM = 0.1194E-02 ANORM = 0.6479E-01 + IMAX = 7 BNORM = 0.6711E-03 ANORM = 0.6479E-01 + + RFS CONVERGENCE TEST + IMAX = 9 BNORM = 0.1257E-02 ANORM = 0.6626E-01 + IMAX = 3 BNORM = 0.1537E-02 ANORM = 0.6626E-01 + + RFS CONVERGENCE TEST + IMAX = 12 BNORM = 0.1410E-02 ANORM = 0.6745E-01 + IMAX = 5 BNORM = 0.1154E-02 ANORM = 0.6746E-01 + CALCULATING FOR E= 372.000000 + +==================================================== + + VPIS = -0.1838 VPIO = -0.1838 DCUTS = 114.7401 DCUTO = 114.7401 +0 12 SYMMETRIC BEAMS USED 12 + 0.000 0.000 0.000 1.000 1.000 1.000 0.000 2.000 1.000 2.000 2.000 2.000 0.000 3.000 1.000 3.000 2.000 3.000 + 0.000 4.000 1.000 4.000 3.000 3.000 + + RFS CONVERGENCE TEST + IMAX = 17 BNORM = 0.1797E-02 ANORM = 0.1017E-01 + IMAX = 4 BNORM = 0.1656E-02 ANORM = 0.1017E-01 + E= 13.8920 THETA= 0.0000 FI= 0.0000 + + PQ1 PQ2 REF INT + 0.000 0.000 0.45321E-03 + 0.000 1.000 0.58731E-03 + 1.000 1.000 0.43489E-03 + 0.000 2.000 0.42075E-03 + 1.000 2.000 0.21286E-03 + 2.000 2.000 0.42688E-02 + 0.000 3.000 0.42126E-04 + 1.000 3.000 0.11439E-03 + 2.000 3.000 0.11959E-03 + 0.000 4.000 0.14108E-03 + + RFS CONVERGENCE TEST + IMAX = 12 BNORM = 0.1743E-02 ANORM = 0.1062E+00 + IMAX = 4 BNORM = 0.1839E-02 ANORM = 0.1062E+00 + + RFS CONVERGENCE TEST +0***THIS ORDER TOO DEEP + IMAX = 18 BNORM = 0.4220E-02 ANORM = 0.1074E+00 + IMAX = 7 BNORM = 0.1672E-02 ANORM = 0.1074E+00 + + RFS CONVERGENCE TEST + IMAX = 11 BNORM = 0.1518E-02 ANORM = 0.5882E-01 + IMAX = 7 BNORM = 0.1020E-02 ANORM = 0.5883E-01 + + RFS CONVERGENCE TEST + IMAX = 9 BNORM = 0.1194E-02 ANORM = 0.7878E-01 + IMAX = 3 BNORM = 0.1852E-02 ANORM = 0.7878E-01 + + RFS CONVERGENCE TEST + IMAX = 12 BNORM = 0.1859E-02 ANORM = 0.6683E-01 + IMAX = 5 BNORM = 0.1552E-02 ANORM = 0.6684E-01 + CALCULATING FOR E= 376.000000 + +==================================================== + + VPIS = -0.1838 VPIO = -0.1838 DCUTS = 115.3456 DCUTO = 115.3456 +0 12 SYMMETRIC BEAMS USED 12 + 0.000 0.000 0.000 1.000 1.000 1.000 0.000 2.000 1.000 2.000 2.000 2.000 0.000 3.000 1.000 3.000 2.000 3.000 + 0.000 4.000 1.000 4.000 3.000 3.000 + + RFS CONVERGENCE TEST + IMAX = 17 BNORM = 0.1725E-02 ANORM = 0.1018E-01 + IMAX = 5 BNORM = 0.8834E-03 ANORM = 0.1018E-01 + E= 14.0390 THETA= 0.0000 FI= 0.0000 + + PQ1 PQ2 REF INT + 0.000 0.000 0.67777E-03 + 0.000 1.000 0.56340E-03 + 1.000 1.000 0.19853E-03 + 0.000 2.000 0.62975E-03 + 1.000 2.000 0.24297E-03 + 2.000 2.000 0.44066E-02 + 0.000 3.000 0.11164E-03 + 1.000 3.000 0.84755E-04 + 2.000 3.000 0.79427E-04 + 0.000 4.000 0.13670E-03 + + RFS CONVERGENCE TEST + IMAX = 12 BNORM = 0.1905E-02 ANORM = 0.9716E-01 + IMAX = 4 BNORM = 0.1726E-02 ANORM = 0.9717E-01 + + RFS CONVERGENCE TEST +0***THIS ORDER TOO DEEP + IMAX = 18 BNORM = 0.3789E-02 ANORM = 0.1064E+00 + IMAX = 8 BNORM = 0.1100E-02 ANORM = 0.1064E+00 + + RFS CONVERGENCE TEST + IMAX = 11 BNORM = 0.1745E-02 ANORM = 0.5455E-01 + IMAX = 7 BNORM = 0.1031E-02 ANORM = 0.5456E-01 + + RFS CONVERGENCE TEST + IMAX = 9 BNORM = 0.1297E-02 ANORM = 0.8399E-01 + IMAX = 4 BNORM = 0.1244E-02 ANORM = 0.8399E-01 + + RFS CONVERGENCE TEST + IMAX = 13 BNORM = 0.1282E-02 ANORM = 0.6225E-01 + IMAX = 5 BNORM = 0.1814E-02 ANORM = 0.6226E-01 + CALCULATING FOR E= 380.000000 + +==================================================== + + VPIS = -0.1838 VPIO = -0.1838 DCUTS = 115.9479 DCUTO = 115.9479 +0 12 SYMMETRIC BEAMS USED 12 + 0.000 0.000 0.000 1.000 1.000 1.000 0.000 2.000 1.000 2.000 2.000 2.000 0.000 3.000 1.000 3.000 2.000 3.000 + 0.000 4.000 1.000 4.000 3.000 3.000 + + RFS CONVERGENCE TEST + IMAX = 17 BNORM = 0.1680E-02 ANORM = 0.9240E-02 + IMAX = 5 BNORM = 0.9073E-03 ANORM = 0.9241E-02 + E= 14.1860 THETA= 0.0000 FI= 0.0000 + + PQ1 PQ2 REF INT + 0.000 0.000 0.83657E-03 + 0.000 1.000 0.51948E-03 + 1.000 1.000 0.76618E-04 + 0.000 2.000 0.81350E-03 + 1.000 2.000 0.42256E-03 + 2.000 2.000 0.37035E-02 + 0.000 3.000 0.17956E-03 + 1.000 3.000 0.96486E-04 + 2.000 3.000 0.37116E-04 + 0.000 4.000 0.12011E-03 + + RFS CONVERGENCE TEST + IMAX = 13 BNORM = 0.1562E-02 ANORM = 0.8399E-01 + IMAX = 4 BNORM = 0.1677E-02 ANORM = 0.8399E-01 + + RFS CONVERGENCE TEST +0***THIS ORDER TOO DEEP + IMAX = 18 BNORM = 0.3324E-02 ANORM = 0.1102E+00 + IMAX = 8 BNORM = 0.1467E-02 ANORM = 0.1102E+00 + + RFS CONVERGENCE TEST + IMAX = 11 BNORM = 0.1985E-02 ANORM = 0.5436E-01 + IMAX = 6 BNORM = 0.1503E-02 ANORM = 0.5436E-01 + + RFS CONVERGENCE TEST + IMAX = 9 BNORM = 0.1254E-02 ANORM = 0.7614E-01 + IMAX = 4 BNORM = 0.1098E-02 ANORM = 0.7615E-01 + + RFS CONVERGENCE TEST + IMAX = 12 BNORM = 0.1900E-02 ANORM = 0.5527E-01 + IMAX = 6 BNORM = 0.1011E-02 ANORM = 0.5528E-01 + CALCULATING FOR E= 384.000000 + +==================================================== + + VPIS = -0.1838 VPIO = -0.1838 DCUTS = 116.5471 DCUTO = 116.5471 +0 12 SYMMETRIC BEAMS USED 12 + 0.000 0.000 0.000 1.000 1.000 1.000 0.000 2.000 1.000 2.000 2.000 2.000 0.000 3.000 1.000 3.000 2.000 3.000 + 0.000 4.000 1.000 4.000 3.000 3.000 + + RFS CONVERGENCE TEST + IMAX = 17 BNORM = 0.1554E-02 ANORM = 0.7971E-02 + IMAX = 4 BNORM = 0.1750E-02 ANORM = 0.7971E-02 + E= 14.3330 THETA= 0.0000 FI= 0.0000 + + PQ1 PQ2 REF INT + 0.000 0.000 0.82184E-03 + 0.000 1.000 0.48318E-03 + 1.000 1.000 0.54802E-04 + 0.000 2.000 0.97717E-03 + 1.000 2.000 0.71970E-03 + 2.000 2.000 0.24767E-02 + 0.000 3.000 0.20347E-03 + 1.000 3.000 0.13333E-03 + 2.000 3.000 0.20791E-04 + 0.000 4.000 0.10965E-03 + + RFS CONVERGENCE TEST + IMAX = 13 BNORM = 0.1562E-02 ANORM = 0.7591E-01 + IMAX = 4 BNORM = 0.1220E-02 ANORM = 0.7591E-01 + + RFS CONVERGENCE TEST +0***THIS ORDER TOO DEEP + IMAX = 18 BNORM = 0.2823E-02 ANORM = 0.1135E+00 + IMAX = 8 BNORM = 0.1049E-02 ANORM = 0.1135E+00 + + RFS CONVERGENCE TEST + IMAX = 12 BNORM = 0.1345E-02 ANORM = 0.5991E-01 + IMAX = 6 BNORM = 0.7718E-03 ANORM = 0.5991E-01 + + RFS CONVERGENCE TEST + IMAX = 9 BNORM = 0.1149E-02 ANORM = 0.5898E-01 + IMAX = 4 BNORM = 0.1062E-02 ANORM = 0.5899E-01 + + RFS CONVERGENCE TEST + IMAX = 12 BNORM = 0.1990E-02 ANORM = 0.5273E-01 + IMAX = 6 BNORM = 0.1018E-02 ANORM = 0.5274E-01 + CALCULATING FOR E= 388.000000 + +==================================================== + + VPIS = -0.1838 VPIO = -0.1838 DCUTS = 117.1433 DCUTO = 117.1433 +0 12 SYMMETRIC BEAMS USED 12 + 0.000 0.000 0.000 1.000 1.000 1.000 0.000 2.000 1.000 2.000 2.000 2.000 0.000 3.000 1.000 3.000 2.000 3.000 + 0.000 4.000 1.000 4.000 3.000 3.000 + + RFS CONVERGENCE TEST + IMAX = 16 BNORM = 0.1906E-02 ANORM = 0.6871E-02 + IMAX = 4 BNORM = 0.1674E-02 ANORM = 0.6872E-02 + E= 14.4800 THETA= 0.0000 FI= 0.0000 + + PQ1 PQ2 REF INT + 0.000 0.000 0.77639E-03 + 0.000 1.000 0.47174E-03 + 1.000 1.000 0.42309E-04 + 0.000 2.000 0.10789E-02 + 1.000 2.000 0.10664E-02 + 2.000 2.000 0.12718E-02 + 0.000 3.000 0.20637E-03 + 1.000 3.000 0.14930E-03 + 2.000 3.000 0.43187E-04 + 0.000 4.000 0.13256E-03 + + RFS CONVERGENCE TEST + IMAX = 13 BNORM = 0.1572E-02 ANORM = 0.7644E-01 + IMAX = 4 BNORM = 0.1480E-02 ANORM = 0.7644E-01 + + RFS CONVERGENCE TEST +0***THIS ORDER TOO DEEP + IMAX = 18 BNORM = 0.2446E-02 ANORM = 0.1222E+00 + IMAX = 8 BNORM = 0.1505E-02 ANORM = 0.1222E+00 + + RFS CONVERGENCE TEST + IMAX = 12 BNORM = 0.1531E-02 ANORM = 0.6722E-01 + IMAX = 6 BNORM = 0.7786E-03 ANORM = 0.6722E-01 + + RFS CONVERGENCE TEST + IMAX = 9 BNORM = 0.1457E-02 ANORM = 0.4498E-01 + IMAX = 3 BNORM = 0.1067E-02 ANORM = 0.4499E-01 + + RFS CONVERGENCE TEST + IMAX = 13 BNORM = 0.1620E-02 ANORM = 0.5446E-01 + IMAX = 6 BNORM = 0.1008E-02 ANORM = 0.5446E-01 + CALCULATING FOR E= 392.000000 + +==================================================== + + VPIS = -0.1838 VPIO = -0.1838 DCUTS = 117.7364 DCUTO = 117.7364 +0 12 SYMMETRIC BEAMS USED 12 + 0.000 0.000 0.000 1.000 1.000 1.000 0.000 2.000 1.000 2.000 2.000 2.000 0.000 3.000 1.000 3.000 2.000 3.000 + 0.000 4.000 1.000 4.000 3.000 3.000 + + RFS CONVERGENCE TEST + IMAX = 16 BNORM = 0.1703E-02 ANORM = 0.6132E-02 + IMAX = 3 BNORM = 0.1800E-02 ANORM = 0.6133E-02 + E= 14.6270 THETA= 0.0000 FI= 0.0000 + + PQ1 PQ2 REF INT + 0.000 0.000 0.11155E-02 + 0.000 1.000 0.50193E-03 + 1.000 1.000 0.23631E-04 + 0.000 2.000 0.95420E-03 + 1.000 2.000 0.13049E-02 + 2.000 2.000 0.49947E-03 + 0.000 3.000 0.19480E-03 + 1.000 3.000 0.80610E-04 + 2.000 3.000 0.54599E-04 + 0.000 4.000 0.13430E-03 + 1.000 4.000 0.13449E-05 + + RFS CONVERGENCE TEST + IMAX = 13 BNORM = 0.1614E-02 ANORM = 0.7367E-01 + IMAX = 4 BNORM = 0.1262E-02 ANORM = 0.7367E-01 + + RFS CONVERGENCE TEST +0***THIS ORDER TOO DEEP + IMAX = 18 BNORM = 0.2302E-02 ANORM = 0.1249E+00 + IMAX = 8 BNORM = 0.1224E-02 ANORM = 0.1249E+00 + + RFS CONVERGENCE TEST + IMAX = 12 BNORM = 0.1859E-02 ANORM = 0.6619E-01 + IMAX = 5 BNORM = 0.1725E-02 ANORM = 0.6620E-01 + + RFS CONVERGENCE TEST + IMAX = 10 BNORM = 0.1191E-02 ANORM = 0.3701E-01 + IMAX = 3 BNORM = 0.1541E-02 ANORM = 0.3701E-01 + + RFS CONVERGENCE TEST + IMAX = 14 BNORM = 0.1537E-02 ANORM = 0.5344E-01 + IMAX = 6 BNORM = 0.1113E-02 ANORM = 0.5344E-01 + CALCULATING FOR E= 396.000000 + +==================================================== + + VPIS = -0.1838 VPIO = -0.1838 DCUTS = 118.3266 DCUTO = 118.3266 +0 12 SYMMETRIC BEAMS USED 12 + 0.000 0.000 0.000 1.000 1.000 1.000 0.000 2.000 1.000 2.000 2.000 2.000 0.000 3.000 1.000 3.000 2.000 3.000 + 0.000 4.000 1.000 4.000 3.000 3.000 + + RFS CONVERGENCE TEST + IMAX = 16 BNORM = 0.1431E-02 ANORM = 0.6395E-02 + IMAX = 3 BNORM = 0.6693E-03 ANORM = 0.6396E-02 + E= 14.7740 THETA= 0.0000 FI= 0.0000 + + PQ1 PQ2 REF INT + 0.000 0.000 0.22597E-02 + 0.000 1.000 0.53408E-03 + 1.000 1.000 0.12251E-04 + 0.000 2.000 0.69827E-03 + 1.000 2.000 0.12889E-02 + 2.000 2.000 0.14495E-03 + 0.000 3.000 0.17314E-03 + 1.000 3.000 0.36621E-04 + 2.000 3.000 0.26970E-04 + 0.000 4.000 0.13390E-03 + 1.000 4.000 0.93615E-06 + + RFS CONVERGENCE TEST + IMAX = 13 BNORM = 0.1604E-02 ANORM = 0.6696E-01 + IMAX = 4 BNORM = 0.9016E-03 ANORM = 0.6696E-01 + + RFS CONVERGENCE TEST +0***THIS ORDER TOO DEEP + IMAX = 18 BNORM = 0.2010E-02 ANORM = 0.1183E+00 + IMAX = 7 BNORM = 0.1359E-02 ANORM = 0.1183E+00 + + RFS CONVERGENCE TEST + IMAX = 13 BNORM = 0.1541E-02 ANORM = 0.5601E-01 + IMAX = 5 BNORM = 0.1547E-02 ANORM = 0.5602E-01 + + RFS CONVERGENCE TEST + IMAX = 10 BNORM = 0.1984E-02 ANORM = 0.3357E-01 + IMAX = 5 BNORM = 0.7066E-03 ANORM = 0.3357E-01 + + RFS CONVERGENCE TEST + IMAX = 14 BNORM = 0.1520E-02 ANORM = 0.4955E-01 + IMAX = 6 BNORM = 0.1334E-02 ANORM = 0.4956E-01 + CALCULATING FOR E= 400.000000 + +==================================================== + + VPIS = -0.1838 VPIO = -0.1838 DCUTS = 118.9138 DCUTO = 118.9138 +0 12 SYMMETRIC BEAMS USED 12 + 0.000 0.000 0.000 1.000 1.000 1.000 0.000 2.000 1.000 2.000 2.000 2.000 0.000 3.000 1.000 3.000 2.000 3.000 + 0.000 4.000 1.000 4.000 3.000 3.000 + + RFS CONVERGENCE TEST + IMAX = 15 BNORM = 0.1818E-02 ANORM = 0.8437E-02 + IMAX = 3 BNORM = 0.9740E-03 ANORM = 0.8439E-02 + E= 14.9210 THETA= 0.0000 FI= 0.0000 + + PQ1 PQ2 REF INT + 0.000 0.000 0.52132E-02 + 0.000 1.000 0.55819E-03 + 1.000 1.000 0.26137E-04 + 0.000 2.000 0.47316E-03 + 1.000 2.000 0.95368E-03 + 2.000 2.000 0.32996E-04 + 0.000 3.000 0.14174E-03 + 1.000 3.000 0.11064E-03 + 2.000 3.000 0.94329E-05 + 0.000 4.000 0.10458E-03 + 1.000 4.000 0.42725E-05 + + RFS CONVERGENCE TEST + IMAX = 12 BNORM = 0.1990E-02 ANORM = 0.5798E-01 + IMAX = 4 BNORM = 0.1825E-02 ANORM = 0.5798E-01 + + RFS CONVERGENCE TEST +0***THIS ORDER TOO DEEP + IMAX = 18 BNORM = 0.1731E-02 ANORM = 0.1014E+00 + IMAX = 7 BNORM = 0.1027E-02 ANORM = 0.1014E+00 + + RFS CONVERGENCE TEST + IMAX = 12 BNORM = 0.1950E-02 ANORM = 0.4613E-01 + IMAX = 5 BNORM = 0.1811E-02 ANORM = 0.4613E-01 + + RFS CONVERGENCE TEST + IMAX = 11 BNORM = 0.1832E-02 ANORM = 0.3330E-01 + IMAX = 4 BNORM = 0.9584E-03 ANORM = 0.3330E-01 + + RFS CONVERGENCE TEST + IMAX = 13 BNORM = 0.1684E-02 ANORM = 0.4644E-01 + IMAX = 6 BNORM = 0.1375E-02 ANORM = 0.4644E-01 + CALCULATING FOR E= 404.000000 + +==================================================== + + VPIS = -0.1838 VPIO = -0.1838 DCUTS = 119.4982 DCUTO = 119.4982 +0 12 SYMMETRIC BEAMS USED 12 + 0.000 0.000 0.000 1.000 1.000 1.000 0.000 2.000 1.000 2.000 2.000 2.000 0.000 3.000 1.000 3.000 2.000 3.000 + 0.000 4.000 1.000 4.000 3.000 3.000 + + RFS CONVERGENCE TEST + IMAX = 15 BNORM = 0.1687E-02 ANORM = 0.1164E-01 + IMAX = 3 BNORM = 0.9421E-03 ANORM = 0.1164E-01 + E= 15.0680 THETA= 0.0000 FI= 0.0000 + + PQ1 PQ2 REF INT + 0.000 0.000 0.88590E-02 + 0.000 1.000 0.54668E-03 + 1.000 1.000 0.16247E-03 + 0.000 2.000 0.35459E-03 + 1.000 2.000 0.72819E-03 + 2.000 2.000 0.36731E-04 + 0.000 3.000 0.87767E-04 + 1.000 3.000 0.14701E-03 + 2.000 3.000 0.49947E-05 + 0.000 4.000 0.51652E-04 + 1.000 4.000 0.30019E-05 + + RFS CONVERGENCE TEST + IMAX = 12 BNORM = 0.1784E-02 ANORM = 0.5487E-01 + IMAX = 5 BNORM = 0.7236E-03 ANORM = 0.5487E-01 + + RFS CONVERGENCE TEST +0***THIS ORDER TOO DEEP + IMAX = 18 BNORM = 0.2109E-02 ANORM = 0.9418E-01 + IMAX = 5 BNORM = 0.1975E-02 ANORM = 0.9418E-01 + + RFS CONVERGENCE TEST + IMAX = 12 BNORM = 0.1660E-02 ANORM = 0.4325E-01 + IMAX = 4 BNORM = 0.1328E-02 ANORM = 0.4325E-01 + + RFS CONVERGENCE TEST + IMAX = 11 BNORM = 0.1657E-02 ANORM = 0.3627E-01 + IMAX = 3 BNORM = 0.1100E-02 ANORM = 0.3628E-01 + + RFS CONVERGENCE TEST + IMAX = 12 BNORM = 0.1740E-02 ANORM = 0.4796E-01 + IMAX = 5 BNORM = 0.1848E-02 ANORM = 0.4796E-01 + CALCULATING FOR E= 408.000000 + +==================================================== + + VPIS = -0.1838 VPIO = -0.1838 DCUTS = 120.0797 DCUTO = 120.0797 +0 12 SYMMETRIC BEAMS USED 12 + 0.000 0.000 0.000 1.000 1.000 1.000 0.000 2.000 1.000 2.000 2.000 2.000 0.000 3.000 1.000 3.000 2.000 3.000 + 0.000 4.000 1.000 4.000 3.000 3.000 + + RFS CONVERGENCE TEST + IMAX = 15 BNORM = 0.1782E-02 ANORM = 0.1495E-01 + IMAX = 3 BNORM = 0.5896E-03 ANORM = 0.1495E-01 + E= 15.2150 THETA= 0.0000 FI= 0.0000 + + PQ1 PQ2 REF INT + 0.000 0.000 0.11507E-01 + 0.000 1.000 0.55967E-03 + 1.000 1.000 0.60699E-03 + 0.000 2.000 0.29607E-03 + 1.000 2.000 0.70473E-03 + 2.000 2.000 0.10282E-03 + 0.000 3.000 0.40921E-04 + 1.000 3.000 0.16802E-03 + 2.000 3.000 0.12326E-05 + 0.000 4.000 0.26039E-04 + 1.000 4.000 0.43230E-05 + + RFS CONVERGENCE TEST + IMAX = 12 BNORM = 0.1948E-02 ANORM = 0.6657E-01 + IMAX = 5 BNORM = 0.7209E-03 ANORM = 0.6657E-01 + + RFS CONVERGENCE TEST +0***THIS ORDER TOO DEEP + IMAX = 18 BNORM = 0.2760E-02 ANORM = 0.1004E+00 + IMAX = 5 BNORM = 0.1362E-02 ANORM = 0.1004E+00 + + RFS CONVERGENCE TEST + IMAX = 12 BNORM = 0.1585E-02 ANORM = 0.4709E-01 + IMAX = 3 BNORM = 0.2735E-02 ANORM = 0.4709E-01 + + RFS CONVERGENCE TEST + IMAX = 11 BNORM = 0.1300E-02 ANORM = 0.4240E-01 + IMAX = 3 BNORM = 0.1176E-02 ANORM = 0.4241E-01 + + RFS CONVERGENCE TEST + IMAX = 13 BNORM = 0.1258E-02 ANORM = 0.5306E-01 + IMAX = 5 BNORM = 0.1962E-02 ANORM = 0.5306E-01 + CALCULATING FOR E= 412.000000 + +==================================================== + + VPIS = -0.1838 VPIO = -0.1838 DCUTS = 120.6584 DCUTO = 120.6584 +0 13 SYMMETRIC BEAMS USED 13 + 0.000 0.000 0.000 1.000 1.000 1.000 0.000 2.000 1.000 2.000 2.000 2.000 0.000 3.000 1.000 3.000 2.000 3.000 + 0.000 4.000 1.000 4.000 3.000 3.000 2.000 4.000 + + RFS CONVERGENCE TEST + IMAX = 16 BNORM = 0.1403E-02 ANORM = 0.1609E-01 + IMAX = 3 BNORM = 0.3592E-03 ANORM = 0.1610E-01 + E= 15.3620 THETA= 0.0000 FI= 0.0000 + + PQ1 PQ2 REF INT + 0.000 0.000 0.11730E-01 + 0.000 1.000 0.52437E-03 + 1.000 1.000 0.14543E-02 + 0.000 2.000 0.24371E-03 + 1.000 2.000 0.71462E-03 + 2.000 2.000 0.21356E-03 + 0.000 3.000 0.22190E-04 + 1.000 3.000 0.18335E-03 + 2.000 3.000 0.93233E-07 + 0.000 4.000 0.24113E-04 + 1.000 4.000 0.19532E-04 + + RFS CONVERGENCE TEST + IMAX = 13 BNORM = 0.1443E-02 ANORM = 0.7128E-01 + IMAX = 5 BNORM = 0.1432E-02 ANORM = 0.7128E-01 + + RFS CONVERGENCE TEST +0***THIS ORDER TOO DEEP + IMAX = 18 BNORM = 0.3383E-02 ANORM = 0.1103E+00 + IMAX = 4 BNORM = 0.1766E-02 ANORM = 0.1103E+00 + + RFS CONVERGENCE TEST + IMAX = 13 BNORM = 0.1664E-02 ANORM = 0.5447E-01 + IMAX = 5 BNORM = 0.1613E-02 ANORM = 0.5448E-01 + + RFS CONVERGENCE TEST + IMAX = 11 BNORM = 0.1415E-02 ANORM = 0.4905E-01 + IMAX = 3 BNORM = 0.1638E-02 ANORM = 0.4905E-01 + + RFS CONVERGENCE TEST + IMAX = 14 BNORM = 0.1806E-02 ANORM = 0.5512E-01 + IMAX = 7 BNORM = 0.1482E-02 ANORM = 0.5512E-01 + CALCULATING FOR E= 416.000000 + +==================================================== + + VPIS = -0.1838 VPIO = -0.1838 DCUTS = 121.2343 DCUTO = 121.2343 +0 13 SYMMETRIC BEAMS USED 13 + 0.000 0.000 0.000 1.000 1.000 1.000 0.000 2.000 1.000 2.000 2.000 2.000 0.000 3.000 1.000 3.000 2.000 3.000 + 0.000 4.000 1.000 4.000 3.000 3.000 2.000 4.000 + + RFS CONVERGENCE TEST + IMAX = 16 BNORM = 0.1436E-02 ANORM = 0.1481E-01 + IMAX = 3 BNORM = 0.3293E-03 ANORM = 0.1481E-01 + E= 15.5090 THETA= 0.0000 FI= 0.0000 + + PQ1 PQ2 REF INT + 0.000 0.000 0.95681E-02 + 0.000 1.000 0.47513E-03 + 1.000 1.000 0.26343E-02 + 0.000 2.000 0.19023E-03 + 1.000 2.000 0.65214E-03 + 2.000 2.000 0.31652E-03 + 0.000 3.000 0.16324E-04 + 1.000 3.000 0.13844E-03 + 2.000 3.000 0.20253E-06 + 0.000 4.000 0.26234E-04 + 1.000 4.000 0.35275E-04 + 3.000 3.000 0.13125E-04 + + RFS CONVERGENCE TEST + IMAX = 13 BNORM = 0.1604E-02 ANORM = 0.6702E-01 + IMAX = 4 BNORM = 0.1427E-02 ANORM = 0.6702E-01 + + RFS CONVERGENCE TEST +0***THIS ORDER TOO DEEP + IMAX = 18 BNORM = 0.3496E-02 ANORM = 0.1185E+00 + IMAX = 4 BNORM = 0.1406E-02 ANORM = 0.1185E+00 + + RFS CONVERGENCE TEST + IMAX = 13 BNORM = 0.1998E-02 ANORM = 0.6748E-01 + IMAX = 3 BNORM = 0.1735E-02 ANORM = 0.6748E-01 + + RFS CONVERGENCE TEST + IMAX = 11 BNORM = 0.1219E-02 ANORM = 0.5390E-01 + IMAX = 3 BNORM = 0.1854E-02 ANORM = 0.5391E-01 + + RFS CONVERGENCE TEST + IMAX = 15 BNORM = 0.1716E-02 ANORM = 0.5330E-01 + IMAX = 7 BNORM = 0.1522E-02 ANORM = 0.5330E-01 + CALCULATING FOR E= 420.000000 + +==================================================== + + VPIS = -0.1838 VPIO = -0.1838 DCUTS = 121.8075 DCUTO = 121.8075 +0 13 SYMMETRIC BEAMS USED 13 + 0.000 0.000 0.000 1.000 1.000 1.000 0.000 2.000 1.000 2.000 2.000 2.000 0.000 3.000 1.000 3.000 2.000 3.000 + 0.000 4.000 1.000 4.000 3.000 3.000 2.000 4.000 + + RFS CONVERGENCE TEST + IMAX = 16 BNORM = 0.1437E-02 ANORM = 0.1250E-01 + IMAX = 3 BNORM = 0.4677E-03 ANORM = 0.1250E-01 + E= 15.6560 THETA= 0.0000 FI= 0.0000 + + PQ1 PQ2 REF INT + 0.000 0.000 0.62059E-02 + 0.000 1.000 0.50602E-03 + 1.000 1.000 0.40341E-02 + 0.000 2.000 0.11702E-03 + 1.000 2.000 0.44497E-03 + 2.000 2.000 0.35735E-03 + 0.000 3.000 0.26881E-04 + 1.000 3.000 0.73405E-04 + 2.000 3.000 0.12694E-05 + 0.000 4.000 0.24385E-04 + 1.000 4.000 0.38873E-04 + 3.000 3.000 0.22833E-04 + + RFS CONVERGENCE TEST + IMAX = 13 BNORM = 0.1652E-02 ANORM = 0.6304E-01 + IMAX = 4 BNORM = 0.1429E-02 ANORM = 0.6304E-01 + + RFS CONVERGENCE TEST +0***THIS ORDER TOO DEEP + IMAX = 18 BNORM = 0.3477E-02 ANORM = 0.1191E+00 + IMAX = 4 BNORM = 0.1969E-02 ANORM = 0.1191E+00 + + RFS CONVERGENCE TEST + IMAX = 14 BNORM = 0.1198E-02 ANORM = 0.8446E-01 + IMAX = 3 BNORM = 0.1868E-02 ANORM = 0.8446E-01 + + RFS CONVERGENCE TEST + IMAX = 10 BNORM = 0.1861E-02 ANORM = 0.5318E-01 + IMAX = 3 BNORM = 0.1619E-02 ANORM = 0.5318E-01 + + RFS CONVERGENCE TEST + IMAX = 16 BNORM = 0.1279E-02 ANORM = 0.4856E-01 + IMAX = 4 BNORM = 0.1888E-02 ANORM = 0.4856E-01 + CALCULATING FOR E= 424.000000 + +==================================================== + + VPIS = -0.1838 VPIO = -0.1838 DCUTS = 122.3780 DCUTO = 122.3780 +0 13 SYMMETRIC BEAMS USED 13 + 0.000 0.000 0.000 1.000 1.000 1.000 0.000 2.000 1.000 2.000 2.000 2.000 0.000 3.000 1.000 3.000 2.000 3.000 + 0.000 4.000 1.000 4.000 3.000 3.000 2.000 4.000 + + RFS CONVERGENCE TEST + IMAX = 15 BNORM = 0.1964E-02 ANORM = 0.1058E-01 + IMAX = 3 BNORM = 0.6120E-03 ANORM = 0.1058E-01 + E= 15.8030 THETA= 0.0000 FI= 0.0000 + + PQ1 PQ2 REF INT + 0.000 0.000 0.30560E-02 + 0.000 1.000 0.54828E-03 + 1.000 1.000 0.52898E-02 + 0.000 2.000 0.55612E-04 + 1.000 2.000 0.18333E-03 + 2.000 2.000 0.36407E-03 + 0.000 3.000 0.11483E-03 + 1.000 3.000 0.53143E-04 + 2.000 3.000 0.34462E-05 + 0.000 4.000 0.22948E-04 + 1.000 4.000 0.30193E-04 + 3.000 3.000 0.35968E-04 + + RFS CONVERGENCE TEST + IMAX = 13 BNORM = 0.1633E-02 ANORM = 0.6214E-01 + IMAX = 4 BNORM = 0.1674E-02 ANORM = 0.6214E-01 + + RFS CONVERGENCE TEST +0***THIS ORDER TOO DEEP + IMAX = 18 BNORM = 0.3385E-02 ANORM = 0.1143E+00 + IMAX = 5 BNORM = 0.1981E-02 ANORM = 0.1143E+00 + + RFS CONVERGENCE TEST + IMAX = 13 BNORM = 0.1895E-02 ANORM = 0.1015E+00 + IMAX = 5 BNORM = 0.1149E-02 ANORM = 0.1015E+00 + + RFS CONVERGENCE TEST + IMAX = 10 BNORM = 0.1994E-02 ANORM = 0.4757E-01 + IMAX = 3 BNORM = 0.1247E-02 ANORM = 0.4757E-01 + + RFS CONVERGENCE TEST + IMAX = 15 BNORM = 0.1423E-02 ANORM = 0.4313E-01 + IMAX = 6 BNORM = 0.1365E-02 ANORM = 0.4314E-01 + CALCULATING FOR E= 428.000000 + +==================================================== + + VPIS = -0.1838 VPIO = -0.1838 DCUTS = 122.9459 DCUTO = 122.9459 +0 13 SYMMETRIC BEAMS USED 13 + 0.000 0.000 0.000 1.000 1.000 1.000 0.000 2.000 1.000 2.000 2.000 2.000 0.000 3.000 1.000 3.000 2.000 3.000 + 0.000 4.000 1.000 4.000 3.000 3.000 2.000 4.000 + + RFS CONVERGENCE TEST + IMAX = 15 BNORM = 0.1951E-02 ANORM = 0.9694E-02 + IMAX = 3 BNORM = 0.5867E-03 ANORM = 0.9696E-02 + E= 15.9500 THETA= 0.0000 FI= 0.0000 + + PQ1 PQ2 REF INT + 0.000 0.000 0.10183E-02 + 0.000 1.000 0.49088E-03 + 1.000 1.000 0.56020E-02 + 0.000 2.000 0.14837E-03 + 1.000 2.000 0.38919E-04 + 2.000 2.000 0.37316E-03 + 0.000 3.000 0.37299E-03 + 1.000 3.000 0.10394E-03 + 2.000 3.000 0.43135E-05 + 0.000 4.000 0.26329E-04 + 1.000 4.000 0.19616E-04 + 3.000 3.000 0.12669E-03 + + RFS CONVERGENCE TEST + IMAX = 13 BNORM = 0.1629E-02 ANORM = 0.6115E-01 + IMAX = 4 BNORM = 0.1656E-02 ANORM = 0.6115E-01 + + RFS CONVERGENCE TEST +0***THIS ORDER TOO DEEP + IMAX = 18 BNORM = 0.3208E-02 ANORM = 0.1075E+00 + IMAX = 6 BNORM = 0.1818E-02 ANORM = 0.1075E+00 + + RFS CONVERGENCE TEST + IMAX = 13 BNORM = 0.1593E-02 ANORM = 0.1095E+00 + IMAX = 5 BNORM = 0.1533E-02 ANORM = 0.1095E+00 + + RFS CONVERGENCE TEST + IMAX = 11 BNORM = 0.1441E-02 ANORM = 0.4437E-01 + IMAX = 3 BNORM = 0.1586E-02 ANORM = 0.4437E-01 + + RFS CONVERGENCE TEST + IMAX = 13 BNORM = 0.1714E-02 ANORM = 0.3933E-01 + IMAX = 7 BNORM = 0.9281E-03 ANORM = 0.3934E-01 + CALCULATING FOR E= 432.000000 + +==================================================== + + VPIS = -0.1838 VPIO = -0.1838 DCUTS = 123.5112 DCUTO = 123.5112 +0 13 SYMMETRIC BEAMS USED 13 + 0.000 0.000 0.000 1.000 1.000 1.000 0.000 2.000 1.000 2.000 2.000 2.000 0.000 3.000 1.000 3.000 2.000 3.000 + 0.000 4.000 1.000 4.000 3.000 3.000 2.000 4.000 + + RFS CONVERGENCE TEST + IMAX = 15 BNORM = 0.1940E-02 ANORM = 0.1007E-01 + IMAX = 3 BNORM = 0.4471E-03 ANORM = 0.1007E-01 + E= 16.0970 THETA= 0.0000 FI= 0.0000 + + PQ1 PQ2 REF INT + 0.000 0.000 0.17893E-03 + 0.000 1.000 0.36832E-03 + 1.000 1.000 0.47989E-02 + 0.000 2.000 0.50395E-03 + 1.000 2.000 0.64443E-04 + 2.000 2.000 0.36223E-03 + 0.000 3.000 0.86164E-03 + 1.000 3.000 0.17063E-03 + 2.000 3.000 0.13819E-05 + 0.000 4.000 0.29228E-04 + 1.000 4.000 0.12434E-04 + 3.000 3.000 0.34716E-03 + + RFS CONVERGENCE TEST + IMAX = 13 BNORM = 0.1665E-02 ANORM = 0.5858E-01 + IMAX = 4 BNORM = 0.1480E-02 ANORM = 0.5858E-01 + + RFS CONVERGENCE TEST +0***THIS ORDER TOO DEEP + IMAX = 18 BNORM = 0.2940E-02 ANORM = 0.1033E+00 + IMAX = 6 BNORM = 0.1615E-02 ANORM = 0.1033E+00 + + RFS CONVERGENCE TEST + IMAX = 13 BNORM = 0.1618E-02 ANORM = 0.1030E+00 + IMAX = 6 BNORM = 0.9455E-03 ANORM = 0.1030E+00 + + RFS CONVERGENCE TEST + IMAX = 12 BNORM = 0.1214E-02 ANORM = 0.4068E-01 + IMAX = 3 BNORM = 0.1906E-02 ANORM = 0.4068E-01 + + RFS CONVERGENCE TEST + IMAX = 13 BNORM = 0.1162E-02 ANORM = 0.3837E-01 + IMAX = 7 BNORM = 0.1179E-02 ANORM = 0.3837E-01 + CALCULATING FOR E= 436.000000 + +==================================================== + + VPIS = -0.1838 VPIO = -0.1838 DCUTS = 124.0739 DCUTO = 124.0739 +0 13 SYMMETRIC BEAMS USED 13 + 0.000 0.000 0.000 1.000 1.000 1.000 0.000 2.000 1.000 2.000 2.000 2.000 0.000 3.000 1.000 3.000 2.000 3.000 + 0.000 4.000 1.000 4.000 3.000 3.000 2.000 4.000 + + RFS CONVERGENCE TEST + IMAX = 15 BNORM = 0.1952E-02 ANORM = 0.1066E-01 + IMAX = 3 BNORM = 0.3709E-03 ANORM = 0.1066E-01 + E= 16.2440 THETA= 0.0000 FI= 0.0000 + + PQ1 PQ2 REF INT + 0.000 0.000 0.63545E-04 + 0.000 1.000 0.25117E-03 + 1.000 1.000 0.34456E-02 + 0.000 2.000 0.10358E-02 + 1.000 2.000 0.16363E-03 + 2.000 2.000 0.33497E-03 + 0.000 3.000 0.16398E-02 + 1.000 3.000 0.20218E-03 + 2.000 3.000 0.15592E-05 + 0.000 4.000 0.30028E-04 + 1.000 4.000 0.11524E-04 + 3.000 3.000 0.48205E-03 + + RFS CONVERGENCE TEST + IMAX = 13 BNORM = 0.1735E-02 ANORM = 0.5525E-01 + IMAX = 4 BNORM = 0.1498E-02 ANORM = 0.5525E-01 + + RFS CONVERGENCE TEST +0***THIS ORDER TOO DEEP + IMAX = 18 BNORM = 0.2602E-02 ANORM = 0.1016E+00 + IMAX = 4 BNORM = 0.1842E-02 ANORM = 0.1016E+00 + + RFS CONVERGENCE TEST + IMAX = 13 BNORM = 0.1826E-02 ANORM = 0.8638E-01 + IMAX = 6 BNORM = 0.1010E-02 ANORM = 0.8639E-01 + + RFS CONVERGENCE TEST + IMAX = 12 BNORM = 0.1856E-02 ANORM = 0.3638E-01 + IMAX = 3 BNORM = 0.1773E-02 ANORM = 0.3638E-01 + + RFS CONVERGENCE TEST + IMAX = 13 BNORM = 0.1157E-02 ANORM = 0.4091E-01 + IMAX = 7 BNORM = 0.1378E-02 ANORM = 0.4091E-01 + CALCULATING FOR E= 440.000000 + +==================================================== + + VPIS = -0.1838 VPIO = -0.1838 DCUTS = 124.6340 DCUTO = 124.6340 +0 13 SYMMETRIC BEAMS USED 13 + 0.000 0.000 0.000 1.000 1.000 1.000 0.000 2.000 1.000 2.000 2.000 2.000 0.000 3.000 1.000 3.000 2.000 3.000 + 0.000 4.000 1.000 4.000 3.000 3.000 2.000 4.000 + + RFS CONVERGENCE TEST + IMAX = 16 BNORM = 0.1442E-02 ANORM = 0.1044E-01 + IMAX = 3 BNORM = 0.5395E-03 ANORM = 0.1044E-01 + E= 16.3910 THETA= 0.0000 FI= 0.0000 + + PQ1 PQ2 REF INT + 0.000 0.000 0.14321E-03 + 0.000 1.000 0.15962E-03 + 1.000 1.000 0.20910E-02 + 0.000 2.000 0.16219E-02 + 1.000 2.000 0.22738E-03 + 2.000 2.000 0.32398E-03 + 0.000 3.000 0.23072E-02 + 1.000 3.000 0.16976E-03 + 2.000 3.000 0.10004E-04 + 0.000 4.000 0.29947E-04 + 1.000 4.000 0.23698E-04 + 3.000 3.000 0.44398E-03 + + RFS CONVERGENCE TEST + IMAX = 13 BNORM = 0.1853E-02 ANORM = 0.5137E-01 + IMAX = 4 BNORM = 0.1712E-02 ANORM = 0.5138E-01 + + RFS CONVERGENCE TEST +0***THIS ORDER TOO DEEP + IMAX = 18 BNORM = 0.2337E-02 ANORM = 0.9746E-01 + IMAX = 4 BNORM = 0.6528E-03 ANORM = 0.9747E-01 + + RFS CONVERGENCE TEST + IMAX = 13 BNORM = 0.1985E-02 ANORM = 0.6842E-01 + IMAX = 6 BNORM = 0.9541E-03 ANORM = 0.6842E-01 + + RFS CONVERGENCE TEST + IMAX = 13 BNORM = 0.1818E-02 ANORM = 0.3387E-01 + IMAX = 3 BNORM = 0.1531E-02 ANORM = 0.3387E-01 + + RFS CONVERGENCE TEST + IMAX = 13 BNORM = 0.1329E-02 ANORM = 0.4579E-01 + IMAX = 7 BNORM = 0.1385E-02 ANORM = 0.4580E-01 + CALCULATING FOR E= 444.000000 + +==================================================== + + VPIS = -0.1838 VPIO = -0.1838 DCUTS = 125.1917 DCUTO = 125.1917 +0 13 SYMMETRIC BEAMS USED 13 + 0.000 0.000 0.000 1.000 1.000 1.000 0.000 2.000 1.000 2.000 2.000 2.000 0.000 3.000 1.000 3.000 2.000 3.000 + 0.000 4.000 1.000 4.000 3.000 3.000 2.000 4.000 + + RFS CONVERGENCE TEST + IMAX = 16 BNORM = 0.1534E-02 ANORM = 0.8881E-02 + IMAX = 3 BNORM = 0.8457E-03 ANORM = 0.8883E-02 + E= 16.5380 THETA= 0.0000 FI= 0.0000 + + PQ1 PQ2 REF INT + 0.000 0.000 0.15309E-03 + 0.000 1.000 0.11004E-03 + 1.000 1.000 0.95501E-03 + 0.000 2.000 0.22349E-02 + 1.000 2.000 0.22819E-03 + 2.000 2.000 0.29096E-03 + 0.000 3.000 0.22170E-02 + 1.000 3.000 0.10128E-03 + 2.000 3.000 0.20755E-04 + 0.000 4.000 0.26260E-04 + 1.000 4.000 0.31658E-04 + 3.000 3.000 0.29533E-03 + + RFS CONVERGENCE TEST + IMAX = 14 BNORM = 0.1833E-02 ANORM = 0.4479E-01 + IMAX = 4 BNORM = 0.1852E-02 ANORM = 0.4479E-01 + + RFS CONVERGENCE TEST +0***THIS ORDER TOO DEEP + IMAX = 18 BNORM = 0.2454E-02 ANORM = 0.9057E-01 + IMAX = 3 BNORM = 0.1343E-02 ANORM = 0.9058E-01 + + RFS CONVERGENCE TEST + IMAX = 14 BNORM = 0.1177E-02 ANORM = 0.5258E-01 + IMAX = 5 BNORM = 0.1754E-02 ANORM = 0.5258E-01 + + RFS CONVERGENCE TEST + IMAX = 14 BNORM = 0.1832E-02 ANORM = 0.3283E-01 + IMAX = 3 BNORM = 0.1222E-02 ANORM = 0.3283E-01 + + RFS CONVERGENCE TEST + IMAX = 13 BNORM = 0.1681E-02 ANORM = 0.5129E-01 + IMAX = 7 BNORM = 0.1539E-02 ANORM = 0.5129E-01 + CALCULATING FOR E= 448.000000 + +==================================================== + + VPIS = -0.1838 VPIO = -0.1838 DCUTS = 125.7469 DCUTO = 125.7469 +0 13 SYMMETRIC BEAMS USED 13 + 0.000 0.000 0.000 1.000 1.000 1.000 0.000 2.000 1.000 2.000 2.000 2.000 0.000 3.000 1.000 3.000 2.000 3.000 + 0.000 4.000 1.000 4.000 3.000 3.000 2.000 4.000 + + RFS CONVERGENCE TEST + IMAX = 16 BNORM = 0.1586E-02 ANORM = 0.7203E-02 + IMAX = 3 BNORM = 0.7389E-03 ANORM = 0.7205E-02 + E= 16.6850 THETA= 0.0000 FI= 0.0000 + + PQ1 PQ2 REF INT + 0.000 0.000 0.14341E-03 + 0.000 1.000 0.15480E-03 + 1.000 1.000 0.30613E-03 + 0.000 2.000 0.27987E-02 + 1.000 2.000 0.19538E-03 + 2.000 2.000 0.23163E-03 + 0.000 3.000 0.14690E-02 + 1.000 3.000 0.47894E-04 + 2.000 3.000 0.29118E-04 + 0.000 4.000 0.22697E-04 + 1.000 4.000 0.18362E-04 + 3.000 3.000 0.18744E-03 + + RFS CONVERGENCE TEST + IMAX = 14 BNORM = 0.1864E-02 ANORM = 0.3951E-01 + IMAX = 4 BNORM = 0.1317E-02 ANORM = 0.3951E-01 + + RFS CONVERGENCE TEST +0***THIS ORDER TOO DEEP + IMAX = 18 BNORM = 0.2958E-02 ANORM = 0.8239E-01 + IMAX = 3 BNORM = 0.1720E-02 ANORM = 0.8239E-01 + + RFS CONVERGENCE TEST + IMAX = 14 BNORM = 0.1321E-02 ANORM = 0.4241E-01 + IMAX = 4 BNORM = 0.1180E-02 ANORM = 0.4242E-01 + + RFS CONVERGENCE TEST + IMAX = 15 BNORM = 0.1772E-02 ANORM = 0.3241E-01 + IMAX = 3 BNORM = 0.9338E-03 ANORM = 0.3241E-01 + + RFS CONVERGENCE TEST + IMAX = 15 BNORM = 0.1072E-02 ANORM = 0.5676E-01 + IMAX = 7 BNORM = 0.1861E-02 ANORM = 0.5677E-01 + CALCULATING FOR E= 452.000000 + +==================================================== + + VPIS = -0.1838 VPIO = -0.1838 DCUTS = 126.2996 DCUTO = 126.2996 +0 13 SYMMETRIC BEAMS USED 13 + 0.000 0.000 0.000 1.000 1.000 1.000 0.000 2.000 1.000 2.000 2.000 2.000 0.000 3.000 1.000 3.000 2.000 3.000 + 0.000 4.000 1.000 4.000 3.000 3.000 2.000 4.000 + + RFS CONVERGENCE TEST + IMAX = 16 BNORM = 0.1365E-02 ANORM = 0.6624E-02 + IMAX = 3 BNORM = 0.5791E-03 ANORM = 0.6626E-02 + E= 16.8320 THETA= 0.0000 FI= 0.0000 + + PQ1 PQ2 REF INT + 0.000 0.000 0.29728E-03 + 0.000 1.000 0.33331E-03 + 1.000 1.000 0.98175E-04 + 0.000 2.000 0.32027E-02 + 1.000 2.000 0.15683E-03 + 2.000 2.000 0.17266E-03 + 0.000 3.000 0.83464E-03 + 1.000 3.000 0.19236E-04 + 2.000 3.000 0.34016E-04 + 0.000 4.000 0.30232E-04 + 1.000 4.000 0.27419E-04 + 3.000 3.000 0.12657E-03 + + RFS CONVERGENCE TEST + IMAX = 13 BNORM = 0.1994E-02 ANORM = 0.4034E-01 + IMAX = 3 BNORM = 0.1158E-02 ANORM = 0.4034E-01 + + RFS CONVERGENCE TEST +0***THIS ORDER TOO DEEP + IMAX = 18 BNORM = 0.3085E-02 ANORM = 0.7613E-01 + IMAX = 4 BNORM = 0.1527E-02 ANORM = 0.7613E-01 + + RFS CONVERGENCE TEST + IMAX = 14 BNORM = 0.1238E-02 ANORM = 0.4105E-01 + IMAX = 3 BNORM = 0.1647E-02 ANORM = 0.4106E-01 + + RFS CONVERGENCE TEST + IMAX = 15 BNORM = 0.1996E-02 ANORM = 0.3196E-01 + IMAX = 3 BNORM = 0.9290E-03 ANORM = 0.3196E-01 + + RFS CONVERGENCE TEST + IMAX = 15 BNORM = 0.1718E-02 ANORM = 0.6152E-01 + IMAX = 4 BNORM = 0.1726E-02 ANORM = 0.6152E-01 + CALCULATING FOR E= 456.000000 + +==================================================== + + VPIS = -0.1838 VPIO = -0.1838 DCUTS = 126.8499 DCUTO = 126.8499 +0 13 SYMMETRIC BEAMS USED 13 + 0.000 0.000 0.000 1.000 1.000 1.000 0.000 2.000 1.000 2.000 2.000 2.000 0.000 3.000 1.000 3.000 2.000 3.000 + 0.000 4.000 1.000 4.000 3.000 3.000 2.000 4.000 + + RFS CONVERGENCE TEST + IMAX = 15 BNORM = 0.1515E-02 ANORM = 0.7001E-02 + IMAX = 3 BNORM = 0.7090E-03 ANORM = 0.7002E-02 + E= 16.9791 THETA= 0.0000 FI= 0.0000 + + PQ1 PQ2 REF INT + 0.000 0.000 0.77237E-03 + 0.000 1.000 0.75171E-03 + 1.000 1.000 0.11126E-03 + 0.000 2.000 0.35641E-02 + 1.000 2.000 0.13719E-03 + 2.000 2.000 0.13024E-03 + 0.000 3.000 0.34487E-03 + 1.000 3.000 0.70180E-05 + 2.000 3.000 0.31253E-04 + 0.000 4.000 0.32728E-04 + 1.000 4.000 0.51413E-04 + 3.000 3.000 0.55488E-04 + + RFS CONVERGENCE TEST + IMAX = 13 BNORM = 0.1907E-02 ANORM = 0.4782E-01 + IMAX = 3 BNORM = 0.8751E-03 ANORM = 0.4782E-01 + + RFS CONVERGENCE TEST +0***THIS ORDER TOO DEEP + IMAX = 18 BNORM = 0.2576E-02 ANORM = 0.7909E-01 + IMAX = 7 BNORM = 0.1727E-02 ANORM = 0.7910E-01 + + RFS CONVERGENCE TEST + IMAX = 13 BNORM = 0.1957E-02 ANORM = 0.4565E-01 + IMAX = 3 BNORM = 0.1146E-02 ANORM = 0.4565E-01 + + RFS CONVERGENCE TEST + IMAX = 15 BNORM = 0.1887E-02 ANORM = 0.3117E-01 + IMAX = 3 BNORM = 0.1097E-02 ANORM = 0.3117E-01 + + RFS CONVERGENCE TEST + IMAX = 16 BNORM = 0.1658E-02 ANORM = 0.6937E-01 + IMAX = 3 BNORM = 0.1144E-02 ANORM = 0.6938E-01 + CALCULATING FOR E= 460.000000 + +==================================================== + + VPIS = -0.1838 VPIO = -0.1838 DCUTS = 127.3979 DCUTO = 127.3979 +0 13 SYMMETRIC BEAMS USED 13 + 0.000 0.000 0.000 1.000 1.000 1.000 0.000 2.000 1.000 2.000 2.000 2.000 0.000 3.000 1.000 3.000 2.000 3.000 + 0.000 4.000 1.000 4.000 3.000 3.000 2.000 4.000 + + RFS CONVERGENCE TEST + IMAX = 14 BNORM = 0.1648E-02 ANORM = 0.8036E-02 + IMAX = 3 BNORM = 0.6221E-03 ANORM = 0.8037E-02 + E= 17.1261 THETA= 0.0000 FI= 0.0000 + + PQ1 PQ2 REF INT + 0.000 0.000 0.17100E-02 + 0.000 1.000 0.14656E-02 + 1.000 1.000 0.27386E-03 + 0.000 2.000 0.32878E-02 + 1.000 2.000 0.12898E-03 + 2.000 2.000 0.11426E-03 + 0.000 3.000 0.94805E-04 + 1.000 3.000 0.49905E-05 + 2.000 3.000 0.20011E-04 + 0.000 4.000 0.23038E-04 + 1.000 4.000 0.72513E-04 + 3.000 3.000 0.86028E-05 + + RFS CONVERGENCE TEST + IMAX = 13 BNORM = 0.1962E-02 ANORM = 0.5558E-01 + IMAX = 3 BNORM = 0.1220E-02 ANORM = 0.5558E-01 + + RFS CONVERGENCE TEST +0***THIS ORDER TOO DEEP + IMAX = 18 BNORM = 0.2054E-02 ANORM = 0.8646E-01 + IMAX = 6 BNORM = 0.1882E-02 ANORM = 0.8647E-01 + + RFS CONVERGENCE TEST + IMAX = 13 BNORM = 0.1894E-02 ANORM = 0.4950E-01 + IMAX = 3 BNORM = 0.1581E-02 ANORM = 0.4951E-01 + + RFS CONVERGENCE TEST + IMAX = 15 BNORM = 0.1980E-02 ANORM = 0.2801E-01 + IMAX = 3 BNORM = 0.5188E-03 ANORM = 0.2801E-01 + + RFS CONVERGENCE TEST + IMAX = 16 BNORM = 0.1987E-02 ANORM = 0.7075E-01 + IMAX = 3 BNORM = 0.8947E-03 ANORM = 0.7075E-01 + CALCULATING FOR E= 464.000000 + +==================================================== + + VPIS = -0.1838 VPIO = -0.1838 DCUTS = 127.9435 DCUTO = 127.9435 +0 13 SYMMETRIC BEAMS USED 13 + 0.000 0.000 0.000 1.000 1.000 1.000 0.000 2.000 1.000 2.000 2.000 2.000 0.000 3.000 1.000 3.000 2.000 3.000 + 0.000 4.000 1.000 4.000 3.000 3.000 2.000 4.000 + + RFS CONVERGENCE TEST + IMAX = 14 BNORM = 0.1288E-02 ANORM = 0.9093E-02 + IMAX = 3 BNORM = 0.5139E-03 ANORM = 0.9094E-02 + E= 17.2731 THETA= 0.0000 FI= 0.0000 + + PQ1 PQ2 REF INT + 0.000 0.000 0.27453E-02 + 0.000 1.000 0.22623E-02 + 1.000 1.000 0.43861E-03 + 0.000 2.000 0.24826E-02 + 1.000 2.000 0.11790E-03 + 2.000 2.000 0.11613E-03 + 0.000 3.000 0.26413E-04 + 1.000 3.000 0.67756E-05 + 2.000 3.000 0.15828E-04 + 0.000 4.000 0.12811E-04 + 1.000 4.000 0.76277E-04 + 3.000 3.000 0.69723E-05 + 2.000 4.000 0.16718E-04 + + RFS CONVERGENCE TEST + IMAX = 13 BNORM = 0.1978E-02 ANORM = 0.6416E-01 + IMAX = 3 BNORM = 0.1776E-02 ANORM = 0.6416E-01 + + RFS CONVERGENCE TEST +0***THIS ORDER TOO DEEP + IMAX = 18 BNORM = 0.1681E-02 ANORM = 0.9328E-01 + IMAX = 5 BNORM = 0.1993E-02 ANORM = 0.9328E-01 + + RFS CONVERGENCE TEST + IMAX = 13 BNORM = 0.1946E-02 ANORM = 0.5190E-01 + IMAX = 3 BNORM = 0.1877E-02 ANORM = 0.5190E-01 + + RFS CONVERGENCE TEST + IMAX = 15 BNORM = 0.1883E-02 ANORM = 0.2479E-01 + IMAX = 3 BNORM = 0.3519E-03 ANORM = 0.2479E-01 + + RFS CONVERGENCE TEST + IMAX = 17 BNORM = 0.1523E-02 ANORM = 0.6359E-01 + IMAX = 3 BNORM = 0.9808E-03 ANORM = 0.6359E-01 + CALCULATING FOR E= 468.000000 + +==================================================== + + VPIS = -0.1838 VPIO = -0.1838 DCUTS = 128.4868 DCUTO = 128.4868 +0 13 SYMMETRIC BEAMS USED 13 + 0.000 0.000 0.000 1.000 1.000 1.000 0.000 2.000 1.000 2.000 2.000 2.000 0.000 3.000 1.000 3.000 2.000 3.000 + 0.000 4.000 1.000 4.000 3.000 3.000 2.000 4.000 + + RFS CONVERGENCE TEST + IMAX = 13 BNORM = 0.1840E-02 ANORM = 0.9757E-02 + IMAX = 3 BNORM = 0.4691E-03 ANORM = 0.9758E-02 + E= 17.4201 THETA= 0.0000 FI= 0.0000 + + PQ1 PQ2 REF INT + 0.000 0.000 0.35364E-02 + 0.000 1.000 0.29460E-02 + 1.000 1.000 0.47993E-03 + 0.000 2.000 0.16027E-02 + 1.000 2.000 0.10775E-03 + 2.000 2.000 0.18420E-03 + 0.000 3.000 0.40247E-04 + 1.000 3.000 0.23500E-05 + 2.000 3.000 0.37711E-04 + 0.000 4.000 0.30516E-05 + 1.000 4.000 0.66514E-04 + 3.000 3.000 0.36973E-04 + 2.000 4.000 0.17564E-04 + + RFS CONVERGENCE TEST + IMAX = 13 BNORM = 0.1886E-02 ANORM = 0.7204E-01 + IMAX = 3 BNORM = 0.1591E-02 ANORM = 0.7204E-01 + + RFS CONVERGENCE TEST +0***THIS ORDER TOO DEEP + IMAX = 18 BNORM = 0.1420E-02 ANORM = 0.9418E-01 + IMAX = 6 BNORM = 0.1976E-02 ANORM = 0.9418E-01 + + RFS CONVERGENCE TEST + IMAX = 14 BNORM = 0.1116E-02 ANORM = 0.5234E-01 + IMAX = 3 BNORM = 0.1937E-02 ANORM = 0.5234E-01 + + RFS CONVERGENCE TEST + IMAX = 15 BNORM = 0.1715E-02 ANORM = 0.2499E-01 + IMAX = 3 BNORM = 0.4624E-03 ANORM = 0.2500E-01 + + RFS CONVERGENCE TEST + IMAX = 17 BNORM = 0.1657E-02 ANORM = 0.5524E-01 + IMAX = 3 BNORM = 0.1234E-02 ANORM = 0.5524E-01 + CALCULATING FOR E= 472.000000 + +==================================================== + + VPIS = -0.1838 VPIO = -0.1838 DCUTS = 129.0278 DCUTO = 129.0278 +0 13 SYMMETRIC BEAMS USED 13 + 0.000 0.000 0.000 1.000 1.000 1.000 0.000 2.000 1.000 2.000 2.000 2.000 0.000 3.000 1.000 3.000 2.000 3.000 + 0.000 4.000 1.000 4.000 3.000 3.000 2.000 4.000 + + RFS CONVERGENCE TEST + IMAX = 13 BNORM = 0.1796E-02 ANORM = 0.9208E-02 + IMAX = 3 BNORM = 0.5628E-03 ANORM = 0.9209E-02 + E= 17.5671 THETA= 0.0000 FI= 0.0000 + + PQ1 PQ2 REF INT + 0.000 0.000 0.34278E-02 + 0.000 1.000 0.29037E-02 + 1.000 1.000 0.37328E-03 + 0.000 2.000 0.83454E-03 + 1.000 2.000 0.97852E-04 + 2.000 2.000 0.36703E-03 + 0.000 3.000 0.94613E-04 + 1.000 3.000 0.69513E-06 + 2.000 3.000 0.11463E-03 + 0.000 4.000 0.76855E-06 + 1.000 4.000 0.56218E-04 + 3.000 3.000 0.85317E-04 + 2.000 4.000 0.28504E-04 + + RFS CONVERGENCE TEST + IMAX = 13 BNORM = 0.1930E-02 ANORM = 0.7105E-01 + IMAX = 3 BNORM = 0.1220E-02 ANORM = 0.7105E-01 + + RFS CONVERGENCE TEST + IMAX = 17 BNORM = 0.1886E-02 ANORM = 0.9137E-01 + IMAX = 8 BNORM = 0.1419E-02 ANORM = 0.9138E-01 + + RFS CONVERGENCE TEST + IMAX = 14 BNORM = 0.1207E-02 ANORM = 0.5173E-01 + IMAX = 4 BNORM = 0.1593E-02 ANORM = 0.5174E-01 + + RFS CONVERGENCE TEST + IMAX = 15 BNORM = 0.1615E-02 ANORM = 0.2652E-01 + IMAX = 3 BNORM = 0.7833E-03 ANORM = 0.2652E-01 + + RFS CONVERGENCE TEST + IMAX = 17 BNORM = 0.1697E-02 ANORM = 0.4843E-01 + IMAX = 3 BNORM = 0.1558E-02 ANORM = 0.4844E-01 + CALCULATING FOR E= 476.000000 + +==================================================== + + VPIS = -0.1838 VPIO = -0.1838 DCUTS = 129.5665 DCUTO = 129.5665 +0 13 SYMMETRIC BEAMS USED 13 + 0.000 0.000 0.000 1.000 1.000 1.000 0.000 2.000 1.000 2.000 2.000 2.000 0.000 3.000 1.000 3.000 2.000 3.000 + 0.000 4.000 1.000 4.000 3.000 3.000 2.000 4.000 + + RFS CONVERGENCE TEST + IMAX = 13 BNORM = 0.1725E-02 ANORM = 0.8275E-02 + IMAX = 3 BNORM = 0.7005E-03 ANORM = 0.8276E-02 + E= 17.7141 THETA= 0.0000 FI= 0.0000 + + PQ1 PQ2 REF INT + 0.000 0.000 0.29643E-02 + 0.000 1.000 0.25051E-02 + 1.000 1.000 0.26540E-03 + 0.000 2.000 0.35975E-03 + 1.000 2.000 0.90454E-04 + 2.000 2.000 0.59710E-03 + 0.000 3.000 0.10989E-03 + 1.000 3.000 0.76743E-05 + 2.000 3.000 0.23642E-03 + 0.000 4.000 0.14410E-04 + 1.000 4.000 0.37798E-04 + 3.000 3.000 0.13111E-03 + 2.000 4.000 0.25244E-04 + + RFS CONVERGENCE TEST + IMAX = 14 BNORM = 0.1533E-02 ANORM = 0.6530E-01 + IMAX = 3 BNORM = 0.1156E-02 ANORM = 0.6530E-01 + + RFS CONVERGENCE TEST + IMAX = 17 BNORM = 0.1711E-02 ANORM = 0.9020E-01 + IMAX = 8 BNORM = 0.1670E-02 ANORM = 0.9020E-01 + + RFS CONVERGENCE TEST + IMAX = 14 BNORM = 0.1272E-02 ANORM = 0.5109E-01 + IMAX = 4 BNORM = 0.1699E-02 ANORM = 0.5110E-01 + + RFS CONVERGENCE TEST + IMAX = 15 BNORM = 0.1559E-02 ANORM = 0.2754E-01 + IMAX = 3 BNORM = 0.1186E-02 ANORM = 0.2754E-01 + + RFS CONVERGENCE TEST + IMAX = 17 BNORM = 0.1643E-02 ANORM = 0.4505E-01 + IMAX = 3 BNORM = 0.1845E-02 ANORM = 0.4505E-01 + CALCULATING FOR E= 480.000000 + +==================================================== + + VPIS = -0.1838 VPIO = -0.1838 DCUTS = 130.1030 DCUTO = 130.1030 +0 13 SYMMETRIC BEAMS USED 13 + 0.000 0.000 0.000 1.000 1.000 1.000 0.000 2.000 1.000 2.000 2.000 2.000 0.000 3.000 1.000 3.000 2.000 3.000 + 0.000 4.000 1.000 4.000 3.000 3.000 2.000 4.000 + + RFS CONVERGENCE TEST + IMAX = 13 BNORM = 0.1604E-02 ANORM = 0.8011E-02 + IMAX = 3 BNORM = 0.6891E-03 ANORM = 0.8012E-02 + E= 17.8611 THETA= 0.0000 FI= 0.0000 + + PQ1 PQ2 REF INT + 0.000 0.000 0.26509E-02 + 0.000 1.000 0.20930E-02 + 1.000 1.000 0.19750E-03 + 0.000 2.000 0.14129E-03 + 1.000 2.000 0.85121E-04 + 2.000 2.000 0.92951E-03 + 0.000 3.000 0.87794E-04 + 1.000 3.000 0.19512E-04 + 2.000 3.000 0.43369E-03 + 0.000 4.000 0.41115E-04 + 1.000 4.000 0.22330E-04 + 3.000 3.000 0.15851E-03 + 2.000 4.000 0.16801E-04 + + RFS CONVERGENCE TEST + IMAX = 14 BNORM = 0.1540E-02 ANORM = 0.6008E-01 + IMAX = 3 BNORM = 0.1086E-02 ANORM = 0.6008E-01 + + RFS CONVERGENCE TEST + IMAX = 17 BNORM = 0.1583E-02 ANORM = 0.9180E-01 + IMAX = 8 BNORM = 0.1384E-02 ANORM = 0.9180E-01 + + RFS CONVERGENCE TEST + IMAX = 14 BNORM = 0.1289E-02 ANORM = 0.4838E-01 + IMAX = 4 BNORM = 0.1689E-02 ANORM = 0.4838E-01 + + RFS CONVERGENCE TEST + IMAX = 15 BNORM = 0.1529E-02 ANORM = 0.2959E-01 + IMAX = 3 BNORM = 0.1468E-02 ANORM = 0.2959E-01 + + RFS CONVERGENCE TEST + IMAX = 17 BNORM = 0.1537E-02 ANORM = 0.4473E-01 + IMAX = 3 BNORM = 0.1811E-02 ANORM = 0.4473E-01 + CALCULATING FOR E= 484.000000 + +==================================================== + + VPIS = -0.1838 VPIO = -0.1838 DCUTS = 130.6373 DCUTO = 130.6373 +0 13 SYMMETRIC BEAMS USED 13 + 0.000 0.000 0.000 1.000 1.000 1.000 0.000 2.000 1.000 2.000 2.000 2.000 0.000 3.000 1.000 3.000 2.000 3.000 + 0.000 4.000 1.000 4.000 3.000 3.000 2.000 4.000 + + RFS CONVERGENCE TEST + IMAX = 13 BNORM = 0.1465E-02 ANORM = 0.7856E-02 + IMAX = 3 BNORM = 0.6419E-03 ANORM = 0.7857E-02 + E= 18.0081 THETA= 0.0000 FI= 0.0000 + + PQ1 PQ2 REF INT + 0.000 0.000 0.22121E-02 + 0.000 1.000 0.15124E-02 + 1.000 1.000 0.20015E-03 + 0.000 2.000 0.43817E-04 + 1.000 2.000 0.82177E-04 + 2.000 2.000 0.12806E-02 + 0.000 3.000 0.44694E-04 + 1.000 3.000 0.28015E-04 + 2.000 3.000 0.70567E-03 + 0.000 4.000 0.56206E-04 + 1.000 4.000 0.14614E-04 + 3.000 3.000 0.20565E-03 + 2.000 4.000 0.22370E-04 + + RFS CONVERGENCE TEST + IMAX = 14 BNORM = 0.1571E-02 ANORM = 0.5371E-01 + IMAX = 3 BNORM = 0.1118E-02 ANORM = 0.5371E-01 + + RFS CONVERGENCE TEST + IMAX = 17 BNORM = 0.1499E-02 ANORM = 0.9380E-01 + IMAX = 6 BNORM = 0.1871E-02 ANORM = 0.9380E-01 + + RFS CONVERGENCE TEST + IMAX = 14 BNORM = 0.1280E-02 ANORM = 0.4461E-01 + IMAX = 4 BNORM = 0.1977E-02 ANORM = 0.4462E-01 + + RFS CONVERGENCE TEST + IMAX = 15 BNORM = 0.1524E-02 ANORM = 0.3256E-01 + IMAX = 3 BNORM = 0.1466E-02 ANORM = 0.3256E-01 + + RFS CONVERGENCE TEST + IMAX = 17 BNORM = 0.1427E-02 ANORM = 0.4360E-01 + IMAX = 3 BNORM = 0.1427E-02 ANORM = 0.4360E-01 + CALCULATING FOR E= 488.000000 + +==================================================== + + VPIS = -0.1838 VPIO = -0.1838 DCUTS = 131.1695 DCUTO = 131.1695 +0 13 SYMMETRIC BEAMS USED 13 + 0.000 0.000 0.000 1.000 1.000 1.000 0.000 2.000 1.000 2.000 2.000 2.000 0.000 3.000 1.000 3.000 2.000 3.000 + 0.000 4.000 1.000 4.000 3.000 3.000 2.000 4.000 + + RFS CONVERGENCE TEST + IMAX = 12 BNORM = 0.1929E-02 ANORM = 0.7818E-02 + IMAX = 3 BNORM = 0.6052E-03 ANORM = 0.7820E-02 + E= 18.1551 THETA= 0.0000 FI= 0.0000 + + PQ1 PQ2 REF INT + 0.000 0.000 0.17255E-02 + 0.000 1.000 0.11356E-02 + 1.000 1.000 0.24715E-03 + 0.000 2.000 0.25368E-05 + 1.000 2.000 0.84942E-04 + 2.000 2.000 0.16292E-02 + 0.000 3.000 0.15394E-04 + 1.000 3.000 0.24720E-04 + 2.000 3.000 0.92510E-03 + 0.000 4.000 0.57744E-04 + 1.000 4.000 0.13651E-04 + 3.000 3.000 0.27403E-03 + 2.000 4.000 0.40497E-04 + + RFS CONVERGENCE TEST + IMAX = 14 BNORM = 0.1633E-02 ANORM = 0.4955E-01 + IMAX = 3 BNORM = 0.1123E-02 ANORM = 0.4956E-01 + + RFS CONVERGENCE TEST + IMAX = 17 BNORM = 0.1459E-02 ANORM = 0.9351E-01 + IMAX = 5 BNORM = 0.1952E-02 ANORM = 0.9351E-01 + + RFS CONVERGENCE TEST + IMAX = 14 BNORM = 0.1288E-02 ANORM = 0.4269E-01 + IMAX = 5 BNORM = 0.1289E-02 ANORM = 0.4270E-01 + + RFS CONVERGENCE TEST + IMAX = 15 BNORM = 0.1541E-02 ANORM = 0.3613E-01 + IMAX = 3 BNORM = 0.1187E-02 ANORM = 0.3614E-01 + + RFS CONVERGENCE TEST + IMAX = 16 BNORM = 0.1994E-02 ANORM = 0.4159E-01 + IMAX = 3 BNORM = 0.9532E-03 ANORM = 0.4159E-01 + CALCULATING FOR E= 492.000000 + +==================================================== + + VPIS = -0.1838 VPIO = -0.1838 DCUTS = 131.6994 DCUTO = 131.6994 +0 13 SYMMETRIC BEAMS USED 13 + 0.000 0.000 0.000 1.000 1.000 1.000 0.000 2.000 1.000 2.000 2.000 2.000 0.000 3.000 1.000 3.000 2.000 3.000 + 0.000 4.000 1.000 4.000 3.000 3.000 2.000 4.000 + + RFS CONVERGENCE TEST + IMAX = 12 BNORM = 0.1743E-02 ANORM = 0.8586E-02 + IMAX = 3 BNORM = 0.6307E-03 ANORM = 0.8589E-02 + E= 18.3021 THETA= 0.0000 FI= 0.0000 + + PQ1 PQ2 REF INT + 0.000 0.000 0.12742E-02 + 0.000 1.000 0.88389E-03 + 1.000 1.000 0.28537E-03 + 0.000 2.000 0.11441E-04 + 1.000 2.000 0.80850E-04 + 2.000 2.000 0.27357E-02 + 0.000 3.000 0.66698E-04 + 1.000 3.000 0.18456E-04 + 2.000 3.000 0.86758E-03 + 0.000 4.000 0.62544E-04 + 1.000 4.000 0.15657E-04 + 3.000 3.000 0.31874E-03 + 2.000 4.000 0.58936E-04 + + RFS CONVERGENCE TEST + IMAX = 14 BNORM = 0.1710E-02 ANORM = 0.4868E-01 + IMAX = 3 BNORM = 0.1071E-02 ANORM = 0.4869E-01 + + RFS CONVERGENCE TEST + IMAX = 17 BNORM = 0.1411E-02 ANORM = 0.9111E-01 + IMAX = 5 BNORM = 0.1659E-02 ANORM = 0.9112E-01 + + RFS CONVERGENCE TEST + IMAX = 14 BNORM = 0.1326E-02 ANORM = 0.4157E-01 + IMAX = 5 BNORM = 0.1798E-02 ANORM = 0.4158E-01 + + RFS CONVERGENCE TEST + IMAX = 15 BNORM = 0.1592E-02 ANORM = 0.4928E-01 + IMAX = 3 BNORM = 0.9677E-03 ANORM = 0.4928E-01 + + RFS CONVERGENCE TEST + IMAX = 16 BNORM = 0.1896E-02 ANORM = 0.4100E-01 + IMAX = 3 BNORM = 0.8690E-03 ANORM = 0.4100E-01 + CALCULATING FOR E= 496.000000 + +==================================================== + + VPIS = -0.1838 VPIO = -0.1838 DCUTS = 132.2273 DCUTO = 132.2273 +0 13 SYMMETRIC BEAMS USED 13 + 0.000 0.000 0.000 1.000 1.000 1.000 0.000 2.000 1.000 2.000 2.000 2.000 0.000 3.000 1.000 3.000 2.000 3.000 + 0.000 4.000 1.000 4.000 3.000 3.000 2.000 4.000 + + RFS CONVERGENCE TEST + IMAX = 12 BNORM = 0.1639E-02 ANORM = 0.9551E-02 + IMAX = 3 BNORM = 0.8359E-03 ANORM = 0.9554E-02 + E= 18.4491 THETA= 0.0000 FI= 0.0000 + + PQ1 PQ2 REF INT + 0.000 0.000 0.82648E-03 + 0.000 1.000 0.61963E-03 + 1.000 1.000 0.28856E-03 + 0.000 2.000 0.29227E-04 + 1.000 2.000 0.89595E-04 + 2.000 2.000 0.44125E-02 + 0.000 3.000 0.18879E-03 + 1.000 3.000 0.25240E-04 + 2.000 3.000 0.50962E-03 + 0.000 4.000 0.62531E-04 + 1.000 4.000 0.15369E-04 + 3.000 3.000 0.29963E-03 + 2.000 4.000 0.61398E-04 + + RFS CONVERGENCE TEST + IMAX = 14 BNORM = 0.1788E-02 ANORM = 0.4903E-01 + IMAX = 3 BNORM = 0.1071E-02 ANORM = 0.4903E-01 + + RFS CONVERGENCE TEST + IMAX = 17 BNORM = 0.1344E-02 ANORM = 0.8611E-01 + IMAX = 5 BNORM = 0.1990E-02 ANORM = 0.8612E-01 + + RFS CONVERGENCE TEST + IMAX = 14 BNORM = 0.1364E-02 ANORM = 0.3921E-01 + IMAX = 6 BNORM = 0.1219E-02 ANORM = 0.3922E-01 + + RFS CONVERGENCE TEST + IMAX = 15 BNORM = 0.1594E-02 ANORM = 0.6911E-01 + IMAX = 3 BNORM = 0.1297E-02 ANORM = 0.6911E-01 + + RFS CONVERGENCE TEST + IMAX = 16 BNORM = 0.1706E-02 ANORM = 0.3884E-01 + IMAX = 3 BNORM = 0.1241E-02 ANORM = 0.3884E-01 + CALCULATING FOR E= 500.000000 + +==================================================== + + VPIS = -0.1838 VPIO = -0.1838 DCUTS = 132.7530 DCUTO = 132.7530 +0 13 SYMMETRIC BEAMS USED 13 + 0.000 0.000 0.000 1.000 1.000 1.000 0.000 2.000 1.000 2.000 2.000 2.000 0.000 3.000 1.000 3.000 2.000 3.000 + 0.000 4.000 1.000 4.000 3.000 3.000 2.000 4.000 + + RFS CONVERGENCE TEST + IMAX = 12 BNORM = 0.1599E-02 ANORM = 0.9877E-02 + IMAX = 3 BNORM = 0.1185E-02 ANORM = 0.9881E-02 + E= 18.5961 THETA= 0.0000 FI= 0.0000 + + PQ1 PQ2 REF INT + 0.000 0.000 0.54051E-03 + 0.000 1.000 0.57222E-03 + 1.000 1.000 0.22661E-03 + 0.000 2.000 0.68028E-04 + 1.000 2.000 0.14753E-03 + 2.000 2.000 0.51876E-02 + 0.000 3.000 0.31552E-03 + 1.000 3.000 0.71627E-04 + 2.000 3.000 0.17081E-03 + 0.000 4.000 0.47426E-04 + 1.000 4.000 0.84843E-05 + 3.000 3.000 0.26559E-03 + 2.000 4.000 0.66788E-04 + + RFS CONVERGENCE TEST + IMAX = 14 BNORM = 0.1846E-02 ANORM = 0.5105E-01 + IMAX = 3 BNORM = 0.1051E-02 ANORM = 0.5106E-01 + + RFS CONVERGENCE TEST + IMAX = 17 BNORM = 0.1308E-02 ANORM = 0.8298E-01 + IMAX = 6 BNORM = 0.1574E-02 ANORM = 0.8299E-01 + + RFS CONVERGENCE TEST + IMAX = 14 BNORM = 0.1409E-02 ANORM = 0.3678E-01 + IMAX = 6 BNORM = 0.1327E-02 ANORM = 0.3679E-01 + + RFS CONVERGENCE TEST + IMAX = 15 BNORM = 0.1546E-02 ANORM = 0.7909E-01 + IMAX = 3 BNORM = 0.1924E-02 ANORM = 0.7909E-01 + + RFS CONVERGENCE TEST + IMAX = 16 BNORM = 0.1506E-02 ANORM = 0.3582E-01 + IMAX = 3 BNORM = 0.1629E-02 ANORM = 0.3583E-01 + CORRECT TERMINATION diff --git a/extra/leed/sample/user_program/base/tleed4.i b/extra/leed/sample/user_program/base/tleed4.i new file mode 100644 index 00000000..b5e666d2 --- /dev/null +++ b/extra/leed/sample/user_program/base/tleed4.i @@ -0,0 +1,25 @@ + 1 0 0 IPR ISTART LRFLAG + 1 10 0.02 0.2 NSYM NSYMS ASTEP VSTEP + 5 1 2 2 NT0 NSET LSMAX LLCUT + 5 NINSET + 1.0000 0.0000 1 PQEX + 1.0000 2.0000 2 PQEX + 1.0000 1.0000 3 PQEX + 2.0000 2.0000 4 PQEX + 2.0000 0.0000 5 PQEX + 3 NDIM + opt000 0.0000 0.0000 0 DISP(1,j) j=1,3 + 0.0000 opt001 0.0000 0 DISP(2,j) j=1,3 + 0.0000 0.0000 0.0000 1 DISP(3,j) j=1,3 + 0.0000 0.0000 0.0000 0 DISP(4,j) j=1,3 + 0.0000 0 DVOPT LSFLAG + 3 0 0 MFLAG NGRID NIV +100 ITMAX + 1.0000 0.5000 2.0000 ALPHA,BETA,GAMMA + 0.0005 0.0020 FTOL1,FTOL2 +300 .00100 NSTEP,STSZ +1.000 0.000 0.000 0.000 +1.000 1.000 0.000 0.000 +1.000 1.000 1.000 0.000 +0.000 0.000 0.000 1.000 + diff --git a/extra/leed/sample/user_program/base/tleed5.i b/extra/leed/sample/user_program/base/tleed5.i new file mode 100644 index 00000000..ea3587d9 --- /dev/null +++ b/extra/leed/sample/user_program/base/tleed5.i @@ -0,0 +1,319 @@ +Cu(001)-p(1x1)clean + 4 + 93 + 0.5000 1.2000 + 0.0020 + 0.00 0.00 + 6.00 -5.00 + 9 + 2 + 1 1 + 230.0000 63.5460 1.0000 1.0000 0.0000 + 343.5000 63.5460 1.0000 1.0000 0.0000 + 130.0000 + 1.6538 +-1.0496-0.2554-0.2380 0.1060 0.0119 0.0012 0.0001 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 +-1.0048-0.1940-0.1829 0.1412 0.0177 0.0019 0.0002 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 + 1.8376 +-1.1234-0.2953-0.2265 0.1391 0.0171 0.0019 0.0002 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 +-1.0836-0.2400-0.1677 0.1822 0.0253 0.0031 0.0003 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 + 2.0213 +-1.1930-0.3352-0.2148 0.1762 0.0235 0.0029 0.0003 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 +-1.1572-0.2855-0.1540 0.2265 0.0345 0.0047 0.0005 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 + 2.2051 +-1.2588-0.3748-0.2035 0.2164 0.0312 0.0042 0.0005 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 +-1.2261-0.3301-0.1425 0.2728 0.0454 0.0067 0.0008 0.0001 0.0000 0.0000 0.0000 0.0000 0.0000 + 2.3888 +-1.3212-0.4138-0.1931 0.2590 0.0402 0.0059 0.0007 0.0001 0.0000 0.0000 0.0000 0.0000 0.0000 +-1.2907-0.3734-0.1332 0.3198 0.0578 0.0093 0.0012 0.0001 0.0000 0.0000 0.0000 0.0000 0.0000 + 2.5726 +-1.3804-0.4521-0.1839 0.3031 0.0504 0.0080 0.0011 0.0001 0.0000 0.0000 0.0000 0.0000 0.0000 +-1.3516-0.4153-0.1262 0.3666 0.0717 0.0125 0.0018 0.0002 0.0000 0.0000 0.0000 0.0000 0.0000 + 2.7563 +-1.4367-0.4894-0.1759 0.3479 0.0618 0.0104 0.0015 0.0002 0.0000 0.0000 0.0000 0.0000 0.0000 +-1.4089-0.4556-0.1213 0.4123 0.0868 0.0163 0.0025 0.0003 0.0000 0.0000 0.0000 0.0000 0.0000 + 2.9401 +-1.4903-0.5259-0.1695 0.3926 0.0743 0.0134 0.0020 0.0003 0.0000 0.0000 0.0000 0.0000 0.0000 +-1.4631-0.4944-0.1182 0.4562 0.1030 0.0207 0.0034 0.0004 0.0000 0.0000 0.0000 0.0000 0.0000 + 3.1239 +-1.5414-0.5613-0.1644 0.4366 0.0879 0.0168 0.0027 0.0004 0.0000 0.0000 0.0000 0.0000 0.0000 +-1.5144-0.5316-0.1168 0.4982 0.1201 0.0258 0.0045 0.0006 0.0001 0.0000 0.0000 0.0000 0.0000 + 3.3076 +-1.5902-0.5957-0.1607 0.4794 0.1023 0.0207 0.0036 0.0005 0.0001 0.0000 0.0000 0.0000 0.0000 +-1.5632-0.5672-0.1165 0.5379 0.1377 0.0315 0.0058 0.0009 0.0001 0.0000 0.0000 0.0000 0.0000 + 3.4914 +-1.6369-0.6290-0.1582 0.5205 0.1175 0.0250 0.0046 0.0007 0.0001 0.0000 0.0000 0.0000 0.0000 +-1.6097-0.6014-0.1173 0.5755 0.1558 0.0379 0.0075 0.0012 0.0001 0.0000 0.0000 0.0000 0.0000 + 3.6751 +-1.6817-0.6613-0.1568 0.5598 0.1333 0.0299 0.0057 0.0009 0.0001 0.0000 0.0000 0.0000 0.0000 +-1.6540-0.6342-0.1188 0.6110 0.1740 0.0448 0.0093 0.0015 0.0002 0.0000 0.0000 0.0000 0.0000 + 3.8589 +-1.7246-0.6926-0.1564 0.5972 0.1496 0.0352 0.0071 0.0012 0.0002 0.0000 0.0000 0.0000 0.0000 +-1.6965-0.6656-0.1209 0.6447 0.1921 0.0523 0.0115 0.0020 0.0003 0.0000 0.0000 0.0000 0.0000 + 4.0426 +-1.7658-0.7229-0.1568 0.6327 0.1662 0.0410 0.0087 0.0015 0.0002 0.0000 0.0000 0.0000 0.0000 +-1.7372-0.6959-0.1234 0.6767 0.2101 0.0603 0.0140 0.0026 0.0004 0.0001 0.0000 0.0000 0.0000 + 4.2264 +-1.8054-0.7522-0.1580 0.6663 0.1830 0.0472 0.0105 0.0019 0.0003 0.0000 0.0000 0.0000 0.0000 +-1.7764-0.7250-0.1261 0.7073 0.2277 0.0687 0.0168 0.0033 0.0005 0.0001 0.0000 0.0000 0.0000 + 4.4101 +-1.8435-0.7806-0.1597 0.6981 0.1999 0.0538 0.0125 0.0024 0.0004 0.0001 0.0000 0.0000 0.0000 +-1.8141-0.7530-0.1290 0.7367 0.2449 0.0774 0.0199 0.0041 0.0007 0.0001 0.0000 0.0000 0.0000 + 4.5939 +-1.8803-0.8081-0.1620 0.7282 0.2168 0.0607 0.0147 0.0030 0.0005 0.0001 0.0000 0.0000 0.0000 +-1.8505-0.7801-0.1320 0.7650 0.2616 0.0864 0.0233 0.0050 0.0009 0.0001 0.0000 0.0000 0.0000 + 4.7777 +-1.9158-0.8347-0.1646 0.7568 0.2336 0.0680 0.0171 0.0036 0.0006 0.0001 0.0000 0.0000 0.0000 +-1.8858-0.8064-0.1351 0.7922 0.2777 0.0957 0.0270 0.0061 0.0011 0.0002 0.0000 0.0000 0.0000 + 4.9614 +-1.9501-0.8606-0.1675 0.7840 0.2501 0.0757 0.0198 0.0044 0.0008 0.0001 0.0000 0.0000 0.0000 +-1.9199-0.8318-0.1381 0.8186 0.2933 0.1050 0.0310 0.0073 0.0014 0.0002 0.0000 0.0000 0.0000 + 5.1452 +-1.9833-0.8856-0.1706 0.8099 0.2664 0.0835 0.0227 0.0052 0.0010 0.0002 0.0000 0.0000 0.0000 +-1.9531-0.8565-0.1412 0.8442 0.3083 0.1145 0.0353 0.0087 0.0017 0.0003 0.0000 0.0000 0.0000 + 5.3289 +-2.0154-0.9099-0.1739 0.8347 0.2823 0.0916 0.0257 0.0062 0.0012 0.0002 0.0000 0.0000 0.0000 +-1.9853-0.8805-0.1444 0.8690 0.3228 0.1239 0.0398 0.0102 0.0021 0.0003 0.0001 0.0000 0.0000 + 5.5127 +-2.0466-0.9335-0.1774 0.8585 0.2978 0.0999 0.0291 0.0072 0.0015 0.0003 0.0000 0.0000 0.0000 +-2.0166-0.9039-0.1475 0.8930 0.3367 0.1333 0.0446 0.0119 0.0025 0.0004 0.0001 0.0000 0.0000 + 5.6964 +-2.0768-0.9563-0.1809 0.8814 0.3130 0.1084 0.0326 0.0083 0.0018 0.0003 0.0001 0.0000 0.0000 +-2.0471-0.9267-0.1507 0.9163 0.3502 0.1426 0.0495 0.0138 0.0031 0.0006 0.0001 0.0000 0.0000 + 5.8802 +-2.1061-0.9786-0.1845 0.9035 0.3277 0.1169 0.0363 0.0096 0.0022 0.0004 0.0001 0.0000 0.0000 +-2.0769-0.9489-0.1540 0.9387 0.3633 0.1518 0.0547 0.0158 0.0037 0.0007 0.0001 0.0000 0.0000 + 6.0639 +-2.1346-1.0002-0.1882 0.9247 0.3420 0.1255 0.0401 0.0110 0.0025 0.0005 0.0001 0.0000 0.0000 +-2.1059-0.9707-0.1573 0.9605 0.3759 0.1608 0.0600 0.0180 0.0043 0.0008 0.0001 0.0000 0.0000 + 6.2477 +-2.1624-1.0213-0.1918 0.9453 0.3558 0.1341 0.0442 0.0125 0.0030 0.0006 0.0001 0.0000 0.0000 +-2.1342-0.9920-0.1606 0.9814 0.3883 0.1697 0.0654 0.0204 0.0051 0.0010 0.0002 0.0000 0.0000 + 6.4315 +-2.1894-1.0418-0.1954 0.9653 0.3692 0.1428 0.0484 0.0141 0.0035 0.0007 0.0001 0.0000 0.0000 +-2.1618-1.0129-0.1641 1.0016 0.4003 0.1783 0.0709 0.0229 0.0059 0.0012 0.0002 0.0000 0.0000 + 6.6152 +-2.2158-1.0618-0.1990 0.9846 0.3822 0.1515 0.0528 0.0158 0.0040 0.0009 0.0002 0.0000 0.0000 +-2.1888-1.0333-0.1676 1.0210 0.4121 0.1867 0.0765 0.0256 0.0068 0.0015 0.0003 0.0000 0.0000 + 6.7990 +-2.2415-1.0813-0.2026 1.0033 0.3948 0.1601 0.0573 0.0176 0.0046 0.0010 0.0002 0.0000 0.0000 +-2.2152-1.0533-0.1712 1.0396 0.4236 0.1949 0.0821 0.0284 0.0079 0.0018 0.0003 0.0001 0.0000 + 6.9827 +-2.2666-1.1004-0.2061 1.0215 0.4070 0.1686 0.0619 0.0196 0.0053 0.0012 0.0002 0.0000 0.0000 +-2.2410-1.0729-0.1749 1.0576 0.4349 0.2028 0.0877 0.0313 0.0090 0.0021 0.0004 0.0001 0.0000 + 7.1665 +-2.2911-1.1190-0.2096 1.0391 0.4188 0.1771 0.0666 0.0217 0.0060 0.0014 0.0003 0.0001 0.0000 +-2.2663-1.0921-0.1786 1.0748 0.4461 0.2106 0.0933 0.0344 0.0102 0.0024 0.0005 0.0001 0.0000 + 7.3502 +-2.3151-1.1372-0.2130 1.0562 0.4302 0.1854 0.0714 0.0238 0.0068 0.0017 0.0003 0.0001 0.0000 +-2.2909-1.1110-0.1825 1.0914 0.4571 0.2181 0.0989 0.0376 0.0115 0.0028 0.0006 0.0001 0.0000 + 7.5340 +-2.3385-1.1549-0.2165 1.0728 0.4413 0.1937 0.0763 0.0261 0.0077 0.0019 0.0004 0.0001 0.0000 +-2.3151-1.1294-0.1863 1.1072 0.4678 0.2255 0.1045 0.0409 0.0129 0.0033 0.0007 0.0001 0.0000 + 7.7178 +-2.3615-1.1724-0.2199 1.0889 0.4521 0.2018 0.0813 0.0285 0.0086 0.0022 0.0005 0.0001 0.0000 +-2.3387-1.1475-0.1903 1.1225 0.4785 0.2326 0.1100 0.0443 0.0144 0.0038 0.0008 0.0001 0.0000 + 7.9015 +-2.3840-1.1894-0.2232 1.1045 0.4627 0.2098 0.0863 0.0309 0.0096 0.0025 0.0006 0.0001 0.0000 +-2.3618-1.1653-0.1942 1.1372 0.4889 0.2397 0.1154 0.0477 0.0160 0.0043 0.0009 0.0002 0.0000 + 8.0853 +-2.4061-1.2062-0.2266 1.1196 0.4729 0.2176 0.0913 0.0335 0.0106 0.0029 0.0007 0.0001 0.0000 +-2.3844-1.1826-0.1982 1.1514 0.4993 0.2465 0.1207 0.0513 0.0177 0.0049 0.0011 0.0002 0.0000 + 8.2690 +-2.4277-1.2226-0.2299 1.1342 0.4829 0.2253 0.0964 0.0361 0.0117 0.0033 0.0008 0.0001 0.0000 +-2.4066-1.1997-0.2022 1.1650 0.5094 0.2533 0.1259 0.0548 0.0195 0.0056 0.0013 0.0003 0.0000 + 8.4528 +-2.4490-1.2387-0.2331 1.1484 0.4927 0.2328 0.1015 0.0388 0.0129 0.0037 0.0009 0.0002 0.0000 +-2.4283-1.2164-0.2062 1.1782 0.5194 0.2599 0.1311 0.0585 0.0214 0.0063 0.0015 0.0003 0.0001 + 8.6365 +-2.4698-1.2545-0.2364 1.1621 0.5022 0.2402 0.1066 0.0416 0.0141 0.0041 0.0010 0.0002 0.0000 +-2.4496-1.2328-0.2102 1.1910 0.5292 0.2664 0.1361 0.0621 0.0233 0.0071 0.0017 0.0003 0.0001 + 8.8203 +-2.4903-1.2701-0.2397 1.1753 0.5116 0.2474 0.1118 0.0445 0.0154 0.0046 0.0012 0.0003 0.0001 +-2.4704-1.2489-0.2142 1.2033 0.5388 0.2728 0.1410 0.0657 0.0254 0.0079 0.0020 0.0004 0.0001 + 9.0040 +-2.5104-1.2854-0.2430 1.1881 0.5207 0.2544 0.1169 0.0474 0.0168 0.0052 0.0014 0.0003 0.0001 +-2.4908-1.2647-0.2181 1.2153 0.5482 0.2792 0.1458 0.0694 0.0275 0.0088 0.0023 0.0005 0.0001 + 9.1878 +-2.5302-1.3004-0.2462 1.2004 0.5297 0.2613 0.1220 0.0504 0.0182 0.0057 0.0015 0.0003 0.0001 +-2.5109-1.2801-0.2221 1.2269 0.5575 0.2854 0.1506 0.0731 0.0297 0.0098 0.0026 0.0006 0.0001 + 9.3716 +-2.5497-1.3152-0.2495 1.2123 0.5386 0.2681 0.1270 0.0534 0.0197 0.0063 0.0017 0.0004 0.0001 +-2.5305-1.2953-0.2259 1.2381 0.5665 0.2916 0.1552 0.0767 0.0319 0.0108 0.0029 0.0007 0.0001 + 9.5553 +-2.5689-1.3298-0.2528 1.2238 0.5473 0.2747 0.1321 0.0565 0.0213 0.0070 0.0020 0.0005 0.0001 +-2.5498-1.3102-0.2298 1.2490 0.5754 0.2978 0.1597 0.0803 0.0342 0.0118 0.0033 0.0008 0.0001 + 9.7391 +-2.5877-1.3442-0.2561 1.2349 0.5558 0.2811 0.1371 0.0596 0.0229 0.0076 0.0022 0.0005 0.0001 +-2.5688-1.3248-0.2336 1.2597 0.5840 0.3039 0.1642 0.0839 0.0366 0.0130 0.0037 0.0009 0.0002 + 9.9228 +-2.6063-1.3583-0.2594 1.2455 0.5643 0.2874 0.1420 0.0628 0.0245 0.0084 0.0025 0.0006 0.0001 +-2.5874-1.3392-0.2373 1.2700 0.5925 0.3099 0.1685 0.0874 0.0390 0.0142 0.0042 0.0010 0.0002 +10.1066 +-2.6246-1.3723-0.2627 1.2558 0.5726 0.2936 0.1469 0.0660 0.0262 0.0091 0.0027 0.0007 0.0001 +-2.6057-1.3533-0.2410 1.2800 0.6008 0.3159 0.1728 0.0909 0.0414 0.0155 0.0047 0.0012 0.0002 +10.2903 +-2.6426-1.3861-0.2661 1.2658 0.5808 0.2996 0.1518 0.0692 0.0280 0.0099 0.0031 0.0008 0.0002 +-2.6237-1.3671-0.2446 1.2898 0.6088 0.3218 0.1771 0.0943 0.0439 0.0168 0.0052 0.0013 0.0003 +10.4741 +-2.6603-1.3997-0.2694 1.2753 0.5889 0.3055 0.1566 0.0725 0.0298 0.0108 0.0034 0.0009 0.0002 +-2.6414-1.3807-0.2482 1.2993 0.6168 0.3276 0.1812 0.0977 0.0464 0.0181 0.0058 0.0015 0.0003 +10.6578 +-2.6778-1.4130-0.2728 1.2846 0.5969 0.3113 0.1613 0.0757 0.0316 0.0117 0.0037 0.0010 0.0002 +-2.6588-1.3942-0.2518 1.3085 0.6245 0.3334 0.1853 0.1011 0.0489 0.0196 0.0064 0.0017 0.0004 +10.8416 +-2.6950-1.4262-0.2762 1.2935 0.6048 0.3170 0.1660 0.0790 0.0335 0.0126 0.0041 0.0011 0.0003 +-2.6759-1.4073-0.2553 1.3174 0.6321 0.3392 0.1894 0.1043 0.0514 0.0210 0.0070 0.0019 0.0004 +11.0254 +-2.7120-1.4393-0.2796 1.3022 0.6126 0.3226 0.1706 0.0823 0.0354 0.0135 0.0045 0.0013 0.0003 +-2.6928-1.4203-0.2587 1.3261 0.6395 0.3448 0.1934 0.1076 0.0539 0.0226 0.0077 0.0022 0.0005 +11.2091 +-2.7287-1.4521-0.2830 1.3105 0.6202 0.3280 0.1751 0.0856 0.0374 0.0145 0.0049 0.0014 0.0003 +-2.7094-1.4331-0.2621 1.3345 0.6468 0.3505 0.1974 0.1107 0.0564 0.0241 0.0084 0.0024 0.0006 +11.3929 +-2.7452-1.4648-0.2864 1.3186 0.6278 0.3334 0.1796 0.0889 0.0394 0.0155 0.0054 0.0016 0.0004 +-2.7258-1.4457-0.2656 1.3427 0.6539 0.3560 0.2014 0.1139 0.0589 0.0257 0.0092 0.0027 0.0006 +11.5766 +-2.7614-1.4773-0.2898 1.3264 0.6353 0.3387 0.1840 0.0922 0.0414 0.0166 0.0058 0.0018 0.0004 +-2.7420-1.4581-0.2689 1.3507 0.6609 0.3614 0.2053 0.1169 0.0614 0.0274 0.0100 0.0030 0.0007 +11.7604 +-2.7775-1.4897-0.2932 1.3340 0.6427 0.3439 0.1883 0.0955 0.0435 0.0177 0.0063 0.0019 0.0005 +-2.7579-1.4704-0.2723 1.3583 0.6677 0.3668 0.2092 0.1199 0.0639 0.0291 0.0108 0.0033 0.0008 +11.9441 +-2.7933-1.5019-0.2966 1.3414 0.6499 0.3490 0.1925 0.0988 0.0456 0.0188 0.0069 0.0022 0.0006 +-2.7736-1.4825-0.2756 1.3658 0.6745 0.3721 0.2131 0.1229 0.0664 0.0308 0.0117 0.0037 0.0009 +12.1279 +-2.8089-1.5139-0.3000 1.3485 0.6571 0.3540 0.1967 0.1021 0.0477 0.0200 0.0074 0.0024 0.0006 +-2.7891-1.4944-0.2789 1.3730 0.6812 0.3774 0.2169 0.1258 0.0689 0.0325 0.0126 0.0040 0.0011 +12.3117 +-2.8242-1.5258-0.3034 1.3554 0.6641 0.3590 0.2008 0.1054 0.0498 0.0212 0.0080 0.0026 0.0007 +-2.8044-1.5062-0.2822 1.3800 0.6877 0.3825 0.2208 0.1287 0.0713 0.0343 0.0136 0.0044 0.0012 +12.4954 +-2.8394-1.5375-0.3068 1.3622 0.6711 0.3640 0.2049 0.1086 0.0520 0.0224 0.0086 0.0029 0.0008 +-2.8196-1.5178-0.2855 1.3867 0.6942 0.3875 0.2246 0.1316 0.0737 0.0361 0.0146 0.0049 0.0013 +12.6792 +-2.8543-1.5490-0.3101 1.3687 0.6779 0.3688 0.2088 0.1119 0.0542 0.0237 0.0092 0.0031 0.0009 +-2.8345-1.5293-0.2888 1.3933 0.7005 0.3925 0.2284 0.1344 0.0761 0.0379 0.0157 0.0053 0.0015 +12.8629 +-2.8691-1.5604-0.3135 1.3752 0.6846 0.3736 0.2127 0.1151 0.0564 0.0249 0.0099 0.0034 0.0010 +-2.8492-1.5407-0.2920 1.3996 0.7068 0.3974 0.2321 0.1371 0.0784 0.0397 0.0167 0.0058 0.0016 +13.0467 +-2.8836-1.5717-0.3168 1.3814 0.6912 0.3784 0.2166 0.1183 0.0586 0.0262 0.0105 0.0037 0.0011 +-2.8638-1.5519-0.2953 1.4058 0.7130 0.4022 0.2359 0.1399 0.0807 0.0415 0.0178 0.0063 0.0018 +13.2304 +-2.8979-1.5828-0.3201 1.3875 0.6977 0.3831 0.2203 0.1214 0.0608 0.0276 0.0112 0.0040 0.0012 +-2.8782-1.5630-0.2985 1.4117 0.7191 0.4069 0.2396 0.1426 0.0830 0.0433 0.0190 0.0068 0.0020 +13.4142 +-2.9121-1.5937-0.3234 1.3934 0.7040 0.3878 0.2240 0.1246 0.0630 0.0289 0.0120 0.0043 0.0014 +-2.8924-1.5740-0.3018 1.4175 0.7251 0.4115 0.2433 0.1454 0.0852 0.0451 0.0201 0.0074 0.0022 +13.5979 +-2.9260-1.6045-0.3266 1.3993 0.7103 0.3925 0.2277 0.1277 0.0653 0.0303 0.0127 0.0047 0.0015 +-2.9065-1.5848-0.3050 1.4230 0.7311 0.4161 0.2470 0.1480 0.0874 0.0470 0.0213 0.0080 0.0025 +13.7817 +-2.9398-1.6152-0.3298 1.4049 0.7164 0.3971 0.2312 0.1308 0.0675 0.0317 0.0135 0.0050 0.0016 +-2.9204-1.5955-0.3083 1.4285 0.7370 0.4206 0.2506 0.1507 0.0896 0.0488 0.0226 0.0086 0.0027 +13.9655 +-2.9534-1.6257-0.3330 1.4105 0.7224 0.4017 0.2348 0.1338 0.0698 0.0331 0.0143 0.0054 0.0018 +-2.9341-1.6061-0.3115 1.4337 0.7428 0.4250 0.2542 0.1534 0.0917 0.0506 0.0238 0.0092 0.0030 +14.1492 +-2.9668-1.6360-0.3361 1.4159 0.7283 0.4062 0.2382 0.1368 0.0721 0.0346 0.0151 0.0058 0.0019 +-2.9476-1.6166-0.3147 1.4388 0.7485 0.4294 0.2578 0.1560 0.0939 0.0524 0.0251 0.0099 0.0032 +14.3330 +-2.9800-1.6463-0.3392 1.4212 0.7341 0.4107 0.2417 0.1398 0.0744 0.0360 0.0159 0.0062 0.0021 +-2.9610-1.6270-0.3180 1.4438 0.7542 0.4336 0.2613 0.1587 0.0959 0.0542 0.0264 0.0106 0.0035 +14.5167 +-2.9931-1.6564-0.3423 1.4264 0.7398 0.4152 0.2450 0.1427 0.0766 0.0375 0.0167 0.0067 0.0023 +-2.9743-1.6372-0.3212 1.4487 0.7598 0.4379 0.2648 0.1613 0.0980 0.0560 0.0277 0.0114 0.0038 +14.7005 +-3.0060-1.6663-0.3453 1.4314 0.7453 0.4197 0.2483 0.1457 0.0789 0.0390 0.0176 0.0071 0.0025 +-2.9874-1.6473-0.3243 1.4534 0.7653 0.4420 0.2683 0.1639 0.1000 0.0577 0.0290 0.0121 0.0042 +14.8842 +-3.0187-1.6762-0.3483 1.4364 0.7508 0.4241 0.2516 0.1485 0.0812 0.0405 0.0185 0.0076 0.0027 +-3.0003-1.6574-0.3275 1.4580 0.7708 0.4461 0.2717 0.1666 0.1021 0.0595 0.0304 0.0129 0.0045 +15.0680 +-3.0313-1.6859-0.3513 1.4412 0.7561 0.4284 0.2549 0.1514 0.0835 0.0420 0.0194 0.0081 0.0029 +-3.0131-1.6673-0.3307 1.4625 0.7761 0.4502 0.2751 0.1692 0.1041 0.0612 0.0317 0.0137 0.0049 +15.2517 +-3.0437-1.6955-0.3542 1.4460 0.7614 0.4328 0.2581 0.1541 0.0857 0.0436 0.0203 0.0086 0.0032 +-3.0258-1.6771-0.3338 1.4668 0.7814 0.4542 0.2784 0.1718 0.1060 0.0629 0.0331 0.0146 0.0053 +15.4355 +-3.0560-1.7049-0.3570 1.4506 0.7665 0.4371 0.2612 0.1569 0.0880 0.0451 0.0213 0.0091 0.0034 +-3.0383-1.6868-0.3369 1.4711 0.7866 0.4582 0.2817 0.1744 0.1080 0.0646 0.0344 0.0154 0.0057 +15.6193 +-3.0681-1.7143-0.3599 1.4551 0.7716 0.4414 0.2644 0.1596 0.0903 0.0467 0.0222 0.0096 0.0037 +-3.0507-1.6963-0.3400 1.4753 0.7917 0.4622 0.2849 0.1770 0.1099 0.0663 0.0358 0.0163 0.0061 +15.8030 +-3.0801-1.7235-0.3627 1.4595 0.7766 0.4456 0.2675 0.1623 0.0925 0.0483 0.0232 0.0102 0.0039 +-3.0629-1.7058-0.3431 1.4793 0.7968 0.4661 0.2881 0.1795 0.1119 0.0679 0.0372 0.0172 0.0066 +15.9868 +-3.0919-1.7326-0.3655 1.4638 0.7814 0.4498 0.2706 0.1649 0.0947 0.0498 0.0242 0.0107 0.0042 +-3.0750-1.7152-0.3461 1.4833 0.8017 0.4699 0.2913 0.1821 0.1138 0.0695 0.0386 0.0181 0.0071 +16.1705 +-3.1037-1.7416-0.3682 1.4679 0.7862 0.4539 0.2736 0.1675 0.0970 0.0514 0.0252 0.0113 0.0045 +-3.0869-1.7244-0.3492 1.4872 0.8066 0.4738 0.2944 0.1847 0.1157 0.0712 0.0399 0.0191 0.0076 +16.3543 +-3.1152-1.7506-0.3710 1.4720 0.7910 0.4581 0.2767 0.1701 0.0992 0.0530 0.0262 0.0119 0.0048 +-3.0987-1.7336-0.3522 1.4910 0.8114 0.4775 0.2974 0.1872 0.1176 0.0727 0.0413 0.0200 0.0081 +16.5380 +-3.1267-1.7594-0.3737 1.4759 0.7956 0.4621 0.2797 0.1726 0.1014 0.0547 0.0273 0.0125 0.0051 +-3.1104-1.7426-0.3551 1.4948 0.8161 0.4813 0.3004 0.1898 0.1195 0.0743 0.0427 0.0210 0.0086 +16.7218 +-3.1381-1.7681-0.3763 1.4798 0.8002 0.4661 0.2827 0.1751 0.1036 0.0563 0.0283 0.0131 0.0054 +-3.1219-1.7516-0.3580 1.4985 0.8207 0.4851 0.3034 0.1923 0.1214 0.0759 0.0440 0.0220 0.0092 +16.9055 +-3.1493-1.7767-0.3790 1.4835 0.8047 0.4701 0.2857 0.1775 0.1058 0.0579 0.0294 0.0138 0.0058 +-3.1334-1.7604-0.3609 1.5020 0.8253 0.4888 0.3064 0.1948 0.1233 0.0774 0.0454 0.0230 0.0097 +17.0893 +-3.1604-1.7852-0.3816 1.4872 0.8092 0.4740 0.2887 0.1799 0.1079 0.0595 0.0304 0.0144 0.0061 +-3.1447-1.7691-0.3638 1.5055 0.8297 0.4925 0.3093 0.1973 0.1252 0.0789 0.0467 0.0240 0.0103 +17.2731 +-3.1714-1.7937-0.3842 1.4907 0.8135 0.4779 0.2916 0.1823 0.1100 0.0612 0.0315 0.0151 0.0065 +-3.1558-1.7778-0.3667 1.5090 0.8341 0.4962 0.3121 0.1997 0.1270 0.0804 0.0480 0.0251 0.0109 +17.4568 +-3.1823-1.8021-0.3869 1.4941 0.8179 0.4817 0.2945 0.1846 0.1122 0.0628 0.0326 0.0157 0.0069 +-3.1669-1.7863-0.3695 1.5123 0.8384 0.4998 0.3149 0.2022 0.1289 0.0819 0.0493 0.0261 0.0116 +17.6406 +-3.1931-1.8103-0.3895 1.4975 0.8222 0.4855 0.2975 0.1870 0.1143 0.0645 0.0337 0.0164 0.0072 +-3.1778-1.7948-0.3723 1.5156 0.8427 0.5034 0.3177 0.2046 0.1308 0.0833 0.0507 0.0272 0.0122 +17.8243 +-3.2038-1.8185-0.3920 1.5007 0.8264 0.4892 0.3004 0.1893 0.1163 0.0661 0.0348 0.0171 0.0076 +-3.1887-1.8031-0.3750 1.5188 0.8468 0.5070 0.3205 0.2070 0.1327 0.0848 0.0519 0.0282 0.0129 +18.0081 +-3.2144-1.8267-0.3946 1.5038 0.8306 0.4929 0.3033 0.1915 0.1184 0.0678 0.0360 0.0178 0.0080 +-3.1994-1.8114-0.3778 1.5219 0.8510 0.5106 0.3232 0.2094 0.1346 0.0862 0.0532 0.0293 0.0136 +18.1918 +-3.2249-1.8347-0.3972 1.5069 0.8347 0.4965 0.3062 0.1938 0.1204 0.0694 0.0371 0.0185 0.0085 +-3.2100-1.8196-0.3805 1.5249 0.8550 0.5141 0.3259 0.2117 0.1364 0.0877 0.0545 0.0303 0.0143 +18.3756 +-3.2354-1.8427-0.3997 1.5099 0.8388 0.5000 0.3091 0.1960 0.1224 0.0711 0.0382 0.0193 0.0089 +-3.2205-1.8277-0.3832 1.5279 0.8590 0.5176 0.3286 0.2140 0.1383 0.0891 0.0557 0.0314 0.0150 +18.5594 +-3.2457-1.8507-0.4023 1.5128 0.8429 0.5035 0.3120 0.1982 0.1244 0.0727 0.0394 0.0200 0.0093 +-3.2309-1.8357-0.3858 1.5308 0.8629 0.5211 0.3313 0.2163 0.1402 0.0905 0.0570 0.0325 0.0157 + 2.5561 0.0000 + 0.0000 2.5561 + 2.5561 0.0000 + 0.0000 2.5561 + 1 + 1.80745000 0.00000000 0.00000000 + 3 1 3 + 4 1 1 + 0 + 2 1 1 + 1 2 2 2 + 2 + 2 + 0.0100 0.0000 0.0000 1 + 1.7775 1.2781 1.2781 2 + 3.6050 0.0000 0.0000 3 + 5.4125 1.2781 1.2781 4 + 1.8175 0.0000 0.0000 + 0.50 0.00 -5.00 + 7.2300 0.000 0.0000 5 + 1.8075 0.0000 0.0000 + 0.50 0.00 -5.00 + 9.0375 1.2781 1.2781 6 + 1.8075 0.0000 0.0000 + 0.50 0.00 -5.00 + 100.00 500.00 4.00 + diff --git a/extra/leed/sample/user_program/do.sh b/extra/leed/sample/user_program/do.sh new file mode 100644 index 00000000..b5cb027a --- /dev/null +++ b/extra/leed/sample/user_program/do.sh @@ -0,0 +1,22 @@ +#!/bin/sh + +sh ./prepare.sh + +time python3 ./simple.py +#time python3 ./simple2.py + + +result=output/res.txt +reference=ref.txt + +echo diff $result $reference +res=0 +diff $result $reference || res=$? +if [ $res -eq 0 ]; then + echo TEST PASS + true +else + echo TEST FAILED: $result and $reference differ + false +fi + diff --git a/extra/leed/sample/user_program/input.toml b/extra/leed/sample/user_program/input.toml new file mode 100644 index 00000000..96599fc1 --- /dev/null +++ b/extra/leed/sample/user_program/input.toml @@ -0,0 +1,18 @@ +[base] +dimension = 2 +output_dir = "output" + +[solver] +name = "leed" +[solver.config] +path_to_solver = "./leedsatl/satl2.exe" +[solver.reference] +path_to_base_dir = "./base" + +[algorithm] +name = "minsearch" +label_list = ["z1", "z2"] +[algorithm.param] +min_list = [-0.5, -0.5] +max_list = [0.5, 0.5] +initial_list = [-0.1, 0.1] diff --git a/extra/leed/sample/user_program/prepare.sh b/extra/leed/sample/user_program/prepare.sh new file mode 100644 index 00000000..5ac0b009 --- /dev/null +++ b/extra/leed/sample/user_program/prepare.sh @@ -0,0 +1,3 @@ +#!/bin/sh + +rm -rf ./output diff --git a/extra/leed/sample/user_program/ref.txt b/extra/leed/sample/user_program/ref.txt new file mode 100644 index 00000000..4de17f61 --- /dev/null +++ b/extra/leed/sample/user_program/ref.txt @@ -0,0 +1,3 @@ +fx = 0.1575 +z1 = -0.01910402104258537 +z2 = 0.10217590294778345 diff --git a/extra/leed/sample/user_program/simple.py b/extra/leed/sample/user_program/simple.py new file mode 100644 index 00000000..c9fd9031 --- /dev/null +++ b/extra/leed/sample/user_program/simple.py @@ -0,0 +1,10 @@ +import py2dmat +import py2dmat.algorithm.min_search +import leed + +info = py2dmat.Info.from_file("input.toml") + +solver = leed.Solver(info) +runner = py2dmat.Runner(solver, info) +alg = py2dmat.algorithm.min_search.Algorithm(info, runner) +alg.main() diff --git a/extra/leed/sample/user_program/simple2.py b/extra/leed/sample/user_program/simple2.py new file mode 100644 index 00000000..781237f1 --- /dev/null +++ b/extra/leed/sample/user_program/simple2.py @@ -0,0 +1,34 @@ +import py2dmat +import py2dmat.algorithm.min_search +import leed + +params = { + "base": { + "dimension": 2, + "output_dir": "output", + }, + "solver": { + "config": { + "path_to_solver": "./leedsatl/satl2.exe", + }, + "reference": { + "path_to_base_dir": "./base", + }, + }, + "algorithm": { + "label_list": ["z1", "z2"], + "param": { + "min_list": [-0.5, -0.5], + "max_list": [0.5, 0.5], + "initial_list": [-0.1, 0.1], + }, + + }, +} + +info = py2dmat.Info(params) + +solver = leed.Solver(info) +runner = py2dmat.Runner(solver, info) +alg = py2dmat.algorithm.min_search.Algorithm(info, runner) +alg.main() diff --git a/extra/sim-trhepd-rheed/doc/.gitignore b/extra/sim-trhepd-rheed/doc/.gitignore new file mode 100644 index 00000000..c795b054 --- /dev/null +++ b/extra/sim-trhepd-rheed/doc/.gitignore @@ -0,0 +1 @@ +build \ No newline at end of file diff --git a/doc/common/img/RC_double_minsearch.pdf b/extra/sim-trhepd-rheed/doc/common/img/RC_double_minsearch.pdf similarity index 100% rename from doc/common/img/RC_double_minsearch.pdf rename to extra/sim-trhepd-rheed/doc/common/img/RC_double_minsearch.pdf diff --git a/doc/common/img/RC_double_minsearch.png b/extra/sim-trhepd-rheed/doc/common/img/RC_double_minsearch.png similarity index 100% rename from doc/common/img/RC_double_minsearch.png rename to extra/sim-trhepd-rheed/doc/common/img/RC_double_minsearch.png diff --git a/doc/common/img/exchange.pdf b/extra/sim-trhepd-rheed/doc/common/img/exchange.pdf similarity index 100% rename from doc/common/img/exchange.pdf rename to extra/sim-trhepd-rheed/doc/common/img/exchange.pdf diff --git a/doc/common/img/exchange.png b/extra/sim-trhepd-rheed/doc/common/img/exchange.png similarity index 100% rename from doc/common/img/exchange.png rename to extra/sim-trhepd-rheed/doc/common/img/exchange.png diff --git a/doc/common/img/mapper.pdf b/extra/sim-trhepd-rheed/doc/common/img/mapper.pdf similarity index 100% rename from doc/common/img/mapper.pdf rename to extra/sim-trhepd-rheed/doc/common/img/mapper.pdf diff --git a/doc/common/img/mapper.png b/extra/sim-trhepd-rheed/doc/common/img/mapper.png similarity index 100% rename from doc/common/img/mapper.png rename to extra/sim-trhepd-rheed/doc/common/img/mapper.png diff --git a/doc/common/img/pamc_T.pdf b/extra/sim-trhepd-rheed/doc/common/img/pamc_T.pdf similarity index 100% rename from doc/common/img/pamc_T.pdf rename to extra/sim-trhepd-rheed/doc/common/img/pamc_T.pdf diff --git a/doc/common/img/pamc_T.png b/extra/sim-trhepd-rheed/doc/common/img/pamc_T.png similarity index 100% rename from doc/common/img/pamc_T.png rename to extra/sim-trhepd-rheed/doc/common/img/pamc_T.png diff --git a/doc/common/img/pamc_fx.pdf b/extra/sim-trhepd-rheed/doc/common/img/pamc_fx.pdf similarity index 100% rename from doc/common/img/pamc_fx.pdf rename to extra/sim-trhepd-rheed/doc/common/img/pamc_fx.pdf diff --git a/doc/common/img/pamc_fx.png b/extra/sim-trhepd-rheed/doc/common/img/pamc_fx.png similarity index 100% rename from doc/common/img/pamc_fx.png rename to extra/sim-trhepd-rheed/doc/common/img/pamc_fx.png diff --git a/doc/common/img/plot_bulkP.pdf b/extra/sim-trhepd-rheed/doc/common/img/plot_bulkP.pdf similarity index 100% rename from doc/common/img/plot_bulkP.pdf rename to extra/sim-trhepd-rheed/doc/common/img/plot_bulkP.pdf diff --git a/doc/common/img/plot_bulkP.png b/extra/sim-trhepd-rheed/doc/common/img/plot_bulkP.png similarity index 100% rename from doc/common/img/plot_bulkP.png rename to extra/sim-trhepd-rheed/doc/common/img/plot_bulkP.png diff --git a/extra/sim-trhepd-rheed/doc/common/img/plot_convolution.pdf b/extra/sim-trhepd-rheed/doc/common/img/plot_convolution.pdf new file mode 100644 index 00000000..8e7110e4 Binary files /dev/null and b/extra/sim-trhepd-rheed/doc/common/img/plot_convolution.pdf differ diff --git a/extra/sim-trhepd-rheed/doc/common/img/plot_convolution.png b/extra/sim-trhepd-rheed/doc/common/img/plot_convolution.png new file mode 100644 index 00000000..5a3b0d14 Binary files /dev/null and b/extra/sim-trhepd-rheed/doc/common/img/plot_convolution.png differ diff --git a/extra/sim-trhepd-rheed/doc/ja/Makefile b/extra/sim-trhepd-rheed/doc/ja/Makefile new file mode 100644 index 00000000..f86728d9 --- /dev/null +++ b/extra/sim-trhepd-rheed/doc/ja/Makefile @@ -0,0 +1,20 @@ +# Minimal makefile for Sphinx documentation +# + +# You can set these variables from the command line, and also +# from the environment for the first two. +SPHINXOPTS ?= +SPHINXBUILD ?= sphinx-build +SOURCEDIR = source +BUILDDIR = build + +# Put it first so that "make" without argument is like "make help". +help: + @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) + +.PHONY: help Makefile + +# Catch-all target: route all unknown targets to Sphinx using the new +# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). +%: Makefile + @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" -W $(SPHINXOPTS) $(O) diff --git a/extra/sim-trhepd-rheed/doc/ja/make.bat b/extra/sim-trhepd-rheed/doc/ja/make.bat new file mode 100644 index 00000000..6247f7e2 --- /dev/null +++ b/extra/sim-trhepd-rheed/doc/ja/make.bat @@ -0,0 +1,35 @@ +@ECHO OFF + +pushd %~dp0 + +REM Command file for Sphinx documentation + +if "%SPHINXBUILD%" == "" ( + set SPHINXBUILD=sphinx-build +) +set SOURCEDIR=source +set BUILDDIR=build + +if "%1" == "" goto help + +%SPHINXBUILD% >NUL 2>NUL +if errorlevel 9009 ( + echo. + echo.The 'sphinx-build' command was not found. Make sure you have Sphinx + echo.installed, then set the SPHINXBUILD environment variable to point + echo.to the full path of the 'sphinx-build' executable. Alternatively you + echo.may add the Sphinx directory to PATH. + echo. + echo.If you don't have Sphinx installed, grab it from + echo.http://sphinx-doc.org/ + exit /b 1 +) + +%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% +goto end + +:help +%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% + +:end +popd diff --git a/extra/sim-trhepd-rheed/doc/ja/source/acknowledgement.rst b/extra/sim-trhepd-rheed/doc/ja/source/acknowledgement.rst new file mode 100644 index 00000000..9be001c2 --- /dev/null +++ b/extra/sim-trhepd-rheed/doc/ja/source/acknowledgement.rst @@ -0,0 +1,4 @@ +謝辞 +========================================= + +本ソフトウェアは、科研費(2019-2021年度)「超並列マシンを用いた計算統計と測定技術の融合」および東京大学物性研究所 ソフトウェア高度化プロジェクト (2020, 2021, 2024 年度) の支援を受け開発されました。 diff --git a/extra/sim-trhepd-rheed/doc/ja/source/conf.py b/extra/sim-trhepd-rheed/doc/ja/source/conf.py new file mode 100644 index 00000000..18f61172 --- /dev/null +++ b/extra/sim-trhepd-rheed/doc/ja/source/conf.py @@ -0,0 +1,141 @@ +# Configuration file for the Sphinx documentation builder. +# +# This file only contains a selection of the most common options. For a full +# list see the documentation: +# https://www.sphinx-doc.org/en/master/usage/configuration.html + +# -- Path setup -------------------------------------------------------------- + +# If extensions (or modules to document with autodoc) are in another directory, +# add these directories to sys.path here. If the directory is relative to the +# documentation root, use os.path.abspath to make it absolute, like shown here. +# +# import os +# import sys +# sys.path.insert(0, os.path.abspath('.')) + + +# -- Project information ----------------------------------------------------- + +project = '2DMAT solver module: sim-trhepd-rheed' +copyright = '2020-, 2DMAT developers' +author = '2DMAT developers' + +version = '1.0' +# The full version, including alpha/beta/rc tags +release = '1.0-dev' + +# -- General configuration --------------------------------------------------- + +# Add any Sphinx extension module names here, as strings. They can be +# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom +# ones. +extensions = ['sphinx.ext.autodoc', + 'sphinx.ext.mathjax' +] + +# Add any paths that contain templates here, relative to this directory. +templates_path = ['_templates'] + +# The master toctree document. +master_doc = 'index' + +# List of patterns, relative to source directory, that match files and +# directories to ignore when looking for source files. +# This pattern also affects html_static_path and html_extra_path. +exclude_patterns = [] + + +# -- Options for HTML output ------------------------------------------------- + +# The theme to use for HTML and HTML Help pages. See the documentation for +# a list of builtin themes. +# +html_theme = 'haiku' + +# Add any paths that contain custom static files (such as style sheets) here, +# relative to this directory. They are copied after the builtin static files, +# so a file named "default.css" will overwrite the builtin "default.css". +# html_static_path = ['_static'] + +# Theme options are theme-specific and customize the look and feel of a theme +# further. For a list of options available for each theme, see the +# documentation. +# +html_theme_options = { +} + +# Custom sidebar templates, must be a dictionary that maps document names +# to template names. +# +# This is required for the alabaster theme +# refs: http://alabaster.readthedocs.io/en/latest/installation.html#sidebars +html_sidebars = { + '**': [ + 'relations.html', # needs 'show_related': True theme option to display + 'searchbox.html', + ] +} + + +# The language for content autogenerated by Sphinx. Refer to documentation +# for a list of supported languages. +# +# This is also used if you do content translation via gettext catalogs. +# Usually you set "language" from the command line for these cases. +language = 'ja' + +# -- Options for LaTeX output --------------------------------------------- + +latex_engine = 'uplatex' + +latex_elements = { + # The paper size ('letterpaper' or 'a4paper'). + # + # 'papersize': 'letterpaper', + + # The font size ('10pt', '11pt' or '12pt'). + # + # 'pointsize': '10pt', + + # Additional stuff for the LaTeX preamble. + # + # 'preamble': '', + + # Latex figure (float) alignment + # + # 'figure_align': 'htbp', +} + +# Grouping the document tree into LaTeX files. List of tuples +# (source start file, target name, title, +# author, documentclass [howto, manual, or own class]). +latex_documents = [ + (master_doc, 'userguide_sim-trhepd-rheed_ja.tex', u'2DMAT sim-trhepd-rheed Documentation', + u'University of Tokyo', 'manual', 'True'), +] + +# latex_docclass = {'manual': 'jsbook'} + +# -- Options for Texinfo output ------------------------------------------- + +# Grouping the document tree into Texinfo files. List of tuples +# (source start file, target name, title, author, +# dir menu entry, description, category) +texinfo_documents = [ + (master_doc, '2dmat', u'2DMAT Documentation', + author, '2DMAT', 'One line description of project.', + 'Miscellaneous'), +] + + +html_sidebars = { + '**': [ + 'about.html', + 'navigation.html', + 'relations.html', + 'searchbox.html', + 'donate.html', + ] +} + diff --git a/extra/sim-trhepd-rheed/doc/ja/source/contact.rst b/extra/sim-trhepd-rheed/doc/ja/source/contact.rst new file mode 100644 index 00000000..76028ec8 --- /dev/null +++ b/extra/sim-trhepd-rheed/doc/ja/source/contact.rst @@ -0,0 +1,22 @@ +お問い合わせ +========================================= + +2DMAT-SIM-TRHEPD-RHEED に関するお問い合わせはこちらにお寄せください。 + +- バグ報告 + + 2DMAT-SIM-TRHEPD-RHEED のバグ関連の報告は `GitHubのIssues `_ で受け付けています。 + + バグを早期に解決するため、報告時には次のガイドラインに従ってください。 + + - 使用している 2DMAT-SIM-TRHEPD-RHEED のバージョンを指定してください。 + + - インストールに問題がある場合には、使用しているオペレーティングシステムとコンパイラの情報についてお知らせください。 + + - 実行に問題が生じた場合は、実行に使用した入力ファイルとその出力を記載してください。 + +- その他 + + 研究に関連するトピックなどGitHubのIssuesで相談しづらいことを問い合わせる際には、以下の連絡先にコンタクトをしてください。 + + E-mail: ``2dmat-dev__at__issp.u-tokyo.ac.jp`` (_at_を@に変更してください) diff --git a/extra/sim-trhepd-rheed/doc/ja/source/index.rst b/extra/sim-trhepd-rheed/doc/ja/source/index.rst new file mode 100644 index 00000000..7beaecce --- /dev/null +++ b/extra/sim-trhepd-rheed/doc/ja/source/index.rst @@ -0,0 +1,23 @@ +.. 2dmat documentation master file, created by + sphinx-quickstart on Tue May 26 18:44:52 2020. + You can adapt this file completely to your liking, but it should at least + contain the root `toctree` directive. + +Welcome to 2DMAT's documentation! +================================== + +.. toctree:: + :maxdepth: 2 + :caption: Contents: + + introduction + install + tutorial/index + solver + acknowledgement + contact +.. + usage + input + output + examples diff --git a/extra/sim-trhepd-rheed/doc/ja/source/install.rst b/extra/sim-trhepd-rheed/doc/ja/source/install.rst new file mode 100644 index 00000000..e3dee503 --- /dev/null +++ b/extra/sim-trhepd-rheed/doc/ja/source/install.rst @@ -0,0 +1,100 @@ +2DMAT-SIM-TRHEPD-RHEED のインストール +================================================================ + +実行環境・必要なパッケージ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +- python 3.6.8 以上 + + - 必要なpythonパッケージ + + - tomli (>= 1.2) + - numpy (>= 1.14) + +- py2dmat version 3.0 以降 + +- sim-trhepd-rheed version 1.0.2 以降 + + +ダウンロード・インストール +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +1. py2dmat をインストールする + + - ソースコードからのインストール + + リポジトリから py2dmat のソースファイルを取得します。 + + .. code-block:: bash + + $ git clone -b update https://github.com/issp-center-dev/2DMAT.git + + pip コマンドを実行してインストールします。 + + .. code-block:: bash + + $ cd 2DMAT + $ python3 -m pip install . + + + ``--user`` オプションを付けるとローカル (``$HOME/.local``) にインストールできます。 + + ``python3 -m pip install .[all]`` を実行するとオプションのパッケージも同時にインストールします。 + +2. sim-trhepd-rheed をインストールする + + - 公式サイトからソースパッケージをダウンロードします。 + + https://github.com/sim-trhepd-rheed/sim-trhepd-rheed/releases/tag/v1.0.2 + + .. code-block:: bash + + $ wget -O sim-trhepd-rheed-1.0.2.tar.gz https://github.com/sim-trhepd-rheed/sim-trhepd-rheed/archive/refs/tags/v1.0.2.tar.gz + + - ソースパッケージを展開し、コンパイルします。必要に応じて sim-trhepd-rheed/src 内の Makefile を編集してください。 + + .. code-block:: bash + + $ tar xvfz sim-trhepd-rheed-1.0.2.tar.gz + $ cd sim-trhepd-rheed-1.0.2/src + $ make + + 実行形式 ``bulk.exe``, ``surf.exe``, ``potcalc.exe``, ``xyz.exe`` が作成されます。 + ``bulk.exe`` と ``surf.exe`` を PATH の通ったディレクトリ (環境変数 PATH に列挙された、実行プログラムを探索するディレクトリ) に配置するか、実行時にディレクトリ名をつけて指定します。 + +3. 2dmat-sim-trhepd-rheed をインストールする + + - ソースコードからのインストール + + 2dmat-sim-trhepd-rheed のソースファイルは、現在は py2dmat のソースパッケージの extra ディレクトリ内に配置されています。1. に記述した手順に従って py2dmat のソースファイルを取得した後、 ``extra/sim-trhepd-rheed`` ディレクトリ内で pip コマンドを実行してインストールします。 + + .. code-block:: bash + + $ cd 2DMAT/extra/sim-trhepd-rheed + $ python3 -m pip install . + + ``--user`` オプションを付けるとローカル (``$HOME/.local``) にインストールできます。 + + 2DMAT-SIM-TRHEPD-RHEED のライブラリと、実行コマンド ``py2dmat-sim-trhepd-rheed`` がインストールされます。 + + +実行方法 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +2DMAT では順問題ソルバと逆問題解析アルゴリズムを組み合わせて解析を行います。 +TRHEPDの解析を行うには次の2通りの方法があります。 + +1. このパッケージに含まれる py2dmat-sim-trhepd-rheed プログラムを利用して解析を行います。ユーザは、プログラムの入力となるパラメータファルを TOML 形式で作成し、プログラムの引数に指定してコマンドを実行します。逆問題解析のアルゴリズムはパラメータで選択できます。 + +2. 2DMAT-SIM-TRHEPD-RHEED ライブラリと 2DMAT フレームワークを用いてプログラムを作成し、解析を行います。逆問題解析アルゴリズムは import するモジュールで選択します。プログラム中に入力データの生成を組み込むなど、柔軟な使い方ができます。 + +パラメータの種類やライブラリの利用方法については以降の章で説明します。 + + +アンインストール +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +2DMAT-SIM-TRHEPD-RHEED モジュールおよび 2DMAT モジュールをアンインストールするには、以下のコマンドを実行します。 + +.. code-block:: bash + + $ python3 -m pip uninstall py2dmat-sim-trhepd-rheed py2dmat diff --git a/extra/sim-trhepd-rheed/doc/ja/source/introduction.rst b/extra/sim-trhepd-rheed/doc/ja/source/introduction.rst new file mode 100644 index 00000000..8245822b --- /dev/null +++ b/extra/sim-trhepd-rheed/doc/ja/source/introduction.rst @@ -0,0 +1,89 @@ +はじめに +================================ + +2DMATとは +-------------------------------- + +2DMATは、順問題ソルバーに対して探索アルゴリズムを適用して最適解を探すためのフレームワークです。 +順問題ソルバーはユーザー自身で定義できるほか、標準的な順問題ソルバーとして2次元物質構造解析向け実験データ解析ソフトウェアが用意されています。 +順問題ソルバーでは、原子位置などをパラメータとして得られたデータと実験データとのずれを損失関数として与えます。 +探索アルゴリズムによりこの損失関数を最小化する最適なパラメータを推定します。 +現バージョンでは、順問題ソルバーとして量子ビーム回折実験の全反射高速陽電子回折法(Total-Reflection High-Energy Positron Diffraction: TRHEPD), 表面X線回折法(Surface X-ray Diffraction: SXRD), 低速電子線回折法(Low Energy Electron Diffraction: LEED)に対応しており、 +探索アルゴリズムはNelder-Mead法, グリッド型探索法, ベイズ最適化, レプリカ交換モンテカルロ法, ポピュレーションアニーリングモンテカルロ法が実装されています。 + + +2DMAT-SIM-TRHEPD-RHEEDとは +-------------------------------- + +全反射高速陽電子回折法(TRHEPD)および反射高速電子線回折法(Reflection High Energy Electron Diffraction: RHEED)のシミュレータソフトウェアとして sim-trhepd-rheed が開発されています。原子位置を入力として回折強度の Rocking Curve を計算するプログラムで、Fortran で書かれており、標準的な Linux 環境で動作します。 +2DMAT-SIM-TRHEPD-RHEED は、この sim-trhepd-rheed を 2DMAT の順問題ソルバとして利用するためのアダプタライブラリです。2DMAT v2.x の順問題ソルバーの一つとして開発されたコンポーネントを、独立なモジュールとして再構成したものです。2DMAT および sim-trhepd-rheed と組み合わせて使用します。 + +ライセンス +-------------------------------- +| 本ソフトウェアのプログラムパッケージおよびソースコード一式はGNU + General Public License version 3 (GPL v3) に準じて配布されています。 + +Copyright (c) <2020-> The University of Tokyo. All rights reserved. + +本ソフトウェアは2020年度および2024年度 東京大学物性研究所 ソフトウェア高度化プロジェクトの支援を受け開発されました。 +2DMATを引用する際には以下の文献を引用してください。 + +"Data-analysis software framework 2DMAT and its application to experimental measurements for two-dimensional material structures", +Y. Motoyama, K. Yoshimi, I. Mochizuki, H. Iwamoto, H. Ichinose, and T. Hoshi, Computer Physics Communications 280, 108465 (2022). + +Bibtex: + +| @article{MOTOYAMA2022108465, +| title = {Data-analysis software framework 2DMAT and its application to experimental measurements for two-dimensional material structures}, +| journal = {Computer Physics Communications}, +| volume = {280}, +| pages = {108465}, +| year = {2022}, +| issn = {0010-4655}, +| doi = {https://doi.org/10.1016/j.cpc.2022.108465}, +| url = {https://www.sciencedirect.com/science/article/pii/S0010465522001849}, +| author = {Yuichi Motoyama and Kazuyoshi Yoshimi and Izumi Mochizuki and Harumichi Iwamoto and Hayato Ichinose and Takeo Hoshi} +| } + + + +バージョン履歴 +-------------------------------- + +2DMAT-SIM-TRHEPD-RHEED + +- v1.0.0 : 2024-XX-XX + +2DMAT + +- v3.0.0 : 2024-XX-XX +- v2.1.0 : 2022-04-08 +- v2.0.0 : 2022-01-17 +- v1.0.1 : 2021-04-15 +- v1.0.0 : 2021-03-12 +- v0.1.0 : 2021-02-08 + +主な開発者 +-------------------------------- + +2DMATは以下のメンバーで開発しています. + +- v3.0.0 - + + - 本山 裕一 (東京大学 物性研究所) + - 吉見 一慶 (東京大学 物性研究所) + - 青山 龍美 (東京大学 物性研究所) + - 星 健夫 (核融合科学研究所) + +- v2.0.0 - + + - 本山 裕一 (東京大学 物性研究所) + - 吉見 一慶 (東京大学 物性研究所) + - 岩本 晴道 (鳥取大学 大学院工学研究科) + - 星 健夫 (鳥取大学 大学院工学研究科) + +- v0.1.0 - + + - 本山 裕一 (東京大学 物性研究所) + - 吉見 一慶 (東京大学 物性研究所) + - 星 健夫 (鳥取大学 大学院工学研究科) diff --git a/doc/ja/source/solver/sim-trhepd-rheed.rst b/extra/sim-trhepd-rheed/doc/ja/source/solver.rst similarity index 82% rename from doc/ja/source/solver/sim-trhepd-rheed.rst rename to extra/sim-trhepd-rheed/doc/ja/source/solver.rst index 42ff8fb2..8a29630f 100644 --- a/doc/ja/source/solver/sim-trhepd-rheed.rst +++ b/extra/sim-trhepd-rheed/doc/ja/source/solver.rst @@ -1,30 +1,26 @@ -``sim-trhepd-rheed`` ソルバー -*********************************************** +入出力 +================================================================ .. _sim-trhepd-rheed: https://github.com/sim-trhepd-rheed/sim-trhepd-rheed -``sim-trhepd-rheed`` は sim-trhepd-rheed_ を用いて原子位置 :math:`x` から回折 rocking curve を計算し、 -実験で得られた rocking curve からの誤差を :math:`f(x)` として返す ``Solver`` です。 +``2DMAT-SIM-TRHEPD-RHEED`` モジュールは sim-trhepd-rheed_ を用いて原子位置 :math:`x` から回折 rocking curve を計算し、実験で得られた rocking curve からの誤差を :math:`f(x)` として返す ``Solver`` です。 -前準備 -~~~~~~~~~~~~ +この章では、入力パラメータおよび入力データと出力データについて説明します。 +入力パラメータは Info クラスの ``solver`` の項目が該当します。TOMLファイルを入力として与える場合は、 ``[solver]`` セクションに記述します。dict 形式でパラメータを作成する場合は ``solver`` キー以下に入れ子の dict 形式でデータを用意します。以下では、TOML形式でパラメータ項目を説明します。 -あらかじめ sim-trhepd-rheed_ をインストールしておく必要があります。 +入力データは、ターゲットとする参照データと、sim-trhepd-rheed の入力ファイルのテンプレートです。 +出力データは、 ``sim-trhepd-rheed`` の ``surf.exe`` が出力する結果およびログファイルです。以下の節で内容を示します。 -1. sim-trhepd-rheed の公式サイトからソースコードをダウンロード -2. ``sim-trhepd-rheed/src`` に移動し、 ``make`` で ``bulk.exe`` と ``surf.exe`` を作成 -``py2dmat`` を実行する前にあらかじめ ``bulk.exe`` を実行してバルクデータを作成しておきます。 -``surf.exe`` は ``py2dmat`` から呼び出されます。 入力パラメータ -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +---------------------------------------------------------------- ``solver`` セクションとセクション中のサブセクション ``config``, ``post``, ``param``, ``reference`` を利用します。 [``solver``] セクション -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - ``generate_rocking_curve`` 形式: 真偽値 (default: false) @@ -32,8 +28,8 @@ 説明: ``RockingCurve_calculated.txt`` の生成をするかどうか。 ``RockingCurve_calculated.txt`` は作業ディレクトリ ``Log%%%_###`` の中に保存されます。このオプションが"true"であっても、 ``remove_work_dir`` ([``post``] セクション)が"true"であれば ``Log%%%_###`` は削除されてしまうため、注意してください。 -[``config``] セクション(サブセクション) -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +[``solver.config``] セクション +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - ``surface_exec_file`` @@ -77,8 +73,8 @@ 説明: ``surface_output_file`` ファイル中, データとして読み出す列番号。複数指定が可能。設定した値は、後述の ``exp_number`` ([``reference``] セクション)の値とリストの長さを一致させる必要があります。 -[``post``] セクション(サブセクション) -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +[``solver.post``] セクション +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 実験と計算の「ズレ」の大きさを示し、最小化すべき関数である「目的関数」の定義や、ロッキングカーブを描くためのコンボリューション半値幅などを指定するセクションです。 @@ -133,8 +129,7 @@ 形式: string型または ``None`` 。"calc"または"manual"のいずれかを設定する必要があります。 (default: ``None`` 、 ``normalization = "MANY_BEAM"`` としたとき設定必須) - 説明: 目的関数値を計算するときの、ビームごとの重み :math:`w^{(j)}` の計算方法を指定します。 - "calc"とした場合、データ列ごとの重み :math:`w^{(n)}` は次の式で与えられます。 + 説明: 目的関数値を計算するときの、ビームごとの重み :math:`w^{(j)}` の計算方法を指定します。"calc"とした場合、データ列ごとの重み :math:`w^{(n)}` は次の式で与えられます。 .. math:: @@ -144,10 +139,9 @@ - ``spot_weight`` - 形式: float型のリスト。 (default: [] 、 ``weight_type = "manual"`` としたとき設定必須) + 形式: float型のリスト。 (default: ``[]``, ``weight_type = "manual"`` としたとき設定必須) - 説明: 目的関数値を計算するときの、データ列ごとの重みを設定します。総和が1になるように自動的に規格化されます。 - 例えば、[3,2,1]を指定すると、 :math:`w^{(1)}=1/2, w^{(2)}=1/3, w^{(3)}=1/6` となります。 + 説明: 目的関数値を計算するときの、データ列ごとの重みを設定します。総和が1になるように自動的に規格化されます。例えば、[3,2,1]を指定すると、 :math:`w^{(1)}=1/2, w^{(2)}=1/3, w^{(3)}=1/6` となります。 - ``omega`` @@ -162,8 +156,8 @@ 説明: R-factor を読み取った後に作業ディレクトリ ``Log%%%_###`` を削除するかどうか。なお、 ``generate_rocking_curve`` ([``solver``] セクション) が"true"であっても、本オプションが"true"ならば ``Log%%%_###`` を削除します。 -[``param``] セクション(サブセクション) -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +[``solver.param``] セクション +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - ``string_list`` @@ -171,8 +165,8 @@ 説明: ソルバーの入力ファイルを作成するための参照用テンプレートファイルで利用するプレースホルダーのリスト。これらの文字列が探索中のパラメータの値に置換されます。 -[``reference``] セクション(サブセクション) -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +[``solver.reference``] セクション +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - ``path`` @@ -199,10 +193,10 @@ 説明: 実験データファイル中、実験データとして読み出す列番号。複数指定が可能。設定した値は、前述の ``cal_number`` ([``config``] セクション)の値とリストの長さを一致させる必要があります。 ソルバー用補助ファイル -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +---------------------------------------------------------------- 入力テンプレートファイル -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 入力テンプレートファイル ``template.txt`` は ``surf.exe`` の入力ファイルを作成するためのテンプレートです。 動かすパラメータ(求めたい原子座標などの値)を「 ``value_*`` 」などの適当な文字列に置き換えます。 使用する文字列は入力ファイルの ``[solver]`` - ``[param]`` セクションにある、 @@ -232,7 +226,7 @@ ターゲット参照ファイル -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ターゲットにするデータが格納されたファイル ``experiment.txt`` を指定します。 第一列に角度、第二列以降に反射強度にコンボリューションを計算した値が入ってます。 @@ -255,7 +249,7 @@ 出力ファイル -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ``sim-trhepd-rheed`` では、 ``surf.exe`` で出力されるファイルが、 ランクの番号が記載されたフォルダ下にある ``Log%%%%%_#####`` フォルダに一式出力されます。 @@ -266,7 +260,8 @@ 以下では、 ``py2dmat`` で独自に出力するファイルについて説明します。 ``stdout`` -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + ``surf.exe`` が出力する標準出力が記載されています。 以下、出力例です。 @@ -281,12 +276,12 @@ surf-bulkP.s ``RockingCurve_calculated.txt`` -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ``generate_rocking_curve`` ([``solver``] セクション) が"true"の場合のみ ``Log%%%%%_#####`` フォルダに出力されます。 ファイル冒頭、 ``#`` で始まる行はヘッダーです。 -ヘッダーには探索変数の値、目的関数値 ``f(x)`` オプションで指定した ``Rfactor_type``, ``normalization`, ``weight_type``, ``cal_number``, オプションで指定またはプログラムが計算したデータ列ごとの重み ``spot_weight``, データ部分のどの列に何が記されているか(例: ``# #0 glanceing_angle`` など)が記されています。 +ヘッダーには探索変数の値、目的関数値 ``f(x)`` オプションで指定した ``Rfactor_type``, ``normalization``, ``weight_type``, ``cal_number``, オプションで指定またはプログラムが計算したデータ列ごとの重み ``spot_weight``, データ部分のどの列に何が記されているか(例: ``# #0 glanceing_angle`` など)が記されています。 ``#`` が付いていない部分はデータ表記部分になります。1列目は視写角、2列目以降はデータ列ごとに強度が記しています。どのデータ列が記されているかはヘッダーの表記で確認できます。例えば diff --git a/extra/sim-trhepd-rheed/doc/ja/source/tutorial/bayes.rst b/extra/sim-trhepd-rheed/doc/ja/source/tutorial/bayes.rst new file mode 100644 index 00000000..b924741a --- /dev/null +++ b/extra/sim-trhepd-rheed/doc/ja/source/tutorial/bayes.rst @@ -0,0 +1,277 @@ +ベイズ最適化 +===================================== + +ここでは、ベイズ最適化を行い、回折データから原子座標を解析する方法について説明します。 +ベイズ最適化には `PHYSBO `_ を用いています。 +グリッド探索と同様に、探索グリッドを与えるデータ ``MeshData.txt`` を事前に準備する必要があります。 + +サンプルファイルの場所 +~~~~~~~~~~~~~~~~~~~~~~~~ + +サンプルファイルは ``sample/sim-trhepd-rheed/single_beam/bayes`` にあります。 +フォルダには以下のファイルが格納されています。 + +- ``bulk.txt`` + + ``bulk.exe`` の入力ファイル + +- ``experiment.txt``, ``template.txt`` + + メインプログラムでの計算を進めるための参照ファイル + +- ``MeshData.txt`` + + 探索グリッドのデータ + +- ``ref_BayesData.txt`` + + 計算が正しく実行されたか確認するためのリファレンスファイル + +- ``input.toml`` + + メインプログラムの入力ファイル + +- ``prepare.sh`` , ``do.sh`` + + 本チュートリアルを一括計算するために準備されたスクリプト + +以下、これらのファイルについて説明したあと、実際の計算結果を紹介します。 + +参照ファイルの説明 +~~~~~~~~~~~~~~~~~~~ + +``template.txt``, ``experiment.txt`` については、Nelder-Mead法による最適化と同じものを使用します。 +ただし、計算を軽くするため ``value_03`` は用いずに ``3.5`` に固定し、2次元のグリッド探索を行うように変更してあります。 +実際に探索するグリッドは ``MeshData.txt`` で与えます。 +サンプルでは ``MeshData.txt`` の中身は以下のようになっています。 + +.. code-block:: + + 1 3.5 3.5 + 2 3.6 3.5 + 3 3.6 3.6 + 4 3.7 3.5 + 5 3.7 3.6 + 6 3.7 3.7 + 7 3.8 3.5 + 8 3.8 3.6 + 9 3.8 3.7 + 10 3.8 3.8 + ... + +1列目が通し番号、2列目以降は ``template.txt`` に入る ``value_0`` , ``value_1`` の値が順に指定されています。 + +入力ファイルの説明 +~~~~~~~~~~~~~~~~~~~ + +ここでは、メインプログラム用の入力ファイル ``input.toml`` について説明します。 +``input.toml`` の詳細については入力ファイルに記載されています。 +以下は、サンプルファイルにある ``input.toml`` の内容です。 + +.. code-block:: + + [base] + dimension = 2 + output_dir = "output" + + [solver] + name = "sim-trhepd-rheed" + run_scheme = "subprocess" + + [solver.config] + cal_number = [1] + + [solver.param] + string_list = ["value_01", "value_02" ] + degree_max = 7.0 + + [solver.reference] + path = "experiment.txt" + exp_number = [1] + + [algorithm] + name = "bayes" + label_list = ["z1", "z2"] + seed = 1 + + [algorithm.param] + mesh_path = "MeshData.txt" + + [algorithm.bayes] + random_max_num_probes = 10 + bayes_max_num_probes = 20 + + +最初に ``[base]`` セクションについて説明します。 + +- ``dimension`` は最適化したい変数の個数で、今の場合は ``template.txt`` で説明したように2つの変数の最適化を行うので、 ``2`` を指定します。 + +- ``output_dir`` は出力先のディレクトリ名です。省略した場合はプログラムを実行したディレクトリになります。 + +``[solver]`` セクションではメインプログラムの内部で使用するソルバーとその設定を指定します。 + +- ``name`` は使用したいソルバーの名前です。 ``sim-trhepd-rheed`` に固定されています。 + +- ``run_scheme`` はソルバーを実行する方法の指定です。 ``subprocess`` のみ指定可能です。 + +ソルバーの設定は、サブセクションの ``[solver.config]``, ``[solver.param]``, ``[solver.reference]``, ``[solver.post]`` で行います。 + +``[solver.config]`` セクションではメインプログラム内部で呼び出す ``surf.exe`` により得られた出力ファイルを読み込む際のオプションを指定します。 + +- ``cal_number`` は出力ファイルの何列目を読み込むかを指定します。 + +``[solver.param]`` セクションではメインプログラム内部で呼び出す ``surf.exe`` への入力パラメータについてのオプションを指定します。 + +- ``string_list`` は、 ``template.txt`` で読み込む、動かしたい変数の名前のリストです。 + +- ``degree_max`` は、最大角度(度単位)の指定をします。 + +``[solver.reference]`` セクションでは、実験データの置いてある場所と読みこむ範囲を指定します。 + +- ``path`` は実験データが置いてあるパスを指定します。 + +- ``exp_number`` は実験データファイルの何列目を読み込むかを指定します。 + +``[solver.post]`` セクションでは、後処理のオプションを指定します。 + +- ``normalization`` は複数ビームの規格化を指定します。 + +``[algorithm]`` セクションでは、使用するアルゴリスムとその設定をします。 + +- ``name`` は使用したいアルゴリズムの名前で、このチュートリアルでは、ベイズ最適化による解析を行うので、 ``bayes`` を指定します。 + +- ``label_list`` は、 ``value_0x`` (x=1,2) を出力する際につけるラベル名のリストです。 + +``[algorithm.param]`` セクションで、探索パラメータを設定します。 + +- ``mesh_path`` はメッシュファイルへのパスを設定します。 + +``[algorithm.bayes]`` セクションでは、ベイズ最適化のハイパーパラメータを設定します。 + +- ``random_max_num_probes`` は、ベイズ最適化を行う前のランダム探索する回数を指定します。 + +- ``bayes_max_num_probes`` は、ベイズ探索を行う回数を指定します。 + +その他、入力ファイルで指定可能なパラメータの詳細については入力ファイルの章をご覧ください。 + +計算実行 +~~~~~~~~~~~~ + +最初にサンプルファイルが置いてあるフォルダへ移動します(以下、本ソフトウェアをダウンロードしたディレクトリ直下にいることを仮定します). + +.. code-block:: + + $ cd sample/single_beam/bayes + +順問題の時と同様に、 ``bulk.exe`` と ``surf.exe`` をコピーします。 + +.. code-block:: + + $ cp ../../sim-trhepd-rheed/src/bulk.exe . + $ cp ../../sim-trhepd-rheed/src/surf.exe . + +最初に ``bulk.exe`` を実行し、 ``bulkP.b`` を作成します。 + +.. code-block:: + + $ ./bulk.exe + +そのあとに、メインプログラムを実行します(計算時間は通常のPCで数秒程度で終わります)。 + +.. code-block:: + + $ py2dmat-sim-trhepd-rheed input.toml | tee log.txt + +実行すると以下の様な標準出力がされます。 + +.. code-block:: + + # parameter + random_max_num_probes = 10 + bayes_max_num_probes = 20 + score = TS + interval = 5 + num_rand_basis = 5000 + value_01 = 5.10000 + value_02 = 4.90000 + R-factor = 0.037237314010261195 + 0001-th step: f(x) = -0.037237 (action=150) + current best f(x) = -0.037237 (best action=150) + + value_01 = 4.30000 + value_02 = 3.50000 + + ... + +最初に設定したパラメータのリスト、そのあとに各ステップでの候補パラメータと、その時の ``R-factor`` に ``-1`` を乗じた ``f(x)`` が出力されます。また、その時点での一番良いスコアを持つグリッドインデックス (``action``) とその場合の ``f(x)`` と変数が出力されます。 +出力ディレクトリ ``output/0/`` の下には更にグリッドのidがついたサブフォルダ ``LogXXXX_00000000`` (``XXXX`` がグリッドのid)が作成され、ソルバーの出力が保存されます。 +(``MeshData.txt`` に付けられた番号がグリッドのidとして割り振られます。) +最終的に推定されたパラメータは ``output/BayesData.txt`` に出力されます。 + +今回の場合は + +.. code-block:: + + #step z1 z2 fx z1_action z2_action fx_action + 0 5.1 4.9 0.037237314010261195 5.1 4.9 0.037237314010261195 + 1 5.1 4.9 0.037237314010261195 4.3 3.5 0.06050786306685965 + 2 5.1 4.9 0.037237314010261195 5.3 3.9 0.06215778000834068 + 3 5.1 4.9 0.037237314010261195 4.7 4.2 0.049210767760634364 + 4 5.1 4.9 0.037237314010261195 5.7 3.7 0.08394457854191653 + 5 5.1 4.9 0.037237314010261195 5.2 5.2 0.05556857782716691 + 6 5.1 4.9 0.037237314010261195 5.7 4.0 0.0754639895013157 + 7 5.1 4.9 0.037237314010261195 6.0 4.4 0.054757310814479355 + 8 5.1 4.9 0.037237314010261195 6.0 4.2 0.06339787375966344 + 9 5.1 4.9 0.037237314010261195 5.7 5.2 0.05348404677676544 + 10 5.1 4.7 0.03002813055356341 5.1 4.7 0.03002813055356341 + 11 5.1 4.7 0.03002813055356341 5.0 4.4 0.03019977423448576 + 12 5.3 4.5 0.02887504880071686 5.3 4.5 0.02887504880071686 + 13 5.1 4.5 0.025865346123665988 5.1 4.5 0.025865346123665988 + 14 5.2 4.4 0.02031077875240244 5.2 4.4 0.02031077875240244 + 15 5.2 4.4 0.02031077875240244 5.2 4.6 0.023291891689059388 + 16 5.2 4.4 0.02031077875240244 5.2 4.5 0.02345999725278686 + 17 5.2 4.4 0.02031077875240244 5.1 4.4 0.022561543431398066 + 18 5.2 4.4 0.02031077875240244 5.3 4.4 0.02544527153306051 + 19 5.2 4.4 0.02031077875240244 5.1 4.6 0.02778877135528466 + 20 5.2 4.3 0.012576357659158034 5.2 4.3 0.012576357659158034 + 21 5.1 4.2 0.010217361468113488 5.1 4.2 0.010217361468113488 + 22 5.1 4.2 0.010217361468113488 5.2 4.2 0.013178053637167673 + ... + +のように得られます。1列目にステップ数、2列目、3列目、4列目にその時点での最高スコアを与える +``value_01``, ``value_02`` と ``R-factor`` が記載されます。 +続けて、そのステップで候補となった ``value_01``, ``value_02`` と ``R-factor`` が記載されます。 +今回の場合は21ステップ目で正しい解が得られていることがわかります。 + +なお、一括計算するスクリプトとして ``do.sh`` を用意しています。 +``do.sh`` では ``BayesData.dat`` と ``ref_BayesData.dat`` の差分も比較しています。 +以下、説明は割愛しますが、その中身を掲載します。 + +.. code-block:: + + #!/bin/sh + + sh prepare.sh + + ./bulk.exe + + time py2dmat-sim-trhepd-rheed input.toml + + echo diff output/BayesData.txt ref_BayesData.txt + res=0 + diff output/BayesData.txt ref_BayesData.txt || res=$? + if [ $res -eq 0 ]; then + echo TEST PASS + true + else + echo TEST FAILED: BayesData.txt.txt and ref_BayesData.txt.txt differ + false + fi + +計算結果の可視化 +~~~~~~~~~~~~~~~~~~~ + +``BayesData.txt`` を参照することで、何ステップ目のパラメータが最小スコアを与えたかがわかります。 +``[solver]`` セクションの ``generate_rocking_curve`` パラメータを ``true`` にすると、 +各ステップ毎のサブフォルダに ``RockingCurve_calculated.txt`` が格納されます。 +Nelder-Mead法による最適化での手順に従い、実験値との比較を行うことが可能です。 diff --git a/extra/sim-trhepd-rheed/doc/ja/source/tutorial/exchange.rst b/extra/sim-trhepd-rheed/doc/ja/source/tutorial/exchange.rst new file mode 100644 index 00000000..c1f12979 --- /dev/null +++ b/extra/sim-trhepd-rheed/doc/ja/source/tutorial/exchange.rst @@ -0,0 +1,238 @@ +レプリカ交換モンテカルロ法による探索 +===================================== + +ここでは、レプリカ交換モンテカルロ法によって、回折データから原子座標を解析する方法について説明します。 +具体的な計算手順はNelder-Mead法による最適化と同様です。 + +サンプルファイルの場所 +~~~~~~~~~~~~~~~~~~~~~~~~ + +サンプルファイルは ``sample/single_beam/exchange`` にあります。 +フォルダには以下のファイルが格納されています。 + +- ``bulk.txt`` + + ``bulk.exe`` の入力ファイル + +- ``experiment.txt`` , ``template.txt`` + + メインプログラムでの計算を進めるための参照ファイル + +- ``ref.txt`` + + 計算が正しく実行されたか確認するためのファイル(本チュートリアルを行うことで得られる ``best_result.txt`` の回答)。 + +- ``input.toml`` + + メインプログラムの入力ファイル + +- ``prepare.sh`` , ``do.sh`` + + 本チュートリアルを一括計算するために準備されたスクリプト + +以下、これらのファイルについて説明したあと、実際の計算結果を紹介します。 + +参照ファイルの説明 +~~~~~~~~~~~~~~~~~~~ + +``template.txt``, ``experiment.txt`` については、Nelder-Mead法による最適化と同じものを使用します。 + +入力ファイルの説明 +~~~~~~~~~~~~~~~~~~~ + +ここでは、メインプログラム用の入力ファイル ``input.toml`` について説明します。 +``input.toml`` の詳細については入力ファイルに記載されています。 +以下は、サンプルファイルにある ``input.toml`` の内容です。 + +.. code-block:: + + [base] + dimension = 2 + output_dir = "output" + + [algorithm] + name = "exchange" + label_list = ["z1", "z2"] + seed = 12345 + + [algorithm.param] + min_list = [3.0, 3.0] + max_list = [6.0, 6.0] + + [algorithm.exchange] + numsteps = 1000 + numsteps_exchange = 20 + Tmin = 0.005 + Tmax = 0.05 + Tlogspace = true + + [solver] + name = "sim-trhepd-rheed" + run_scheme = "subprocess" + + [solver.config] + cal_number = [1] + + [solver.param] + string_list = ["value_01", "value_02" ] + degree_max = 7.0 + + [solver.reference] + path = "experiment.txt" + exp_list = [1] + + [solver.post] + normalization = "TOTAL" + + +ここではこの入力ファイルを簡単に説明します。 +詳細は入力ファイルのレファレンスを参照してください。 + +``[base]`` セクションはメインプログラム全体のパラメータです。 +``dimension`` は最適化したい変数の個数で、今の場合は2つの変数の最適化を行うので、``2`` を指定します。 +``output_dir`` は出力先のディレクトリ名です。省略した場合はプログラムを実行したディレクトリになります。 + +``[algorithm]`` セクションは用いる探索アルゴリズムを設定します。 +交換モンテカルロ法を用いる場合には、 ``name`` に ``"exchange"`` を指定します。 +``label_list`` は、``value_0x`` (x=1,2) を出力する際につけるラベル名のリストです。 +``seed`` は擬似乱数生成器に与える種です。 + +``[algorithm.param]`` サブセクションは、最適化したいパラメータの範囲などを指定します。 +``min_list`` は最小値、 ``max_list`` は最大値を示します。 + +``[algorithm.exchange]`` サブセクションは、交換モンテカルロ法のハイパーパラメータを指定します。 + +- ``numstep`` はモンテカルロ更新の回数です。 +- ``numsteps_exchange`` で指定した回数のモンテカルロ更新の後に、温度交換を試みます。 +- ``Tmin``, ``Tmax`` はそれぞれ温度の下限・上限です。 +- ``Tlogspace`` が ``true`` の場合、温度を対数空間で等分割します + +``[solver]`` セクションではメインプログラムの内部で使用するソルバーを指定します。 +Nelder-Mead法による最適化のチュートリアルを参照してください。 + + +計算実行 +~~~~~~~~~~~~ + +最初にサンプルファイルが置いてあるフォルダへ移動します(以下、本ソフトウェアをダウンロードしたディレクトリ直下にいることを仮定します). + +.. code-block:: + + $ cd sample/single_beam/exchange + +順問題の時と同様に、 ``bulk.exe`` と ``surf.exe`` をコピーします。 + +.. code-block:: + + $ cp ../../sim-trhepd-rheed/src/bulk.exe . + $ cp ../../sim-trhepd-rheed/src/surf.exe . + +最初に ``bulk.exe`` を実行し、 ``bulkP.b`` を作成します。 + +.. code-block:: + + $ ./bulk.exe + +そのあとに、メインプログラムを実行します(計算時間は通常のPCで数秒程度で終わります)。 + +.. code-block:: + + $ mpiexec -np 4 py2dmat-sim-trhepd-rheed input.toml | tee log.txt + +ここではプロセス数4のMPI並列を用いた計算を行っています。 +(Open MPI を用いる場合で、使えるコア数よりも要求プロセス数の方が多い時には、 +``mpiexec`` コマンドに ``--oversubscribe`` オプションを追加してください。) +実行すると、 ``output`` ディレクトリ内に各ランクのフォルダが作成され、 +各モンテカルロステップで評価したパラメータおよび目的関数の値を記した ``trial.txt`` ファイルと、 +実際に採択されたパラメータを記した ``result.txt`` ファイルが作成されます。 +ともに書式は同じで、最初の2列がステップ数とプロセス内のwalker 番号、次が温度、3列目が目的関数の値、4列目以降がパラメータです。 + +.. code-block:: + + # step walker T fx x1 x2 + 0 0 0.004999999999999999 0.07830821484593968 3.682008067401509 3.9502750191292586 + 1 0 0.004999999999999999 0.07830821484593968 3.682008067401509 3.9502750191292586 + 2 0 0.004999999999999999 0.07830821484593968 3.682008067401509 3.9502750191292586 + 3 0 0.004999999999999999 0.06273922648753057 4.330900869594549 4.311333132184154 + +また、各作業フォルダの下にサブフォルダ ``LogXXXX_00000000`` (``XXXX`` がグリッドのid)が作成され、ロッキングカーブの情報などが記録されます。 +(各プロセスにおけるモンテカルロステップ数がidとして割り振られます。) + +最後に、 ``best_result.txt`` に、目的関数 (R-factor) が最小となったパラメータとそれを得たランク、モンテカルロステップの情報が書き込まれます。 + +.. code-block:: + + nprocs = 4 + rank = 2 + step = 65 + fx = 0.008233957976993406 + x[0] = 4.221129370933539 + x[1] = 5.139591716517661 + +なお、一括計算するスクリプトとして ``do.sh`` を用意しています。 +``do.sh`` では ``best_result.txt`` と ``ref.txt`` の差分も比較しています。 +以下、説明は割愛しますが、その中身を掲載します。 + +.. code-block:: + + #!/bin/sh + + sh prepare.sh + + ./bulk.exe + + time mpiexec --oversubscribe -np 4 py2dmat-sim-trhepd-rheed input.toml + + echo diff output/best_result.txt ref.txt + res=0 + diff output/best_result.txt ref.txt || res=$? + if [ $res -eq 0 ]; then + echo TEST PASS + true + else + echo TEST FAILED: best_result.txt and ref.txt differ + false + fi + +後処理 +~~~~~~~~ +各ランクフォルダにある ``result.txt`` には、各レプリカでサンプリングされたデータが記録されていますが、 +2DMAT の実装では同一レプリカが様々な温度のサンプルを保持しています。 +2DMAT は、全レプリカの結果から温度ごとのサンプルに整列し直す ``script/separateT.py`` スクリプトを提供しています。 + +.. code-block:: + + $ python3 script/separateT.py + +``result_T%.txt`` に各温度点ごとにまとめなおされたデータが書き込まれます(``%`` は温度点のindex)。 +1列目がステップ、2列めがランク、3列目が目的関数の値、4列目以降がパラメータです。 + +.. code-block:: + + # T = 0.004999999999999999 + # step rank fx x1 x2 + 0 0 0.07830821484593968 3.682008067401509 3.9502750191292586 + 1 0 0.07830821484593968 3.682008067401509 3.9502750191292586 + 2 0 0.07830821484593968 3.682008067401509 3.9502750191292586 + + +計算結果の可視化 +~~~~~~~~~~~~~~~~~~~ + +``result_T%.txt`` を図示することで、 ``R-factor`` の小さいパラメータがどこにあるかを推定することができます。 +今回の場合は、以下のコマンドを実行すると2次元パラメータ空間の図 ``result.png`` が作成されます。 + +.. code-block:: + + $ python3 plot_result_2d.py + +作成された図を見ると、(5.25, 4.25) と (4.25, 5.25) 付近にサンプルが集中していることと、 +``R-factor`` の値が小さいことがわかります。 + + +.. figure:: ../../../common/img/exchange.* + + サンプルされたパラメータと ``R-factor`` 。横軸は ``value_01``, 縦軸は ``value_02`` を表す。 + +また、 ``[solver]`` セクションの ``generate_rocking_curve`` パラメータを ``true`` にすると、 ``RockingCurve_calculated.txt`` が各サブフォルダに格納されます。 +これを用いることで、Nelder-Mead法による最適化での手順に従い、実験値との比較も行うことが可能です。 diff --git a/extra/sim-trhepd-rheed/doc/ja/source/tutorial/index.rst b/extra/sim-trhepd-rheed/doc/ja/source/tutorial/index.rst new file mode 100644 index 00000000..41dfce85 --- /dev/null +++ b/extra/sim-trhepd-rheed/doc/ja/source/tutorial/index.rst @@ -0,0 +1,49 @@ +.. 2dmat documentation master file, created by + sphinx-quickstart on Tue May 26 18:44:52 2020. + You can adapt this file completely to your liking, but it should at least + contain the root `toctree` directive. + +チュートリアル +================================== + +順問題ソルバーとして用意されている ``sim_trhepd_rheed`` は、東北大学の花田貴先生によって開発された全反射高速(陽)電子回折(RHEED, TRHEPD)の解析ソフトウェアをベースに作成されています。 + +TRHEPDでは、与えられた原子位置に対して回折データのシミュレーションを行います。 +これを原子位置から回折データへの順問題としたとき、実験で得られた回折データを再現するように原子位置を推定する逆問題を考えます。 +2DMATでは、逆問題を解くためのアルゴリズムとして、以下の5つのアルゴリズムが用意されています。 + +- ``minsearch`` + + Nelder-Mead法 + +- ``mapper_mpi`` + + 与えられたパラメータの探索グリッドを全探索 + +- ``bayes`` + + ベイズ最適化 + +- ``exchange`` + + レプリカ交換モンテカルロ法 + +- ``pamc`` + + ポピュレーションアニーリング法 + +本チュートリアルでは、最初に順問題プログラム ``sim_trhepd_rheed`` の実行方法を説明した後、 +``minsearch``, ``mapper_mpi``, ``bayes``, ``exchange``, ``pamc`` による逆問題解析の実行方法について順に説明します。以下では 2DMAT-SIM-TRHEPD-RHEED に付属の ``py2dmat-sim-trhepd-rheed`` プログラムを利用し、TOML形式のパラメータファイルを入力として解析を実行します。 + +チュートリアルの最後に、ユーザープログラムの項で、メインプログラムを自分で作成して使う方法を minsearch を例に説明します。 + +.. toctree:: + :maxdepth: 1 + + sim_trhepd_rheed + minsearch + mapper + bayes + exchange + pamc + user_program diff --git a/doc/ja/source/tutorial/mpi.rst b/extra/sim-trhepd-rheed/doc/ja/source/tutorial/mapper.rst similarity index 66% rename from doc/ja/source/tutorial/mpi.rst rename to extra/sim-trhepd-rheed/doc/ja/source/tutorial/mapper.rst index 500c2bd2..dbb922f8 100644 --- a/doc/ja/source/tutorial/mpi.rst +++ b/extra/sim-trhepd-rheed/doc/ja/source/tutorial/mapper.rst @@ -8,17 +8,21 @@ サンプルファイルの場所 ~~~~~~~~~~~~~~~~~~~~~~~~ -サンプルファイルは ``sample/sim-trhepd-rheed/single_beam/mapper`` にあります。 +サンプルファイルは ``sample/single_beam/mapper`` にあります。 フォルダには以下のファイルが格納されています。 - ``bulk.txt`` ``bulk.exe`` の入力ファイル -- ``experiment.txt`` , ``template.txt`` +- ``experiment.txt``, ``template.txt`` メインプログラムでの計算を進めるための参照ファイル +- ``MeshData.txt`` + + 探索グリッドのデータ + - ``ref_ColorMap.txt`` 計算が正しく実行されたか確認するためのファイル(本チュートリアルを行うことで得られる ``ColorMap.txt`` の回答)。 @@ -36,8 +40,7 @@ 参照ファイルの説明 ~~~~~~~~~~~~~~~~~~~ -``template.txt`` , ``experiment.txt`` については、 -前のチュートリアル(Nealder-Mead法による最適化)と同じものを使用します。 +``template.txt`` , ``experiment.txt`` については、Nelder-Mead法による最適化と同じものを使用します。 ただし、計算を軽くするため ``value_03`` は用いずに ``3.5`` に固定し、 2次元のグリッド探索を行うように変更してあります。 実際に探索するグリッドは ``MeshData.txt`` で与えます。 @@ -56,75 +59,79 @@ 9 6.000000 4.000000 ... -1列目が通し番号、2列目以降は ``template.txt`` に入る``value_0`` , ``value_1`` の値が順に指定されています。 +1列目が通し番号、2列目以降は ``template.txt`` に入る ``value_0``, ``value_1`` の値が順に指定されています。 入力ファイルの説明 ~~~~~~~~~~~~~~~~~~~ ここでは、メインプログラム用の入力ファイル ``input.toml`` について説明します。 ``input.toml`` の詳細については入力ファイルに記載されています。 -以下は、サンプルファイルにある ``input.toml`` の中身になります。 +以下は、サンプルファイルにある ``input.toml`` の内容です。 .. code-block:: [base] dimension = 2 + output_dir = "output" [solver] name = "sim-trhepd-rheed" + run_scheme = "subprocess" [solver.config] - calculated_first_line = 5 - calculated_last_line = 74 - row_number = 2 + cal_number = [1] [solver.param] string_list = ["value_01", "value_02" ] degree_max = 7.0 + [solver.post] + normalization = "TOTAL" + [solver.reference] path = "experiment.txt" - first = 1 - last = 70 + exp_number = [1] [algorithm] name = "mapper" label_list = ["z1", "z2"] + [algorithm.param] + mesh_path = "./MeshData.txt" + 最初に ``[base]`` セクションについて説明します。 - ``dimension`` は最適化したい変数の個数で、今の場合は ``template.txt`` で説明したように2つの変数の最適化を行うので、``2`` を指定します。 +- ``output_dir`` は出力先のディレクトリ名です。省略した場合はプログラムを実行したディレクトリになります。 + ``[solver]`` セクションではメインプログラムの内部で使用するソルバーとその設定を指定します。 -- ``name`` は使用したいソルバーの名前で、このチュートリアルでは、 ``sim-trhepd-rheed`` を用いた解析を行うので、 ``sim-trhepd-rheed`` を指定します。 +- ``name`` は使用したいソルバーの名前です。 ``sim-trhepd-rheed`` に固定されています。 -ソルバーの設定は、サブセクションの ``[solver.config]``, ``[solver.param]``, ``[solver.reference]`` で行います。 +- ``run_scheme`` はソルバーを実行する方法の指定です。 ``subprocess`` のみ指定可能です。 -``[solver.config]`` セクションではメインプログラム内部で呼び出す ``surf.exe`` により得られた出力ファイルを読み込む際のオプションを指定します。 +ソルバーの設定は、サブセクションの ``[solver.config]``, ``[solver.param]``, ``[solver.reference]``, ``[solver.post]`` で行います。 -- ``calculated_first_line`` は出力ファイルを読み込む最初の行数を指定します。 - -- ``calculated_last_line`` は出力ファイルを読み込む最後の行数を指定します。 +``[solver.config]`` セクションではメインプログラム内部で呼び出す ``surf.exe`` により得られた出力ファイルを読み込む際のオプションを指定します。 -- ``row_number`` は出力ファイルの何列目を読み込むかを指定します。 +- ``cal_number`` は出力ファイルの何列目を読み込むかを指定します。 -``[solver.param]`` セクションではメインプログラム内部で呼び出す ``surf.exe`` により得られた出力ファイルを読み込む際のオプションを指定します。 +``[solver.param]`` セクションではメインプログラム内部で呼び出す ``surf.exe`` への入力パラメータについてのオプションを指定します。 - ``string_list`` は、 ``template.txt`` で読み込む、動かしたい変数の名前のリストです。 - -- ``label_list`` は、``value_0x`` (x=1,2) を出力する際につけるラベル名のリストです。 - - ``degree_max`` は、最大角度(度単位)の指定をします。 ``[solver.reference]`` セクションでは、実験データの置いてある場所と読みこむ範囲を指定します。 - ``path`` は実験データが置いてあるパスを指定します。 -- ``first`` は実験データファイルを読み込む最初の行数を指定します。 +- ``exp_number`` は実験データファイルの何列目を読み込むかを指定します。 + +``[solver.post]`` セクションでは、後処理のオプションを指定します。 -- ``end`` は実験データファイルを読み込む最後の行数を指定します。 +- ``normalization`` は複数ビームの規格化を指定します。 ``[algorithm]`` セクションでは、使用するアルゴリスムとその設定をします。 @@ -132,7 +139,11 @@ - ``label_list`` は、``value_0x`` (x=1,2) を出力する際につけるラベル名のリストです。 -その他、入力ファイルで指定可能なパラメータの詳細については入力ファイルの章をご覧ください。 +``[algorithm.param]`` セクションでは、探索するパラメータの範囲や初期値を指定します。 + +- ``mesh_path`` は、探索グリッドを記述するファイルを指定します。 + +その他、入力ファイルで指定可能なパラメータの詳細については入出力の章をご覧ください。 計算実行 ~~~~~~~~~~~~ @@ -141,31 +152,31 @@ .. code-block:: - cd sample/sim-trhepd-rheed/single_beam/mapper + $ cd sample/single_beam/mapper -順問題の時と同様に、``bulk.exe`` と ``surf.exe`` をコピーします。 +順問題の時と同様に、 ``bulk.exe`` と ``surf.exe`` をコピーします。 .. code-block:: - cp ../../../../../sim-trhepd-rheed/src/TRHEPD/bulk.exe . - cp ../../../../../sim-trhepd-rheed/src/TRHEPD/surf.exe . + $ cp ../../sim-trhepd-rheed/src/bulk.exe . + $ cp ../../sim-trhepd-rheed/src/surf.exe . -最初に ``bulk.exe`` を実行し、``bulkP.b`` を作成します。 +``bulk.exe`` を実行し、 ``bulkP.b`` を作成します。 .. code-block:: - ./bulk.exe + $ ./bulk.exe そのあとに、メインプログラムを実行します(計算時間は通常のPCで数秒程度で終わります)。 .. code-block:: - mpiexec -np 2 python3 ../../../../src/py2dmat_main.py input.toml | tee log.txt + $ mpiexec -np 2 py2dmat-sim-trhepd-rheed input.toml | tee log.txt ここではプロセス数2のMPI並列を用いた計算を行っています。 -実行すると、各ランクのフォルダが作成され、その下に更にグリッドのidがついたサブフォルダ ``Log%%%%%`` ( ``%%%%%`` がグリッドのid)が作成されます +実行すると、output ディレクトリ内に各ランクのフォルダが作成され、その中にグリッドのidがついたサブフォルダ ``LogXXXX_00000000`` (``XXXX`` がグリッドのid) が作成されます (``MeshData.txt`` に付けられた番号がグリッドのidとして割り振られます)。 -以下の様な標準出力がされます。 +以下の様な出力が標準出力に書き出されます。 .. code-block:: @@ -180,8 +191,8 @@ R-factor = 0.04785241875354398 ... -``z1``, ``z2`` に各メッシュでの候補パラメータと、その時の``R-factor`` が出力されます。 -最終的にグリッド上の全ての点で計算された ``R-factor`` は、``ColorMap.txt`` に出力されます。 +``z1``, ``z2`` に各メッシュでの候補パラメータと、その時の ``R-factor`` が出力されます。 +最終的にグリッド上の全ての点で計算された ``R-factor`` は ``output/ColorMap.txt`` に出力されます。 今回の場合は .. code-block:: @@ -200,21 +211,24 @@ ... のように得られます。1列目、2列目に ``value_01``, ``value_02`` の値が、3列目に ``R-factor`` が記載されます。 + なお、一括計算するスクリプトとして ``do.sh`` を用意しています。 ``do.sh`` では ``ColorMap.dat`` と ``ref_ColorMap.dat`` の差分も比較しています。 以下、説明は割愛しますが、その中身を掲載します。 -.. code-block:: +.. code-block:: bash + + #!/bin/sh sh prepare.sh ./bulk.exe - time mpiexec -np 2 python3 ../../../../src/py2dmat_main.py input.toml + time mpiexec -np 2 py2dmat-sim-trhepd-rheed input.toml - echo diff ColorMap.txt ref_ColorMap.txt + echo diff output/ColorMap.txt ref_ColorMap.txt res=0 - diff ColorMap.txt ref_ColorMap.txt || res=$? + diff output/ColorMap.txt ref_ColorMap.txt || res=$? if [ $res -eq 0 ]; then echo TEST PASS true @@ -226,18 +240,18 @@ 計算結果の可視化 ~~~~~~~~~~~~~~~~~~~ -``ColorMap.txt`` を図示することで、``R-factor`` の小さいパラメータがどこにあるかを推定することができます。 -今回の場合は、以下のコマンドをうつことで2次元パラメータ空間の図 ``ColorMapFig.png`` が作成されます。 +``ColorMap.txt`` を図示することで、 ``R-factor`` の小さいパラメータがどこにあるかを推定することができます。 +以下のコマンドを入力すると、2次元パラメータ空間の図 ``ColorMapFig.png`` が作成されます。 .. code-block:: - python3 plot_colormap_2d.py + $ python3 plot_colormap_2d.py -作成された図を見ると、(5.25, 4.25) 付近に最小値を持っていることがわかります。 +作成された図を見ると、(5.25, 4.25) 付近に最小値があることがわかります。 .. figure:: ../../../common/img/mapper.* 2次元パラメータ空間上での ``R-factor`` 。 -また、 ``RockingCurve.txt`` が各サブフォルダに格納されています。 +また、 ``[solver]`` セクションの ``generate_rocking_curve`` パラメータを ``true`` にすると、各Logディレクトリに ``RockingCurve_calculated.txt`` が書き出されます。 これを用いることで、前チュートリアルの手順に従い、実験値との比較も行うことが可能です。 diff --git a/extra/sim-trhepd-rheed/doc/ja/source/tutorial/minsearch.rst b/extra/sim-trhepd-rheed/doc/ja/source/tutorial/minsearch.rst new file mode 100644 index 00000000..7bae50c9 --- /dev/null +++ b/extra/sim-trhepd-rheed/doc/ja/source/tutorial/minsearch.rst @@ -0,0 +1,297 @@ +Nelder-Mead法による最適化 +==================================== + +ここでは、Nelder-Mead法を用いて回折データから原子座標を解析する逆問題の計算を行う方法について説明します。 +具体的な計算手順は以下の通りです。 + +0. 参照ファイルの準備 + + 合わせたい参照ファイル (今回は後述する ``experiment.txt`` に相当)を準備する。 + +1. 表面構造のバルク部分に関する計算実行 + + ``bulk.exe`` を ``sample/minsearch`` にコピーして計算を実行する。 + +2. メインプログラムの実行 + + ``py2dmat-sim-trhepd-rheed`` を用いて計算を実行し原子座標を推定する。 + +メインプログラムでは、Nelder-Mead法 (`scipy.optimize.minimize `_ を使用)を用いて、ソルバー(今回は ``surf.exe`` )を用いて得られた強度と、参照ファイル(``experiment.txt``)に記載された強度のずれ(R値)を最小化するパラメータを探索します。 + +サンプルファイルの場所 +~~~~~~~~~~~~~~~~~~~~~~~~ + +サンプルファイルは ``sample/single_beam/minsearch`` にあります。 +フォルダには以下のファイルが格納されています。 + +- ``bulk.txt`` + + ``bulk.exe`` の入力ファイル + +- ``experiment.txt`` , ``template.txt`` + + メインプログラムでの計算を進めるための参照ファイル + +- ``ref.txt`` + + 本チュートリアルで求めたい回答が記載されたファイル + +- ``input.toml`` + + メインプログラムの入力ファイル + +- ``prepare.sh`` , ``do.sh`` + + 本チュートリアルを一括計算するために準備されたスクリプト + +以下、これらのファイルについて説明したあと、実際の計算結果を紹介します。 + +参照ファイルの説明 +~~~~~~~~~~~~~~~~~~~ + +``template.txt`` は ``surf.exe`` の入力ファイルとほぼ同じ形式のファイルです。 +動かすパラメータ(求めたい原子座標などの値)を「 ``value_*`` 」などの適当な文字列に書き換えています。 +以下が ``template.txt`` の中身です。 + +.. code-block:: + + 2 ,NELMS, -------- Ge(001)-c4x2 + 32,1.0,0.1 ,Ge Z,da1,sap + 0.6,0.6,0.6 ,BH(I),BK(I),BZ(I) + 32,1.0,0.1 ,Ge Z,da1,sap + 0.4,0.4,0.4 ,BH(I),BK(I),BZ(I) + 9,4,0,0,2, 2.0,-0.5,0.5 ,NSGS,msa,msb,nsa,nsb,dthick,DXS,DYS + 8 ,NATM + 1, 1.0, 1.34502591 1 value_01 ,IELM(I),ocr(I),X(I),Y(I),Z(I) + 1, 1.0, 0.752457792 1 value_02 + 2, 1.0, 1.480003343 1.465005851 value_03 + 2, 1.0, 2 1.497500418 2.281675 + 2, 1.0, 1 1.5 1.991675 + 2, 1.0, 0 1 0.847225 + 2, 1.0, 2 1 0.807225 + 2, 1.0, 1.009998328 1 0.597225 + 1,1 ,(WDOM,I=1,NDOM) + + +今回の入力ファイルでは、 ``value_01``, ``value_02``, ``value_03`` を用いています。 +サンプルフォルダには、原子位置が正しく推定できているかを知るための参照ファイルとして、 +``ref.txt`` が置いてあります。ファイルの中身は + +.. code-block:: + + fx = 7.382680568652868e-06 + z1 = 5.230524973874179 + z2 = 4.370622919269477 + z3 = 3.5961444501081647 + +となっており、 ``value_01``, ``value_02``, ``value_03`` がそれぞれ ``z1``, ``z2``, ``z3`` に対応しています。 +``fx`` は目的関数の最適値です。 +``experiment.txt`` は、メインプログラムで参照に用いるファイルです。ここではテストデータとして、 +``template.txt`` に ``ref.txt`` のデータを代入し、順問題のチュートリアルと同様な手順で計算して得られる ``convolution.txt`` に相当しています。 +(順問題のチュートリアルとは ``bulk.exe`` , ``surf.exe`` の入力ファイルが異なるのでご注意ください。) + + +入力ファイルの説明 +~~~~~~~~~~~~~~~~~~~ + +メインプログラム用の入力ファイル ``input.toml`` の準備をします。 +``input.toml`` の詳細については入力ファイルに記載されています。 +ここでは、サンプルファイルにある ``input.toml`` の中身について説明します。 + +.. code-block:: + + [base] + dimension = 3 + output_dir = "output" + + [solver] + name = "sim-trhepd-rheed" + run_scheme = "subprocess" + generate_rocking_curve = true + + [solver.config] + cal_number = [1] + + [solver.param] + string_list = ["value_01", "value_02", "value_03" ] + degree_max = 7.0 + + [solver.reference] + path = "experiment.txt" + exp_number = [1] + + [solver.post] + normalization = "TOTAL" + + [algorithm] + name = "minsearch" + label_list = ["z1", "z2", "z3"] + + [algorithm.param] + min_list = [0.0, 0.0, 0.0] + max_list = [10.0, 10.0, 10.0] + initial_list = [5.25, 4.25, 3.50] + + +最初に ``[base]`` セクションについて説明します。 + +- ``dimension`` は最適化したい変数の個数で、今の場合は ``template.txt`` で説明したように3つの変数の最適化を行うので、``3`` を指定します。 + +- ``output_dir`` は出力先のディレクトリ名です。省略した場合はプログラムを実行したディレクトリになります。 + +``[solver]`` セクションではメインプログラムの内部で使用するソルバーとその設定を指定します。 + +- ``name`` は使用したいソルバーの名前です。 ``sim-trhepd-rheed`` に固定されています。 + +- ``run_scheme`` はソルバーを実行する方法の指定です。 ``subprocess`` のみ指定可能です。 + +- ``generate_rocking_curve`` は実行ステップごとに Rocking Curve を出力するかどうかを指定します。 + +ソルバーの設定は、サブセクションの ``[solver.config]``, ``[solver.param]``, ``[solver.reference]``, ``[solver.post]`` で行います。 + +``[solver.config]`` セクションではメインプログラム内部で呼び出す ``surf.exe`` により得られた出力ファイルを読み込む際のオプションを指定します。 + +- ``cal_number`` は出力ファイルの何列目を読み込むかを指定します。 + +``[solver.param]`` セクションではメインプログラム内部で呼び出す ``surf.exe`` への入力パラメータについてのオプションを指定します。 + +- ``string_list`` は、 ``template.txt`` に記述する、動かしたい変数の名前のリストです。 + +- ``degree_max`` は、最大角度(度単位)の指定をします。 + +``[solver.reference]`` セクションでは、実験データの置いてある場所と読みこむ範囲を指定します。 + +- ``path`` は実験データが置いてあるパスを指定します。 + +- ``exp_number`` は実験データファイルの何列目を読み込むかを指定します。 + +``[solver.post]`` セクションでは、後処理のオプションを指定します。 + +- ``normalization`` は複数ビームの規格化を指定します。 + +``[algorithm]`` セクションでは、使用するアルゴリスムとその設定をします。 + +- ``name`` は使用したいアルゴリズムの名前で、このチュートリアルでは、Nelder-Mead法 を用いた解析を行うので、 ``minsearch`` を指定します。 + +- ``label_list`` は、``value_0x`` (x=1,2,3) を出力する際につけるラベル名のリストです。 + +``[algorithm.param]`` セクションでは、探索するパラメータの範囲や初期値を指定します。 + +- ``min_list`` と ``max_list`` はそれぞれ探索範囲の最小値と最大値を指定します。 + +- ``initial_list`` は初期値を指定します。 + +ここではデフォルト値を用いるため省略しましたが、その他のパラメータ、例えばNelder-Mead法で使用する収束判定などについては、``[algorithm]`` セクションで行うことが可能です。 +詳細については入出力の章をご覧ください。 + +計算実行 +~~~~~~~~~~~~ + +最初にサンプルファイルが置いてあるフォルダへ移動します(以下、本ソフトウェアをダウンロードしたディレクトリ直下にいることを仮定します). + +.. code-block:: + + $ cd sample/single_beam/minsearch + +順問題の時と同様に、 ``bulk.exe`` と ``surf.exe`` をコピーします。 + +.. code-block:: + + $ cp ../../sim-trhepd-rheed/src/bulk.exe . + $ cp ../../sim-trhepd-rheed/src/surf.exe . + +``bulk.exe`` を実行し、 ``bulkP.b`` を作成します。 + +.. code-block:: + + $ ./bulk.exe + +そのあとに、メインプログラムを実行します(計算時間は通常のPCで数秒程度で終わります)。 + +.. code-block:: + + $ py2dmat-sim-trhepd-rheed input.toml | tee log.txt + +実行すると、以下の様な出力がされます。 + +.. code-block:: + + Read experiment.txt + z1 = 5.25000 + z2 = 4.25000 + z3 = 3.50000 + [' 5.25000', ' 4.25000', ' 3.50000'] + PASS : degree in lastline = 7.0 + PASS : len(calculated_list) 70 == len(convolution_I_calculated_list)70 + R-factor = 0.015199251773721183 + z1 = 5.50000 + z2 = 4.25000 + z3 = 3.50000 + [' 5.50000', ' 4.25000', ' 3.50000'] + PASS : degree in lastline = 7.0 + PASS : len(calculated_list) 70 == len(convolution_I_calculated_list)70 + R-factor = 0.04380131351780189 + z1 = 5.25000 + z2 = 4.50000 + z3 = 3.50000 + [' 5.25000', ' 4.50000', ' 3.50000'] + ... + +``z1``, ``z2``, ``z3`` に各ステップでの候補パラメータと、その時の ``R-factor`` が出力されます。 +また各ステップでの計算結果は ``output/0/LogXXXX_YYYY`` (XXXX, YYYYはステップ数)のフォルダに出力されます。 +最終的に推定されたパラメータは、 ``output/res.dat`` に出力されます。今の場合、 + +.. code-block:: + + z1 = 5.230524973874179 + z2 = 4.370622919269477 + z3 = 3.5961444501081647 + +が得られ、正解のデータ ``ref.txt`` と同じ値が得られていることがわかります。 +なお、一括計算するスクリプトとして ``do.sh`` を用意しています。 +``do.sh`` では ``output/res.txt`` と ``ref.txt`` の差分も比較しています。 +以下、説明は割愛しますが、その中身を掲載します。 + +.. code-block:: sh + + #!/bin/sh + + sh ./prepare.sh + + ./bulk.exe + + time py2dmat-sim-trhepd-rheed input.toml | tee log.txt + + echo diff output/res.txt ref.txt + res=0 + diff output/res.txt ref.txt || res=$? + if [ $res -eq 0 ]; then + echo Test PASS + true + else + echo Test FAILED: res.txt and ref.txt differ + false + fi + +計算結果の可視化 +~~~~~~~~~~~~~~~~~~~ + +それぞれのステップでのロッキングカーブのデータは、 ``output/0/LogXXXX_00000001`` (``XXXX`` はステップ数)フォルダに ``RockingCurve.txt`` として保存されています +(``output/0/LogXXXX_00000000`` フォルダはNelder-Mead 法の途中での評価です)。 +このデータを可視化するツール ``draw_RC_double.py`` が用意されています。 +ここでは、このツールを利用して結果を可視化します。 + +.. code-block:: + + $ cp output/0/Log00000001_00000001/RockingCurve_calculated.txt RockingCurve_ini.txt + $ cp output/0/Log00000061_00000001/RockingCurve_calculated.txt RockingCurve_con.txt + $ cp ../../../script/draw_RC_double.py . + $ python draw_RC_double.py + +上記を実行すると ``RC_double.png`` が出力されます。 + +.. figure:: ../../../common/img/RC_double_minsearch.* + + Nelder-Mead法を用いた解析。赤丸が実験値、青線が最初のステップ、緑線が最後のステップで得られたロッキングカーブを表す。 + +図から最後のステップでは実験値と一致していることがわかります。 diff --git a/extra/sim-trhepd-rheed/doc/ja/source/tutorial/pamc.rst b/extra/sim-trhepd-rheed/doc/ja/source/tutorial/pamc.rst new file mode 100644 index 00000000..6fdcfcee --- /dev/null +++ b/extra/sim-trhepd-rheed/doc/ja/source/tutorial/pamc.rst @@ -0,0 +1,243 @@ +ポピュレーションアニーリングによる探索 +======================================== + +ここでは、ポピュレーションアニーリングを用いて、回折データから原子座標を解析する方法について説明します。 +具体的な計算手順はNelder-Mead法による最適化と同様です。 + +サンプルファイルの場所 +~~~~~~~~~~~~~~~~~~~~~~~~ + +サンプルファイルは ``sample/single_beam/pamc`` にあります。 +フォルダには以下のファイルが格納されています。 + +- ``bulk.txt`` + + ``bulk.exe`` の入力ファイル + +- ``experiment.txt``, ``template.txt`` + + メインプログラムでの計算を進めるための参照ファイル + +- ``ref.txt`` + + 計算が正しく実行されたか確認するためのファイル(本チュートリアルを行うことで得られる ``fx.txt`` の回答)。 + +- ``input.toml`` + + メインプログラムの入力ファイル + +- ``prepare.sh`` , ``do.sh`` + + 本チュートリアルを一括計算するために準備されたスクリプト + +以下、これらのファイルについて説明したあと、実際の計算結果を紹介します。 + +参照ファイルの説明 +~~~~~~~~~~~~~~~~~~~ + +``template.txt``, ``experiment.txt`` については、Nelder-Mead法による最適化と同じものを使用します。 + +入力ファイルの説明 +~~~~~~~~~~~~~~~~~~~ + +ここでは、メインプログラム用の入力ファイル ``input.toml`` について説明します。 +``input.toml`` の詳細については入力ファイルに記載されています。 +以下は、サンプルファイルにある ``input.toml`` の内容です。 + +.. code-block:: + + [base] + dimension = 2 + output_dir = "output" + + [algorithm] + name = "pamc" + label_list = ["z1", "z2"] + seed = 12345 + + [algorithm.param] + min_list = [3.0, 3.0] + max_list = [6.0, 6.0] + unit_list = [0.3, 0.3] + + [algorithm.pamc] + numsteps_annealing = 5 + bmin = 0.0 + bmax = 200.0 + Tnum = 21 + Tlogspace = false + nreplica_per_proc = 10 + + [solver] + name = "sim-trhepd-rheed" + run_scheme = "subprocess" + + [solver.config] + cal_number = [1] + + [solver.param] + string_list = ["value_01", "value_02" ] + degree_max = 7.0 + + [solver.reference] + path = "experiment.txt" + exp_number = [1] + + [solver.post] + normalization = "TOTAL" + + +ここではこの入力ファイルを簡単に説明します。 +詳細は入力ファイルのレファレンスを参照してください。 + +``[base]`` セクションはメインプログラム全体のパラメータです。 +``dimension`` は最適化したい変数の個数で、今の場合は2つの変数の最適化を行うので、``2`` を指定します。 +``output_dir`` は出力先のディレクトリ名です。省略した場合はプログラムを実行したディレクトリになります。 + +``[algorithm]`` セクションは用いる探索アルゴリズムを設定します。 +交換モンテカルロ法を用いる場合には、 ``name`` に ``"exchange"`` を指定します。 +``label_list`` は、``value_0x`` (x=1,2) を出力する際につけるラベル名のリストです。 +``seed`` は擬似乱数生成器に与える種です。 + +``[algorithm.param]`` サブセクションは、最適化したいパラメータの範囲などを指定します。 +``min_list`` は最小値、 ``max_list`` は最大値を示します。 +``unit_list`` はモンテカルロ更新の際の変化幅(ガウス分布の偏差)です。 + +``[algorithm.pamc]`` サブセクションは、ポピュレーションアニーリングのハイパーパラメータを指定します。 + +- ``numsteps_annealing`` で指定した回数のモンテカルロ更新の後に、逆温度を増やします (温度を下げます)。 +- ``bmin``, ``bmax`` はそれぞれ逆温度の下限・上限です。 +- ``Tnum`` は計算する温度・逆温度の点数です。 +- ``Tlogspace`` が ``true`` の場合、温度を対数空間で等分割します +- ``nreplica_per_proc`` はMPIプロセスひとつが受け持つ計算レプリカの数です。 + +``[solver]`` セクションではメインプログラムの内部で使用するソルバーを指定します。 +Nelder-Mead法による最適化のチュートリアルを参照してください。 + + +計算実行 +~~~~~~~~~~~~ + +最初にサンプルファイルが置いてあるフォルダへ移動します(以下、本ソフトウェアをダウンロードしたディレクトリ直下にいることを仮定します). + +.. code-block:: + + $ cd sample/single_beam/pamc + +順問題の時と同様に、 ``bulk.exe`` と ``surf.exe`` をコピーします。 + +.. code-block:: + + $ cp ../../sim-trhepd-rheed/src/bulk.exe . + $ cp ../../sim-trhepd-rheed/src/surf.exe . + +最初に ``bulk.exe`` を実行し、 ``bulkP.b`` を作成します。 + +.. code-block:: + + $ ./bulk.exe + +そのあとに、メインプログラムを実行します(計算時間は通常のPCで数秒程度で終わります)。 + +.. code-block:: + + mpiexec -np 4 py2dmat-sim-trhepd-rheed input.toml | tee log.txt + +ここではプロセス数4のMPI並列を用いた計算を行っています。 +(Open MPI を用いる場合で、使えるコア数よりも要求プロセス数の方が多い時には、 ``mpiexec`` コマンドに ``--oversubscribe`` オプションを追加してください。) +実行すると、 ``output`` ディレクトリの中に各ランクのフォルダが作成され、温度ごとに各モンテカルロステップで評価したパラメータおよび目的関数の値を記した ``trial_TXXX.txt`` ファイル(``XXX`` は温度点の番号)と、実際に採択されたパラメータを記した ``result_TXXX.txt`` ファイル、さらにそれぞれを結合した ``trial.txt``, ``result.txt`` ファイルが生成されます。 +それぞれ書式は同じで、最初の2列がステップ数とプロセス内のwalker (replica) 番号、次が(逆)温度、3列目が目的関数の値、4列目以降がパラメータです。 +最後の2 列は、 walker の重み (Neal-Jarzynski weight) と祖先(計算を開始したときのレプリカ)の番号です。 + +.. code-block:: + + # step walker beta fx z1 z2 weight ancestor + 0 0 0.0 0.07702743614780189 5.788848278451443 3.949126663745358 1.0 0 + 0 1 0.0 0.08737730661436376 3.551756435031283 3.6136808356591192 1.0 1 + 0 2 0.0 0.04954470587051104 4.70317508724506 4.786634108937754 1.0 2 + 0 3 0.0 0.04671675601156148 5.893543559206865 4.959531290614713 1.0 3 + 0 4 0.0 0.04142014655238446 5.246719912601735 4.960709612555206 1.0 4 + +また、各作業フォルダの下にサブフォルダ ``LogXXXX_00000000`` (``XXXX`` がグリッドのid)が作成され、ロッキングカーブの情報などが記録されます +(各プロセスにおけるモンテカルロステップ数がidとして割り振られます)。 + +``output/best_result.txt`` に、目的関数 (R-factor) が最小となったパラメータとそれを得たランク、モンテカルロステップの情報が書き込まれます。 + +.. code-block:: + + nprocs = 4 + rank = 0 + step = 71 + walker = 5 + fx = 0.008186713312593607 + z1 = 4.225633749839847 + z2 = 5.142666117413409 + +最後に、 ``output/fx.txt`` には、各温度ごとの統計情報が記録されます。 + +.. code-block:: + + # $1: 1/T + # $2: mean of f(x) + # $3: standard error of f(x) + # $4: number of replicas + # $5: log(Z/Z0) + # $6: acceptance ratio + 0.0 0.06428002079611472 0.002703413400677839 40 0.0 0.795 + 10.0 0.061399304916174735 0.002649424392996749 40 -0.6280819199879947 0.85 + 20.0 0.05904248889111052 0.0031622711212952034 40 -1.2283060742855603 0.74 + 30.0 0.04956921148431115 0.0028298565759159633 40 -1.7991035905899855 0.67 + +1列目は温度・逆温度で、2・3列目は目的関数 :math:`f(x)` の期待値と標準誤差、4列目はレプリカの個数、5列目は分配関数の比の対数 :math:`\log(Z_n/Z_0)` です(:math:`Z_0` は最初の温度点における分配関数)、6列目はモンテカルロ更新の採択率です。 + +なお、一括計算するスクリプトとして ``do.sh`` を用意しています。 +``do.sh`` では ``res.txt`` と ``ref.txt`` の差分も比較しています。 +以下、説明は割愛しますが、その中身を掲載します。 + +.. code-block:: + + #!/bin/sh + + sh prepare.sh + + ./bulk.exe + + time mpiexec --oversubscribe -np 4 py2dmat-sim-trhepd-rheed input.toml + + echo diff output/fx.txt ref.txt + res=0 + diff output/fx.txt ref.txt || res=$? + if [ $res -eq 0 ]; then + echo TEST PASS + true + else + echo TEST FAILED: output/fx.txt and ref.txt differ + false + fi + +計算結果の可視化 +~~~~~~~~~~~~~~~~~~~ + +``result_T%.txt`` を図示することで、 ``R-factor`` の小さいパラメータがどこにあるかを推定することができます。 +今回の場合は、以下のコマンドを実行すると2次元パラメータ空間の図 ``result_fx.pdf`` と ``result_T.pdf`` が作成されます。 +シンボルの色はそれぞれ ``R-factor`` と逆温度 :math:`\beta` に対応します。 + +.. code-block:: + + $ python3 plot_result_2d.py + +作成された図を見ると、(5.25, 4.25) と (4.25, 5.25) 付近にサンプルが集中していることと、 +``R-factor`` の値が小さいことがわかります。 + + +.. figure:: ../../../common/img/pamc_fx.* + + サンプルされたパラメータ。横軸は ``value_01`` , 縦軸は ``value_02`` を、色は ``R-factor`` を表す。 + + +.. figure:: ../../../common/img/pamc_T.* + + サンプルされたパラメータと逆温度。横軸は ``value_01`` , 縦軸は ``value_02`` を、色は逆温度を表す。 + +また、 ``[solver]`` セクションの ``generate_rocking_curve`` パラメータを ``true`` にすると、 ``RockingCurve_calculated.txt`` が各サブフォルダに格納されます。 +これを用いることで、Nelder-Mead法による最適化での手順に従い、実験値との比較も行うことが可能です。 diff --git a/doc/ja/source/tutorial/sim_trhepd_rheed.rst b/extra/sim-trhepd-rheed/doc/ja/source/tutorial/sim_trhepd_rheed.rst similarity index 58% rename from doc/ja/source/tutorial/sim_trhepd_rheed.rst rename to extra/sim-trhepd-rheed/doc/ja/source/tutorial/sim_trhepd_rheed.rst index d9d328e7..f028e4b9 100644 --- a/doc/ja/source/tutorial/sim_trhepd_rheed.rst +++ b/extra/sim-trhepd-rheed/doc/ja/source/tutorial/sim_trhepd_rheed.rst @@ -1,26 +1,30 @@ TRHEPD 順問題ソルバー ======================== -2DMAT は順問題ソルバーのひとつとして、 反射高速(陽)電子回折(RHEED, TRHEPD)の強度計算 (A. Ichimiya, Jpn. J. Appl. Phys. 22, 176 (1983); 24, 1365 (1985)) -を行うプログラム `sim-trhepd-rheed `_ のラッパーを提供しています。 +2DMAT-SIM-TRHEPD-RHEEDモジュールは、反射高速(陽)電子回折(RHEED, TRHEPD)の強度計算 (A. Ichimiya, Jpn. J. Appl. Phys. 22, 176 (1983); 24, 1365 (1985)) を行うプログラム `sim-trhepd-rheed `_ を2DMATの順問題ソルバーとして利用するためのラッパーです。 本チュートリアルでは sim-trhepd-rheed を用い、様々なアルゴリズムを利用した解析を行います。 最初に、チュートリアルを行うために必要な sim-trhepd-rheed のインストールおよびテストを行います。 ダウンロード・インストール ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -まずチュートリアルの前提として、 ``2DMAT`` フォルダがある場所にいることを仮定します。:: +あらかじめ py2dmat のソースコードをリポジトリから取得し、2DMAT-SIM-TRHEPD-RHEED サブモジュールのディレクトリに移動します。 - $ ls -d 2DMAT - 2DMAT/ +.. code-block:: bash -GitHub の sim-trhepd-rheed リポジトリから、ソースコード一式を入手し、ビルドします。:: + $ git clone -b update https://github.com/issp-center-dev/2DMAT.git + $ cd extra/sim-trhepd-rheed - git clone http://github.com/sim-trhepd-rheed/sim-trhepd-rheed - cd sim-trhepd-rheed/src - make +GitHub の sim-trhepd-rheed リポジトリから、ソースコード一式を入手し、ビルドします。 -makeが成功すると、 ``bulk.exe`` 及び ``surf.exe`` が作成されます。 +.. code-block:: bash + + $ git clone http://github.com/sim-trhepd-rheed/sim-trhepd-rheed + $ cd sim-trhepd-rheed/src + $ make + +``Makefile`` は実行環境に応じて適宜編集してください。 +makeが成功すると、 ``bulk.exe`` と ``surf.exe`` が作成されます。 計算実行 @@ -29,60 +33,49 @@ makeが成功すると、 ``bulk.exe`` 及び ``surf.exe`` が作成されま sim-trhepd-rheed では、最初に ``bulk.exe`` で表面構造のバルク部分に関する計算をします。 その後、 ``bulk.exe`` の計算結果 (``bulkP.b`` ファイル) を用いて、 ``surf.exe`` 表面構造の表面部分を計算します。 -このチュートリアルでは実際に、 TRHEPD 計算をしてみます。 -サンプルとなる入力ファイルは2DMAT の ``sample/sim-trhepd-rheed`` にあります。 +このチュートリアルでは実際に TRHEPD 計算をしてみます。 +サンプルとなる入力ファイルは 2DMAT-SIM-TRHEPD-RHEED の ``sample/solver`` 以下にあります。 まず、このフォルダを適当な作業用フォルダ ``work`` にコピーします。 .. code-block:: - cd ../../ - cp -r 2DMAT/sample/sim-trhepd-rheed/solver work - cd work + $ cp -r sample/solver work + $ cd work 次に ``bulk.exe`` と ``surf.exe`` を ``work`` にコピーします .. code-block:: - cp ../sim-trhepd-rheed/src/bulk.exe . - cp ../sim-trhepd-rheed/src/surf.exe . + $ cp ../sim-trhepd-rheed/src/bulk.exe . + $ cp ../sim-trhepd-rheed/src/surf.exe . ``bulk.exe`` を実行します。 .. code-block:: - ./bulk.exe + $ ./bulk.exe -上記実行時に、以下のように出力され、バルクファイル ``bulkP.b`` が生成されます。 +バルクファイル ``bulkP.b`` が生成されます。 .. code-block:: - 0:electron 1:positron ? - P - input-filename (end=e) ? : - bulk.txt - output-filename : - bulkP.b + $ ls + bulk.exe bulk.txt bulkP.b surf.exe surf.txt 続いて、 ``surf.exe`` を実行します。 .. code-block:: - ./surf.exe + $ ./surf.exe -上記実行時に、以下のように出力されます。 +以下のように出力されます。 .. code-block:: - bulk-filename (end=e) ? : - bulkP.b - structure-filename (end=e) ? : - surf.txt - output-filename : - surf-bulkP.md - surf-bulkP.s + surf-bulkP.s -実行後に、ファイル ``surf-bulkP.md`` 、 ``surf-bulkP.s`` -及び ``SURFYYYYMMDD-HHMMSSlog.txt`` が生成されます。 +実行後に、ファイル ``surf-bulkP.md``, ``surf-bulkP.s`` +および ``SURF`` YYYYMMDD-HHMMSS ``log.txt`` が生成されます。 (YYYYMMDD、 HHMMSS には実行日時に対応した数字が入ります) 計算結果の可視化 @@ -104,14 +97,13 @@ sim-trhepd-rheed では、最初に ``bulk.exe`` で表面構造のバルク部 0.1000E+01, 0.0000E+00, 0.0000E+00, 0.0000E+00, 0.0000E+00, 0.0000E+00, 0.6326E-02, 0.1495E-01, 0.6326E-02, 0.0000E+00, 0.0000E+00, 0.0000E+00, 0.0000E+00, 0.0000E+00, (以下略) -上記ファイルより、縦軸に角度(5行目以降の1列目データ)と(0,0)ピークの強度(5行目以降の8列目データ)から -ロッキングカーブを作成します。 -Gnuplot等のグラフソフトを用いる事も出来ますが、ここでは、 ``2DMAT/script`` フォルダにあるプログラム ``plot_bulkP.py`` を用います。 +上記ファイルより、縦軸に角度 (5行目以降の1列目データ) と :math:`(0,0)` ピークの強度 (5行目以降の8列目データ) からロッキングカーブを作成します。 +Gnuplot等のグラフソフトを用いる事も出来ますが、ここでは、 ``script`` フォルダにあるプログラム ``plot_bulkP.py`` を用います。 以下のように実行して下さい。 .. code-block:: - python3 ../2DMAT/script/plot_bulkP.py + $ python3 ../script/plot_bulkP.py 以下のような ``plot_bulkP.png`` が作成されます。 @@ -120,13 +112,17 @@ Gnuplot等のグラフソフトを用いる事も出来ますが、ここでは Si(001)-2x1面のロッキングカーブ。 この00ピークの回折強度のデータに対し、コンボリューションを掛けたうえで規格化します。 -``surf-bulkP.s`` を準備して、 ``make_convolution.py`` を実行してください。 +``surf-bulkP.s`` があることを確認し、 ``make_convolution.py`` を実行してください。 .. code-block:: - python3 ../2DMAT/script/make_convolution.py + $ python3 ../script/make_convolution.py + +実行すると、以下のようなファイル ``convolution.txt`` が出力されます。 -実行すると、以下のようなファイル ``convolution.txt`` ができあがります。 +.. figure:: ../../../common/img/plot_convolution.* + + xSi(001)-2x1面のロッキングカーブに半値幅0.5のコンボリューションを付加して規格化したもの。 .. code-block:: @@ -135,7 +131,7 @@ Gnuplot等のグラフソフトを用いる事も出来ますが、ここでは 0.700000 0.016119093 0.800000 0.017039022 0.900000 0.017084666 - (中略) + (中略) 5.600000 0.000728539 5.700000 0.000530758 5.800000 0.000412908 @@ -144,3 +140,4 @@ Gnuplot等のグラフソフトを用いる事も出来ますが、ここでは 1列目が視射角、2列目が ``surf-bulkP.s`` に書かれた00ピーク回折強度のデータに 半値幅0.5のコンボリューションを付加して規格化したものです。 + diff --git a/extra/sim-trhepd-rheed/doc/ja/source/tutorial/user_program.rst b/extra/sim-trhepd-rheed/doc/ja/source/tutorial/user_program.rst new file mode 100644 index 00000000..5a14a909 --- /dev/null +++ b/extra/sim-trhepd-rheed/doc/ja/source/tutorial/user_program.rst @@ -0,0 +1,213 @@ +ユーザープログラムによる解析 +================================ + +ここでは、2DMAT-SIM-TRHEPD-RHEED モジュールを用いたユーザプログラムを作成し、解析を行う方法を説明します。逆問題アルゴリズムは例としてNelder-Mead法を用います。 + + +サンプルファイルの場所 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +サンプルファイルは ``sample/single_beam/user_program`` にあります。 +フォルダには以下のファイルが格納されています。 + +- ``simple.py`` + + メインプログラム。パラメータを ``input.toml`` ファイルから読み込んで解析を行う。 + +- ``input.toml`` + + ``simple.py`` で利用する入力パラメータファイル + +- ``experiment.txt``, ``template.txt`` + + メインプログラムでの計算を進めるための参照ファイル + +- ``ref.txt`` + + 本チュートリアルで求めたい回答が記載されたファイル + +- ``simple2.py`` + + メインプログラムの別バージョン。パラメータを dict 形式でスクリプト内に埋め込んでいる。 + +- ``prepare.sh`` , ``do.sh`` + + 本チュートリアルを一括計算するために準備されたスクリプト + +以下、これらのファイルについて説明したのち、実際の計算結果を紹介します。 + + +プログラムの説明 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +``simple.py`` は 2DMAT-SIM-TRHEPD-RHEED モジュールを用いて解析を行うシンプルなプログラムです。 +プログラムの全体を以下に示します。 + +.. code-block:: python + + import numpy as np + + import py2dmat + import py2dmat.algorithm.min_search + import sim_trhepd_rheed + + info = py2dmat.Info.from_file("input.toml") + + solver = sim_trhepd_rheed.Solver(info) + runner = py2dmat.Runner(solver, info) + alg = py2dmat.algorithm.min_search.Algorithm(info, runner) + alg.main() + +プログラムではまず、必要なモジュールを import します。 + +- 2DMAT のメインモジュール ``py2dmat`` + +- 今回利用する逆問題解析アルゴリズム ``py2dmat.algorithm.min_search`` + +- 順問題ソルバーモジュール ``sim_trhepd_rheed`` + +次に、解析で利用するクラスのインスタンスを作成します。 + +- ``py2dmat.Info`` クラス + + パラメータを格納するクラスです。 ``from_file`` クラスメソッドに TOML ファイルのパスを渡して作成することができます。 + +- ``sim_trhepd_rheed.Solver`` クラス + + 2DMAT-SIM-TRHEPD-RHEED モジュールの順問題ソルバーです。Info クラスのインスタンスを渡して作成します。 + +- ``py2dmat.Runner`` クラス + + 順問題ソルバーと逆問題解析アルゴリズムを繋ぐクラスです。Solver クラスのインスタンスおよび Info クラスのパラメータを渡して作成します。 + +- ``py2dmat.algorithm.min_search.Algorithm`` クラス + + 逆問題解析アルゴリズムのクラスです。ここでは Nelder-Mead法による最適化アルゴリズムのクラスモジュール ``min_search`` を利用します。Runner のインスタンスを渡して作成します。 + +Solver, Runner, Algorithm の順にインスタンスを作成した後、Algorithm クラスの ``main()`` メソッドを呼んで解析を行います。 + +上記のプログラムでは、入力パラメータを TOML形式のファイルから読み込む形ですが、パラメータを dict 形式で渡すこともできます。 +``simple2.py`` はパラメータをプログラム中に埋め込む形式で記述したものです。以下にプログラムの全体を記載します。 + +.. code-block:: python + + import numpy as np + + import py2dmat + import py2dmat.algorithm.min_search + import sim_trhepd_rheed + + params = { + "base": { + "dimension": 3, + "output_dir": "output", + }, + "solver": { + "run_scheme": "subprocess", + "generate_rocking_curve": True, + "config": { + "cal_number": [1], + }, + "param": { + "string_list": ["value_01", "value_02", "value_03"], + }, + "reference": { + "path": "experiment.txt", + "exp_number": [1], + }, + "post": { + "normalization": "TOTAL", + }, + }, + "algorithm": { + "label_list": ["z1", "z2", "z3"], + "param": { + "min_list": [ 0.0, 0.0, 0.0 ], + "max_list": [ 10.0, 10.0, 10.0 ], + "initial_list": [ 5.25, 4.25, 3.50], + }, + }, + } + + info = py2dmat.Info(params) + + solver = sim_trhepd_rheed.Solver(info) + runner = py2dmat.Runner(solver, info) + alg = py2dmat.algorithm.min_search.Algorithm(info, runner) + alg.main() + +dict 形式のパラメータを渡して Info クラスのインスタンスを作成します。 +同様に、パラメータをプログラム内で生成して渡すこともできます。 + +入力ファイルの説明 +~~~~~~~~~~~~~~~~~~~ +メインプログラム用の入力ファイル ``input.toml`` は前述のNelder-Mead法による最適化で用いたのと同じファイルを利用できます。 +なお、アルゴリズムの種類を指定する ``algorithm.name`` パラメータの値は無視されます。 + +その他、 ``template.txt``, ``experiment.txt`` ファイルは前述の tutorial と同様です。 + +計算実行 +~~~~~~~~~~~~ + +最初にサンプルファイルが置いてあるフォルダへ移動します(以下、本ソフトウェアをダウンロードしたディレクトリ直下にいることを仮定します). + +.. code-block:: + + $ cd sample/single_beam/user_program + +``bulk.exe`` と ``surf.exe`` をコピーします。 + +.. code-block:: + + $ cp ../../sim-trhepd-rheed/src/bulk.exe . + $ cp ../../sim-trhepd-rheed/src/surf.exe . + +``bulk.exe`` を実行し、 ``bulkP.b`` を作成します。 + +.. code-block:: + + $ ./bulk.exe + +そのあとに、メインプログラムを実行します(計算時間は通常のPCで数秒程度で終わります)。 + +.. code-block:: + + $ python3 simple.py | tee log.txt + +実行すると、以下の様な出力がされます。 + +.. code-block:: + + Read experiment.txt + z1 = 5.25000 + z2 = 4.25000 + z3 = 3.50000 + [' 5.25000', ' 4.25000', ' 3.50000'] + PASS : degree in lastline = 7.0 + PASS : len(calculated_list) 70 == len(convolution_I_calculated_list)70 + R-factor = 0.015199251773721183 + z1 = 5.50000 + z2 = 4.25000 + z3 = 3.50000 + [' 5.50000', ' 4.25000', ' 3.50000'] + PASS : degree in lastline = 7.0 + PASS : len(calculated_list) 70 == len(convolution_I_calculated_list)70 + R-factor = 0.04380131351780189 + z1 = 5.25000 + z2 = 4.50000 + z3 = 3.50000 + [' 5.25000', ' 4.50000', ' 3.50000'] + ... + +``z1``, ``z2``, ``z3`` に各ステップでの候補パラメータと、その時の ``R-factor`` が出力されます。 +また各ステップでの計算結果は ``output/0/LogXXXX_YYYY`` (XXXX, YYYYはステップ数)のフォルダに出力されます。 +最終的に推定されたパラメータは、 ``output/res.dat`` に出力されます。今の場合、 + +.. code-block:: + + z1 = 5.230524973874179 + z2 = 4.370622919269477 + z3 = 3.5961444501081647 + +となります。リファレンス ref.txt が再現されていることが分かります。 + +なお、一連の計算を行う ``do.sh`` スクリプトが用意されています。 diff --git a/extra/sim-trhepd-rheed/pyproject.toml b/extra/sim-trhepd-rheed/pyproject.toml index f42c0d42..3ba8ac22 100644 --- a/extra/sim-trhepd-rheed/pyproject.toml +++ b/extra/sim-trhepd-rheed/pyproject.toml @@ -1,5 +1,5 @@ [tool.poetry] -name = "sim-trhepd-rheed" +name = "py2dmat-sim-trhepd-rheed" version = "1.0-dev" description = "SIM-TRHEPD-RHEED solver module for Py2DMAT: data-analysis software of quantum beam diffraction experiments for 2D material structure" authors = ["2DMAT developers <2dmat-dev@issp.u-tokyo.ac.jp>"] @@ -29,7 +29,7 @@ py2dmat = "^2" #pynvim = "^0.4.3" [tool.poetry.scripts] -sim-trhepd-rheed = "sim_trhepd_rheed._main:main" +py2dmat-sim-trhepd-rheed = "sim_trhepd_rheed._main:main" [build-system] requires = ["poetry-core>=1.0.0"] diff --git a/extra/sim-trhepd-rheed/sample/single_beam/bayes/do.sh b/extra/sim-trhepd-rheed/sample/single_beam/bayes/do.sh index ce2dc7bc..2104eff9 100644 --- a/extra/sim-trhepd-rheed/sample/single_beam/bayes/do.sh +++ b/extra/sim-trhepd-rheed/sample/single_beam/bayes/do.sh @@ -1,12 +1,14 @@ +#!/bin/sh + sh prepare.sh ./bulk.exe -time python3 ../../../../src/py2dmat_main.py input.toml +time py2dmat-sim-trhepd-rheed input.toml -echo diff BayesData.txt ref_BayesData.txt +echo diff output/BayesData.txt ref_BayesData.txt res=0 -diff BayesData.txt ref_BayesData.txt || res=$? +diff output/BayesData.txt ref_BayesData.txt || res=$? if [ $res -eq 0 ]; then echo TEST PASS true diff --git a/extra/sim-trhepd-rheed/sample/single_beam/bayes/input.toml b/extra/sim-trhepd-rheed/sample/single_beam/bayes/input.toml index 87fe8d91..a3d93438 100644 --- a/extra/sim-trhepd-rheed/sample/single_beam/bayes/input.toml +++ b/extra/sim-trhepd-rheed/sample/single_beam/bayes/input.toml @@ -1,5 +1,6 @@ [base] dimension = 2 +output_dir = "output" [solver] name = "sim-trhepd-rheed" diff --git a/extra/sim-trhepd-rheed/sample/single_beam/bayes/prepare.sh b/extra/sim-trhepd-rheed/sample/single_beam/bayes/prepare.sh index cc56dcdb..6a92493b 100644 --- a/extra/sim-trhepd-rheed/sample/single_beam/bayes/prepare.sh +++ b/extra/sim-trhepd-rheed/sample/single_beam/bayes/prepare.sh @@ -1,2 +1,3 @@ -rm -rf ./0 -rm -f ./BayesData.txt +#!/bin/sh + +rm -rf output diff --git a/extra/sim-trhepd-rheed/sample/single_beam/bayes/ref_BayesData.txt b/extra/sim-trhepd-rheed/sample/single_beam/bayes/ref_BayesData.txt index cd1d1a4e..01a4aba8 100644 --- a/extra/sim-trhepd-rheed/sample/single_beam/bayes/ref_BayesData.txt +++ b/extra/sim-trhepd-rheed/sample/single_beam/bayes/ref_BayesData.txt @@ -1,31 +1,31 @@ #step z1 z2 fx z1_action z2_action fx_action -0 5.1 4.9 0.037237314010261195 5.1 4.9 0.037237314010261195 -1 5.1 4.9 0.037237314010261195 4.3 3.5 0.06050786306685965 -2 5.1 4.9 0.037237314010261195 5.3 3.9 0.06215778000834068 -3 5.1 4.9 0.037237314010261195 4.7 4.2 0.049210767760634364 -4 5.1 4.9 0.037237314010261195 5.7 3.7 0.08394457854191653 -5 5.1 4.9 0.037237314010261195 5.2 5.2 0.05556857782716691 -6 5.1 4.9 0.037237314010261195 5.7 4.0 0.0754639895013157 -7 5.1 4.9 0.037237314010261195 6.0 4.4 0.054757310814479355 -8 5.1 4.9 0.037237314010261195 6.0 4.2 0.06339787375966344 -9 5.1 4.9 0.037237314010261195 5.7 5.2 0.05348404677676544 -10 5.1 4.7 0.03002813055356341 5.1 4.7 0.03002813055356341 -11 5.1 4.7 0.03002813055356341 5.0 4.4 0.03019977423448576 -12 5.3 4.5 0.02887504880071686 5.3 4.5 0.02887504880071686 -13 5.1 4.5 0.025865346123665988 5.1 4.5 0.025865346123665988 -14 5.2 4.4 0.02031077875240244 5.2 4.4 0.02031077875240244 -15 5.2 4.4 0.02031077875240244 5.2 4.6 0.023291891689059388 -16 5.2 4.4 0.02031077875240244 5.2 4.5 0.02345999725278686 -17 5.2 4.4 0.02031077875240244 5.1 4.4 0.022561543431398066 -18 5.2 4.4 0.02031077875240244 5.3 4.4 0.02544527153306051 -19 5.2 4.4 0.02031077875240244 5.1 4.6 0.02778877135528466 -20 5.2 4.3 0.012576357659158034 5.2 4.3 0.012576357659158034 -21 5.1 4.2 0.010217361468113488 5.1 4.2 0.010217361468113488 -22 5.1 4.2 0.010217361468113488 5.2 4.2 0.013178053637167673 -23 5.1 4.2 0.010217361468113488 5.1 4.3 0.01603650917856354 -24 5.1 4.2 0.010217361468113488 5.1 4.1 0.019161876270289847 -25 5.1 4.2 0.010217361468113488 5.0 4.2 0.02073160438607396 -26 5.1 4.2 0.010217361468113488 5.2 4.1 0.027676970877989107 -27 5.1 4.2 0.010217361468113488 4.9 3.7 0.0539032687389311 -28 5.1 4.2 0.010217361468113488 5.0 4.1 0.020675141291670078 -29 5.1 4.2 0.010217361468113488 5.3 4.3 0.020245564670810467 +0 5.1 4.9 0.037235074743172454 5.1 4.9 0.037235074743172454 +1 5.1 4.9 0.037235074743172454 4.3 3.5 0.06050573551746842 +2 5.1 4.9 0.037235074743172454 5.3 3.9 0.062166147965171524 +3 5.1 4.9 0.037235074743172454 4.7 4.2 0.049214053630051165 +4 5.1 4.9 0.037235074743172454 5.7 3.7 0.08394928032443437 +5 5.1 4.9 0.037235074743172454 5.2 5.2 0.05555968530512952 +6 5.1 4.9 0.037235074743172454 5.7 4.0 0.07546814729086875 +7 5.1 4.9 0.037235074743172454 6.0 4.4 0.05475948027103236 +8 5.1 4.9 0.037235074743172454 6.0 4.2 0.06340246937861264 +9 5.1 4.9 0.037235074743172454 5.7 5.2 0.053481983788166224 +10 5.1 4.7 0.03002911266695604 5.1 4.7 0.03002911266695604 +11 5.1 4.7 0.03002911266695604 5.0 4.4 0.030197369985028977 +12 5.3 4.5 0.02887388382938813 5.3 4.5 0.02887388382938813 +13 5.1 4.5 0.025865942161583205 5.1 4.5 0.025865942161583205 +14 5.2 4.4 0.02030947496767003 5.2 4.4 0.02030947496767003 +15 5.2 4.4 0.02030947496767003 5.2 4.6 0.023292070309454356 +16 5.2 4.4 0.02030947496767003 5.2 4.5 0.02346140561647057 +17 5.2 4.4 0.02030947496767003 5.1 4.4 0.022562987243107263 +18 5.2 4.4 0.02030947496767003 5.3 4.4 0.025442804284880622 +19 5.2 4.4 0.02030947496767003 5.1 4.6 0.027786263593583452 +20 5.2 4.3 0.01257638416660778 5.2 4.3 0.01257638416660778 +21 5.1 4.2 0.01021525608348611 5.1 4.2 0.01021525608348611 +22 5.1 4.2 0.01021525608348611 5.2 4.2 0.013185160407763272 +23 5.1 4.2 0.01021525608348611 5.1 4.3 0.01603857086925361 +24 5.1 4.2 0.01021525608348611 5.1 4.1 0.019162277030800867 +25 5.1 4.2 0.01021525608348611 5.0 4.2 0.020730041825922894 +26 5.1 4.2 0.01021525608348611 5.2 4.1 0.02768347196467913 +27 5.1 4.2 0.01021525608348611 4.9 3.7 0.05389772132512104 +28 5.1 4.2 0.01021525608348611 5.0 4.1 0.02067681958885218 +29 5.1 4.2 0.01021525608348611 5.3 4.3 0.020245107903776354 diff --git a/extra/sim-trhepd-rheed/sample/single_beam/exchange/do.sh b/extra/sim-trhepd-rheed/sample/single_beam/exchange/do.sh index f23ec020..dbf1e214 100644 --- a/extra/sim-trhepd-rheed/sample/single_beam/exchange/do.sh +++ b/extra/sim-trhepd-rheed/sample/single_beam/exchange/do.sh @@ -1,12 +1,14 @@ +#!/bin/sh + sh prepare.sh ./bulk.exe -time mpiexec --oversubscribe -np 4 python3 ../../../../src/py2dmat_main.py input.toml +time mpiexec --oversubscribe -np 4 py2dmat-sim-trhepd-rheed input.toml -echo diff best_result.txt ref.txt +echo diff output/best_result.txt ref.txt res=0 -diff best_result.txt ref.txt || res=$? +diff output/best_result.txt ref.txt || res=$? if [ $res -eq 0 ]; then echo TEST PASS true diff --git a/extra/sim-trhepd-rheed/sample/single_beam/exchange/input.toml b/extra/sim-trhepd-rheed/sample/single_beam/exchange/input.toml index 6260334e..a737b2cf 100644 --- a/extra/sim-trhepd-rheed/sample/single_beam/exchange/input.toml +++ b/extra/sim-trhepd-rheed/sample/single_beam/exchange/input.toml @@ -1,5 +1,6 @@ [base] dimension = 2 +output_dir = "output" [algorithm] name = "exchange" diff --git a/extra/sim-trhepd-rheed/sample/single_beam/exchange/plot_result_2d.py b/extra/sim-trhepd-rheed/sample/single_beam/exchange/plot_result_2d.py index c39af0ff..6dc20948 100644 --- a/extra/sim-trhepd-rheed/sample/single_beam/exchange/plot_result_2d.py +++ b/extra/sim-trhepd-rheed/sample/single_beam/exchange/plot_result_2d.py @@ -1,19 +1,7 @@ +import numpy as np import matplotlib.pyplot as plt -x = [] -y = [] -f = [] -file_input = open("result_T1.txt", "r") -lines = file_input.readlines() -file_input.close() -for line in lines: - if line.startswith("#"): - continue - if line[0] != "/n": - data = line.split() - x.append(float(data[3])) - y.append(float(data[4])) - f.append(float(data[2])) +_,_,f,x,y = np.loadtxt("result_T1.txt", unpack=True) plt.scatter(x, y, c=f, s=100, vmin=0.00, vmax=0.10, cmap='RdYlBu', linewidth=2, alpha=1.0) plt.xlabel("z1") diff --git a/extra/sim-trhepd-rheed/sample/single_beam/exchange/prepare.sh b/extra/sim-trhepd-rheed/sample/single_beam/exchange/prepare.sh index 9d3a1cae..e78842d7 100644 --- a/extra/sim-trhepd-rheed/sample/single_beam/exchange/prepare.sh +++ b/extra/sim-trhepd-rheed/sample/single_beam/exchange/prepare.sh @@ -1,6 +1,4 @@ -rm -rf ./0 -rm -rf ./1 -rm -rf ./2 -rm -rf ./3 -rm -f ./best_result.txt -rm -f ./time_* +#!/bin/sh + +rm -f ./bulkP.b +rm -rf ./output diff --git a/extra/sim-trhepd-rheed/sample/single_beam/exchange/ref.txt b/extra/sim-trhepd-rheed/sample/single_beam/exchange/ref.txt index 38a171e4..b6db089b 100644 --- a/extra/sim-trhepd-rheed/sample/single_beam/exchange/ref.txt +++ b/extra/sim-trhepd-rheed/sample/single_beam/exchange/ref.txt @@ -1,6 +1,7 @@ nprocs = 4 rank = 1 step = 282 -fx = 0.008414801774434962 +walker = 0 +fx = 0.008415217647192712 z1 = 5.164773671165013 z2 = 4.226467514644945 diff --git a/extra/sim-trhepd-rheed/sample/single_beam/mapper/do.sh b/extra/sim-trhepd-rheed/sample/single_beam/mapper/do.sh index 93e021d8..61a7a4bb 100644 --- a/extra/sim-trhepd-rheed/sample/single_beam/mapper/do.sh +++ b/extra/sim-trhepd-rheed/sample/single_beam/mapper/do.sh @@ -1,12 +1,14 @@ +#!/bin/sh + sh prepare.sh ./bulk.exe -time python3 ../../../../src/py2dmat_main.py input.toml +time py2dmat-sim-trhepd-rheed input.toml -echo diff ColorMap.txt ref_ColorMap.txt +echo diff output/ColorMap.txt ref_ColorMap.txt res=0 -diff ColorMap.txt ref_ColorMap.txt || res=$? +diff output/ColorMap.txt ref_ColorMap.txt || res=$? if [ $res -eq 0 ]; then echo TEST PASS true diff --git a/extra/sim-trhepd-rheed/sample/single_beam/mapper/input.toml b/extra/sim-trhepd-rheed/sample/single_beam/mapper/input.toml index 834c756d..f9c114e4 100644 --- a/extra/sim-trhepd-rheed/sample/single_beam/mapper/input.toml +++ b/extra/sim-trhepd-rheed/sample/single_beam/mapper/input.toml @@ -1,5 +1,6 @@ [base] dimension = 2 +output_dir = "output" [solver] name = "sim-trhepd-rheed" diff --git a/extra/sim-trhepd-rheed/sample/single_beam/mapper/plot_colormap_2d.py b/extra/sim-trhepd-rheed/sample/single_beam/mapper/plot_colormap_2d.py index 3f616c92..cc9ba5d5 100644 --- a/extra/sim-trhepd-rheed/sample/single_beam/mapper/plot_colormap_2d.py +++ b/extra/sim-trhepd-rheed/sample/single_beam/mapper/plot_colormap_2d.py @@ -1,17 +1,7 @@ +import numpy as np import matplotlib.pyplot as plt -x = [] -y = [] -f = [] -file_input = open("ColorMap.txt", "r") -lines = file_input.readlines() -file_input.close() -for line in lines: - if line[0] != "/n": - data = line.split() - x.append(float(data[0])) - y.append(float(data[1])) - f.append(float(data[2])) +x,y,f = np.loadtxt("ColorMap.txt", unpack=True) plt.scatter(x, y, c=f, s=100, vmin=0.00, vmax=0.10, cmap='RdYlBu', linewidth=2, alpha=1.0) plt.xlabel("z2") diff --git a/extra/sim-trhepd-rheed/sample/single_beam/mapper/prepare.sh b/extra/sim-trhepd-rheed/sample/single_beam/mapper/prepare.sh index 12048797..e78842d7 100644 --- a/extra/sim-trhepd-rheed/sample/single_beam/mapper/prepare.sh +++ b/extra/sim-trhepd-rheed/sample/single_beam/mapper/prepare.sh @@ -1,6 +1,4 @@ -rm -rf ./0 -rm -rf ./1 -rm -f ./devided_MeshData00000000.txt -rm -f ./log.txt -rm -f ./ColorMap.txt -rm -f ./time_* +#!/bin/sh + +rm -f ./bulkP.b +rm -rf ./output diff --git a/extra/sim-trhepd-rheed/sample/single_beam/mapper/ref_ColorMap.txt b/extra/sim-trhepd-rheed/sample/single_beam/mapper/ref_ColorMap.txt index b987214b..a3cbc85e 100644 --- a/extra/sim-trhepd-rheed/sample/single_beam/mapper/ref_ColorMap.txt +++ b/extra/sim-trhepd-rheed/sample/single_beam/mapper/ref_ColorMap.txt @@ -1,66 +1,66 @@ -6.000000 6.000000 0.047852 -6.000000 5.750000 0.055011 -6.000000 5.500000 0.053190 -6.000000 5.250000 0.038905 -6.000000 5.000000 0.047674 -6.000000 4.750000 0.065919 -6.000000 4.500000 0.053675 -6.000000 4.250000 0.061261 -6.000000 4.000000 0.069351 -6.000000 3.750000 0.071868 -6.000000 3.500000 0.072739 -5.750000 5.750000 0.065360 -5.750000 5.500000 0.066824 -5.750000 5.250000 0.054683 +6.000000 6.000000 0.047846 +6.000000 5.750000 0.055009 +6.000000 5.500000 0.053194 +6.000000 5.250000 0.038903 +6.000000 5.000000 0.047676 +6.000000 4.750000 0.065922 +6.000000 4.500000 0.053673 +6.000000 4.250000 0.061259 +6.000000 4.000000 0.069352 +6.000000 3.750000 0.071867 +6.000000 3.500000 0.072730 +5.750000 5.750000 0.065353 +5.750000 5.500000 0.066828 +5.750000 5.250000 0.054689 5.750000 5.000000 0.038405 -5.750000 4.750000 0.060612 -5.750000 4.500000 0.056336 -5.750000 4.250000 0.059282 -5.750000 4.000000 0.075596 -5.750000 3.750000 0.082127 -5.750000 3.500000 0.084814 -5.500000 5.500000 0.070996 -5.500000 5.250000 0.063472 -5.500000 5.000000 0.042930 -5.500000 4.750000 0.036998 +5.750000 4.750000 0.060613 +5.750000 4.500000 0.056340 +5.750000 4.250000 0.059283 +5.750000 4.000000 0.075594 +5.750000 3.750000 0.082130 +5.750000 3.500000 0.084815 +5.500000 5.500000 0.070998 +5.500000 5.250000 0.063473 +5.500000 5.000000 0.042935 +5.500000 4.750000 0.036995 5.500000 4.500000 0.046668 -5.500000 4.250000 0.043801 -5.500000 4.000000 0.069103 -5.500000 3.750000 0.081189 -5.500000 3.500000 0.088005 -5.250000 5.250000 0.059781 -5.250000 5.000000 0.044558 -5.250000 4.750000 0.025419 -5.250000 4.500000 0.025357 -5.250000 4.250000 0.015199 -5.250000 4.000000 0.047525 -5.250000 3.750000 0.067862 -5.250000 3.500000 0.078105 -5.000000 5.000000 0.039914 -5.000000 4.750000 0.037158 -5.000000 4.500000 0.033465 -5.000000 4.250000 0.023125 -5.000000 4.000000 0.029219 -5.000000 3.750000 0.052804 -5.000000 3.500000 0.063471 -4.750000 4.750000 0.049712 -4.750000 4.500000 0.051419 -4.750000 4.250000 0.046463 -4.750000 4.000000 0.040704 -4.750000 3.750000 0.050737 -4.750000 3.500000 0.061677 +5.500000 4.250000 0.043790 +5.500000 4.000000 0.069106 +5.500000 3.750000 0.081188 +5.500000 3.500000 0.088012 +5.250000 5.250000 0.059773 +5.250000 5.000000 0.044562 +5.250000 4.750000 0.025415 +5.250000 4.500000 0.025355 +5.250000 4.250000 0.015197 +5.250000 4.000000 0.047524 +5.250000 3.750000 0.067863 +5.250000 3.500000 0.078097 +5.000000 5.000000 0.039906 +5.000000 4.750000 0.037154 +5.000000 4.500000 0.033463 +5.000000 4.250000 0.023122 +5.000000 4.000000 0.029220 +5.000000 3.750000 0.052800 +5.000000 3.500000 0.063470 +4.750000 4.750000 0.049717 +4.750000 4.500000 0.051418 +4.750000 4.250000 0.046464 +4.750000 4.000000 0.040708 +4.750000 3.750000 0.050734 +4.750000 3.500000 0.061679 4.500000 4.500000 0.058291 -4.500000 4.250000 0.059301 -4.500000 4.000000 0.059123 -4.500000 3.750000 0.053177 -4.500000 3.500000 0.060729 -4.250000 4.250000 0.065580 +4.500000 4.250000 0.059305 +4.500000 4.000000 0.059127 +4.500000 3.750000 0.053183 +4.500000 3.500000 0.060732 +4.250000 4.250000 0.065582 4.250000 4.000000 0.069906 -4.250000 3.750000 0.065921 -4.250000 3.500000 0.062099 -4.000000 4.000000 0.074720 -4.000000 3.750000 0.076796 -4.000000 3.500000 0.075042 -3.750000 3.750000 0.082500 -3.750000 3.500000 0.084604 -3.500000 3.500000 0.088994 +4.250000 3.750000 0.065922 +4.250000 3.500000 0.062103 +4.000000 4.000000 0.074717 +4.000000 3.750000 0.076795 +4.000000 3.500000 0.075043 +3.750000 3.750000 0.082498 +3.750000 3.500000 0.084603 +3.500000 3.500000 0.088998 diff --git a/extra/sim-trhepd-rheed/sample/single_beam/minsearch/do.sh b/extra/sim-trhepd-rheed/sample/single_beam/minsearch/do.sh index 121237c7..53e87359 100644 --- a/extra/sim-trhepd-rheed/sample/single_beam/minsearch/do.sh +++ b/extra/sim-trhepd-rheed/sample/single_beam/minsearch/do.sh @@ -1,12 +1,14 @@ +#!/bin/sh + sh ./prepare.sh ./bulk.exe -time python3 ../../../../src/py2dmat_main.py input.toml | tee log.txt +time py2dmat-sim-trhepd-rheed input.toml | tee log.txt -echo diff res.txt ref.txt +echo diff output/res.txt ref.txt res=0 -diff res.txt ref.txt || res=$? +diff output/res.txt ref.txt || res=$? if [ $res -eq 0 ]; then echo Test PASS true diff --git a/extra/sim-trhepd-rheed/sample/single_beam/minsearch/input.toml b/extra/sim-trhepd-rheed/sample/single_beam/minsearch/input.toml index bb81c659..90859f2d 100644 --- a/extra/sim-trhepd-rheed/sample/single_beam/minsearch/input.toml +++ b/extra/sim-trhepd-rheed/sample/single_beam/minsearch/input.toml @@ -1,5 +1,6 @@ [base] dimension = 3 +output_dir = "output" [solver] name = "sim-trhepd-rheed" diff --git a/extra/sim-trhepd-rheed/sample/single_beam/minsearch/prepare.sh b/extra/sim-trhepd-rheed/sample/single_beam/minsearch/prepare.sh index da4ee3c8..e78842d7 100644 --- a/extra/sim-trhepd-rheed/sample/single_beam/minsearch/prepare.sh +++ b/extra/sim-trhepd-rheed/sample/single_beam/minsearch/prepare.sh @@ -1,2 +1,4 @@ -rm -rf 0 -rm -f ./res.txt +#!/bin/sh + +rm -f ./bulkP.b +rm -rf ./output diff --git a/extra/sim-trhepd-rheed/sample/single_beam/minsearch/ref.txt b/extra/sim-trhepd-rheed/sample/single_beam/minsearch/ref.txt index 8856eb9a..46964122 100644 --- a/extra/sim-trhepd-rheed/sample/single_beam/minsearch/ref.txt +++ b/extra/sim-trhepd-rheed/sample/single_beam/minsearch/ref.txt @@ -1,4 +1,4 @@ -fx = 7.382680568652868e-06 -z1 = 5.230524973874179 -z2 = 4.370622919269477 -z3 = 3.5961444501081647 +fx = 8.97501627575891e-06 +z1 = 5.230573154947887 +z2 = 4.3706085364407095 +z3 = 3.5961303342247577 diff --git a/extra/sim-trhepd-rheed/sample/single_beam/pamc/do.sh b/extra/sim-trhepd-rheed/sample/single_beam/pamc/do.sh index 088c9c65..b6128aff 100644 --- a/extra/sim-trhepd-rheed/sample/single_beam/pamc/do.sh +++ b/extra/sim-trhepd-rheed/sample/single_beam/pamc/do.sh @@ -1,8 +1,10 @@ +#!/bin/sh + sh prepare.sh ./bulk.exe -time mpiexec --oversubscribe -np 4 python3 ../../../../src/py2dmat_main.py input.toml +time mpiexec --oversubscribe -np 4 py2dmat-sim-trhepd-rheed input.toml echo diff output/fx.txt ref.txt res=0 diff --git a/extra/sim-trhepd-rheed/sample/single_beam/pamc/plot_result_2d.py b/extra/sim-trhepd-rheed/sample/single_beam/pamc/plot_result_2d.py index 2fd35b0c..4cafbd6f 100644 --- a/extra/sim-trhepd-rheed/sample/single_beam/pamc/plot_result_2d.py +++ b/extra/sim-trhepd-rheed/sample/single_beam/pamc/plot_result_2d.py @@ -56,7 +56,7 @@ def read_result(filename): ax.set_ylabel("z2") ax.set_xlim((3.0, 6.0)) ax.set_ylim((3.0, 6.0)) - ax.axis("square") + #ax.axis("square") cb_T = fig_T.colorbar( cm.ScalarMappable(norm=matplotlib.colors.Normalize(vmin=0.0, vmax=200.0), cmap="plasma"), ax=ax_T, diff --git a/extra/sim-trhepd-rheed/sample/single_beam/pamc/prepare.sh b/extra/sim-trhepd-rheed/sample/single_beam/pamc/prepare.sh index 6ab7de10..e78842d7 100644 --- a/extra/sim-trhepd-rheed/sample/single_beam/pamc/prepare.sh +++ b/extra/sim-trhepd-rheed/sample/single_beam/pamc/prepare.sh @@ -1 +1,4 @@ +#!/bin/sh + +rm -f ./bulkP.b rm -rf ./output diff --git a/extra/sim-trhepd-rheed/sample/single_beam/pamc/ref.txt b/extra/sim-trhepd-rheed/sample/single_beam/pamc/ref.txt index f6cf823d..fd63f8cd 100644 --- a/extra/sim-trhepd-rheed/sample/single_beam/pamc/ref.txt +++ b/extra/sim-trhepd-rheed/sample/single_beam/pamc/ref.txt @@ -4,24 +4,24 @@ # $4: number of replicas # $5: log(Z/Z0) # $6: acceptance ratio -0.0 0.06428002079611472 0.002703413400677839 40 0.0 0.795 -10.0 0.061399304916174735 0.002649424392996749 40 -0.6280819199879947 0.85 -20.0 0.05904248889111052 0.0031622711212952034 40 -1.2283060742855603 0.74 -30.0 0.04956921148431115 0.0028298565759159633 40 -1.7991035905899855 0.67 -40.0 0.04517205560690085 0.0029715891343378223 40 -2.279365931310788 0.67 -50.0 0.04557370230303248 0.0026633080724208866 40 -2.7142533218353453 0.585 -60.0 0.041932237363140556 0.002453792235951409 40 -3.1562660686094235 0.61 -70.0 0.036561397549081054 0.002360886357092571 40 -3.563935182615389 0.56 -80.0 0.0354471794531146 0.0021594999209347448 40 -3.919031991034559 0.55 -90.0 0.035625160750873075 0.0023402008301487845 40 -4.2649456104088985 0.54 -100.0 0.031974650903218826 0.002263656338496993 40 -4.610739486030327 0.4 -110.0 0.03072488741718593 0.001937596831145192 40 -4.920594343649788 0.38 -120.0 0.02653921254529723 0.0012569982649684298 40 -5.2208371349374705 0.365 -130.0 0.025550224772571406 0.00156295375190001 40 -5.483153160257912 0.295 -140.0 0.022297583893218786 0.0011371346999073423 40 -5.733906325651593 0.275 -150.0 0.02223060479851291 0.0012554744791681684 40 -5.9543397215944545 0.24 -160.0 0.02188715236861538 0.0016809841135400384 40 -6.173590843080755 0.24 -170.0 0.019508020368030232 0.0011503310662937148 40 -6.3871928865441046 0.185 -180.0 0.01941921830840254 0.0012869307080817182 40 -6.579748538256737 0.155 -190.0 0.01849213811053796 0.0010989271301243683 40 -6.77083850390733 0.145 -200.0 0.0179843015984561 0.0010143734053731663 40 -6.95342733400051 0.19 +0.0 0.06427959456998655 0.0027034650004592914 40 0.0 0.795 +10.0 0.061399024996706686 0.0026494325830859313 40 -0.6280770777860613 0.85 +20.0 0.05904270303275139 0.0031623440679957784 40 -1.2282982965860305 0.74 +30.0 0.04956920203307469 0.0028298334294021145 40 -1.7990971380214467 0.67 +40.0 0.04517117682063021 0.002971561055910097 40 -2.27935954920571 0.67 +50.0 0.04557330165280349 0.002663255501853 40 -2.714238505738728 0.585 +60.0 0.04169106892899466 0.0024143432975457643 40 -3.156247676174139 0.605 +70.0 0.03570581650334259 0.0018238873413932777 40 -3.56187453071531 0.59 +80.0 0.03715395848031844 0.0023427854739007234 40 -3.912435026606071 0.48 +90.0 0.033480179297140644 0.0020578648446761853 40 -4.273433293351014 0.435 +100.0 0.02927093316086471 0.002428722360438289 40 -4.600145685221869 0.41 +110.0 0.028038003505646003 0.002358926652188058 40 -4.881916427807947 0.32 +120.0 0.02545926098065321 0.002054283510857483 40 -5.152008537261002 0.255 +130.0 0.023755957697149332 0.0020394115387400063 40 -5.398713539910261 0.225 +140.0 0.023259570095007787 0.0020035797988618986 40 -5.628521718066179 0.305 +150.0 0.019910292914599226 0.001255622958977574 40 -5.853746316721769 0.175 +160.0 0.018548395706422305 0.001074639170486063 40 -6.049839309698577 0.16 +170.0 0.017589626237652922 0.0010009647330348605 40 -6.233083432360471 0.115 +180.0 0.017721248857765493 0.0011294616111162037 40 -6.407047940540563 0.145 +190.0 0.01651572518217781 0.0009311421253063132 40 -6.581818964816524 0.135 +200.0 0.017765963115187744 0.0013378827038506842 40 -6.745306049740788 0.145 diff --git a/extra/sim-trhepd-rheed/sample/single_beam/user_program/bulk.txt b/extra/sim-trhepd-rheed/sample/single_beam/user_program/bulk.txt new file mode 100644 index 00000000..d2833576 --- /dev/null +++ b/extra/sim-trhepd-rheed/sample/single_beam/user_program/bulk.txt @@ -0,0 +1,16 @@ +2,1,1 ,NH,NK,NDOM, -------- Ge(001) bulk +1,1 ,(NB,I=1,NDOM) +0,90 ,(RDOM,I=1,NDOM) +0,0 ,(IH(I),IK(I),I=1,NB) +10,0,0,0,0.1,7.0,0.1 ,BE,AZI,AZF,DAZ,GI,GF,DG +0.05,200 ,DZ,ML +1 ,NELM +32,1.0,0.1 ,Ge Z,da1,sap +0.4,0.4,0.4 ,BH(I),BK(I),BZ(I) +6,4.000668747,4.000668747,90,2.8289,0.5,0.5 ,NSG,AA,BB,GAM,CC,DX,DY +2 ,NATM +1,1.0,0.00000,0.50000, 2.121675 ,IELM(I),ocr(I),X(I),Y(I),Z(I) +1,1.0,0.00000,0.00000, 0.707225 ,IELM(I),ocr(I),X(I),Y(I),Z(I) + + + diff --git a/extra/sim-trhepd-rheed/sample/single_beam/user_program/do.sh b/extra/sim-trhepd-rheed/sample/single_beam/user_program/do.sh new file mode 100644 index 00000000..082a6834 --- /dev/null +++ b/extra/sim-trhepd-rheed/sample/single_beam/user_program/do.sh @@ -0,0 +1,23 @@ +#!/bin/sh + +sh ./prepare.sh + +./bulk.exe + +time python3 simple.py +#time python3 simple2.py + +result=output/res.txt +reference=ref.txt + +echo diff $result $reference +res=0 +diff $result $reference || res=$? +if [ $res -eq 0 ]; then + echo Test PASS + true +else + echo Test FAILED: $result and $reference differ + false +fi + diff --git a/extra/sim-trhepd-rheed/sample/single_beam/user_program/experiment.txt b/extra/sim-trhepd-rheed/sample/single_beam/user_program/experiment.txt new file mode 100644 index 00000000..ea7b680c --- /dev/null +++ b/extra/sim-trhepd-rheed/sample/single_beam/user_program/experiment.txt @@ -0,0 +1,70 @@ +0.100000 0.002374995 +0.200000 0.003614789 +0.300000 0.005023215 +0.400000 0.006504978 +0.500000 0.007990674 +0.600000 0.009441623 +0.700000 0.010839445 +0.800000 0.012174578 +0.900000 0.013439485 +1.000000 0.014625579 +1.100000 0.015721463 +1.200000 0.016710969 +1.300000 0.017570142 +1.400000 0.018262420 +1.500000 0.018731411 +1.600000 0.018892641 +1.700000 0.018630851 +1.800000 0.017816493 +1.900000 0.016354279 +2.000000 0.014256366 +2.100000 0.011700068 +2.200000 0.009019956 +2.300000 0.006622730 +2.400000 0.004872397 +2.500000 0.004013645 +2.600000 0.004160161 +2.700000 0.005307435 +2.800000 0.007299786 +2.900000 0.009740557 +3.000000 0.011955639 +3.100000 0.013159801 +3.200000 0.012817227 +3.300000 0.010957880 +3.400000 0.008183372 +3.500000 0.005337202 +3.600000 0.003084209 +3.700000 0.001682330 +3.800000 0.001032496 +3.900000 0.000877873 +4.000000 0.000977533 +4.100000 0.001178203 +4.200000 0.001407336 +4.300000 0.001636711 +4.400000 0.001848435 +4.500000 0.002018552 +4.600000 0.002124789 +4.700000 0.002175465 +4.800000 0.002243257 +4.900000 0.002471714 +5.000000 0.003012527 +5.100000 0.003881614 +5.200000 0.004823572 +5.300000 0.005364254 +5.400000 0.005117472 +5.500000 0.004107123 +5.600000 0.002763088 +5.700000 0.001583937 +5.800000 0.000819761 +5.900000 0.000437166 +6.000000 0.000281652 +6.100000 0.000222495 +6.200000 0.000194182 +6.300000 0.000176249 +6.400000 0.000166092 +6.500000 0.000163569 +6.600000 0.000165388 +6.700000 0.000164956 +6.800000 0.000155324 +6.900000 0.000133175 +7.000000 0.000101185 diff --git a/extra/sim-trhepd-rheed/sample/single_beam/user_program/input.toml b/extra/sim-trhepd-rheed/sample/single_beam/user_program/input.toml new file mode 100644 index 00000000..920e3e09 --- /dev/null +++ b/extra/sim-trhepd-rheed/sample/single_beam/user_program/input.toml @@ -0,0 +1,29 @@ +[base] +dimension = 3 +output_dir = "output" + +[solver] +name = "sim-trhepd-rheed" +run_scheme = "subprocess" +generate_rocking_curve = true + +[solver.config] +cal_number = [1] + +[solver.param] +string_list = ["value_01", "value_02", "value_03" ] + +[solver.reference] +path = "experiment.txt" +exp_number = [1] + +[solver.post] +normalization = "TOTAL" + +[algorithm] +name = "minsearch" +label_list = ["z1", "z2", "z3"] +[algorithm.param] +min_list = [0.0, 0.0, 0.0] +max_list = [10.0, 10.0, 10.0] +initial_list = [5.25, 4.25, 3.50] diff --git a/extra/sim-trhepd-rheed/sample/single_beam/user_program/prepare.sh b/extra/sim-trhepd-rheed/sample/single_beam/user_program/prepare.sh new file mode 100644 index 00000000..e78842d7 --- /dev/null +++ b/extra/sim-trhepd-rheed/sample/single_beam/user_program/prepare.sh @@ -0,0 +1,4 @@ +#!/bin/sh + +rm -f ./bulkP.b +rm -rf ./output diff --git a/extra/sim-trhepd-rheed/sample/single_beam/user_program/ref.txt b/extra/sim-trhepd-rheed/sample/single_beam/user_program/ref.txt new file mode 100644 index 00000000..46964122 --- /dev/null +++ b/extra/sim-trhepd-rheed/sample/single_beam/user_program/ref.txt @@ -0,0 +1,4 @@ +fx = 8.97501627575891e-06 +z1 = 5.230573154947887 +z2 = 4.3706085364407095 +z3 = 3.5961303342247577 diff --git a/extra/sim-trhepd-rheed/sample/single_beam/user_program/simple.py b/extra/sim-trhepd-rheed/sample/single_beam/user_program/simple.py new file mode 100644 index 00000000..ffc362d1 --- /dev/null +++ b/extra/sim-trhepd-rheed/sample/single_beam/user_program/simple.py @@ -0,0 +1,15 @@ +import numpy as np + +import py2dmat +import py2dmat.algorithm.min_search +import sim_trhepd_rheed + +info = py2dmat.Info.from_file("input.toml") + +solver = sim_trhepd_rheed.Solver(info) + +runner = py2dmat.Runner(solver, info) + +alg = py2dmat.algorithm.min_search.Algorithm(info, runner) + +alg.main() diff --git a/extra/sim-trhepd-rheed/sample/single_beam/user_program/simple2.py b/extra/sim-trhepd-rheed/sample/single_beam/user_program/simple2.py new file mode 100644 index 00000000..322aef38 --- /dev/null +++ b/extra/sim-trhepd-rheed/sample/single_beam/user_program/simple2.py @@ -0,0 +1,47 @@ +import numpy as np + +import py2dmat +import py2dmat.algorithm.min_search +import sim_trhepd_rheed + +params = { + "base": { + "dimension": 3, + "output_dir": "output", + }, + "solver": { + "run_scheme": "subprocess", + "generate_rocking_curve": True, + "config": { + "cal_number": [1], + }, + "param": { + "string_list": ["value_01", "value_02", "value_03"], + }, + "reference": { + "path": "experiment.txt", + "exp_number": [1], + }, + "post": { + "normalization": "TOTAL", + }, + }, + "algorithm": { + "label_list": ["z1", "z2", "z3"], + "param": { + "min_list": [ 0.0, 0.0, 0.0 ], + "max_list": [ 10.0, 10.0, 10.0 ], + "initial_list": [ 5.25, 4.25, 3.50], + }, + }, +} + +info = py2dmat.Info(params) + +solver = sim_trhepd_rheed.Solver(info) + +runner = py2dmat.Runner(solver, info) + +alg = py2dmat.algorithm.min_search.Algorithm(info, runner) + +alg.main() diff --git a/extra/sim-trhepd-rheed/sample/single_beam/user_program/template.txt b/extra/sim-trhepd-rheed/sample/single_beam/user_program/template.txt new file mode 100644 index 00000000..6ac0038d --- /dev/null +++ b/extra/sim-trhepd-rheed/sample/single_beam/user_program/template.txt @@ -0,0 +1,16 @@ +2 ,NELMS, -------- Ge(001)-c4x2 +32,1.0,0.1 ,Ge Z,da1,sap +0.6,0.6,0.6 ,BH(I),BK(I),BZ(I) +32,1.0,0.1 ,Ge Z,da1,sap +0.4,0.4,0.4 ,BH(I),BK(I),BZ(I) +9,4,0,0,2, 2.0,-0.5,0.5 ,NSGS,msa,msb,nsa,nsb,dthick,DXS,DYS +8 ,NATM +1, 1.0, 1.34502591 1 value_01 ,IELM(I),ocr(I),X(I),Y(I),Z(I) +1, 1.0, 0.752457792 1 value_02 +2, 1.0, 1.480003343 1.465005851 value_03 +2, 1.0, 2 1.497500418 2.281675 +2, 1.0, 1 1.5 1.991675 +2, 1.0, 0 1 0.847225 +2, 1.0, 2 1 0.807225 +2, 1.0, 1.009998328 1 0.597225 +1,1 ,(WDOM,I=1,NDOM) diff --git a/extra/sxrd/doc/.gitignore b/extra/sxrd/doc/.gitignore new file mode 100644 index 00000000..c795b054 --- /dev/null +++ b/extra/sxrd/doc/.gitignore @@ -0,0 +1 @@ +build \ No newline at end of file diff --git a/extra/sxrd/doc/ja/Makefile b/extra/sxrd/doc/ja/Makefile new file mode 100644 index 00000000..f86728d9 --- /dev/null +++ b/extra/sxrd/doc/ja/Makefile @@ -0,0 +1,20 @@ +# Minimal makefile for Sphinx documentation +# + +# You can set these variables from the command line, and also +# from the environment for the first two. +SPHINXOPTS ?= +SPHINXBUILD ?= sphinx-build +SOURCEDIR = source +BUILDDIR = build + +# Put it first so that "make" without argument is like "make help". +help: + @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) + +.PHONY: help Makefile + +# Catch-all target: route all unknown targets to Sphinx using the new +# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). +%: Makefile + @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" -W $(SPHINXOPTS) $(O) diff --git a/extra/sxrd/doc/ja/make.bat b/extra/sxrd/doc/ja/make.bat new file mode 100644 index 00000000..6247f7e2 --- /dev/null +++ b/extra/sxrd/doc/ja/make.bat @@ -0,0 +1,35 @@ +@ECHO OFF + +pushd %~dp0 + +REM Command file for Sphinx documentation + +if "%SPHINXBUILD%" == "" ( + set SPHINXBUILD=sphinx-build +) +set SOURCEDIR=source +set BUILDDIR=build + +if "%1" == "" goto help + +%SPHINXBUILD% >NUL 2>NUL +if errorlevel 9009 ( + echo. + echo.The 'sphinx-build' command was not found. Make sure you have Sphinx + echo.installed, then set the SPHINXBUILD environment variable to point + echo.to the full path of the 'sphinx-build' executable. Alternatively you + echo.may add the Sphinx directory to PATH. + echo. + echo.If you don't have Sphinx installed, grab it from + echo.http://sphinx-doc.org/ + exit /b 1 +) + +%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% +goto end + +:help +%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% + +:end +popd diff --git a/extra/sxrd/doc/ja/source/acknowledgement.rst b/extra/sxrd/doc/ja/source/acknowledgement.rst new file mode 100644 index 00000000..15e670a7 --- /dev/null +++ b/extra/sxrd/doc/ja/source/acknowledgement.rst @@ -0,0 +1,6 @@ +================================ +謝辞 +================================ + +本ソフトウェアは、科研費(2019-2021年度)「超並列マシンを用いた計算統計と測定技術の融合」および東京大学物性研究所 ソフトウェア高度化プロジェクト (2020, 2021, 2024 年度) の支援を受け開発されました。 + diff --git a/extra/sxrd/doc/ja/source/conf.py b/extra/sxrd/doc/ja/source/conf.py new file mode 100644 index 00000000..e027cd84 --- /dev/null +++ b/extra/sxrd/doc/ja/source/conf.py @@ -0,0 +1,141 @@ +# Configuration file for the Sphinx documentation builder. +# +# This file only contains a selection of the most common options. For a full +# list see the documentation: +# https://www.sphinx-doc.org/en/master/usage/configuration.html + +# -- Path setup -------------------------------------------------------------- + +# If extensions (or modules to document with autodoc) are in another directory, +# add these directories to sys.path here. If the directory is relative to the +# documentation root, use os.path.abspath to make it absolute, like shown here. +# +# import os +# import sys +# sys.path.insert(0, os.path.abspath('.')) + + +# -- Project information ----------------------------------------------------- + +project = '2DMAT solver module: sxrd' +copyright = '2020-, 2DMAT developers' +author = '2DMAT developers' + +version = '1.0' +# The full version, including alpha/beta/rc tags +release = '1.0-dev' + +# -- General configuration --------------------------------------------------- + +# Add any Sphinx extension module names here, as strings. They can be +# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom +# ones. +extensions = ['sphinx.ext.autodoc', + 'sphinx.ext.mathjax' +] + +# Add any paths that contain templates here, relative to this directory. +templates_path = ['_templates'] + +# The master toctree document. +master_doc = 'index' + +# List of patterns, relative to source directory, that match files and +# directories to ignore when looking for source files. +# This pattern also affects html_static_path and html_extra_path. +exclude_patterns = [] + + +# -- Options for HTML output ------------------------------------------------- + +# The theme to use for HTML and HTML Help pages. See the documentation for +# a list of builtin themes. +# +html_theme = 'haiku' + +# Add any paths that contain custom static files (such as style sheets) here, +# relative to this directory. They are copied after the builtin static files, +# so a file named "default.css" will overwrite the builtin "default.css". +# html_static_path = ['_static'] + +# Theme options are theme-specific and customize the look and feel of a theme +# further. For a list of options available for each theme, see the +# documentation. +# +html_theme_options = { +} + +# Custom sidebar templates, must be a dictionary that maps document names +# to template names. +# +# This is required for the alabaster theme +# refs: http://alabaster.readthedocs.io/en/latest/installation.html#sidebars +html_sidebars = { + '**': [ + 'relations.html', # needs 'show_related': True theme option to display + 'searchbox.html', + ] +} + + +# The language for content autogenerated by Sphinx. Refer to documentation +# for a list of supported languages. +# +# This is also used if you do content translation via gettext catalogs. +# Usually you set "language" from the command line for these cases. +language = 'ja' + +# -- Options for LaTeX output --------------------------------------------- + +latex_engine = 'uplatex' + +latex_elements = { + # The paper size ('letterpaper' or 'a4paper'). + # + # 'papersize': 'letterpaper', + + # The font size ('10pt', '11pt' or '12pt'). + # + # 'pointsize': '10pt', + + # Additional stuff for the LaTeX preamble. + # + # 'preamble': '', + + # Latex figure (float) alignment + # + # 'figure_align': 'htbp', +} + +# Grouping the document tree into LaTeX files. List of tuples +# (source start file, target name, title, +# author, documentclass [howto, manual, or own class]). +latex_documents = [ + (master_doc, 'userguide_sxrd_ja.tex', u'2DMAT sxrd Documentation', + u'University of Tokyo', 'manual', 'True'), +] + +# latex_docclass = {'manual': 'jsbook'} + +# -- Options for Texinfo output ------------------------------------------- + +# Grouping the document tree into Texinfo files. List of tuples +# (source start file, target name, title, author, +# dir menu entry, description, category) +texinfo_documents = [ + (master_doc, '2dmat', u'2DMAT Documentation', + author, '2DMAT', 'One line description of project.', + 'Miscellaneous'), +] + + +html_sidebars = { + '**': [ + 'about.html', + 'navigation.html', + 'relations.html', + 'searchbox.html', + 'donate.html', + ] +} + diff --git a/extra/sxrd/doc/ja/source/contact.rst b/extra/sxrd/doc/ja/source/contact.rst new file mode 100644 index 00000000..37665f94 --- /dev/null +++ b/extra/sxrd/doc/ja/source/contact.rst @@ -0,0 +1,22 @@ +お問い合わせ +========================================= + +2DMAT-SXRD に関するお問い合わせはこちらにお寄せください。 + +- バグ報告 + + 2DMAT-SXRD のバグ関連の報告は `GitHubのIssues `_ で受け付けています。 + + バグを早期に解決するため、報告時には次のガイドラインに従ってください。 + + - 使用している 2DMAT-SXRD のバージョンを指定してください。 + + - インストールに問題がある場合には、使用しているオペレーティングシステムとコンパイラの情報についてお知らせください。 + + - 実行に問題が生じた場合は、実行に使用した入力ファイルとその出力を記載してください。 + +- その他 + + 研究に関連するトピックなどGitHubのIssuesで相談しづらいことを問い合わせる際には、以下の連絡先にコンタクトをしてください。 + + E-mail: ``2dmat-dev__at__issp.u-tokyo.ac.jp`` (_at_を@に変更してください) diff --git a/extra/sxrd/doc/ja/source/index.rst b/extra/sxrd/doc/ja/source/index.rst new file mode 100644 index 00000000..d4956bfd --- /dev/null +++ b/extra/sxrd/doc/ja/source/index.rst @@ -0,0 +1,18 @@ +.. 2dmat documentation master file, created by + sphinx-quickstart on Tue May 26 18:44:52 2020. + You can adapt this file completely to your liking, but it should at least + contain the root `toctree` directive. + +Welcome to 2DMAT's documentation! +================================== + +.. toctree:: + :maxdepth: 2 + :caption: Contents: + + introduction + install + tutorial/index + solver + acknowledgement + contact diff --git a/extra/sxrd/doc/ja/source/install.rst b/extra/sxrd/doc/ja/source/install.rst new file mode 100644 index 00000000..8be98fb5 --- /dev/null +++ b/extra/sxrd/doc/ja/source/install.rst @@ -0,0 +1,99 @@ +2DMAT-SXRD のインストール +================================ + +実行環境・必要なパッケージ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +- python 3.6.8 以上 + + - 必要なpythonパッケージ + + - tomli (>= 1.2) + - numpy (>= 1.14) + +- py2dmat version 3.0 以降 + +- sxrdcalc + + - Cコンパイラおよび GNU Scientific Library が必要 + +ダウンロード・インストール +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +1. py2dmat をインストールする + + - ソースコードからのインストール + + リポジトリから py2dmat のソースファイルを取得します。 + + .. code-block:: bash + + $ git clone -b update https://github.com/issp-center-dev/2DMAT.git + + pip コマンドを実行してインストールします。 + + .. code-block:: bash + + $ cd 2DMAT + $ python3 -m pip install . + + ``--user`` オプションを付けるとローカル (``$HOME/.local``) にインストールできます。 + + ``python3 -m pip install .[all]`` を実行するとオプションのパッケージも同時にインストールします。 + +2. sxrdcalc をインストールする + + - sxrdcalc は GitHubの以下のURLで公開されています。 + + https://github.com/sxrdcalc/sxrdcalc + + サイトにアクセスし、「Code」-「Download ZIP」よりソースコード一式をダウンロードします。以下のコマンドで取得することもできます。 + + .. code-block:: bash + + $ wget -O sxrdcalc.zip https://github.com/sxrdcalc/sxrdcalc/archive/refs/heads/main.zip + + - ソースパッケージを展開し、コンパイルします。必要に応じて sxrdcalc-main/ 内の Makefile を編集してください。コンパイルには GNU Scientific Library が必要です。 + + .. code-block:: bash + + $ unzip sxrdcalc.zip + $ cd sxrdcalc-main + $ make + + コンパイルが成功すると実行形式 ``sxrdcalc`` が作成されます。 ``sxrdcalc`` を PATH の通ったディレクトリ (環境変数 PATH に列挙された、実行プログラムを探索するディレクトリ) に配置するか、実行時にディレクトリ名をつけて指定します。 + +3. 2DMAT-SXRD をインストールする + + 2DMAT-SXRD のソースファイルは、現在は py2dmat のソースパッケージの extra ディレクトリ内に配置されています。1. に記述した手順に従って py2dmat のソースファイルを取得した後、 ``extra/sxrd`` ディレクトリ内で pip コマンドを実行してインストールします。 + + .. code-block:: bash + + $ cd 2DMAT/extra/sxrd + $ python3 -m pip install . + + ``--user`` オプションを付けるとローカル (``$HOME/.local``) にインストールできます。 + + 2DMAT-SXRD のライブラリと、実行コマンド ``py2dmat-sxrd`` がインストールされます。 + + +実行方法 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +2DMAT では順問題ソルバーと逆問題解析アルゴリズムを組み合わせて解析を行います。 +SXRDの解析を行うには次の2通りの方法があります。 + +1. このパッケージに含まれる py2dmat-sxrd プログラムを利用して解析を行います。ユーザは、プログラムの入力となるパラメータファイルを TOML 形式で作成し、プログラムの引数に指定してコマンドを実行します。逆問題解析のアルゴリズムはパラメータで選択できます。 + +2. 2DMAT-SXRD ライブラリと 2DMAT フレームワークを用いてプログラムを作成し、解析を行います。逆問題解析アルゴリズムは import するモジュールで選択します。プログラム中に入力データの生成を組み込むなど、柔軟な使い方ができます。 + +パラメータの種類やライブラリの利用方法については以降の章で説明します。 + + +アンインストール +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +2DMAT-SXRD モジュールおよび 2DMAT モジュールをアンインストールするには、以下のコマンドを実行します。 + +.. code-block:: bash + + $ python3 -m pip uninstall py2dmat-sxrd py2dmat diff --git a/extra/sxrd/doc/ja/source/introduction.rst b/extra/sxrd/doc/ja/source/introduction.rst new file mode 100644 index 00000000..743e3e4f --- /dev/null +++ b/extra/sxrd/doc/ja/source/introduction.rst @@ -0,0 +1,87 @@ +はじめに +================================ + +2DMATとは +-------------------------------- + +2DMATは、順問題ソルバーに対して探索アルゴリズムを適用して最適解を探すためのフレームワークです。 +順問題ソルバーはユーザー自身で定義できるほか、標準的な順問題ソルバーとして2次元物質構造解析向け実験データ解析ソフトウェアが用意されています。 +順問題ソルバーでは、原子位置などをパラメータとし得られたデータと実験データとのずれを損失関数として与えます。 +探索アルゴリズムによりこの損失関数を最小化する最適なパラメータを推定します。 +現バージョンでは、順問題ソルバーとして量子ビーム回折実験の全反射高速陽電子回折法(Total-Reflection High-Energy Positron Diffraction: TRHEPD), 表面X線回折法(Surface X-ray Diffraction: SXRD), 低速電子線回折法(Low Energy Electron Diffraction: LEED)に対応しており、 +探索アルゴリズムはNelder-Mead法, グリッド型探索法, ベイズ最適化, レプリカ交換モンテカルロ法, ポピュレーションアニーリングモンテカルロ法が実装されています。 + +2DMAT-SXRDとは +-------------------------------- + +sxrdcalc [1]は表面X線回折データを解析するプログラムで、表層からのX線回折強度の計算、実験データのPatterson mapの計算、Levenberg-Marquardt法またはsimulated annealing法によりモデル構造を実験データにフィットさせる計算を行うことができます。2DMAT-SXRDは、このsxrdcalcを2DMATの順問題ソルバーとして利用するためのアダプタライブラリです。2DMAT v2.x の順問題ソルバーの一つとして開発されたコンポーネントを、独立なモジュールとして再構成したものです。2DMAT および sxrdcalc と組み合わせて使用します。 + +[1] W. Voegli, et. al., Applied Surface Science 252, 5259 (2006). + +ライセンス +-------------------------------- +| 本ソフトウェアのプログラムパッケージおよびソースコード一式はGNU + General Public License version 3 (GPL v3) に準じて配布されています。 + +Copyright (c) <2020-> The University of Tokyo. All rights reserved. + +本ソフトウェアは2020年度および2024年度 東京大学物性研究所 ソフトウェア高度化プロジェクトの支援を受け開発されました。 +2DMATを引用する際には以下の文献を引用してください。 + +"Data-analysis software framework 2DMAT and its application to experimental measurements for two-dimensional material structures", +Y. Motoyama, K. Yoshimi, I. Mochizuki, H. Iwamoto, H. Ichinose, and T. Hoshi, Computer Physics Communications 280, 108465 (2022). + +Bibtex: + +| @article{MOTOYAMA2022108465, +| title = {Data-analysis software framework 2DMAT and its application to experimental measurements for two-dimensional material structures}, +| journal = {Computer Physics Communications}, +| volume = {280}, +| pages = {108465}, +| year = {2022}, +| issn = {0010-4655}, +| doi = {https://doi.org/10.1016/j.cpc.2022.108465}, +| url = {https://www.sciencedirect.com/science/article/pii/S0010465522001849}, +| author = {Yuichi Motoyama and Kazuyoshi Yoshimi and Izumi Mochizuki and Harumichi Iwamoto and Hayato Ichinose and Takeo Hoshi} +| } + + + +バージョン履歴 +-------------------------------- + +2DMAT-SXRD + +- v1.0.0 : 2024-XX-XX + +2DMAT + +- v2.1.0 : 2022-04-08 +- v2.0.0 : 2022-01-17 +- v1.0.1 : 2021-04-15 +- v1.0.0 : 2021-03-12 +- v0.1.0 : 2021-02-08 + +主な開発者 +-------------------------------- +2DMATは以下のメンバーで開発しています. + +- v3.0.0 - + + - 本山 裕一 (東京大学 物性研究所) + - 吉見 一慶 (東京大学 物性研究所) + - 青山 龍美 (東京大学 物性研究所) + - 星 健夫 (核融合科学研究所) + +- v2.0.0 - + + - 本山 裕一 (東京大学 物性研究所) + - 吉見 一慶 (東京大学 物性研究所) + - 岩本 晴道 (鳥取大学 大学院工学研究科) + - 星 健夫 (鳥取大学 大学院工学研究科) + +- v0.1.0 - + + - 本山 裕一 (東京大学 物性研究所) + - 吉見 一慶 (東京大学 物性研究所) + - 星 健夫 (鳥取大学 大学院工学研究科) diff --git a/doc/ja/source/solver/sxrd.rst b/extra/sxrd/doc/ja/source/solver.rst similarity index 76% rename from doc/ja/source/solver/sxrd.rst rename to extra/sxrd/doc/ja/source/solver.rst index dfc2b1a2..eb080578 100644 --- a/doc/ja/source/solver/sxrd.rst +++ b/extra/sxrd/doc/ja/source/solver.rst @@ -1,263 +1,248 @@ -``sxrd`` ソルバー -*********************************************** - -``sxrd`` は ``sxrdcalc`` を用いて原子位置 :math:`x` や原子の占有率、デバイワラー因子を与えることで Rocking curve を計算し、実験で得られた Rocking curve からの誤差を :math:`f(x)` として返す ``Solver`` です。 - -前準備 -~~~~~~~~~~~~ - -``sxrdcalc`` は ``py2dmat`` から呼び出されます。 -そのため、あらかじめ ``sxrdcalc`` をインストールしておく必要があります。 -``sxrdcalc`` はGitHubの以下のURLで公開されています。 - -https://github.com/sxrdcalc/sxrdcalc - -サイトにアクセスの上、「Code」-「Download zip」よりソースコード一式をダウンロードします。 -zipファイル解凍後に、Makefileを自身の計算環境に合うように編集したあとに、 ``make`` コマンドを打つことで ``sxrdcalc`` の実行ファイルができます。 - -なお、 ``py2dmat`` を実行する前にあらかじめバルクデータを作成する必要があります(フォーマットについては、後述のソルバー用補助ファイルをご覧ください)。 - -入力パラメータ -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -``solver`` セクション中のサブセクション -``config``, ``post``, ``param``, ``reference`` を利用します。 - -[``config``] セクション -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -- ``sxrd_exec_file`` - - 形式: string型 - - 説明: ソルバー ``sxrdcalc`` へのパス - -- ``bulk_struc_in_file`` - - 形式: string型 - - 説明: バルク構造のインプットファイル。 - -以下、入力例を記載します。 - -.. code-block:: - - [config] - sxrd_exec_file = "../../sxrdcalc" - bulk_struc_in_file = "sic111-r3xr3.blk" - -[``param``] セクション -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -- ``scale_factor`` - - 形式: float型 (default: 1.0) - - 説明: ターゲットのRocking Curveとシミュレーションで得られるRocking Curveのスケールの値。 - -- ``opt_scale_factor`` - - 形式: bool型 (default: false) - - 説明: ``scale_factor`` を最適化するかどうかのフラグ。 - -- ``type_vector`` - - 形式: list型 - - 説明: 最適化する変数の種類を正の数のlist形式で指定します。 - [``param.atom``]サブセクションで指定されるtypeの種類と、本リストが対応します。 - typeが同じ場合は、同じ変数として取り扱われます。 - - -[``param.domain``] サブセクション ------------------------------------ -本セクションではドメインを作成します。作成したいドメイン分、定義する必要があります。 -[``param.domain.atom``] サブサブセクションでドメイン内の情報を指定します。 - -- ``domain_occupancy`` - - 形式: float型 - - 説明: ドメイン全体の占有率。 - -[``param.domain.atom``] サブセクション ---------------------------------------------- -本セクションはドメインに所属する最適化したい原子の個数分定義を行う必要があります。 -なお、変数の種類を表すtypeは、正の数で入力します。 - -- ``name`` - - 形式: string型 (重複可) - - 説明: 最適化する原子の名前。 - -- ``pos_center`` - - 形式: list型 - - 説明: 原子の中心座標。[:math:`x_0, y_0, z_0`]の形式で記載します(:math:`x_0, y_0, z_0` はfloat)。 - -- ``DWfactor`` - - 形式: float型 - - 説明: デバイワラー因子(単位は :math:`\text{Å}^{2}` )。 - -- ``occupancy`` - - 形式: float型 (default: 1.0) - - 説明: 原子の占有率。 - -- ``displace_vector`` (省略可) - - 形式: listのlist型 - - 説明: 原子を動かす方向を定義するベクトル。最大3方向まで指定可能。 - 各リストで変位ベクトルと初期値を[type, :math:`D_{i1}, D_{i2}, D_{i3}` ]のようにして定義する(typeはint、:math:`D_{i1}, D_{i2}, D_{i3}` はfloat)。 - 与えられた情報に従い、 - :math:`dr_i = (D_{i1} \vec{a} + D_{i2} \vec{b} + D_{i3} \vec{c}) * l_{type}` - のように :math:`l_{type}` を変位させます( :math:`\vec{a}, \vec{b}, \vec{c}` は ``bulk_struc_in_file`` もしくは ``struc_in_file`` で指定された入力ファイルに記載された単位格子ベクトルを表します)。 - -- ``opt_DW`` (省略可) - - 形式: list型 - - 説明: デバイワラー因子を変化させる場合のスケールを設定します。 - [type, scale]のようにして定義されます。 - -- ``opt_occupancy`` - - 形式: int型 - - 説明: 定義した場合、占有率が変化する。指定された変数がtypeを表します。 - - -以下、入力例を記載します。 - -.. code-block:: - - [param] - scale_factor = 1.0 - type_vector = [1, 2] - - [[param.domain]] - domain_occupancy = 1.0 - [[param.domain.atom]] - name = "Si" - pos_center = [0.00000000, 0.00000000, 1.00000000] - DWfactor = 0.0 - occupancy = 1.0 - displace_vector = [[1, 0.0, 0.0, 1.0]] - [[param.domain.atom]] - name = "Si" - pos_center = [0.33333333, 0.66666667, 1.00000000] - DWfactor = 0.0 - occupancy = 1.0 - displace_vector = [[1, 0.0, 0.0, 1.0]] - [[param.domain.atom]] - name = "Si" - pos_center = [0.66666667, 0.33333333, 1.00000000] - DWfactor = 0.0 - occupancy = 1.0 - displace_vector = [[1, 0.0, 0.0, 1.0]] - [[param.domain.atom]] - name = "Si" - pos_center = [0.33333333, 0.33333333, 1.00000000] - DWfactor = 0.0 - occupancy = 1.0 - displace_vector = [[2, 0.0, 0.0, 1.0]] - - -[``reference``] セクション -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -- ``f_in_file`` - - 形式: string型 - - 説明: ターゲットとするロッキングカーブのインプットファイルへのパス。 - - -ソルバー用補助ファイル -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -ターゲット参照ファイル -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -ターゲットにするデータが格納されたファイル。 [``reference``] セクションの ``f_in_file`` でパスを指定します。 -1行ごとに ``h k l F sigma`` が出力されます。ここで、 ``h, k, l`` は波数, ``F`` は強度、 ``sigma`` は ``F`` の不確かさをそれぞれ表します。 -以下、ファイル例を記載します。 - -.. code-block:: - - 0.000000 0.000000 0.050000 572.805262 0.1 - 0.000000 0.000000 0.150000 190.712559 0.1 - 0.000000 0.000000 0.250000 114.163340 0.1 - 0.000000 0.000000 0.350000 81.267319 0.1 - 0.000000 0.000000 0.450000 62.927325 0.1 - ... - -バルク構造ファイル -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -バルク構造のデータが格納されたファイル。 [``config``] セクションの ``bulk_struc_in_file`` でパスを指定します。 -1行目がコメント, 2行目が ``a b c alpha beta gamma`` を表します。 -ここで、 ``a`` , ``b``, ``c`` はユニットセルの格子定数、 ``alpha``, ``beta``, ``gamma`` はそれらのなす角です。 -3行目以降は ``atomsymbol r1 r2 r3 DWfactor occupancy`` を指定します。 -ここで、 ``atomsymbol`` は原子種、 ``r1``, ``r2``, ``r3`` は原子の位置座標、 ``DWfactor`` はデバイワラー因子、 ``occupancy`` は占有率をそれぞれ表します。 -以下、ファイル例を記載します。 - -.. code-block:: - - # SiC(111) bulk - 5.33940 5.33940 7.5510487 90.000000 90.000000 120.000000 - Si 0.00000000 0.00000000 0.00000000 0.0 1.0 - Si 0.33333333 0.66666667 0.00000000 0.0 1.0 - Si 0.66666667 0.33333333 0.00000000 0.0 1.0 - C 0.00000000 0.00000000 0.25000000 0.0 1.0 - ... - -出力ファイル -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -``sxrd`` では、 計算時に出力されるファイルが、ランクの番号が記載されたフォルダ下に一式出力されます。 -ここでは、 ``py2dmat`` で独自に出力するファイルについて説明します。 - -``stdout`` -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -``sxrd`` が出力する標準出力が記載されています。 -sxrdのLeast square fittingに対して、初期パラメータとして変数を与え、1ショット計算(iteration数=0)をした際のRfactorを計算します。 -RfactorはFit results以下のRに記載されます。 -以下、出力例です。 - -.. code-block:: - - --------------------------------------- - Program py2dmat/mapper_sxrd/sxrdcalc for surface x-ray diffraction calculations. - Version 3.3.3 - August 2019 - - - Inputfile: lsfit.in - Least-squares fit of model to experimental structure factors. - - ... - - Fit results: - Fit not converged after 0 iterations. - Consider increasing the maximum number of iterations or find better starting values. - chi^2 = 10493110.323318, chi^2 / (degree of freedom) = 223257.666454 (Intensities) - chi^2 = 3707027.897897, chi^2 / (degree of freedom) = 78872.933998 (Structure factors) - R = 0.378801 - - Scale factor: 1.00000000000000 +/- 0.000196 - Parameter Nr. 1: 3.500000 +/- 299467640982.406067 - Parameter Nr. 2: 3.500000 +/- 898402922947.218384 - - Covariance matrix: - 0 1 2 - 0 0.0000000383 20107160.3315223120 -60321480.9945669472 - 1 20107160.3315223120 89680867995567253356544.0000000000 -269042603986701827178496.0000000000 - 2 -60321480.9945669472 -269042603986701827178496.0000000000 807127811960105615753216.0000000000 - +入出力 +*********************************************** + +``2DMAT-SXRD`` モジュールは ``sxrdcalc`` を用いて原子位置 :math:`x` や原子の占有率、デバイワラー因子から Rocking curve を計算し、実験で得られた Rocking curve からの誤差を :math:`f(x)` として返す ``Solver`` です。 + +この章では、入力パラメータおよび入力データと出力データについて説明します。入力パラメータは Info クラスの ``solver`` の項目が該当します。TOMLファイルを入力として与える場合は ``[solver]`` セクションに記述します。dict形式でパラメータを作成する場合は ``solver`` キー以下に入れ子の dict形式でデータを用意します。以下では、TOML形式でパラメータ項目を説明します。 + +入力データは、ターゲットとなる参照データとバルク構造データです。出力データは最適解の結果を格納したファイルです。以下の節で内容を示します。 + + +入力パラメータ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +``solver`` セクション中のサブセクション ``config``, ``post``, ``param``, ``reference`` を利用します。 + +[``config``] セクション +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +- ``sxrd_exec_file`` + + 形式: string型 + + 説明: ソルバー ``sxrdcalc`` へのパス + +- ``bulk_struc_in_file`` + + 形式: string型 + + 説明: バルク構造のインプットファイル。 + +以下、入力例を記載します。 + +.. code-block:: + + [config] + sxrd_exec_file = "../../sxrdcalc" + bulk_struc_in_file = "sic111-r3xr3.blk" + +[``param``] セクション +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +- ``scale_factor`` + + 形式: float型 (default: 1.0) + + 説明: ターゲットのRocking Curveとシミュレーションで得られるRocking Curveのスケールの値。 + +- ``opt_scale_factor`` + + 形式: bool型 (default: false) + + 説明: ``scale_factor`` を最適化するかどうかのフラグ。 + +- ``type_vector`` + + 形式: list型 + + 説明: 最適化する変数の種類を正の数のlist形式で指定します。 + ``[param.atom]`` サブセクションで指定されるtypeの種類と、本リストが対応します。 + typeが同じ場合は、同じ変数として取り扱われます。 + + +[``param.domain``] サブセクション +----------------------------------- +本セクションではドメインを作成します。作成したいドメイン分、定義する必要があります。 +[``param.domain.atom``] サブサブセクションでドメイン内の情報を指定します。 + +- ``domain_occupancy`` + + 形式: float型 + + 説明: ドメイン全体の占有率。 + +[``param.domain.atom``] サブセクション +--------------------------------------------- +本セクションはドメインに所属する最適化したい原子の個数分定義を行う必要があります。 +なお、変数の種類を表すtypeは、正の数で入力します。 + +- ``name`` + + 形式: string型 (重複可) + + 説明: 最適化する原子の名前。 + +- ``pos_center`` + + 形式: list型 + + 説明: 原子の中心座標。[:math:`x_0, y_0, z_0`]の形式で記載します(:math:`x_0, y_0, z_0` はfloat)。 + +- ``DWfactor`` + + 形式: float型 + + 説明: デバイワラー因子(単位は :math:`\text{Å}^{2}` )。 + +- ``occupancy`` + + 形式: float型 (default: 1.0) + + 説明: 原子の占有率。 + +- ``displace_vector`` (省略可) + + 形式: listのlist型 + + 説明: 原子を動かす方向を定義するベクトル。最大3方向まで指定可能。各リストで変位ベクトルと初期値を[type, :math:`D_{i1}, D_{i2}, D_{i3}` ]のようにして定義する(typeはint、:math:`D_{i1}, D_{i2}, D_{i3}` はfloat)。与えられた情報に従い、 :math:`dr_i = (D_{i1} \vec{a} + D_{i2} \vec{b} + D_{i3} \vec{c}) * l_{type}` のように :math:`l_{type}` を変位させます (:math:`\vec{a}, \vec{b}, \vec{c}` は ``bulk_struc_in_file`` もしくは ``struc_in_file`` で指定された入力ファイルに記載された単位格子ベクトルを表します)。 + +- ``opt_DW`` (省略可) + + 形式: list型 + + 説明: デバイワラー因子を変化させる場合のスケールを設定します。 ``[type, scale]`` のようにして定義されます。 + +- ``opt_occupancy`` + + 形式: int型 + + 説明: 定義した場合、占有率が変化する。指定された変数がtypeを表します。 + + +以下、入力例を記載します。 + +.. code-block:: + + [param] + scale_factor = 1.0 + type_vector = [1, 2] + + [[param.domain]] + domain_occupancy = 1.0 + [[param.domain.atom]] + name = "Si" + pos_center = [0.00000000, 0.00000000, 1.00000000] + DWfactor = 0.0 + occupancy = 1.0 + displace_vector = [[1, 0.0, 0.0, 1.0]] + [[param.domain.atom]] + name = "Si" + pos_center = [0.33333333, 0.66666667, 1.00000000] + DWfactor = 0.0 + occupancy = 1.0 + displace_vector = [[1, 0.0, 0.0, 1.0]] + [[param.domain.atom]] + name = "Si" + pos_center = [0.66666667, 0.33333333, 1.00000000] + DWfactor = 0.0 + occupancy = 1.0 + displace_vector = [[1, 0.0, 0.0, 1.0]] + [[param.domain.atom]] + name = "Si" + pos_center = [0.33333333, 0.33333333, 1.00000000] + DWfactor = 0.0 + occupancy = 1.0 + displace_vector = [[2, 0.0, 0.0, 1.0]] + + +[``reference``] セクション +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +- ``f_in_file`` + + 形式: string型 + + 説明: ターゲットとするロッキングカーブのインプットファイルへのパス。 + + +ソルバー用補助ファイル +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +ターゲット参照ファイル +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +ターゲットにするデータが格納されたファイル。 [``reference``] セクションの ``f_in_file`` でパスを指定します。 +1行ごとに ``h k l F sigma`` が出力されます。ここで、 ``h, k, l`` は波数, ``F`` は強度、 ``sigma`` は ``F`` の不確かさをそれぞれ表します。 +以下、ファイル例を記載します。 + +.. code-block:: + + 0.000000 0.000000 0.050000 572.805262 0.1 + 0.000000 0.000000 0.150000 190.712559 0.1 + 0.000000 0.000000 0.250000 114.163340 0.1 + 0.000000 0.000000 0.350000 81.267319 0.1 + 0.000000 0.000000 0.450000 62.927325 0.1 + ... + +バルク構造ファイル +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +バルク構造のデータが格納されたファイル。 [``config``] セクションの ``bulk_struc_in_file`` でパスを指定します。 +1行目がコメント, 2行目が ``a b c alpha beta gamma`` を表します。 +ここで、 ``a`` , ``b``, ``c`` はユニットセルの格子定数、 ``alpha``, ``beta``, ``gamma`` はそれらのなす角です。 +3行目以降は ``atomsymbol r1 r2 r3 DWfactor occupancy`` を指定します。 +ここで、 ``atomsymbol`` は原子種、 ``r1``, ``r2``, ``r3`` は原子の位置座標、 ``DWfactor`` はデバイワラー因子、 ``occupancy`` は占有率をそれぞれ表します。 +以下、ファイル例を記載します。 + +.. code-block:: + + # SiC(111) bulk + 5.33940 5.33940 7.5510487 90.000000 90.000000 120.000000 + Si 0.00000000 0.00000000 0.00000000 0.0 1.0 + Si 0.33333333 0.66666667 0.00000000 0.0 1.0 + Si 0.66666667 0.33333333 0.00000000 0.0 1.0 + C 0.00000000 0.00000000 0.25000000 0.0 1.0 + ... + +出力ファイル +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +``sxrd`` では、 計算時に出力されるファイルが、ランクの番号が記載されたフォルダ下に一式出力されます。 +ここでは、 ``py2dmat`` で独自に出力するファイルについて説明します。 + +``stdout`` +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +``sxrd`` が出力する標準出力が記載されています。 +sxrdのLeast square fittingに対して、初期パラメータとして変数を与え、1ショット計算(iteration数=0)をした際のRfactorを計算します。 +RfactorはFit results以下のRに記載されます。 +以下、出力例です。 + +.. code-block:: + + --------------------------------------- + Program py2dmat/mapper_sxrd/sxrdcalc for surface x-ray diffraction calculations. + Version 3.3.3 - August 2019 + + + Inputfile: lsfit.in + Least-squares fit of model to experimental structure factors. + + ... + + Fit results: + Fit not converged after 0 iterations. + Consider increasing the maximum number of iterations or find better starting values. + chi^2 = 10493110.323318, chi^2 / (degree of freedom) = 223257.666454 (Intensities) + chi^2 = 3707027.897897, chi^2 / (degree of freedom) = 78872.933998 (Structure factors) + R = 0.378801 + + Scale factor: 1.00000000000000 +/- 0.000196 + Parameter Nr. 1: 3.500000 +/- 299467640982.406067 + Parameter Nr. 2: 3.500000 +/- 898402922947.218384 + + Covariance matrix: + 0 1 2 + 0 0.0000000383 20107160.3315223120 -60321480.9945669472 + 1 20107160.3315223120 89680867995567253356544.0000000000 -269042603986701827178496.0000000000 + 2 -60321480.9945669472 -269042603986701827178496.0000000000 807127811960105615753216.0000000000 + diff --git a/extra/sxrd/doc/ja/source/tutorial/index.rst b/extra/sxrd/doc/ja/source/tutorial/index.rst new file mode 100644 index 00000000..2ae46b02 --- /dev/null +++ b/extra/sxrd/doc/ja/source/tutorial/index.rst @@ -0,0 +1,19 @@ +.. 2dmat documentation master file, created by + sphinx-quickstart on Tue May 26 18:44:52 2020. + You can adapt this file completely to your liking, but it should at least + contain the root `toctree` directive. + +チュートリアル +================================== + +2DMAT-SXRD は ``sxrdcalc`` を用いる順問題ソルバーで、原子位置 :math:`x` や原子の占有率、デバイワラー因子から Rocking curve を計算し、実験で得られた Rocking curve からの誤差を :math:`f(x)` として返します。 + +このチュートリアルでは、Nelder-Mead法を用いて SXRD データ解析を行う例を示します。 +以下では、2DMAT-SXRD に付属の ``py2dmat-sxrd`` プログラムを利用し、TOML形式のパラメータファイルを入力として解析を行います。 +次に、ユーザープログラムの項では、メインプログラムを自分で作成して使う方法を説明します。 + +.. toctree:: + :maxdepth: 1 + + minsearch + user_program diff --git a/extra/sxrd/doc/ja/source/tutorial/minsearch.rst b/extra/sxrd/doc/ja/source/tutorial/minsearch.rst new file mode 100644 index 00000000..7601d8f7 --- /dev/null +++ b/extra/sxrd/doc/ja/source/tutorial/minsearch.rst @@ -0,0 +1,216 @@ +Nelder-Mead法による最適化 +==================================== + +ここでは、Nelder-Mead法を用いて回折データから原子座標を解析する逆問題の計算を行う方法について説明します。 +具体的な計算手順は以下の通りです。 + +1. 参照ファイルの準備 + + 合わせたい参照ファイル (今回は後述する ``sic111-r3xr3_f.dat`` に相当)を準備する。 + +2. バルクデータの準備 + + バルク部分のデータ (今回の例では ``sic111-r3xr3.blk`` に相当)を準備する。 + +3. メインプログラムの実行 + + ``py2dmat-sxrd`` を用いて計算を実行し原子座標を推定する。 + +メインプログラムでは、Nelder-Mead法 (`scipy.optimize.minimize `_ を使用)を用いて、ソルバー(今回は ``sxrdcalc`` )を用いて得られた強度と、参照ファイル(``sic111-r3xr3_f.dat``)に記載された強度のずれ(R値)を最小化するパラメータを探索します。 + +サンプルファイルの場所 +~~~~~~~~~~~~~~~~~~~~~~~~ + +サンプルファイルは ``sample/minsearch`` にあります。 +フォルダには以下のファイルが格納されています。 + +- ``input.toml`` + + メインプログラムの入力ファイル + +- ``sic111-r3xr3.blk``, ``sic111-r3xr3_f.dat`` + + メインプログラムでの計算を進めるための参照ファイル + +- ``ref_res.txt``, ``ref_SimplexData.txt`` + + 本チュートリアルで求めたい回答を記載したファイル + +- ``prepare.sh`` , ``do.sh`` + + 本チュートリアルを一括計算するために準備されたスクリプト + +以下、これらのファイルについて説明したあと、実際の計算結果を紹介します。 + +入力ファイルの説明 +~~~~~~~~~~~~~~~~~~~ + +メインプログラム用の入力ファイル ``input.toml`` の準備をします。 +``input.toml`` の詳細については入力ファイルに記載されています。 +ここでは、サンプルファイルにある ``input.toml`` の中身について説明します。 + +.. code-block:: + + [base] + dimension = 2 + + [solver] + name = "sxrd" + + [solver.config] + sxrd_exec_file = "sxrdcalc" + bulk_struc_in_file = "sic111-r3xr3.blk" + [solver.param] + scale_factor = 1.0 + type_vector = [1, 2] + [[solver.param.domain]] + domain_occupancy = 1.0 + [[solver.param.domain.atom]] + name = "Si" + pos_center = [0.00000000, 0.00000000, 1.00000000] + DWfactor = 0.0 + occupancy = 1.0 + displace_vector = [[1, 0.0, 0.0, 1.0]] + [[solver.param.domain.atom]] + name = "Si" + pos_center = [0.33333333, 0.66666667, 1.00000000] + DWfactor = 0.0 + occupancy = 1.0 + displace_vector = [[1, 0.0, 0.0, 1.0]] + [[solver.param.domain.atom]] + name = "Si" + pos_center = [0.66666667, 0.33333333, 1.00000000] + DWfactor = 0.0 + occupancy = 1.0 + displace_vector = [[1, 0.0, 0.0, 1.0]] + [[solver.param.domain.atom]] + name = "Si" + pos_center = [0.33333333, 0.33333333, 1.20000000] + DWfactor = 0.0 + occupancy = 1.0 + displace_vector = [[2, 0.0, 0.0, 1.0]] + [solver.reference] + f_in_file = "sic111-r3xr3_f.dat" + + [algorithm] + name = "minsearch" + label_list = ["z1", "z2"] + [algorithm.param] + min_list = [-0.2, -0.2] + max_list = [0.2, 0.2] + initial_list = [0.0, 0.0] + + +最初に ``[base]`` セクションについて説明します。 + +- ``dimension`` は最適化したい変数の個数です。今の場合は2つの変数の最適化を行うので、 ``2`` を指定します。後述の ``solver.config.type_vector`` の項目数と一致させます。 + +- ``output_dir`` は出力先のディレクトリ名です。省略した場合はプログラムを実行したディレクトリになります。 + +``[solver]`` セクションではメインプログラムの内部で使用するソルバーとその設定を指定します。 + +- ``name`` は使用したいソルバーの名前です。 ``sxrd`` に固定されています。 + +ソルバーの設定は、サブセクションの ``[solver.config]``, ``[solver.param]``, ``[solver.reference]`` で行います。 + +``[solver.config]`` セクションではメインプログラム内部で呼び出す ``sxrdcalc`` についてのオプションを指定します。 + +- ``sxrd_exec_file`` は ``sxrdcalc`` のコマンド名です。パスを指定するか、コマンド名をPATH環境変数から検索します。 + +- ``bulk_struc_in_file`` はバルク構造ファイルを指定します。 + +``[solver.param]`` セクションでは ``sxrdcalc`` への入力パラメータを指定します。項目の詳細は入出力の章を参照してください。 + +``[solver.reference]`` セクションでは、参照する実験データを指定します。 + +- ``f_in_file`` は実験データが置いてあるパスを指定します。 + +``[algorithm]`` セクションでは、使用するアルゴリスムとその設定をします。 + +- ``name`` は使用したいアルゴリズムの名前で、このチュートリアルでは、Nelder-Mead法 を用いた解析を行うので、 ``minsearch`` を指定します。 + +- ``label_list`` は、``value_0x`` (x=1,2,3) を出力する際につけるラベル名のリストです。 + +``[algorithm.param]`` セクションでは、探索するパラメータの範囲や初期値を指定します。 + +- ``min_list`` と ``max_list`` はそれぞれ探索範囲の最小値と最大値を指定します。 + +- ``initial_list`` は初期値を指定します。 + +ここではデフォルト値を用いるため省略しましたが、その他のパラメータ、例えばNelder-Mead法で使用する収束判定などについては、``[algorithm]`` セクションで行うことが可能です。 +詳細については入出力の章をご覧ください。 + +計算実行 +~~~~~~~~~~~~ + +最初にサンプルファイルが置いてあるフォルダへ移動します(以下、本ソフトウェアをダウンロードしたディレクトリ直下にいることを仮定します). + +.. code-block:: + + $ cd sample/minsearch + +``surfcalc`` をコピーします。 + +.. code-block:: + + $ cp ../../sxrdcalc-main/sxrdcalc . + +そのあとに、メインプログラムを実行します(計算時間は通常のPCで数秒程度で終わります)。 + +.. code-block:: + + $ py2dmat-sxrd input.toml | tee log.txt + +実行すると、以下の様な出力がされます。 + +.. code-block:: + + Optimization terminated successfully. + Current function value: 0.000106 + Iterations: 26 + Function evaluations: 53 + iteration: 26 + len(allvecs): 27 + step: 0 + allvecs[step]: [0. 0.] + step: 1 + allvecs[step]: [0. 0.] + step: 2 + allvecs[step]: [0. 0.] + ... + +``z1``, ``z2`` に各ステップでの候補パラメータと、その時の ``R-factor`` が出力されます。 +最終的に推定されたパラメータは、 ``output/res.dat`` に出力されます。今の場合、 + +.. code-block:: + + fx = 0.000106 + z1 = -2.351035891479114e-05 + z2 = 0.025129315870799473 + +が得られ、正解のデータ ``ref.txt`` と同じ値が得られていることがわかります。 +なお、一括計算するスクリプトとして ``do.sh`` を用意しています。 +``do.sh`` では ``output/res.txt`` と ``ref.txt`` の差分も比較しています。 +以下、説明は割愛しますが、その中身を掲載します。 + +.. code-block:: sh + + #!/bin/sh + + sh ./prepare.sh + + ./bulk.exe + + time py2dmat-sxrd input.toml | tee log.txt + + echo diff output/res.txt ref.txt + res=0 + diff output/res.txt ref.txt || res=$? + if [ $res -eq 0 ]; then + echo Test PASS + true + else + echo Test FAILED: res.txt and ref.txt differ + false + fi + diff --git a/extra/sxrd/doc/ja/source/tutorial/user_program.rst b/extra/sxrd/doc/ja/source/tutorial/user_program.rst new file mode 100644 index 00000000..4354d8a4 --- /dev/null +++ b/extra/sxrd/doc/ja/source/tutorial/user_program.rst @@ -0,0 +1,224 @@ +ユーザープログラムによる解析 +================================ + +ここでは、2DMAT-SXRD モジュールを用いたユーザープログラムを作成し、解析を行う方法を説明します。逆問題解析アルゴリズムには例としてNelder-Mead法を用います。 + +サンプルファイルの場所 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +サンプルファイルは ``sample/user_program`` にあります。 +ディレクトリには以下のファイルが格納されています。 + +- ``simple.py`` + + メインプログラム。パラメータを ``input.toml`` ファイルから読み込んで解析を行う。 + +- ``input.toml`` + + ``simple.py`` で利用する入力パラメータファイル + +- ``sic111-r3xr3.blk``, ``sic111-r3xr3_f.dat`` + + メインプログラムでの計算を進めるための参照ファイル + +- ``ref_res.txt``, ``ref_SimplexData.txt`` + + 本チュートリアルで求めたい回答を記載したファイル + +- ``simple.py`` + + メインプログラムの別バージョン。パラメータを dict 形式でスクリプト内に埋め込んでいる。 + + +以下、これらのファイルについて説明したのち、実際の計算結果を紹介します。 + +プログラムの説明 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +``simple.py`` は 2DMAT-SXRD モジュールを用いて解析を行うシンプルなプログラムです。 +プログラム全体を以下に示します。 + +.. code-block:: python + + import numpy as np + + import py2dmat + import py2dmat.algorithm.min_search + import sxrd + + info = py2dmat.Info.from_file("input.toml") + + solver = sxrd.Solver(info) + runner = py2dmat.Runner(solver, info) + alg = py2dmat.algorithm.min_search.Algorithm(info, runner) + alg.main() + + +プログラムではまず、必要なモジュールを import します。 + +- 2DMAT のメインモジュール ``py2dmat`` + +- 今回利用する逆問題解析アルゴリズム ``py2dmat.algorithm.min_search`` + +- 順問題ソルバーモジュール ``sxrd`` + +次に、解析で利用するクラスのインスタンスを作成します。 + +- ``py2dmat.Info`` クラス + + パラメータを格納するクラスです。 ``from_file`` クラスメソッドに TOML ファイルのパスを渡して作成することができます。 + +- ``sxrd.Solver`` クラス + + 2DMAT-SXRD モジュールの順問題ソルバーです。Info クラスのインスタンスを渡して作成します。 + +- ``py2dmat.Runner`` クラス + + 順問題ソルバーと逆問題解析アルゴリズムを繋ぐクラスです。Solver クラスのインスタンスおよび Info クラスのパラメータを渡して作成します。 + +- ``py2dmat.algorithm.min_search.Algorithm`` クラス + + 逆問題解析アルゴリズムのクラスです。ここでは Nelder-Mead 法による最適化アルゴリズムのクラスモジュール ``min_search`` を利用します。Runnder のインスタンスを渡して作成します。 + +Solver, Runner, Algorithm の順にインスタンスを作成した後、Algorithm クラスの ``main()`` メソッドを呼んで解析を行います。 + +上記のプログラムでは、入力パラメータを TOML形式のファイルから読み込む形ですが、パラメータを dict 形式で渡すこともできます。 +``simple2.py`` はパラメータをプログラム中に埋め込む形で記述したものです。以下にプログラムの全体を記載します。 + +.. code-block:: python + + import numpy as np + + import py2dmat + import py2dmat.algorithm.min_search + import sxrd + + param = { + "base": { + "dimension": 2, + "output_dir": "output", + }, + "solver": { + "config": { + "sxrd_exec_file": "sxrdcalc", + "bulk_struc_in_file": "sic111-r3xr3.blk", + }, + "param": { + "scale_factor": 1.0, + "type_vector": [1, 2], + "domain": [ + { + "domain_occupancy": 1.0, + "atom": [ + { + "name": "Si", + "pos_center": [0.00000000, 0.00000000, 1.00000000], + "DWfactor": 0.0, + "occupancy": 1.0, + "displace_vector": [[1, 0.0, 0.0, 1.0]] + }, + { + "name": "Si", + "pos_center": [0.33333333, 0.66666667, 1.00000000], + "DWfactor": 0.0, + "occupancy": 1.0, + "displace_vector": [[1, 0.0, 0.0, 1.0]] + }, + { + "name": "Si", + "pos_center": [0.66666667, 0.33333333, 1.00000000], + "DWfactor": 0.0, + "occupancy": 1.0, + "displace_vector": [[1, 0.0, 0.0, 1.0]] + }, + { + "name": "Si", + "pos_center": [0.33333333, 0.33333333, 1.20000000], + "DWfactor": 0.0, + "occupancy": 1.0, + "displace_vector": [[2, 0.0, 0.0, 1.0]] + }, + ], + }, + ], + }, + "reference": { + "f_in_file": "sic111-r3xr3_f.dat", + }, + }, + "algorithm": { + "label_list": ["z1", "z2"], + "param": { + "min_list": [-0.2, -0.2], + "max_list": [ 0.2, 0.2], + "initial_list": [ 0.0, 0.0 ], + }, + }, + } + + info = py2dmat.Info(param) + + solver = sxrd.Solver(info) + runner = py2dmat.Runner(solver, info) + alg = py2dmat.algorithm.min_search.Algorithm(info, runner) + alg.main() + +dict 形式のパラメータを渡して Info クラスのインスタンスを作成します。 +同様に、パラメータをプログラム内で生成して渡すこともできます。 + +入力ファイルの説明 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +メインプログラム用の入力ファイル ``input.toml`` は前述のNelder-Mead法による最適化で用いたのと同じファイルを利用できます。 +なお、アルゴリズムの種類を指定する ``algorithm.name`` パラメータの値は無視されます。 + +参照ファイルについては前述の tutorial と同様です。 + +計算実行 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +最初にサンプルファイルが置いてあるフォルダに移動します(以下、本ソフトウェアをダウンロードしたディレクトリ直下にいることを仮定します)。 + +.. code-block:: + + $ cd sample/user_program + +``sxrdcalc`` をコピーします。 + +.. code-block:: + + $ cp ../../sxrdcalc-main/sxrdcalc . + +そのあとに、メインプログラムを実行します。(計算は通常のPCで数秒程度で終わります。) + +.. code-block:: + + $ python3 simple.py + +実行すると、以下のような出力が表示されます。 + +.. code-block:: + + Optimization terminated successfully. + Current function value: 0.000106 + Iterations: 26 + Function evaluations: 53 + iteration: 26 + len(allvecs): 27 + step: 0 + allvecs[step]: [0. 0.] + step: 1 + allvecs[step]: [0. 0.] + step: 2 + allvecs[step]: [0. 0.] + (略) + +``z1``, ``z2`` に各ステップでの候補パラメータと、その時の ``R-factor`` が出力されます。 +最終的に推定されたパラメータは ``output/res.dat`` に出力されます。今の場合は + +.. code-block:: + + fx = 0.000106 + z1 = -2.351035891479114e-05 + z2 = 0.025129315870799473 + +となります。リファレンス ref.dat が再現されていることが分かります。 diff --git a/extra/sxrd/pyproject.toml b/extra/sxrd/pyproject.toml index bbcc3484..a1746d22 100644 --- a/extra/sxrd/pyproject.toml +++ b/extra/sxrd/pyproject.toml @@ -1,5 +1,5 @@ [tool.poetry] -name = "sxrd" +name = "py2dmat-sxrd" version = "1.0-dev" description = "SXRD solver module for Py2DMAT: data-analysis software of quantum beam diffraction experiments for 2D material structure" authors = ["2DMAT developers <2dmat-dev@issp.u-tokyo.ac.jp>"] diff --git a/extra/sxrd/sample/mapper/do.sh b/extra/sxrd/sample/mapper/do.sh new file mode 100644 index 00000000..974676fe --- /dev/null +++ b/extra/sxrd/sample/mapper/do.sh @@ -0,0 +1,16 @@ +#!/bin/sh + +sh prepare.sh + +time py2dmat-sxrd input.toml + +echo diff output/ColorMap.txt ref_ColorMap.txt +res=0 +diff output/ColorMap.txt ref_ColorMap.txt || res=$? +if [ $res -eq 0 ]; then + echo TEST PASS + true +else + echo TEST FAILED: ColorMap.txt and ref_ColorMap.txt differ + false +fi diff --git a/extra/sxrd/sample/mapper/input.toml b/extra/sxrd/sample/mapper/input.toml index 200edbed..9562c1bb 100644 --- a/extra/sxrd/sample/mapper/input.toml +++ b/extra/sxrd/sample/mapper/input.toml @@ -1,5 +1,6 @@ [base] dimension = 2 +output_dir = "output" [solver] name = "sxrd" [solver.config] diff --git a/extra/sxrd/sample/mapper/prepare.sh b/extra/sxrd/sample/mapper/prepare.sh new file mode 100644 index 00000000..16b4a95e --- /dev/null +++ b/extra/sxrd/sample/mapper/prepare.sh @@ -0,0 +1,4 @@ +#!/bin/sh + +rm -rf ./output +rm -f ./lsfit.in diff --git a/extra/sxrd/sample/mapper/ref_ColorMap.txt b/extra/sxrd/sample/mapper/ref_ColorMap.txt new file mode 100644 index 00000000..ca398ccd --- /dev/null +++ b/extra/sxrd/sample/mapper/ref_ColorMap.txt @@ -0,0 +1,441 @@ +-0.200000 -0.200000 0.225705 +-0.200000 -0.180000 0.214978 +-0.200000 -0.160000 0.208975 +-0.200000 -0.140000 0.205867 +-0.200000 -0.120000 0.206768 +-0.200000 -0.100000 0.212166 +-0.200000 -0.080000 0.220515 +-0.200000 -0.060000 0.226590 +-0.200000 -0.040000 0.228623 +-0.200000 -0.020000 0.227939 +-0.200000 0.000000 0.225835 +-0.200000 0.020000 0.226825 +-0.200000 0.040000 0.229083 +-0.200000 0.060000 0.230567 +-0.200000 0.080000 0.233067 +-0.200000 0.100000 0.235334 +-0.200000 0.120000 0.236920 +-0.200000 0.140000 0.238582 +-0.200000 0.160000 0.237422 +-0.200000 0.180000 0.235506 +-0.200000 0.200000 0.231947 +-0.180000 -0.200000 0.182038 +-0.180000 -0.180000 0.179187 +-0.180000 -0.160000 0.186054 +-0.180000 -0.140000 0.193727 +-0.180000 -0.120000 0.198359 +-0.180000 -0.100000 0.198534 +-0.180000 -0.080000 0.199244 +-0.180000 -0.060000 0.202483 +-0.180000 -0.040000 0.203987 +-0.180000 -0.020000 0.200942 +-0.180000 0.000000 0.195834 +-0.180000 0.020000 0.197014 +-0.180000 0.040000 0.201671 +-0.180000 0.060000 0.206414 +-0.180000 0.080000 0.211721 +-0.180000 0.100000 0.216155 +-0.180000 0.120000 0.218834 +-0.180000 0.140000 0.220164 +-0.180000 0.160000 0.218139 +-0.180000 0.180000 0.210873 +-0.180000 0.200000 0.204249 +-0.160000 -0.200000 0.204780 +-0.160000 -0.180000 0.202995 +-0.160000 -0.160000 0.206103 +-0.160000 -0.140000 0.210804 +-0.160000 -0.120000 0.217632 +-0.160000 -0.100000 0.223534 +-0.160000 -0.080000 0.224305 +-0.160000 -0.060000 0.220110 +-0.160000 -0.040000 0.213877 +-0.160000 -0.020000 0.211028 +-0.160000 0.000000 0.211839 +-0.160000 0.020000 0.217025 +-0.160000 0.040000 0.225248 +-0.160000 0.060000 0.233616 +-0.160000 0.080000 0.240293 +-0.160000 0.100000 0.245469 +-0.160000 0.120000 0.248232 +-0.160000 0.140000 0.246700 +-0.160000 0.160000 0.243378 +-0.160000 0.180000 0.238449 +-0.160000 0.200000 0.234312 +-0.140000 -0.200000 0.249812 +-0.140000 -0.180000 0.243337 +-0.140000 -0.160000 0.245411 +-0.140000 -0.140000 0.250277 +-0.140000 -0.120000 0.253934 +-0.140000 -0.100000 0.254405 +-0.140000 -0.080000 0.252927 +-0.140000 -0.060000 0.250985 +-0.140000 -0.040000 0.246804 +-0.140000 -0.020000 0.242542 +-0.140000 0.000000 0.240753 +-0.140000 0.020000 0.243147 +-0.140000 0.040000 0.250064 +-0.140000 0.060000 0.259377 +-0.140000 0.080000 0.268807 +-0.140000 0.100000 0.276313 +-0.140000 0.120000 0.280525 +-0.140000 0.140000 0.282454 +-0.140000 0.160000 0.282161 +-0.140000 0.180000 0.278931 +-0.140000 0.200000 0.276294 +-0.120000 -0.200000 0.280957 +-0.120000 -0.180000 0.269749 +-0.120000 -0.160000 0.268670 +-0.120000 -0.140000 0.274373 +-0.120000 -0.120000 0.280717 +-0.120000 -0.100000 0.284719 +-0.120000 -0.080000 0.283637 +-0.120000 -0.060000 0.278349 +-0.120000 -0.040000 0.271420 +-0.120000 -0.020000 0.264488 +-0.120000 0.000000 0.258758 +-0.120000 0.020000 0.257400 +-0.120000 0.040000 0.260877 +-0.120000 0.060000 0.267988 +-0.120000 0.080000 0.276905 +-0.120000 0.100000 0.286505 +-0.120000 0.120000 0.294538 +-0.120000 0.140000 0.299380 +-0.120000 0.160000 0.300329 +-0.120000 0.180000 0.298676 +-0.120000 0.200000 0.298349 +-0.100000 -0.200000 0.284063 +-0.100000 -0.180000 0.266369 +-0.100000 -0.160000 0.262852 +-0.100000 -0.140000 0.270753 +-0.100000 -0.120000 0.283411 +-0.100000 -0.100000 0.293855 +-0.100000 -0.080000 0.299049 +-0.100000 -0.060000 0.297209 +-0.100000 -0.040000 0.288463 +-0.100000 -0.020000 0.275955 +-0.100000 0.000000 0.264922 +-0.100000 0.020000 0.257221 +-0.100000 0.040000 0.255246 +-0.100000 0.060000 0.258092 +-0.100000 0.080000 0.264308 +-0.100000 0.100000 0.271992 +-0.100000 0.120000 0.279263 +-0.100000 0.140000 0.284952 +-0.100000 0.160000 0.288756 +-0.100000 0.180000 0.290314 +-0.100000 0.200000 0.292034 +-0.080000 -0.200000 0.262568 +-0.080000 -0.180000 0.237003 +-0.080000 -0.160000 0.225902 +-0.080000 -0.140000 0.229890 +-0.080000 -0.120000 0.244123 +-0.080000 -0.100000 0.262318 +-0.080000 -0.080000 0.278903 +-0.080000 -0.060000 0.288967 +-0.080000 -0.040000 0.287931 +-0.080000 -0.020000 0.276917 +-0.080000 0.000000 0.258887 +-0.080000 0.020000 0.241786 +-0.080000 0.040000 0.229870 +-0.080000 0.060000 0.223233 +-0.080000 0.080000 0.222149 +-0.080000 0.100000 0.226041 +-0.080000 0.120000 0.232384 +-0.080000 0.140000 0.239738 +-0.080000 0.160000 0.246845 +-0.080000 0.180000 0.253609 +-0.080000 0.200000 0.258255 +-0.060000 -0.200000 0.225300 +-0.060000 -0.180000 0.192552 +-0.060000 -0.160000 0.171877 +-0.060000 -0.140000 0.167825 +-0.060000 -0.120000 0.177750 +-0.060000 -0.100000 0.195866 +-0.060000 -0.080000 0.216211 +-0.060000 -0.060000 0.233791 +-0.060000 -0.040000 0.244590 +-0.060000 -0.020000 0.245003 +-0.060000 0.000000 0.232680 +-0.060000 0.020000 0.209739 +-0.060000 0.040000 0.182456 +-0.060000 0.060000 0.164839 +-0.060000 0.080000 0.156237 +-0.060000 0.100000 0.154964 +-0.060000 0.120000 0.160744 +-0.060000 0.140000 0.171431 +-0.060000 0.160000 0.183671 +-0.060000 0.180000 0.194821 +-0.060000 0.200000 0.203312 +-0.040000 -0.200000 0.182587 +-0.040000 -0.180000 0.151587 +-0.040000 -0.160000 0.130215 +-0.040000 -0.140000 0.111248 +-0.040000 -0.120000 0.104645 +-0.040000 -0.100000 0.115557 +-0.040000 -0.080000 0.131768 +-0.040000 -0.060000 0.150495 +-0.040000 -0.040000 0.165957 +-0.040000 -0.020000 0.174228 +-0.040000 0.000000 0.171950 +-0.040000 0.020000 0.159170 +-0.040000 0.040000 0.139673 +-0.040000 0.060000 0.112675 +-0.040000 0.080000 0.082007 +-0.040000 0.100000 0.073287 +-0.040000 0.120000 0.077679 +-0.040000 0.140000 0.090224 +-0.040000 0.160000 0.106630 +-0.040000 0.180000 0.124942 +-0.040000 0.200000 0.140539 +-0.020000 -0.200000 0.151384 +-0.020000 -0.180000 0.144335 +-0.020000 -0.160000 0.165137 +-0.020000 -0.140000 0.176629 +-0.020000 -0.120000 0.163708 +-0.020000 -0.100000 0.128560 +-0.020000 -0.080000 0.083448 +-0.020000 -0.060000 0.071862 +-0.020000 -0.040000 0.076226 +-0.020000 -0.020000 0.083581 +-0.020000 0.000000 0.087505 +-0.020000 0.020000 0.087348 +-0.020000 0.040000 0.084493 +-0.020000 0.060000 0.079752 +-0.020000 0.080000 0.070447 +-0.020000 0.100000 0.056401 +-0.020000 0.120000 0.054959 +-0.020000 0.140000 0.066375 +-0.020000 0.160000 0.084625 +-0.020000 0.180000 0.102121 +-0.020000 0.200000 0.114847 +0.000000 -0.200000 0.171402 +0.000000 -0.180000 0.189603 +0.000000 -0.160000 0.208947 +0.000000 -0.140000 0.226213 +0.000000 -0.120000 0.236720 +0.000000 -0.100000 0.231438 +0.000000 -0.080000 0.195599 +0.000000 -0.060000 0.147752 +0.000000 -0.040000 0.100448 +0.000000 -0.020000 0.058369 +0.000000 0.000000 0.025287 +0.000000 0.020000 0.004761 +0.000000 0.040000 0.014866 +0.000000 0.060000 0.039572 +0.000000 0.080000 0.072106 +0.000000 0.100000 0.111196 +0.000000 0.120000 0.149206 +0.000000 0.140000 0.167872 +0.000000 0.160000 0.170753 +0.000000 0.180000 0.165796 +0.000000 0.200000 0.158494 +0.020000 -0.200000 0.219889 +0.020000 -0.180000 0.235430 +0.020000 -0.160000 0.247361 +0.020000 -0.140000 0.252423 +0.020000 -0.120000 0.250842 +0.020000 -0.100000 0.246555 +0.020000 -0.080000 0.240740 +0.020000 -0.060000 0.227473 +0.020000 -0.040000 0.195318 +0.020000 -0.020000 0.151465 +0.020000 0.000000 0.115124 +0.020000 0.020000 0.094301 +0.020000 0.040000 0.086791 +0.020000 0.060000 0.090799 +0.020000 0.080000 0.105275 +0.020000 0.100000 0.125077 +0.020000 0.120000 0.162912 +0.020000 0.140000 0.202039 +0.020000 0.160000 0.234153 +0.020000 0.180000 0.248676 +0.020000 0.200000 0.244408 +0.040000 -0.200000 0.254747 +0.040000 -0.180000 0.270655 +0.040000 -0.160000 0.282916 +0.040000 -0.140000 0.284537 +0.040000 -0.120000 0.275432 +0.040000 -0.100000 0.257313 +0.040000 -0.080000 0.233386 +0.040000 -0.060000 0.214453 +0.040000 -0.040000 0.207464 +0.040000 -0.020000 0.197309 +0.040000 0.000000 0.184317 +0.040000 0.020000 0.171796 +0.040000 0.040000 0.164438 +0.040000 0.060000 0.163785 +0.040000 0.080000 0.169108 +0.040000 0.100000 0.179010 +0.040000 0.120000 0.190367 +0.040000 0.140000 0.198370 +0.040000 0.160000 0.207285 +0.040000 0.180000 0.231693 +0.040000 0.200000 0.250915 +0.060000 -0.200000 0.256855 +0.060000 -0.180000 0.276710 +0.060000 -0.160000 0.293412 +0.060000 -0.140000 0.302516 +0.060000 -0.120000 0.301984 +0.060000 -0.100000 0.290723 +0.060000 -0.080000 0.269811 +0.060000 -0.060000 0.242348 +0.060000 -0.040000 0.213899 +0.060000 -0.020000 0.197506 +0.060000 0.000000 0.194649 +0.060000 0.020000 0.196919 +0.060000 0.040000 0.201484 +0.060000 0.060000 0.207841 +0.060000 0.080000 0.215193 +0.060000 0.100000 0.222306 +0.060000 0.120000 0.228491 +0.060000 0.140000 0.232925 +0.060000 0.160000 0.234814 +0.060000 0.180000 0.234990 +0.060000 0.200000 0.236110 +0.080000 -0.200000 0.239283 +0.080000 -0.180000 0.266236 +0.080000 -0.160000 0.291979 +0.080000 -0.140000 0.311736 +0.080000 -0.120000 0.322596 +0.080000 -0.100000 0.321746 +0.080000 -0.080000 0.310274 +0.080000 -0.060000 0.288831 +0.080000 -0.040000 0.260154 +0.080000 -0.020000 0.230122 +0.080000 0.000000 0.208099 +0.080000 0.020000 0.203377 +0.080000 0.040000 0.211029 +0.080000 0.060000 0.223133 +0.080000 0.080000 0.235873 +0.080000 0.100000 0.246929 +0.080000 0.120000 0.255469 +0.080000 0.140000 0.260256 +0.080000 0.160000 0.262551 +0.080000 0.180000 0.262930 +0.080000 0.200000 0.263538 +0.100000 -0.200000 0.224032 +0.100000 -0.180000 0.251813 +0.100000 -0.160000 0.283150 +0.100000 -0.140000 0.311447 +0.100000 -0.120000 0.331887 +0.100000 -0.100000 0.342609 +0.100000 -0.080000 0.341107 +0.100000 -0.060000 0.328309 +0.100000 -0.040000 0.306186 +0.100000 -0.020000 0.277596 +0.100000 0.000000 0.248784 +0.100000 0.020000 0.227634 +0.100000 0.040000 0.220348 +0.100000 0.060000 0.227936 +0.100000 0.080000 0.242469 +0.100000 0.100000 0.258341 +0.100000 0.120000 0.270793 +0.100000 0.140000 0.279508 +0.100000 0.160000 0.282801 +0.100000 0.180000 0.283595 +0.100000 0.200000 0.283243 +0.120000 -0.200000 0.214329 +0.120000 -0.180000 0.235960 +0.120000 -0.160000 0.267241 +0.120000 -0.140000 0.300364 +0.120000 -0.120000 0.328925 +0.120000 -0.100000 0.348828 +0.120000 -0.080000 0.357524 +0.120000 -0.060000 0.356614 +0.120000 -0.040000 0.343680 +0.120000 -0.020000 0.320760 +0.120000 0.000000 0.292483 +0.120000 0.020000 0.265802 +0.120000 0.040000 0.247185 +0.120000 0.060000 0.239374 +0.120000 0.080000 0.244584 +0.120000 0.100000 0.258869 +0.120000 0.120000 0.274080 +0.120000 0.140000 0.286864 +0.120000 0.160000 0.293643 +0.120000 0.180000 0.296538 +0.120000 0.200000 0.295224 +0.140000 -0.200000 0.208937 +0.140000 -0.180000 0.219329 +0.140000 -0.160000 0.244230 +0.140000 -0.140000 0.277994 +0.140000 -0.120000 0.313460 +0.140000 -0.100000 0.343620 +0.140000 -0.080000 0.363394 +0.140000 -0.060000 0.371371 +0.140000 -0.040000 0.368014 +0.140000 -0.020000 0.352790 +0.140000 0.000000 0.328529 +0.140000 0.020000 0.300610 +0.140000 0.040000 0.276293 +0.140000 0.060000 0.261040 +0.140000 0.080000 0.256352 +0.140000 0.100000 0.260043 +0.140000 0.120000 0.270921 +0.140000 0.140000 0.282609 +0.140000 0.160000 0.292651 +0.140000 0.180000 0.298683 +0.140000 0.200000 0.299351 +0.160000 -0.200000 0.208930 +0.160000 -0.180000 0.209474 +0.160000 -0.160000 0.225692 +0.160000 -0.140000 0.252326 +0.160000 -0.120000 0.287786 +0.160000 -0.100000 0.323612 +0.160000 -0.080000 0.351790 +0.160000 -0.060000 0.368862 +0.160000 -0.040000 0.373324 +0.160000 -0.020000 0.366647 +0.160000 0.000000 0.349063 +0.160000 0.020000 0.325489 +0.160000 0.040000 0.302697 +0.160000 0.060000 0.279890 +0.160000 0.080000 0.266263 +0.160000 0.100000 0.263140 +0.160000 0.120000 0.267236 +0.160000 0.140000 0.275563 +0.160000 0.160000 0.286028 +0.160000 0.180000 0.293808 +0.160000 0.200000 0.296959 +0.180000 -0.200000 0.209738 +0.180000 -0.180000 0.204589 +0.180000 -0.160000 0.216623 +0.180000 -0.140000 0.237377 +0.180000 -0.120000 0.262045 +0.180000 -0.100000 0.291504 +0.180000 -0.080000 0.322174 +0.180000 -0.060000 0.347220 +0.180000 -0.040000 0.362163 +0.180000 -0.020000 0.365730 +0.180000 0.000000 0.358602 +0.180000 0.020000 0.345226 +0.180000 0.040000 0.330405 +0.180000 0.060000 0.313120 +0.180000 0.080000 0.290451 +0.180000 0.100000 0.270103 +0.180000 0.120000 0.263280 +0.180000 0.140000 0.266297 +0.180000 0.160000 0.272171 +0.180000 0.180000 0.278595 +0.180000 0.200000 0.283868 +0.200000 -0.200000 0.210386 +0.200000 -0.180000 0.199916 +0.200000 -0.160000 0.209473 +0.200000 -0.140000 0.230364 +0.200000 -0.120000 0.254769 +0.200000 -0.100000 0.279778 +0.200000 -0.080000 0.303115 +0.200000 -0.060000 0.325309 +0.200000 -0.040000 0.344418 +0.200000 -0.020000 0.356004 +0.200000 0.000000 0.358282 +0.200000 0.020000 0.351850 +0.200000 0.040000 0.341056 +0.200000 0.060000 0.331006 +0.200000 0.080000 0.321410 +0.200000 0.100000 0.305513 +0.200000 0.120000 0.281952 +0.200000 0.140000 0.266550 +0.200000 0.160000 0.263071 +0.200000 0.180000 0.265807 +0.200000 0.200000 0.270385 diff --git a/extra/sxrd/sample/minsearch/do.sh b/extra/sxrd/sample/minsearch/do.sh new file mode 100644 index 00000000..78054137 --- /dev/null +++ b/extra/sxrd/sample/minsearch/do.sh @@ -0,0 +1,16 @@ +#!/bin/sh + +sh prepare.sh + +time py2dmat-sxrd input.toml + +echo diff output/res.txt ref_res.txt +res=0 +diff output/res.txt ref_res.txt || res=$? +if [ $res -eq 0 ]; then + echo TEST PASS + true +else + echo TEST FAILED: res.txt and ref_res.txt differ + false +fi diff --git a/extra/sxrd/sample/minsearch/input.toml b/extra/sxrd/sample/minsearch/input.toml index 0bdebafe..f2bbb541 100644 --- a/extra/sxrd/sample/minsearch/input.toml +++ b/extra/sxrd/sample/minsearch/input.toml @@ -1,5 +1,6 @@ [base] dimension = 2 +output_dir = "output" [solver] name = "sxrd" diff --git a/extra/sxrd/sample/minsearch/prepare.sh b/extra/sxrd/sample/minsearch/prepare.sh new file mode 100644 index 00000000..16b4a95e --- /dev/null +++ b/extra/sxrd/sample/minsearch/prepare.sh @@ -0,0 +1,4 @@ +#!/bin/sh + +rm -rf ./output +rm -f ./lsfit.in diff --git a/extra/sxrd/sample/minsearch/SimplexData.txt b/extra/sxrd/sample/minsearch/ref_SimplexData.txt similarity index 100% rename from extra/sxrd/sample/minsearch/SimplexData.txt rename to extra/sxrd/sample/minsearch/ref_SimplexData.txt diff --git a/extra/sxrd/sample/minsearch/res.txt b/extra/sxrd/sample/minsearch/ref_res.txt similarity index 100% rename from extra/sxrd/sample/minsearch/res.txt rename to extra/sxrd/sample/minsearch/ref_res.txt diff --git a/extra/sxrd/sample/user_program/input.toml b/extra/sxrd/sample/user_program/input.toml new file mode 100644 index 00000000..4b5b3ef8 --- /dev/null +++ b/extra/sxrd/sample/user_program/input.toml @@ -0,0 +1,49 @@ +[base] +dimension = 2 +output_dir = "output" + +[solver] +name = "sxrd" + +[solver.config] +sxrd_exec_file = "sxrdcalc" +bulk_struc_in_file = "sic111-r3xr3.blk" +[solver.param] +scale_factor = 1.0 +type_vector = [1, 2] +[[solver.param.domain]] +domain_occupancy = 1.0 + [[solver.param.domain.atom]] + name = "Si" + pos_center = [0.00000000, 0.00000000, 1.00000000] + DWfactor = 0.0 + occupancy = 1.0 + displace_vector = [[1, 0.0, 0.0, 1.0]] + [[solver.param.domain.atom]] + name = "Si" + pos_center = [0.33333333, 0.66666667, 1.00000000] + DWfactor = 0.0 + occupancy = 1.0 + displace_vector = [[1, 0.0, 0.0, 1.0]] + [[solver.param.domain.atom]] + name = "Si" + pos_center = [0.66666667, 0.33333333, 1.00000000] + DWfactor = 0.0 + occupancy = 1.0 + displace_vector = [[1, 0.0, 0.0, 1.0]] + [[solver.param.domain.atom]] + name = "Si" + pos_center = [0.33333333, 0.33333333, 1.20000000] + DWfactor = 0.0 + occupancy = 1.0 + displace_vector = [[2, 0.0, 0.0, 1.0]] +[solver.reference] +f_in_file = "sic111-r3xr3_f.dat" + +[algorithm] +name = "minsearch" +label_list = ["z1", "z2"] +[algorithm.param] +min_list = [-0.2, -0.2] +max_list = [0.2, 0.2] +initial_list = [0.0, 0.0] diff --git a/extra/sxrd/sample/user_program/ref_SimplexData.txt b/extra/sxrd/sample/user_program/ref_SimplexData.txt new file mode 100644 index 00000000..6f7416b4 --- /dev/null +++ b/extra/sxrd/sample/user_program/ref_SimplexData.txt @@ -0,0 +1,27 @@ +#step z1 z2 R-factor +0 0.0 0.0 0.025287 +1 0.0 0.0 0.025287 +2 0.0 0.0 0.025287 +3 0.0 0.0 0.025287 +4 0.0 0.0 0.025287 +5 0.0 0.0 0.025287 +6 0.0 0.0 0.025287 +7 0.0 0.0 0.025287 +8 -0.0020751953125 0.028076171875 0.010644 +9 -0.0020751953125 0.028076171875 0.010644 +10 0.00080108642578125 0.0332794189453125 0.008643 +11 0.0012531280517578125 0.023487091064453125 0.006526 +12 -0.0005240440368652344 0.028229713439941406 0.004406 +13 -0.0005240440368652344 0.028229713439941406 0.004406 +14 0.0004775524139404297 0.023410320281982422 0.00326 +15 -4.762411117553711e-05 0.022128701210021973 0.00278 +16 -0.00015453994274139404 0.025499612092971802 0.000897 +17 -0.00015453994274139404 0.025499612092971802 0.000897 +18 -0.00015453994274139404 0.025499612092971802 0.000897 +19 7.58124515414238e-05 0.02492680959403515 0.000462 +20 7.58124515414238e-05 0.02492680959403515 0.000462 +21 -8.324318332597613e-05 0.025063568842597306 0.000367 +22 4.427960084285587e-05 0.025328663032269105 0.000251 +23 2.8165330149931833e-05 0.025061462765734177 0.000168 +24 -2.351035891479114e-05 0.025129315870799473 0.000106 +25 -2.351035891479114e-05 0.025129315870799473 0.000106 diff --git a/extra/sxrd/sample/user_program/ref_res.txt b/extra/sxrd/sample/user_program/ref_res.txt new file mode 100644 index 00000000..b1d3c219 --- /dev/null +++ b/extra/sxrd/sample/user_program/ref_res.txt @@ -0,0 +1,3 @@ +fx = 0.000106 +z1 = -2.351035891479114e-05 +z2 = 0.025129315870799473 diff --git a/extra/sxrd/sample/user_program/sic111-r3xr3.blk b/extra/sxrd/sample/user_program/sic111-r3xr3.blk new file mode 100644 index 00000000..cf9eee11 --- /dev/null +++ b/extra/sxrd/sample/user_program/sic111-r3xr3.blk @@ -0,0 +1,20 @@ +# SiC(111) bulk +5.33940 5.33940 7.5510487 90.000000 90.000000 120.000000 +Si 0.00000000 0.00000000 0.00000000 0.0 1.0 +Si 0.33333333 0.66666667 0.00000000 0.0 1.0 +Si 0.66666667 0.33333333 0.00000000 0.0 1.0 +C 0.00000000 0.00000000 0.25000000 0.0 1.0 +C 0.33333333 0.66666667 0.25000000 0.0 1.0 +C 0.66666667 0.33333333 0.25000000 0.0 1.0 +Si 0.33333333 0.00000000 0.33333333 0.0 1.0 +Si 0.00000000 0.33333333 0.33333333 0.0 1.0 +Si 0.66666666 0.66666666 0.33333333 0.0 1.0 +C 0.33333333 0.00000000 0.58333333 0.0 1.0 +C 0.00000000 0.33333333 0.58333333 0.0 1.0 +C 0.66666666 0.66666666 0.58333333 0.0 1.0 +Si 0.33333333 0.33333333 0.66666667 0.0 1.0 +Si 0.66666666 0.00000000 0.66666667 0.0 1.0 +Si 0.00000000 0.66666666 0.66666667 0.0 1.0 +C 0.33333333 0.33333333 0.91666666 0.0 1.0 +C 0.66666666 0.00000000 0.91666666 0.0 1.0 +C 0.00000000 0.66666666 0.91666666 0.0 1.0 diff --git a/extra/sxrd/sample/user_program/sic111-r3xr3_f.dat b/extra/sxrd/sample/user_program/sic111-r3xr3_f.dat new file mode 100644 index 00000000..2a27176c --- /dev/null +++ b/extra/sxrd/sample/user_program/sic111-r3xr3_f.dat @@ -0,0 +1,50 @@ +0.000000 0.000000 0.050000 572.805262 0.1 +0.000000 0.000000 0.150000 190.712559 0.1 +0.000000 0.000000 0.250000 114.163340 0.1 +0.000000 0.000000 0.350000 81.267319 0.1 +0.000000 0.000000 0.450000 62.927325 0.1 +0.000000 0.000000 0.550000 51.209358 0.1 +0.000000 0.000000 0.650000 43.063424 0.1 +0.000000 0.000000 0.750000 37.067788 0.1 +0.000000 0.000000 0.850000 32.471491 0.1 +0.000000 0.000000 0.950000 28.841720 0.1 +0.000000 0.000000 1.050000 25.912834 0.1 +0.000000 0.000000 1.150000 23.514369 0.1 +0.000000 0.000000 1.250000 21.533857 0.1 +0.000000 0.000000 1.350000 19.896524 0.1 +0.000000 0.000000 1.450000 18.553831 0.1 +0.000000 0.000000 1.550000 17.477037 0.1 +0.000000 0.000000 1.650000 16.653845 0.1 +0.000000 0.000000 1.750000 16.087160 0.1 +0.000000 0.000000 1.850000 15.795546 0.1 +0.000000 0.000000 1.950000 15.815396 0.1 +0.000000 0.000000 2.050000 16.205508 0.1 +0.000000 0.000000 2.150000 17.055856 0.1 +0.000000 0.000000 2.250000 18.505014 0.1 +0.000000 0.000000 2.350000 20.775759 0.1 +0.000000 0.000000 2.450000 24.252284 0.1 +0.000000 0.000000 2.550000 29.662586 0.1 +0.000000 0.000000 2.650000 38.574319 0.1 +0.000000 0.000000 2.750000 55.079247 0.1 +0.000000 0.000000 2.850000 94.211182 0.1 +0.000000 0.000000 2.950000 291.366841 0.1 +0.000000 0.000000 3.050000 301.315362 0.1 +0.000000 0.000000 3.150000 104.090382 0.1 +0.000000 0.000000 3.250000 64.817320 0.1 +0.000000 0.000000 3.350000 48.094751 0.1 +0.000000 0.000000 3.450000 38.882507 0.1 +0.000000 0.000000 3.550000 33.081716 0.1 +0.000000 0.000000 3.650000 29.118046 0.1 +0.000000 0.000000 3.750000 26.258489 0.1 +0.000000 0.000000 3.850000 24.116399 0.1 +0.000000 0.000000 3.950000 22.469230 0.1 +0.000000 0.000000 4.050000 21.180549 0.1 +0.000000 0.000000 4.150000 20.162695 0.1 +0.000000 0.000000 4.250000 19.357688 0.1 +0.000000 0.000000 4.350000 18.726538 0.1 +0.000000 0.000000 4.450000 18.243250 0.1 +0.000000 0.000000 4.550000 17.891342 0.1 +0.000000 0.000000 4.650000 17.661943 0.1 +0.000000 0.000000 4.750000 17.553000 0.1 +0.000000 0.000000 4.850000 17.569432 0.1 +0.000000 0.000000 4.950000 17.724338 0.1 diff --git a/extra/sxrd/sample/user_program/simple.py b/extra/sxrd/sample/user_program/simple.py new file mode 100644 index 00000000..d017efff --- /dev/null +++ b/extra/sxrd/sample/user_program/simple.py @@ -0,0 +1,12 @@ +import numpy as np + +import py2dmat +import py2dmat.algorithm.min_search +import sxrd + +info = py2dmat.Info.from_file("input.toml") + +solver = sxrd.Solver(info) +runner = py2dmat.Runner(solver, info) +alg = py2dmat.algorithm.min_search.Algorithm(info, runner) +alg.main() diff --git a/extra/sxrd/sample/user_program/simple2.py b/extra/sxrd/sample/user_program/simple2.py new file mode 100644 index 00000000..5b0bfddd --- /dev/null +++ b/extra/sxrd/sample/user_program/simple2.py @@ -0,0 +1,75 @@ +import numpy as np + +import py2dmat +import py2dmat.algorithm.min_search +import sxrd + +param = { + "base": { + "dimension": 2, + "output_dir": "output", + }, + "solver": { + "config": { + "sxrd_exec_file": "sxrdcalc", + "bulk_struc_in_file": "sic111-r3xr3.blk", + }, + "param": { + "scale_factor": 1.0, + "type_vector": [1, 2], + "domain": [ + { + "domain_occupancy": 1.0, + "atom": [ + { + "name": "Si", + "pos_center": [0.00000000, 0.00000000, 1.00000000], + "DWfactor": 0.0, + "occupancy": 1.0, + "displace_vector": [[1, 0.0, 0.0, 1.0]] + }, + { + "name": "Si", + "pos_center": [0.33333333, 0.66666667, 1.00000000], + "DWfactor": 0.0, + "occupancy": 1.0, + "displace_vector": [[1, 0.0, 0.0, 1.0]] + }, + { + "name": "Si", + "pos_center": [0.66666667, 0.33333333, 1.00000000], + "DWfactor": 0.0, + "occupancy": 1.0, + "displace_vector": [[1, 0.0, 0.0, 1.0]] + }, + { + "name": "Si", + "pos_center": [0.33333333, 0.33333333, 1.20000000], + "DWfactor": 0.0, + "occupancy": 1.0, + "displace_vector": [[2, 0.0, 0.0, 1.0]] + }, + ], + }, + ], + }, + "reference": { + "f_in_file": "sic111-r3xr3_f.dat", + }, + }, + "algorithm": { + "label_list": ["z1", "z2"], + "param": { + "min_list": [-0.2, -0.2], + "max_list": [ 0.2, 0.2], + "initial_list": [ 0.0, 0.0 ], + }, + }, +} + +info = py2dmat.Info(param) + +solver = sxrd.Solver(info) +runner = py2dmat.Runner(solver, info) +alg = py2dmat.algorithm.min_search.Algorithm(info, runner) +alg.main() diff --git a/sample/analytical/bayes/do.sh b/sample/analytical/bayes/do.sh index 4b3da83e..ab27e5cb 100644 --- a/sample/analytical/bayes/do.sh +++ b/sample/analytical/bayes/do.sh @@ -1,3 +1,9 @@ +#!/bin/sh + python3 ../../../src/py2dmat_main.py input.toml -python3 ../plot_himmel.py --xcol=1 --ycol=2 --format="-o" --output=output/res.pdf output/BayesData.txt -python3 ../plot_himmel.py --xcol=4 --ycol=5 --format="o" --output=output/actions.pdf output/BayesData.txt + +# python3 ../plot_himmel.py --xcol=1 --ycol=2 --format="-o" --output=output/res.pdf output/BayesData.txt +# python3 ../plot_himmel.py --xcol=4 --ycol=5 --format="o" --output=output/actions.pdf output/BayesData.txt + +python3 ../plot_himmel.py --xcol=1 --ycol=2 --format="-o" --output=output/res.png output/BayesData.txt +python3 ../plot_himmel.py --xcol=4 --ycol=5 --format="o" --output=output/actions.png output/BayesData.txt diff --git a/sample/analytical/bayes/input.toml b/sample/analytical/bayes/input.toml index c699b945..1ddb021a 100644 --- a/sample/analytical/bayes/input.toml +++ b/sample/analytical/bayes/input.toml @@ -2,19 +2,19 @@ dimension = 2 output_dir = "output" +[solver] +name = "analytical" +function_name = "himmelblau" + [algorithm] name = "bayes" seed = 12345 [algorithm.param] -max_list = [6.0, 6.0] min_list = [-6.0, -6.0] +max_list = [6.0, 6.0] num_list = [61, 61] [algorithm.bayes] random_max_num_probes = 20 bayes_max_num_probes = 40 - -[solver] -name = "analytical" -function_name = "himmelblau" diff --git a/sample/analytical/exchange/do.sh b/sample/analytical/exchange/do.sh index 5b06499d..08af231f 100644 --- a/sample/analytical/exchange/do.sh +++ b/sample/analytical/exchange/do.sh @@ -1,5 +1,9 @@ -mpiexec -np 4 --oversubscribe python3 ../../../src/py2dmat_main.py input.toml +#!/bin/sh -for i in 0 1 2 3; do +mpiexec -np 4 python3 ../../../src/py2dmat_main.py input.toml + +for i in `seq 0 79` +do python3 ../plot_himmel.py --xcol=3 --ycol=4 --skip=20 --format="o" --output=output/res_T${i}.png output/result_T${i}.txt +# python3 ../plot_himmel.py --xcol=3 --ycol=4 --skip=20 --format="o" --output=output/res_T${i}.pdf output/result_T${i}.txt done diff --git a/sample/analytical/exchange/input.toml b/sample/analytical/exchange/input.toml index a18a7809..7727fa47 100644 --- a/sample/analytical/exchange/input.toml +++ b/sample/analytical/exchange/input.toml @@ -2,6 +2,10 @@ dimension = 2 output_dir = "output" +[solver] +name = "analytical" +function_name = "himmelblau" + [algorithm] name = "exchange" seed = 12345 @@ -13,11 +17,8 @@ initial_list = [0.0, 0.0] unit_list = [0.3, 0.3] [algorithm.exchange] -Tmin = 0.1 -Tmax = 10.0 +Tmin = 0.01 +Tmax = 100.0 numsteps = 10000 numsteps_exchange = 100 - -[solver] -name = "analytical" -function_name = "himmelblau" +nreplica_per_proc = 20 diff --git a/sample/analytical/limitation/do.sh b/sample/analytical/limitation/do.sh index 8de55d57..8600513d 100644 --- a/sample/analytical/limitation/do.sh +++ b/sample/analytical/limitation/do.sh @@ -1,4 +1,5 @@ #!/bin/bash + mpiexec -np 10 --oversubscribe python3 ../../../src/py2dmat_main.py input.toml echo diff output/best_result.txt ref.txt diff --git a/sample/analytical/mapper/do.sh b/sample/analytical/mapper/do.sh index 345eef81..af2122a2 100644 --- a/sample/analytical/mapper/do.sh +++ b/sample/analytical/mapper/do.sh @@ -1,2 +1,4 @@ -python3 ../../../src/py2dmat_main.py input.toml +#!/bin/sh + +mpiexec -np 4 python3 ../../../src/py2dmat_main.py input.toml python3 ./plot_colormap_2d.py diff --git a/sample/analytical/mapper/input.toml b/sample/analytical/mapper/input.toml index c05f9759..88b274bf 100644 --- a/sample/analytical/mapper/input.toml +++ b/sample/analytical/mapper/input.toml @@ -2,6 +2,14 @@ dimension = 2 output_dir = "output" +[solver] +name = "analytical" +function_name = "himmelblau" + +[runner] +[runner.log] +interval = 20 + [algorithm] name = "mapper" seed = 12345 @@ -10,11 +18,3 @@ seed = 12345 max_list = [6.0, 6.0] min_list = [-6.0, -6.0] num_list = [31, 31] - -[solver] -name = "analytical" -function_name = "himmelblau" - -[runner] -[runner.log] -interval = 20 diff --git a/sample/analytical/mapper/plot_colormap_2d.py b/sample/analytical/mapper/plot_colormap_2d.py index c1462d1d..cd97219f 100644 --- a/sample/analytical/mapper/plot_colormap_2d.py +++ b/sample/analytical/mapper/plot_colormap_2d.py @@ -43,4 +43,5 @@ def himmel(x, y): plt.xlim(-6.0, 6.0) plt.ylim(-6.0, 6.0) plt.colorbar(label="log10(f)") -plt.savefig("output/res.pdf") +plt.savefig("output/ColorMapFig.pdf") +# plt.savefig("output/ColorMapFig.png") diff --git a/sample/analytical/minsearch/do.sh b/sample/analytical/minsearch/do.sh index 773dbf52..0cdaa203 100644 --- a/sample/analytical/minsearch/do.sh +++ b/sample/analytical/minsearch/do.sh @@ -1,2 +1,6 @@ +#!/bin/sh + python3 ../../../src/py2dmat_main.py input.toml + python3 ../plot_himmel.py --xcol=1 --ycol=2 --output=output/res.pdf output/SimplexData.txt +# python3 ../plot_himmel.py --xcol=1 --ycol=2 --output=output/res.png output/SimplexData.txt diff --git a/sample/analytical/minsearch/input.toml b/sample/analytical/minsearch/input.toml index 8100656a..38db9a70 100644 --- a/sample/analytical/minsearch/input.toml +++ b/sample/analytical/minsearch/input.toml @@ -2,6 +2,14 @@ dimension = 2 output_dir = "output" +[solver] +name = "analytical" +function_name = "himmelblau" + +[runner] +[runner.log] +interval = 20 + [algorithm] name = "minsearch" seed = 12345 @@ -11,10 +19,3 @@ max_list = [6.0, 6.0] min_list = [-6.0, -6.0] initial_list = [0, 0] -[solver] -name = "analytical" -function_name = "himmelblau" - -[runner] -[runner.log] -interval = 20 diff --git a/sample/analytical/pamc/do.sh b/sample/analytical/pamc/do.sh index 7b60cb11..e3395958 100644 --- a/sample/analytical/pamc/do.sh +++ b/sample/analytical/pamc/do.sh @@ -1,5 +1,8 @@ -python3 ../../../src/py2dmat_main.py input.toml +#!/bin/sh + +mpiexec -np 4 python3 ../../../src/py2dmat_main.py input.toml for i in `seq 0 10`; do - python3 ../plot_himmel.py --xcol=4 --ycol=5 --skip=20 --format="o" --output=output/res_T${i}.png output/0/result_T${i}.txt + # python3 ./plot_result_2d.py -o output/res_T${i}.png output/0/result_T${i}.txt + python3 ./plot_result_2d.py -o output/res_T${i}.pdf output/0/result_T${i}.txt done diff --git a/sample/analytical/pamc/input.toml b/sample/analytical/pamc/input.toml index 80df721c..b0b76359 100644 --- a/sample/analytical/pamc/input.toml +++ b/sample/analytical/pamc/input.toml @@ -2,6 +2,14 @@ dimension = 2 output_dir = "output" +[solver] +name = "analytical" +function_name = "himmelblau" + +[runner] +[runner.log] +interval = 20 + [algorithm] name = "pamc" seed = 12345 @@ -13,12 +21,8 @@ unit_list = [0.3, 0.3] [algorithm.pamc] bmin = 0.0 -bmax = 1.0 -Tnum = 11 +bmax = 200.0 +Tnum = 21 Tlogspace = false numsteps_annealing = 100 nreplica_per_proc = 100 - -[solver] -name = "analytical" -function_name = "himmelblau" diff --git a/sample/analytical/pamc/plot_result_2d.py b/sample/analytical/pamc/plot_result_2d.py new file mode 100644 index 00000000..126b698f --- /dev/null +++ b/sample/analytical/pamc/plot_result_2d.py @@ -0,0 +1,42 @@ +import os.path +import numpy as np +import matplotlib.pyplot as plt +import matplotlib.cm as cm +import matplotlib.colors + +def himmelblau(x, y): + return (x**2+y-11)**2+(x+y**2-7)**2 + +def read_file(filename, columns=[], **kwopts): + ds = np.loadtxt(filename, unpack=True, **kwopts) + return [ds[i] for i in columns] + +def plot_data(ax, x, y, f): + ax.scatter(x,y,c=f,s=1,marker="o",cmap="plasma") + +def plot_contour(ax): + npts = 101 + cx, cy = np.mgrid[-6:6:npts*1j, -6:6:npts*1j] + cz = himmelblau(cx, cy) + lvls = np.logspace(0.35, 3.2, 8) + ax.contour(cx, cy, cz, lvls, colors="k") + +if __name__ == "__main__": + import sys + import argparse + + parser = argparse.ArgumentParser() + parser.add_argument("-o", "--output", default="res.png") + parser.add_argument("inputfile", nargs="+") + args = parser.parse_args() + + fig = plt.figure() + ax = fig.add_subplot(1,1,1) + ax.set_aspect("equal", adjustable="box") + + for infile in args.inputfile: + f,x,y = read_file(infile, [3,4,5]) + plot_data(ax, x, y, f) + + plot_contour(ax) + fig.savefig(args.output) diff --git a/sample/analytical/plot_himmel.py b/sample/analytical/plot_himmel.py index 3451bb5f..3c1c1b04 100644 --- a/sample/analytical/plot_himmel.py +++ b/sample/analytical/plot_himmel.py @@ -3,26 +3,18 @@ import argparse -def himmel(x, y): +def himmelblau(x, y): return (x ** 2 + y - 11) ** 2 + (x + y ** 2 - 7) ** 2 - -def load_data(filenames, xcol=0, ycol=1): +def load_data(filenames, xcol=0, ycol=1, **kwopts): xs = [] ys = [] for filename in filenames: - with open(filename) as f: - for line in f: - if line.startswith("#"): - continue - words = line.split() - x = float(words[xcol]) - y = float(words[ycol]) - xs.append(x) - ys.append(y) + data = np.loadtxt(filename, unpack=True, **kwopts) + xs += list(data[xcol]) + ys += list(data[ycol]) return np.array(xs), np.array(ys) - if __name__ == "__main__": parser = argparse.ArgumentParser() parser.add_argument("--xcol", type=int, default=0) @@ -32,15 +24,19 @@ def load_data(filenames, xcol=0, ycol=1): parser.add_argument("--skip", type=int, default=0) parser.add_argument("inputfiles", nargs="+") args = parser.parse_args() + xs, ys = load_data(args.inputfiles, xcol=args.xcol, ycol=args.ycol) npts = 201 c_x, c_y = np.mgrid[-6 : 6 : npts * 1j, -6 : 6 : npts * 1j] - c_z = himmel(c_x, c_y) + c_z = himmelblau(c_x, c_y) levels = np.logspace(0.35, 3.2, 8) - plt.contour(c_x, c_y, c_z, levels, colors="k") - plt.plot(xs[args.skip : -1], ys[args.skip : -1], args.format) - plt.xticks(np.linspace(-6, 6, num=5, endpoint=True)) - plt.yticks(np.linspace(-6, 6, num=5, endpoint=True)) - plt.savefig(args.output) + fig = plt.figure() + ax = fig.add_subplot(1,1,1) + ax.set_aspect("equal", adjustable="box") + ax.contour(c_x, c_y, c_z, levels, colors="k") + ax.plot(xs[args.skip : -1], ys[args.skip : -1], args.format) + ax.set_xticks(np.linspace(-6, 6, num=5, endpoint=True)) + ax.set_yticks(np.linspace(-6, 6, num=5, endpoint=True)) + fig.savefig(args.output)