双面费曼图

双面费曼图

是否有一个软件包可以轻松创建双面费曼图,通常用于非线性光学以了解扰动阶数?

参见图 2文章例如。

由于它们看起来与“正常”费曼图完全不同,我认为 FeynFM 包不会有任何帮助。

编辑:图 b 是我想要创建的

双面费曼图

答案1

彻底改变方向:您已经更新了您的问题,但我现在才收到通知。我展示了如何绘制这些东西,但只输入了前两个图表,其余部分都是类似的。

\documentclass[tikz,border=3.14mm]{standalone}
\usetikzlibrary{matrix,fit,positioning}
\tikzset{
mymat/.style={
    matrix of math nodes,
    left delimiter=|,right delimiter=|,
    align=center,
    column sep=-\pgflinewidth
},
mymats/.style={
    mymat,
    nodes={draw,fill=#1}
}  
}

\begin{document}
\begin{tikzpicture}[font=\sffamily,
    every left delimiter/.style={xshift=.4em},
    every right delimiter/.style={xshift=-.4em}]
% first diagram
\matrix[mymat] at (0,0) (mat1)
{   0 & 0\\
    1 & 0\\
    0 & 0\\
    1 & 0\\
    0 & 0\\
};
\draw[stealth-] (mat1-4-2.south -| mat1.east) -- ++(4mm,-4mm) node[pos=0.75,above]{$k_A$};
\draw[-stealth] (mat1-3-2.south -| mat1.east) -- ++(4mm,4mm) node[pos=0.75,above]{$k_B$};
\draw[stealth-] (mat1-2-2.south -| mat1.west) -- ++(-4mm,-4mm) node[pos=0.75,below]{$k_C$};
\draw[-stealth] (mat1-1-2.south -| mat1.west) -- ++(-4mm,4mm) node[pos=0.75,below]{$k_S$};
% second diagram
\matrix[mymat,right=2cm of mat1] (mat2)
{   0 & 0\\
    1 & 0\\
    0 & 0\\
    1 & 0\\
    0 & 0\\
};
\draw[stealth-] (mat2-4-2.south -| mat2.east) -- ++(4mm,-4mm) node[pos=0.75,above]{$k_A$};
\draw[-stealth] (mat2-2-2.south -| mat2.east) -- ++(4mm,4mm) node[pos=0.75,above]{$k_C$};
\draw[stealth-] (mat2-3-2.south -| mat2.west) -- ++(-4mm,-4mm) node[pos=0.75,below]{$k_B$};
\draw[-stealth] (mat2-1-2.south -| mat2.west) -- ++(-4mm,4mm) node[pos=0.75,below]{$k_S$};
% connect the two
\draw[green!60!black] (mat1.south) -- ++(0,-0.4) -| (mat2.south)
node[pos=0.25,above]{$A$};
\end{tikzpicture}
\end{document}

在此处输入图片描述

原始答案(针对原始问题):当然可以用 绘制这样的图表feynmp,但这个包不是为此设计的。显然,您希望创建的图表不是费曼图。以下是此方法的一个例子:

\begin{fmfgraph*}(60,100)    
    \fmftop{h1,t1,h2,t2,h3}    
    \fmfbottom{h4,b1,h5,b2,h6}    
    \fmf{plain}{t1,b1}    
    \fmf{plain}{t2,b2}    
    \fmffreeze
    \fmf{phantom}{t1,l1,l2,l3,l4,l5,b1}
    \fmf{phantom}{t2,r1,r2,r3,r4,r5,b2}
    \fmffreeze
    \fmf{plain,left}{t1,t2}
    \fmf{dashes,label=$t$}{t1,t2}
    \fmfshift{0,40}{h1}
    \fmf{scalar}{t1,h1}
    \fmf{fermion,label=$g$,l.s=left}{b1,l5}
    \fmf{phantom,label=$e$}{l5,l4}
    \fmf{fermion}{h4,l5}
    \fmf{fermion,label=$g$,l.s=left}{r4,b2}
    \fmf{fermion,label=$~$,l.s=left}{r1,h3}
    \fmfshift{0,40}{h6}
    \fmf{fermion,label=$~$,l.s=left}{h6,r4}
    \fmf{phantom,label=$g'$}{r1,r2}
    \fmf{phantom,label=$e'$,label.side=left}{r3,r4}
\end{fmfgraph*}

它产生 在此处输入图片描述

我只包含了图表的代码,没有提供文档头,因为实际编译的工作方式有很多选择(feynmpvsfeynmf等)。如您所见,我还省略了一些可能是动量的元素。这是因为所有用于费曼图的包都不是最优的,因为它们没有提供指示动量的方法,动量可能与费米子线上的箭头所指示的费米子流平行或反向平行(对于复标量也是如此),例如

在此处输入图片描述

为了实现这一点,我建议使用PStricks(如上例所示)或 来添加它们Tikz。从这个角度来看,使用 Tikz 的 Feynman 包可能会更有利,但由于一些相关的缺点,我不会这样做。

相关内容