I want to solve Dirac equation in a metric like $ds^2=g(u,v)\,du\,dv$. The relations of $u$ and $v$ with Minkowski coordinates $t$ and $x$ are given by functions $A$ and $B$, $t=A(u,v)$ and $x=B(u,v)$.

First I want to find the Dirac equation in these coordinates and then I need its solution to find the Bogoliubov coefficients.

How can I use Mathematica for that?

I also installed the FeynCalc package, but I don't know how to use it. Is there any code for solving Dirac equation?

  • 7
    $\begingroup$ i also want many things? $\endgroup$ Oct 9, 2018 at 21:57
  • 2
    $\begingroup$ It's always best to start with a modest example. Click on the feyncalc tag beneath your question and see if you can find help there. Then formulate a concrete example as much as you can in copy-pastable code. That will increase your chances of getting a meaningful answer. $\endgroup$
    – Jens
    Oct 10, 2018 at 2:36
  • 1
    $\begingroup$ Also, what are $t$, $x$, $A$ and $B$? They do not appear in the equation. $\endgroup$
    – anderstood
    Oct 10, 2018 at 3:12
  • 2
    $\begingroup$ I do not think the question is too broad, but it really requires more details and a demonstration of an attempt. $\endgroup$
    – Johu
    Oct 10, 2018 at 6:35
  • 2
    $\begingroup$ @aber, in order to dsolve or ndsolve with Mma there are some steps needed. Christoffel symbols, veilbeins, spin-connection, then the Dirac operator, then project out the chiral equations and then obtain a second order de that you can solve. An as the others mentioned, the more info you share will give you more chances for an answer. Also, I am sure that Feyncalc in not a necessity. $\endgroup$ Oct 10, 2018 at 10:31

1 Answer 1


Disclaimer: The code presented below is not entirely written by me. I found some pieces online, wrote some others, tweaked them a bit, and I am pasting the final thing that I am using in my notebooks. I am just answering as I have been dealing a lot with the Dirac lately, and hopefully, I can help a bit.

Firstly, let me give some piece of code that defines a metric, and calculates all the ingredients in order to compute the Dirac operator on a curved manifold.

I will use a $5$ dimensional AdS spacetime, which I write in the following way

$$ds^2 = \frac{du^2 + dx_{\mu} dx^{\mu}}{u^2}$$

where $\mu$ is a Minkowskian index; runs from $0$ to $3$.

Clear[coord, metric, inversemetric, affine, t, x, y, z, u]
(*The dimension n of the spacetime*)
n = 5;
coord = {t, x, y, z, u};
(*The metric with indices down*)

metric = {{-(1/u^2), 0, 0, 0, 0}, {0, 1/u^2, 0, 0, 0}, {0, 0, 1/u^2, 
    0, 0}, {0, 0, 0, 1/u^2, 0}, {0, 0, 0, 0, 1/u^2}};
metric // MatrixForm;
inversemetric = Simplify[Inverse[metric]];
inversemetric // MatrixForm;
(*Test N^o 1.*)
% // MatrixForm

The following bit is calculating and displaying the Christoffel symbols. Note that $\Gamma[1,2,3]$ is the symbol $\Gamma^1_{23}$ and also note that only the independent components are displayed.

(*The Christoffel symbols*)
(*Subscript[\[CapitalGamma]^\[Lambda], \
\*SubscriptBox[\(\[PartialD]\), \(\[Mu]\)]\ 
\*SubscriptBox[\(g\), \(\[Sigma]\[Nu]\)]\)+\!\(
\*SubscriptBox[\(\[PartialD]\), \(\[Nu]\)]\ 
\*SubscriptBox[\(g\), \(\[Sigma]\[Mu]\)]\)-\!\(
\*SubscriptBox[\(\[PartialD]\), \(\[Sigma]\)]\ 
\*SubscriptBox[\(g\), \(\[Mu]\[Nu]\)]\))*)
affine := 
 affine = Simplify[Table[(1/2)*Sum[(inversemetric[[i, s]])*
       (D[metric[[s, j]], coord[[k]] ] +
         D[metric[[s, k]], coord[[j]] ] - 
         D[metric[[j, k]], coord[[s]] ]), {s, 1, n}],
    {i, 1, n}, {j, 1, n}, {k, 1, n}] ]
listaffine := 
 Table[If[UnsameQ[affine[[i, j, k]], 
    0], {ToString[\[CapitalGamma][i, j, k]], affine[[i, j, k]]}] , {i,
    1, n}, {j, 1, n}, {k, 1, j}]
TableForm[Partition[DeleteCases[Flatten[listaffine], Null], 2], 
 TableSpacing -> {2, 2}]

Here is the computation of the funf-beins and some consistency checks

Eup = { {1/u, 0, 0, 0, 0},
   {0, 1/u, 0, 0, 0},
   {0, 0, 1/u, 0, 0}, {0, 0, 0, 1/u, 0}, {0, 0, 0, 0, 1/u} };
Edown = Inverse[Eup];
(*Test N^o2.*)
(*Part I:\!\(
\*SubsuperscriptBox[\(e\), \(\[Mu]\), \(a\)]\ 
\*SuperscriptBox[\(g\), \(\[Mu]\[Nu]\)]
\*SubsuperscriptBox[\(e\), \(\[Nu]\), \(b\)]\) = \[Eta]^ab*)
(\[Eta] =
    Eup[[a]].inversemetric.Eup[[b]], {a, 1, n}, {b, 1, 
     n} ] ) // MatrixForm
(*Part II: \!\(
\*SubsuperscriptBox[\(e\), \(\[Mu]\), \(a\)]\ 
\*SubsuperscriptBox[\(e\), \(a\), \(\[Nu]\)]\) = Subsuperscript[\
\[Delta], \[Nu], \[Mu]]*)

Table[ Sum[Eup[[a, \[Mu]]] Edown[[a, \[Nu]]], {a, 1, n}], {\[Mu], 1, 
   n}, {\[Nu], 1, n} ] // MatrixForm
(*Part III:\!\(
\*SubsuperscriptBox[\(e\), \(\[Mu]\), \(a\)]\ 
\*SubsuperscriptBox[\(e\), \(b\), \(\[Mu]\)]\) = Subsuperscript[\
\[Delta], b, a]*)

Table[ Sum[Eup[[a, \[Mu]]] Edown[[b, \[Mu]]], {\[Mu], 1, n}], {a, 1, 
   n}, {b, 1, n} ] // MatrixForm

This is the calculation of the spin-connection

(*The spin connection*) 
SubscriptBox[\(\[CapitalOmega]\), \(\[Mu]\)], \(b\), \(a\)] = \(
\*SubsuperscriptBox[\(e\), \(a\), \(\[Rho]\)]\ 
\*SubsuperscriptBox[\(e\), \(\[Nu]\), \(b\)]\ 
\*SubsuperscriptBox[\(\[CapitalGamma]\), \(\[Mu]\[Rho]\), \(\[Nu]\)] - 
\*SubsuperscriptBox[\(e\), \(a\), \(\[Nu]\)]\ 
\*SubscriptBox[\(\[PartialD]\), \(\[Mu]\)]
\*SubsuperscriptBox[\(e\), \(\[Nu]\), \(b\)]\)\)
spinconnection := spinconnection = Table[
     Sum[Edown[[a, q]] Eup[[b, \[Nu]]] affine[[\[Nu], \[Mu], q]], {q, 
      1, n}, {\[Nu], 1, n}] 
    - Sum[Edown[[a, \[Nu]]] \!\(
\*SubscriptBox[\(\[PartialD]\), \(coord[[\[Mu]]]\)]\(Eup[[
        b, \ \[Nu]]]\)\), {\[Nu], 1, n}],
   {\[Mu], 1, n}, {b, 1, n}, {a, 1, n} ]
listspinconnection := 
 Table[If[UnsameQ[spinconnection[[i, j, k]], 
    0], {ToString[\[CapitalOmega][i, j, k]], 
    spinconnection[[i, j, k]]}] , {i, 1, n}, {j, 1, n}, {k, 1, j}]
 Partition[DeleteCases[Flatten[listspinconnection], Null], 2], 
 TableSpacing -> {2, 2}]

And now, a check. If all quantities are well defined and calculated, the tetrad postulate should be satisfied.

(*Final Test*)
\*SubscriptBox[\(\[Del]\), \(\[Mu]\)]
\*SubsuperscriptBox[\(e\), \(\[Nu]\), \(a\)]\)= \!\(
\*SubscriptBox[\(\[PartialD]\), \(\[Mu]\)]
\*SubsuperscriptBox[\(e\), \(\[Nu]\), \(a\)]\) + \!\(
SubscriptBox[\(\[CapitalOmega]\), \(\[Mu]\)], \(b\), \(a\)]\ 
\*SubsuperscriptBox[\(e\), \(\[Nu]\), \(b\)]\)- \!\(
\*SubsuperscriptBox[\(\[CapitalGamma]\), \(\[Mu]\[Nu]\), \(\[Rho]\)]
\*SubsuperscriptBox[\(e\), \(\[Rho]\), \(a\)]\) = 0*)

tetradpostulate = Table[
\*SubscriptBox[\(\[PartialD]\), \(coord[[\[Mu]]]\)]\(Eup[[
       a, \ \[Nu]]]\)\) + 
     Sum[spinconnection[[\[Mu], a, b]] Eup[[b, \[Nu]]], {b, 1, n}]
     - Sum[ affine[[q, \[Mu], \[Nu]]] Eup[[a, q]], {q, 1, n} ] ,
    {\[Mu], 1, n}, {\[Nu], 1, n}, {a, 1, n} ] // Flatten ;
AllTrue[tetradpostulate, # == 0 &]

So, having all these, you should be able to obtain the Dirac operator in AdS$_5$. It is given by

$$\gamma^A \nabla_A = u \gamma^{A} \partial_{A} - \frac{4}{2} \gamma^{u}$$

where in the above $\gamma^{u}$ stands for the chiral gamma matrix; the higher-dimensional analogue of $\gamma^5$ in $4$-dimensions and if you wanted to do AdS$_{1+d}$ in the last fraction you should have $d$. This is why I left it as $4/2$. Also, $A$ in the above is a world-volume index, takes all values.

I will not be showing the physics part of the problem, just taking the result.

You should be able to show that the Dirac equation, can be brought in a Klein-Gordon form. For the example at hand it reads -I am writing the result in (1+d)-dimensions and then specify it in the case $d=4$.

$$\left(u \gamma^{A} \partial_{A} - d u \partial_{u} - m^2 + \frac{d^2}{4} + \frac{d}{2}+m \gamma^{u} \right) \Psi(u,x^{\mu}) = 0$$

This can be solved analytically under some assumptions.

Since the OP has not any specific conditions let me illustrate a particular case.

Assume that you Fourier decompose the spinor in the Minkowski space, you set the spinor $\Psi(u,x^{\mu})=f(u) e^{ikx}$ and you apply $d=4$ for the AdS$_5$ case of study. This will result in obtaining a differential, using that $k^2=-M^2$ which are the eigenvalues from $\gamma^{\mu}\partial_{\mu}$, for the scalar function $f(u)$.

I am giving the code and the final result.

d := 4
dirac1 = z^2 D[f[z], {z, 2}] - d z D[f[z], z] + z^2 M^2 f[z] - 
   m^2 f[z] + (d^2/4 + d/2) f[z] + m f[z];
dirac2 = z^2 D[f[z], {z, 2}] - d z D[f[z], z] + z^2 M^2 f[z] - 
   m^2 f[z] + (d^2/4 + d/2) f[z] - m f[z];
sltn1 = DSolve[dirac1 == 0, f[z], z]
sltn2 = DSolve[dirac2 == 0, f[z], z] 

where the two equations come from the two different eigenvalues of the $\gamma^u$.

Hope it helps a bit.

edit1: If you want the calculation for the second order differential equation from the first-order coupled ones, let me know, but please make a post in the Physics.S.E. It's not very difficult and similar techniques ought to be working in any spacetime.

edit2: For more complicated spacetimes, in example asymptotically AdS with a non-trivial dilaton flow, if you run the code as it is you might think that it does not work. Remember to perform Simplify or FullSimplify in the spin-connection and the tetrad postulate.


Not the answer you're looking for? Browse other questions tagged or ask your own question.