是否有一个软件包可以轻松创建双面费曼图,通常用于非线性光学以了解扰动阶数?
参见图 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*}
我只包含了图表的代码,没有提供文档头,因为实际编译的工作方式有很多选择(feynmp
vsfeynmf
等)。如您所见,我还省略了一些可能是动量的元素。这是因为所有用于费曼图的包都不是最优的,因为它们没有提供指示动量的方法,动量可能与费米子线上的箭头所指示的费米子流平行或反向平行(对于复标量也是如此),例如
为了实现这一点,我建议使用PStricks
(如上例所示)或 来添加它们Tikz
。从这个角度来看,使用 Tikz 的 Feynman 包可能会更有利,但由于一些相关的缺点,我不会这样做。