.. _[t-3dshow]: [ T-3Dshow ] セクション ================================================== 幾何形状の3次元パース図を出力します。 このタリーは、**[parameters]** セクションで **icntl=11** を指定した時だけ出力させることができます。 .. rst-class:: no-caption-number .. list-table:: **output** :header-rows: 0 * - value - explanation * - **0, 1, 2, 3** - **0** はドラフト、**1** は境界線のみ、**2** は境界線無し、**3** は境界線とカラーです。 省略時は **3** です。 .. rst-class:: no-caption-number .. list-table:: **material** :header-rows: 0 * - value - explanation * - optional - 表示する material を限定します。複数定義可能です。 * - **all** - デフォルトで、省略した場合と同じです。 * - number - 数を指定した場合、その数だけの material を次の行に記述します。 負の数にした場合は、それらの material を表示しないことを意味します。 * - next line - **2 5 8** のように material 番号を指定します。 .. rst-class:: no-caption-number .. list-table:: **x0, y0, z0** :header-rows: 0 * - value - explanation * - **0.0** (既定値) - 焦点の座標です。この点と目の位置を結んだ線が画面の中央になります。 .. rst-class:: no-caption-number .. list-table:: **e-the** :header-rows: 0 * - value - explanation * - **80** (既定値) - 目の位置の焦点から見た極角 **θ** [degree] です。 .. rst-class:: no-caption-number .. list-table:: **e-phi** :header-rows: 0 * - value - explanation * - **140** (既定値) - 目の位置の焦点から見た方位角 **φ** [degree] です。 .. rst-class:: no-caption-number .. list-table:: **e-dst** :header-rows: 0 * - value - explanation * - **w-dst*10** (既定値) - 目の位置と焦点の間の距離 [cm] です。 .. rst-class:: no-caption-number .. list-table:: **l-the** :header-rows: 0 * - value - explanation * - **e-the** (既定値) - 光源の焦点から見た極角 **θ** [degree] です。 .. rst-class:: no-caption-number .. list-table:: **l-phi** :header-rows: 0 * - value - explanation * - **e-phi** (既定値) - 光源の焦点から見た方位角 **φ** [degree] です。 .. rst-class:: no-caption-number .. list-table:: **l-dst** :header-rows: 0 * - value - explanation * - **e-dst** (既定値) - 光源と焦点の間の距離 [cm] です。 .. rst-class:: no-caption-number .. list-table:: **w-wdt** :header-rows: 0 * - value - explanation * - **100** (既定値) - 画面フレームの幅 [cm] です。 .. rst-class:: no-caption-number .. list-table:: **w-hgt** :header-rows: 0 * - value - explanation * - **100** (既定値) - 画面フレームの高さ [cm] です。 .. rst-class:: no-caption-number .. list-table:: **w-dst** :header-rows: 0 * - value - explanation * - **200** (既定値) - 画面フレームの中央と焦点の間の距離 [cm] です。 画面フレームの中央と焦点を結ぶ直線は、画面フレーム平面に垂直で、かつ目の位置を通ります。 .. rst-class:: no-caption-number .. list-table:: **w-mnw** :header-rows: 0 * - value - explanation * - **100** (既定値) - 画面横方向のメッシュ数です。 .. rst-class:: no-caption-number .. list-table:: **w-mnh** :header-rows: 0 * - value - explanation * - **100** (既定値) - 画面高さ方向のメッシュ数です。 .. rst-class:: no-caption-number .. list-table:: **w-ang** :header-rows: 0 * - value - explanation * - **0.0** (既定値) - 画面の回転 [degree] です。 .. rst-class:: no-caption-number .. list-table:: **heaven** :header-rows: 0 * - value - explanation * - **y** (既定値) - 画面上方向の向きを **x, -x, y, -y, z, -z** で指定します。 .. rst-class:: no-caption-number .. list-table:: **mirror** :header-rows: 0 * - value - explanation * - **0** (既定値) - **-1** で画面の左右鏡面変換を行います。 .. figure:: t-3dshow.png :width: 40em :name: t-3dshow :align: center 3dshow タリー: 原点 **(x0,y0,z0)**、目の位置 **(e-the,e-phi,e-dst)**、光源 **(l-the,l-phi,l-dst)**、および画面フレーム **(w-wdt,w-hgt,w-dst)** の与え方。 .. rst-class:: no-caption-number .. list-table:: **line** :header-rows: 0 * - value - explanation * - **0, 1** - **output=1, 3** の時、**0** は物質境界と面境界、**1** は物質境界と面境界と領域境界を描きます。 既定値は **0** です。 .. rst-class:: no-caption-number .. list-table:: **r-out** :header-rows: 0 * - value - explanation * - **50000** (既定値) - 目の位置と光源を含む外部ボイドの半径 [cm] です。 .. rst-class:: no-caption-number .. list-table:: **shadow** :header-rows: 0 * - value - explanation * - **0** (既定値) - 影の強さです。**0** で影無し、**2** ぐらいが適当です。 .. rst-class:: no-caption-number .. list-table:: **bright** :header-rows: 0 * - value - explanation * - **0.8** (既定値) - 面の明るさの制限です。**1** で最大、**0** で明るさ無しです。 .. rst-class:: no-caption-number .. list-table:: **dark** :header-rows: 0 * - value - explanation * - **0.2** (既定値) - 面の暗さの制限です。**1** で暗さ無し、**0** で最大です。 .. rst-class:: no-caption-number .. list-table:: **box** :header-rows: 0 * - value - explanation * - **0** (既定値) - 透過 box の数です。最大 5 個までです。 * - 10 numbers - box 定義です。詳細は下の説明を参照してください。 .. rst-class:: no-caption-number .. list-table:: **matinbox** :header-rows: 0 * - value - explanation * - optional - box 内で表示する material を指定します。複数定義可能です。 * - **all** - デフォルトで、省略した場合と同じです。 * - number - 数を指定した場合、その数だけの material を次の行に記述します。 負の数は不可です。 * - next line - **2 5 8** のように material 番号を指定します。 .. rst-class:: no-caption-number .. list-table:: **reginbox** :header-rows: 0 * - value - explanation * - optional - box 内で表示する領域を指定します。複数定義可能です。 * - **all** - デフォルトで、省略した場合と同じです。 * - region number - **matinbox** の指定のある物質では、非表示にします。 .. rst-class:: no-caption-number .. list-table:: **resol** :header-rows: 0 * - value - explanation * - **1** (省略時) - 境界を求める分解能を各辺 **resol** 倍します。 .. rst-class:: no-caption-number .. list-table:: **width** :header-rows: 0 * - value - explanation * - **0.5** (省略時) - 領域境界を表示する線の太さを定義します。 .. rst-class:: no-caption-number .. list-table:: **file** :header-rows: 0 * - value - explanation * - ``file name`` - 出力ファイル名です。 .. rst-class:: no-caption-number .. list-table:: **title** :header-rows: 0 * - value - explanation * - optional - 出力ファイルヘッダーのタイトルです。 .. rst-class:: no-caption-number .. list-table:: **angel** :header-rows: 0 * - value - explanation * - optional - ANGEL パラメータです。 .. rst-class:: no-caption-number .. list-table:: **sangel** :header-rows: 0 * - value - explanation * - optional - SANGEL パラメータです。 .. rst-class:: no-caption-number .. list-table:: **x-txt** :header-rows: 0 * - value - explanation * - optional - x 軸テキストです。 .. rst-class:: no-caption-number .. list-table:: **y-txt** :header-rows: 0 * - value - explanation * - optional - y 軸テキストです。 .. rst-class:: no-caption-number .. list-table:: **z-txt** :header-rows: 0 * - value - explanation * - optional - z 軸テキストです。 .. rst-class:: no-caption-number .. list-table:: **epsout** :header-rows: 0 * - value - explanation * - **0** (省略時), **1** - **1** で出力ファイルを ANGEL で処理した eps ファイルを作成します。 ファイル名は出力ファイルの拡張子を **eps** に変えたものです。 .. rst-class:: no-caption-number .. list-table:: **axishow** :header-rows: 0 * - value - explanation * - **0, 1, 2** - **0** は xyz 軸を表示しません。 **1** は xyz 軸を左下に表示します。 **2** は xyz 軸を中心に表示します。 既定値は **1** です。 **reg=**、また **reginbox=** の表式は、領域メッシュの指定の仕方と同じです。 計算時間短縮のため、光源、目の位置が外部ボイドの内側に納まるように、半径 **r-out** の球を新たに設定してその外側を外部ボイド、その内側を内部ボイドに設定しています。**r-out** の値が小さい場合、つまり、幾何形状がこの値より大きい場合、もしくは、光源、目の位置を非常に遠くに置きたい時などは、**r-out** の値を大きく設定してください。この新しく加えられた外部ボイドを定義する球の設定は、インプットエコーで見ることができます。従って、この **icntl=11** の計算のインプットエコーの出力を再び計算のインプットに用いますとエラーします。目の位置と光源を一致させれば、影はできません。 box の定義 ---------------------------------------- 透過 box は、最大 5 個まで定義できます。これらの box で定義された内部は、光は透過します。box の定義は、空間内の 3 点、**b0** (x0,y0,z0)、**b1** (x1,y1,z1)、**b2** (x2,y2,z2) を与えて、この 3 点で定義される平面に垂直な方向、つまり、**(b1 - b0) × (b2 - b0)** の方向に点 **b3** を点 **b0** から長さ **L** のところに取ります。この 4 点で下図のように box を定義します。この box の定義には、座標変換が使えます。box の各点を定義する前に **trcl=** で座標変換番号を定義するか、**trcl=(...)** のように座標変換を直接定義します。 ただし、透過 box で定義した空間に真空があると適切に機能しない場合があるようです。そのときは、密度を薄くした空気等の物質でその領域を満たしてください。 box の定義の書式は、 .. code-block:: text :caption: box の定義例 box = 2 box x0 y0 z0 x1 y1 z1 x2 y2 z2 L box trcl = 2 x0 y0 z0 x1 y1 z1 x2 y2 z2 L box *trcl = (0 0 0 0 90 90 90 60 150 90 30 60 -1) 0.0 0.0 0.0 -5.0 0.0 0.0 0.0 0.0 5.0 5.0 .. figure:: box01.png :width: 20em :name: fig-box :align: center box の定義例。 3dshow の例題 ---------------------------------------- 3dshow の例題を見てみましょう。以下の例題の幾何形状は、以下のようなものです。 .. _ex-t3dshow-ex1: .. code-block:: text :caption: **[t-3dshow]** の例題(1) 1: [cell] 2: 1 0 -1 fill=1 3: 2 0 -41 42 -43 44 -45 46 u=1 fill=5 4: 22 0 -41 42 -43 44 -45 46 u=1 trcl=(0 0 20) fill=6 5: 23 like 22 but trcl=(0 0 40) fill = 7 6: 5 0 -21 22 -23 24 -25 26 u=5 lat=1 fill=3 7: 6 0 -21 22 -23 24 -25 26 u=6 lat=1 fill= -1:1 0:0 0:0 2 2(0 0 5) 2 8: 7 0 -21 22 -23 24 -25 26 u=7 fill= -1:1 0:0 0:0 2 3 2 lat=1 9: 3 1 3.97300E-02 3 u=2 10: 4 6 4.18280E-02 -3 u=2 11: 13 5 8.47130E-04 -3 u=3 12: 14 3 1.23620E-01 3 u=3 13: 8 -1 +1 14: [surface] 15: 1 rpp -15 15 -5 5 -5 55 16: 21 px 5 17: 22 px -5 18: 23 py 5 19: 24 py -5 20: 25 pz 15 21: 26 pz -5 22: 41 px 15 23: 42 px -15 24: 43 py 5 25: 44 py -5 26: 45 pz 15 27: 46 pz -5 28: 5 rpp -20 20 -5 5 -5 35 29: 6 rpp -20 20 -5 5 -5 15 30: 7 rpp -20 20 -5 5 35 55 31: 3 c/y 0 10 4 全体は直方体、中にやはり直方体の lattice とその中に円柱が入っています。これを表示する 3dshow のインプットは次のようになります。 .. _ex-t3dshow-ex2: .. code-block:: text :caption: **[t-3dshow]** の例題(2) 1: [t-3dshow] 2: output = 3 3: heaven = x 4: resol = 2 5: width = 0.1 6: x0 = 0 7: y0 = 0 8: z0 = 25 9: e-the = 70 10: e-phi = 50 11: e-dst = 1000 12: l-the = 50 13: l-phi = 25 14: l-dst = 2000 15: w-wdt = 60 16: w-hgt = 40 17: w-dst = 150 18: file = dshow.dat この結果は、 .. figure:: dshow1.png :width: 20em :align: center **[t-3dshow]** の出力例。 となります。これに、**line=1** を加えて、領域境界の線も書き込んでみます。 .. figure:: dshow2.png :width: 20em :align: center **line=1** を指定した出力例。 lattice がどう組まれているかが分かると思います。次に、赤の領域、物質 5 番を透明にするために、また、影を付けるために、 .. code-block:: text :caption: 透明化と影付けの追加設定例 material = -1 5 shadow = 2 を加えます。 .. figure:: dshow3.png :width: 20em :align: center 透明化と影付けを追加した出力例。 次に、box を設定します。 .. code-block:: text :caption: box の追加設定例 box = 1 box 0 10 30 100 10 30 0 10 100 100 box により、一部が透明になり内部が見られます。 .. figure:: dshow4.png :width: 20em :align: center box を追加した出力例。 次に、 .. code-block:: text :caption: **reg** と **matinbox** の追加設定例 reg = ( 3 < 6[0 0 0] ) matinbox = 1 6 を加え、box 外では、**reg = ( 3 < 6[0 0 0] )** を透明にし、box 内では、物質 6 番を見える様にします。 .. figure:: dshow5.png :width: 20em :align: center 透明領域と box 内表示を組み合わせた出力例。 これらの組み合わせで、複雑な構造の内部を希望どおり表示することが可能になります。