なぜビームは 2 番目のミラーを超えて伝播しないのですか?

なぜビームは 2 番目のミラーを超えて伝播しないのですか?

梁の曲げの図

\documentclass[]{revtex4} 
\usepackage{pst-optexp}
\usepackage{pst-node}

\begin{document}

\begin{pspicture}[showgrid=true](13,14)
\pnodes(2,10){A}(3,10){MIP}(3,12.5){LIP}(3,13){MIIP}(5,13){LIIP}
\pnodes(8,13){MIIIP}(8,8){MIVP}(14,8){LIIIP}(10,8){LIVP}(12,8){MVP}(12,3){d}
\pnodes(12,1){MVIP}(10,1){LVIP}(6,1){C}


\psset{mirrortype=extended, mirrordepth=0.2}


\begin{optexp}
    \optsource[innerlabel, compname = start](A)(MIP){Beam}
    \mirror[compname = mi, labelangle=45](A)(MIP)(LIP){$M_1$}
    \lens[compname = li, n=1.57](MIP)(LIP){$L_1$}

    \mirror[compname= mii, labelangle=-45](LIP)(MIIP)(LIIP){$M_{2}$}

    \lens[compname= lii, n=1.517](MIIP)(LIIP){$L_{2}$}

    \mirror[compname= miii, labelangle=-45](LIIP)(MIIIP)(MIVP){$M_{3}$}
    \mirror[compname= miv, labelangle=45](MIIIP)(MIVP)(LIIIP){$M_{4}$}

    \lens[compname= liii, n=1.517](MIVP)(LIIIP){$L_{3}$}

    \mirror[compname= mv, labelangle=-45](MIVP)(MVP)(d){$M_{5}$}
    \mirror[compname= mvi, labelangle=-45](d)(MVIP)(LVIP){$M_{6}$}


   \lens[compname= lensfour, n=1.517](MVIP)(LVIP){$L_{4}$}
   \optsource[innerlabel](C)(C){Comp.}
\end{optexp}
\addtopsstyle{Beam}{fillstyle=solid, fillcolor=green!20!white}
\drawwidebeam[beamwidth=0.4, beaminsidelast]{1-5}
\drawwidebeam[loadbeampoints]{5-12}
\end{pspicture}

\end{document}

答え1

セットアップのデバッグ

pst-optexpさまざまなデバッグの可能性を提供します:

  • を使用すると\psset{pswarning}、Postscript レベルで警告を有効にすることができます。例では、「警告 pst-optexp: 上部のビームがインターフェイスを見逃しました」というメッセージが表示されます。
  • デフォルトでは、pst-optexpコンポーネントの開口数を考慮します。外側のビームの1つが次のインターフェイスに当たらない場合は、ビームの描画が停止します。\psset{useNA=false}これを一時的に無効にして、どのビームが問題なのかを確認できます。設定の結果は次のとおりです。

ここに画像の説明を入力してください

M3ミラーが小さすぎる(またはビームが広すぎる)ため、ビームの経路が中断されていることがわかります。

考えられる解決策

ビームをニーズに合わせて調整するには、すべてのレンズの屈折率を微調整するnか、平行部分と集束部分ごとにビームを個別に描画します。

レシピは次のとおりです。

  1. 最初の平行部分を で描きます\drawwidebeam[beamwidth=0.4, stopinside]{1-3}。これは、最初のレンズの 2 番目のインターフェイスまでビームをトレースします (最初のインターフェイスまでのみ描画します)。
  2. ここで、 を使用して、最初のレンズと 2 番目のレンズの間にビームを描画します\drawwidebeam[loadbeampoints, beamdiv=-20, stopinside]{3-5}。これにより、前の呼び出しのエンドポイントが読み込まれます\drawwidebeamが、ビームの発散を調整できます。
  3. 2 番目のレンズからは、\drawwidebeam[loadbeampoints]以前のビームの終点を再度ロードしますが、平行光線を継続します。

等々。

\documentclass[pstricks,margin=12pt]{standalone} 
\usepackage{pst-optexp}

\begin{document}
\begin{pspicture}[showgrid=true](13,14)
\pnodes(2,10){A}(3,10){MIP}(3,12.5){LIP}(3,13){MIIP}(5,13){LIIP}
\pnodes(8,13){MIIIP}(8,8){MIVP}(14,8){LIIIP}(10,8){LIVP}(12,8){MVP}(12,3){d}
\pnodes(12,1){MVIP}(10,1){LVIP}(6,1){C}

\psset{mirrortype=extended, mirrordepth=0.2}
\psset{mirrorwidth=1.1}
\addtopsstyle{Beam}{fillstyle=solid, fillcolor=green!20!white}
\begin{optexp}
    \optsource[innerlabel, compname = start](A)(MIP){Beam}
    \mirror[compname = mi, labelangle=45](A)(MIP)(LIP){$M_1$}
    \lens[compname = li](MIP)(LIP){$L_1$}
    \drawwidebeam[beamwidth=0.4, stopinside]{1-3}

    \mirror[compname= mii, labelangle=-45](LIP)(MIIP)(LIIP){$M_{2}$}
    \lens[compname= lii](MIIP)(LIIP){$L_{2}$}
    \drawwidebeam[loadbeampoints, beamdiv=-20, stopinside]{3-5}

    \mirror[compname= miii, labelangle=-45](LIIP)(MIIIP)(MIVP){$M_{3}$}
    \mirror[compname= miv, labelangle=45](MIIIP)(MIVP)(LIIIP){$M_{4}$}

    \lens[compname= liii](MIVP)(LIIIP){$L_{3}$}
    \drawwidebeam[loadbeampoints, stopinside]{5-8}

    \mirror[compname= mv, labelangle=-45](MIVP)(MVP)(d){$M_{5}$}
    \mirror[compname= mvi, labelangle=-45](d)(MVIP)(LVIP){$M_{6}$}
    \lens[compname= lensfour](MVIP)(LVIP){$L_{4}$}
    \drawwidebeam[loadbeampoints, beamdiv=-6.3, stopinside]{8-11}
    \optbox[innerlabel](C)(C){Comp.}
    \drawwidebeam[loadbeampoints]{11}{12}
\end{optexp}
\end{pspicture}

\end{document}

ここに画像の説明を入力してください

ところで: pst-optexp-setups をコンパイルしてもxelatex正しく動作しません。

関連情報