为什么我的光束无法传播到第二面镜子之外?

为什么我的光束无法传播到第二面镜子之外?

梁弯曲图

\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遵循组件的数值孔径。如果其中一个外光束未击中下一个界面,则光束绘制停止。\psset{useNA=false}您可以暂时禁用此功能以查看哪个光束出错。对于您的设置,结果是

在此处输入图片描述

您会看到,M3镜子太小(或光束太宽),所以光束路径被中断。

可能的解决方案

为了根据您的需要定制光束,您可以微调n所有透镜的折射率,也可以分别为平行和聚焦部分分段绘制光束。

配方如下:

  1. 用 绘制第一个平行部分\drawwidebeam[beamwidth=0.4, stopinside]{1-3},该部分追踪光束直到第一个透镜的第二个界面(仅绘制到第一个界面)。
  2. 现在用 在第一和第二个透镜之间画出光束\drawwidebeam[loadbeampoints, beamdiv=-20, stopinside]{3-5}。这将加载上一次调用的端点\drawwidebeam,但允许您调整光束发散度。
  3. 从第二个透镜继续\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无法正常工作。

相关内容