3

In pst-optexp one can use a component called \wdmcoupler with two inputs and one output. For my project I would need a similar coupler, but with n>2 inputs. I could not find such a construct in the manual, but is there a way to create such a coupler from scratch (or can I modify an existing coupler)?

As an initial idea I tried to create two WDM-couplers and put them at the same spot:

\documentclass[margin=5pt]{standalone}
\usepackage[dvipsnames,svgnames,pdf]{pstricks}
\usepackage{auto-pst-pdf}
\usepackage{pst-optexp}
\usepackage{stackengine}
\begin{document}
    \begin{pspicture}(10,6)
        \psset[optexp]{fiber=none, usefiberstyle}
        \newpsstyle{Fiber}{linecolor=orange, linewidth=2\pslinewidth}
        \pnodes(1, 1) {PumpDiodeIn} (2, 1){PumpDiodeOut}
        \pnodes(1, 5) {UpperPumpDiodeIn} (2, 5){UpperPumpDiodeOut}
        \pnodes(2, 3) {SignalIsolatorIn} (3, 3) {SignalIsolatorOut}
        \pnodes(1, 3) {SignalIn} (10, 3) {SignalCombinerOut}
        \pnodes(7, 3) {FiberIn} (9, 3) {FiberOut}
        \pnode(9, 3){AmpOut}
        \optdiode[compname=PumpDiode](PumpDiodeIn)(PumpDiodeOut){Pump diode}
        \optdiode[compname=UpperPumpDiode](UpperPumpDiodeIn)(UpperPumpDiodeOut){Pump diode}
        \optisolator[compname=SignalIsolator](SignalIsolatorIn)(SignalIsolatorOut){\begin{tabular}{@{}c@{}}Signal\\Isolator\end{tabular}}
        \wdmcoupler[compname=SignalPumpCombiner, coupleralign=top](SignalIsolatorOut)(PumpDiodeOut)(FiberIn){\begin{tabular}{@{}c@{}}Signal/Pump\\light combiner\end{tabular}}
        \wdmcoupler[compname=SignalPumpCombinerII, coupleralign=top](SignalIsolatorOut)(UpperPumpDiodeOut)(FiberIn){}
        \optfiber[compname=ActiveFiber, position=start,linecolor=red](FiberIn)(FiberOut){\begin{tabular}{@{}c@{}}Active\\fiber\end{tabular}}
        \nput{75}{AmpOut}{\begin{tabular}{@{}c@{}}Amplifier\\Output\end{tabular}}
        \nput{90}{SignalIn}{\begin{tabular}{@{}c@{}}Signal\\Input\end{tabular}}         
        \drawfiber{SignalIsolator}{SignalPumpCombiner}
        \drawfiber{PumpDiode}{SignalPumpCombiner}
        \drawfiber{UpperPumpDiode}{SignalPumpCombinerII}
        \drawfiber{SignalPumpCombiner}{ActiveFiber}
        \drawfiber[ArrowInside=->](SignalIn){SignalIsolator}
        \drawfiber[arrows=->]{ActiveFiber}(AmpOut)  
    \end{pspicture}
\end{document}

which results in enter image description here Still, a more simple solution would be appreciated.

6
  • 1
    Could you post a compilable code of what you've tried so far and explain precisely what you'd like to have?
    – Bernard
    Feb 4, 2021 at 17:31
  • How many inputs do you need?
    – Christoph
    Feb 4, 2021 at 18:41
  • @Christoph: Currently three, but for future projects it would be nice to have the option of increasing the number to eight or more.
    – arc_lupus
    Feb 4, 2021 at 21:50
  • Do you have an example picture, how this could look like. Especially regarding the shape and alignment there are many varieties
    – Christoph
    Feb 4, 2021 at 22:39
  • 1
    Thank you for the example. I'm working on a way to specify multiple input nodes. However, this may take some time. I haven't worked on the package for years...
    – Christoph
    Feb 7, 2021 at 12:41

1 Answer 1

2

I just released version 6.0 of pst-optexp.

Now a wdmcoupler can have an arbitrary number of input nodes:

\documentclass[margin=5pt]{standalone}
\usepackage{pst-optexp}
\begin{document}
\begin{pspicture}(4,2)
  \begin{optexp}
    \newpsstyle{Fiber}{linecolor=orange}
    \pnodes(0,2){A}(0,1.2){B}(0,0.8){C}(0,0){D}(4,1){E}
    \wdmcoupler(A)(B)(C)(D)(E){coupler}
  \end{optexp}
\end{pspicture}
\end{document}

enter image description here

Equally, a wdmsplitter can have an arbitrary number of output nodes.

So, your example becomes the following:

\documentclass[margin=5pt]{standalone}
\usepackage{pst-optexp}
\begin{document}
\begin{pspicture}(10,6)
  \begin{optexp}
    \psset[optexp]{usefiberstyle, couplersize=0.25, couplersep=0.07}
    \newpsstyle{Fiber}{linecolor=orange, linewidth=2\pslinewidth}
    \pnodes(2,1){PumpDiode}(2,5){UpperPumpDiode}(1,3){SignalIsolatorIn}(4, 3){SignalIsolatorOut}(1,3){SignalIn}(10,3){SignalCombinerOut}
    \pnodes(7,3){FiberIn}(9,3){FiberOut}(9,3){AmpOut}
    \optdiode[compname=PumpDiode, position=start](PumpDiode)([Xnodesep=1]PumpDiode){Pump diode}
    \optdiode[compname=UpperPumpDiode, position=start](UpperPumpDiode)([Xnodesep=1]UpperPumpDiode){Pump diode}
    \optisolator[compname=SignalIsolator, fiber=none](SignalIsolatorIn)(SignalIsolatorOut)%
        {\begin{tabular}{@{}c@{}}Signal\\Isolator\end{tabular}}
    \wdmcoupler[compname=SignalPumpCombiner](UpperPumpDiode)(\oenodeOut{SignalIsolator})(PumpDiode)(FiberIn)%
        {\begin{tabular}{@{}c@{}}Signal/Pump\\light combiner\end{tabular}}
    \optfiber[
        compname=ActiveFiber,
        position=start,
        addtoFiberOut={arrows=->}](FiberIn)(FiberOut)%
        {\begin{tabular}{@{}c@{}}Active\\fiber\end{tabular}}
    \drawfiber[ArrowInside=->](SignalIn){SignalIsolator}
  \end{optexp}
  \nput{75}{AmpOut}{\begin{tabular}{@{}c@{}}Amplifier\\Output\end{tabular}}
  \nput{-90}{SignalIn}{\begin{tabular}{@{}c@{}}Signal\\Input\end{tabular}}         
\end{pspicture}
\end{document}

enter image description here

I added this also as show case to the examples in the pst-optexp documentation.

1
  • 1
    Wow, nice! That's a really useful update also for future systems!
    – arc_lupus
    Feb 27, 2021 at 15:22

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .